chromium-vl.spec 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. # Thanks to malcolmlewis for help with this script
  2. # Thanks to Tom "spot" Callaway for much of the patchwork
  3. # Thanks to jhaygood for most of the icu patch
  4. # norootforbuild
  5. %define svn_rev 41449
  6. Name: chromium
  7. Summary: Google's opens source browser project
  8. #'
  9. Version: 5.0.353.0
  10. Release: 3%{?_dist_release}
  11. License: BSD
  12. Group: Productivity/Networking/Web/Browsers
  13. Source0: %{name}.%{version}.svn%{svn_rev}.tar.lzma
  14. ## The following are included for source reasons only
  15. # Custom build tools for chromium, hammer is a fancy front-end for scons
  16. Source1: http://src.chromium.org/svn/trunk/tools/depot_tools.tar.gz
  17. %{?nosrc:NoSource: 0}
  18. %{?nosrc:NoSource: 1}
  19. # Script used to create the tar.lzma archive from the daily tarball downloadable at http://build.chromium.org/buildbot/archives/
  20. Source2: repack_chromium_archive.sh
  21. # Script used to create the tar.lzma archive from a checked out source
  22. Source3: pack_chromium_source.sh
  23. Source10: chromium.desktop
  24. # Patch template which adds vendor to user agent
  25. ##!!Source20: chromium-vendor.patch.in
  26. Source20: chromium-vendor-vine.patch.in
  27. ##!!Source30: master_preferences
  28. Source30: master_preferences.vine
  29. Provides: chromium-browser = %{version}
  30. #Obsoletes: chromium-browser < %{version}
  31. ## Start Patches
  32. # Many changes to the gyp system so we can use system libraries
  33. # My first ever patch set. I hope I did well.
  34. Patch3: chromium-gyp-system-02-icu.patch
  35. Patch4: chromium-no-sqlite-debug.patch
  36. Patch5: chromium-gyp-system-04-nss-nspr.patch
  37. Patch7: chromium-codechanges-nss-nspr.patch
  38. Patch8: chromium-codechanges-zlib.patch
  39. Patch9: chromium-drop-sse.patch
  40. Patch10: chromium-fix-wrapper.patch
  41. Patch11: chromium-fix-home-kde4-path.patch
  42. Patch12: chromium-no-test-sources.patch
  43. Patch13: chromium-no-courgette.patch
  44. Patch14: chromium-master-prefs-path.patch
  45. # Vine
  46. #Patch40: chromium-5.0.353-no-ffmpeg-vine.patch
  47. ## Gentoo patches
  48. # Allow use of MP3/MPEG-4 audio/video tags with our system ffmpeg
  49. Patch50: http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/www-client/chromium/files/chromium-20100122-ubuntu-html5-video-mimetypes.patch
  50. BuildRequires: gcc gcc-c++
  51. BuildRequires: libstdc++ libstdc++-devel
  52. BuildRequires: libevent
  53. ##!!BuildRequires: pkg-config
  54. BuildRequires: python
  55. ##!!BuildRequires: python-xml
  56. BuildRequires: python-pyxml
  57. BuildRequires: perl bison flex gperf
  58. ##!!BuildRequires: wdiff
  59. ##!!BuildRequires: update-desktop-files
  60. BuildRequires: desktop-file-utils
  61. BuildRequires: lzma
  62. ##!!BuildRequires: mozilla-nss-devel
  63. BuildRequires: nss-devel
  64. ##!!BuildRequires: alsa-devel
  65. BuildRequires: alsa-lib-devel
  66. BuildRequires: gtk2-devel
  67. BuildRequires: glib2-devel
  68. BuildRequires: cairo-devel >= 1.6
  69. ##!!BuildRequires: mozilla-nspr-devel
  70. BuildRequires: nspr-devel
  71. ##!!BuildRequires: gconf2-devel
  72. BuildRequires: GConf2-devel
  73. BuildRequires: freetype2-devel
  74. ##!!BuildRequires: dbus-1-devel
  75. BuildRequires: dbus-devel
  76. BuildRequires: libxslt-devel
  77. BuildRequires: libxml2-devel
  78. BuildRequires: libjpeg-devel
  79. BuildRequires: zlib-devel
  80. BuildRequires: libpng-devel
  81. ##!!BuildRequires: libbz2-devel
  82. BuildRequires: bzip2-devel
  83. %if %{?_dist_release} == "vl6"
  84. BuildRequires: fdupes
  85. %endif
  86. ##!!BuildRequires: libexpat-devel
  87. BuildRequires: expat-devel
  88. ##!!BuildRequires: Mesa-devel
  89. BuildRequires: mesa-libGLU-devel
  90. %{?with_system_icu:BuildRequires: libicu-devel >= 4.0}
  91. BuildRequires: libevent-devel
  92. ##Vine Linux
  93. BuildRequires: libXScrnSaver-devel
  94. #BuildRequires: gle-devel
  95. #BuildRequires: webkit-gtk-devel
  96. #BuildRequires: scons
  97. %ifarch x86_64
  98. Requires: nspluginwrapper
  99. %endif
  100. ##!!Requires: alsa
  101. Requires: alsa-lib
  102. # shouldn't be required to name all dependencies
  103. # Requires: mozilla-nss mozilla-nspr gtk2 glib2 cairo >= 1.6 freetype2 dbus-1 alsa v8 >= 1.3.15
  104. BuildRoot: %{_tmppath}/%{name}-%{version}-root
  105. %description
  106. Chromium is the open-source project behind Google Chrome. We invite you to join us in our effort to help build a safer, faster, and more stable way for all Internet users to experience the web, and to create a powerful platform for developing a new generation of web applications.
  107. %prep
  108. [ -d %{name} ] && %__rm -rf %{name}
  109. lzma -cd %{SOURCE0} | tar xf -
  110. %setup -D -T -n %{name}
  111. # use system libicu only if >= 4.0
  112. %{?with_system_icu:%patch3 -p1}
  113. %patch4 -p1
  114. %patch5 -p1
  115. %patch7 -p1
  116. %patch8 -p1
  117. %patch9 -p1
  118. %patch10 -p1
  119. %patch11 -p1
  120. %patch12 -p1
  121. %patch13 -p1
  122. %patch14 -p1
  123. #%patch40 -p1 -b .vine
  124. %patch50 -p0 -b .html5
  125. # apply vendor patch after substitution
  126. %__sed "s:RPM_VERSION:%{version}-%{release}:" %{SOURCE20} | patch -p0
  127. %build
  128. ## create make files
  129. PARSED_OPT_FLAGS=`echo \'$RPM_OPT_FLAGS -DUSE_SYSTEM_LIBEVENT -fPIC -fno-strict-aliasing \' | %__sed "s/ /',/g" | %__sed "s/',/', '/g"`
  130. for i in src/build/common.gypi; do
  131. %__sed -i "s|'-march=pentium4',||g" $i
  132. %__sed -i "s|'-msse2',||g" $i
  133. %__sed -i "s|'-mfpmath=sse',||g" $i
  134. %__sed -i "s|'-O<(debug_optimize)',||g" $i
  135. %__sed -i "s|'-m32',||g" $i
  136. %__sed -i "s|'-fno-exceptions',|$PARSED_OPT_FLAGS|g" $i
  137. %__sed -i "s|'-Werror'|'-Wno-error'|g" $i
  138. done
  139. # '
  140. pushd src
  141. ./build/gyp_chromium -f make build/all.gyp \
  142. -Duse_system_ffmpeg=1 \
  143. -Duse_system_zlib=1 \
  144. -Duse_system_libpng=1 \
  145. -Duse_system_bzip2=1 \
  146. -Duse_system_libjpeg=1 \
  147. -Duse_system_libxml=1 \
  148. -Duse_system_libxslt=1 \
  149. -Duse_system_libevent=1 \
  150. %{?with_system_icu:-Duse_system_icu=1} \
  151. %{!?with_system_icu:-Duse_system_icu=0} \
  152. %ifarch %{ix86}
  153. -Dtarget_arch=ia32 \
  154. %endif
  155. %ifarch x86_64
  156. -Dtarget_arch=x64 \
  157. %endif
  158. %if %{?_dist_release} == "vl6"
  159. -Dno_strict_aliasing=1 -Dgcc_version=44 \
  160. %endif
  161. -Drelease_extra_cflags=-fPIC \
  162. ;
  163. #make -r %{?jobs:-j%jobs} chrome BUILDTYPE=Release
  164. #%__make -r -j5 chrome BUILDTYPE=Release
  165. %__make %{?_smp_mflags} chrome BUILDTYPE=Release
  166. %install
  167. %{__rm} -rf %{buildroot}
  168. ## Create install directories
  169. %{__mkdir_p} %{buildroot}%{_libdir}/%{name}
  170. %{__mkdir_p} %{buildroot}%{_bindir}
  171. %{__mkdir_p} %{buildroot}%{_datadir}/applications
  172. %{__mkdir_p} %{buildroot}%{_datadir}/pixmaps
  173. %{__mkdir_p} %{buildroot}%{_mandir}/man1
  174. %{__mkdir_p} %{buildroot}%{_sysconfdir}/%{name}
  175. # chromium 'make' deposits us back at the top level build directory
  176. pushd src/out/Release
  177. ls -l
  178. # clean somechromium-codechanges-zlib.patch
  179. # clean debug junk
  180. %{__rm} -rf obj/ mksnapshot obj.target obj.host
  181. find ./ -type f -name '*.d' | while read i; do %__rm -f $i; done
  182. # clean NaCl stuff... maybe NaCl will be in its own package in the future.
  183. %{__rm} -f ncdecode_table ncdecode_tablegen
  184. # clean other temporary binaries used in the compilation of chromium
  185. %{__rm} -f protoc xdg-settings
  186. %{__cp} -rf * %{buildroot}%{_libdir}/%{name}/
  187. # Man page
  188. [ ! -f %{name}.1 ] && %{__mv} chrome.1 %{name}.1
  189. %__install -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1
  190. # Add startup file with plugins enabled
  191. %{__cat} > %{buildroot}%{_bindir}/%{name} <<EOF
  192. #!/bin/bash
  193. %{_libdir}/%{name}/chrome-wrapper --enable-plugins --enable-user-scripts --enable-extensions --enable-sync "\$@"
  194. EOF
  195. # # link to browser plugin path. Plugin patch doesn't work. Why?
  196. # %{__mkdir_p} %{buildroot}%{_libdir}/browser-plugins
  197. # pushd %{buildroot}%{_libdir}/%{name}
  198. # %{__ln_s} %{_libdir}/browser-plugins plugins
  199. # popd
  200. pushd %{buildroot}%{_libdir}/%{name}
  201. %ifarch x86_64
  202. %{__ln_s} %{_libdir}/mozilla/plugins-wrapped plugins
  203. %else
  204. %{__ln_s} %{_libdir}/mozilla/plugins plugins
  205. %endif
  206. popd
  207. # Install desktop-related files
  208. %__install -m 0644 %{SOURCE10} %{buildroot}%{_datadir}/applications/%{name}.desktop
  209. %__install -m 0644 product_logo_48.png %{buildroot}%{_datadir}/pixmaps/%{name}.png
  210. desktop-file-install --vendor Vine \
  211. --dir $RPM_BUILD_ROOT%{_datadir}/applications \
  212. --delete-original \
  213. --mode 644 \
  214. $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
  215. # Install the master_preferences file
  216. #%__install -m 0644 %{SOURCE30} %{buildroot}%{_sysconfdir}/%{name}
  217. %__install -m 0644 %{SOURCE30} %{buildroot}%{_sysconfdir}/%{name}/$(basename %{SOURCE30} .vine)
  218. %clean
  219. %{__rm} -rf %{buildroot}
  220. %files
  221. %defattr(-,root,root)
  222. %doc src/AUTHORS src/LICENSE
  223. %dir %{_libdir}/%{name}
  224. %attr(0755,root,root) %{_bindir}/%{name}
  225. %{_mandir}/man1/*
  226. %{_datadir}/applications/*%{name}.desktop
  227. %{_datadir}/pixmaps/%{name}.png
  228. %{_libdir}/%{name}/*
  229. %{_sysconfdir}/%{name}
  230. %changelog
  231. * Tue Mar 16 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.353.0-3
  232. - fixed to install master_preferences
  233. - dropped chromium-5.0.353-no-ffmpeg-vine.patch
  234. * Tue Mar 16 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.353.0-2
  235. - applied chromium-5.0.353-no-ffmpeg-vine.patch
  236. * Tue Mar 16 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.353.0-1
  237. - updated to snapshot 5.0.353.0 r41449
  238. * Wed Mar 10 2010 bgmerrell@novell.com
  239. - Add master_preferences source file and install it to /etc/chromium.
  240. - Create a new patch (chromium-master-prefs-path.patch) which tells
  241. chromium to look in /etc/chromium for the master_preferences file
  242. (instead of looking in the default directory, which is the same
  243. directory as the 'chrome' binary).
  244. * Sun Feb 21 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.335.0-1
  245. - updated to snapshot 5.0.335.0 r39556
  246. * Sat Feb 20 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.330.0-2
  247. - applied chromium-20100122-ubuntu-html5-video-mimetypes.patch from Gentoo
  248. * Wed Feb 17 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.330.0-1
  249. - updated to snapshot 5.0.330.0 r39074
  250. * Wed Feb 17 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.329.0-5
  251. - use_system_ffmpeg
  252. * Tue Feb 16 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.329.0-4
  253. - added Requires: nspluginwrapper
  254. - fixed a symbolic link of plugins directory with nspluginwrapper
  255. * Tue Feb 16 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.329.0-3
  256. - replaced %%{SOUECE20} to chromium-vendor-vine.patch.in
  257. * Tue Feb 16 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.329.0-2
  258. - added BuildRequires: mesa-libGLU-devel
  259. - added BuildRequires: libstdc++34 libstdc++34-devel for vl5
  260. * Tue Feb 16 2010 Munehiro Yamamoto <munepi@vinelinux.org> 5.0.329.0-1
  261. - built based on chromium-5.0.329.0-167.1.src.rpm of OpenSuse
  262. * Sun Nov 29 2009 - tittiatcoke@gmail.com - 4.0.260.0
  263. - Update to 4.0.260
  264. * Fri Nov 27 2009 - tittiatcoke@gmail.com - 4.0.259.0
  265. - Update to 4.0.259
  266. * Thu Nov 26 2009 - tittiatcoke@gmail.com - 4.0.258.0
  267. - Update to 4.0.258
  268. * Tue Nov 24 2009 - tittatcoke@gmai.com - 4.0.257.0
  269. - In order to complete prevent the wrong v8 version to be used, the Chromium build has been
  270. changed to having an built-in v8
  271. * Tue Nov 24 2009 - dbuck@example.com - 4.0.257.0
  272. - Re-base patches. Fixed a few patch errors. Rename some patches to better correspond with function. Removed some patches.
  273. - Minor SPEC changes. I changed the v8 requirement to be exact, instead of greater than a specific version.
  274. * Sat Oct 24 2009 - Pavol Rusnak <prusnak@suse.cz> - 4.0.223.5
  275. - don't create desktop files in wrapper, fix LD_LIBRARY_PATH (chromium-fix-wrapper.patch)
  276. * Tue Oct 20 2009 - Raymond Wooninck >tittiatcoke@gmail.com> - 4.0.223.5
  277. - update to newer svn snapshot
  278. + Obsoletes fwrite patch (included upstream)
  279. * Fri Oct 16 2009 - Raymond Wooninck <tittiatcoke@gmail.com> - 4.0.223.2
  280. - update to newer svn snapshot
  281. + Requires newer version of v8
  282. * Thu Oct 15 2009 - Pavol Rusnak <prusnak@suse.cz> - 4.0.222.6
  283. - do not force SSE on x86 (drop-sse.patch)
  284. * Tue Oct 13 2009 - Raymond Wooninck <tittiatcoke@gmail.com> - 4.0.222.6
  285. - Update to newer svn snapshot
  286. - Fixed spec file in order to build
  287. - Included patch to build with system zlib
  288. * Mon Oct 12 2009 - Pavol Rusnak <prusnak@suse.cz> 4.0.222.2
  289. - package renamed to chromium
  290. - cleaned up spec file
  291. * Tue Oct 6 2009 - dbuck <dbuck@example.com> - 4.0.222.2
  292. - v8 is now built as a separate package, and is required
  293. - included many patches to use system libraries: v8, icu, libxml2, libxslt, libjpeg, libpng, libevent, bzip2, zlib, nspr, nss
  294. * Sun Oct 1 2009 - dbuck <dbuck@example.com> - 4.0.221.1
  295. - included a newer DEP than is in svn, native_client@823. So things should compile cleanly now
  296. * Sun Aug 31 2009 - dbuck <dbuck@example.com> - 4.0.204.0
  297. - initial build
  298. #% changelog
  299. * Sun Jan 24 2010 prusnak@suse.cz
  300. - added vendor to user agent (chromium-vendor.patch.in)
  301. * Sun Nov 29 2009 prusnak@suse.cz
  302. - added --enable-sync to wrapper to enable bookmark sync
  303. * Fri Nov 13 2009 tittiatcoke@gmail.com
  304. - update to 247.0 svn 31928
  305. * Fri Oct 30 2009 tittiatcoke@gmail.com
  306. - update to 229.0 svn 30454
  307. + Fix regression where popups and app frames lost their titlebars.
  308. + Makes it so that when a folder is open on the bookmark bar
  309. and the mouse moves over another folder, the menu for that
  310. folder is shown.
  311. + Lazily create the find bar.
  312. + Polish to the gmail checker sample.
  313. * New, crisper icons that are exactly 19x19
  314. * Add a loading animation at the beginning before Gmail
  315. responds.
  316. * Fix a bug where we sometimes don't update the UI after a
  317. logout/login cycle.
  318. + Refactor widget methods to support desktop notifications,
  319. including GTK stubs.
  320. + Find-in-page should not ding while deleting characters.
  321. + Add SSL wrapper for linux and mac. This allows notifier to
  322. use chrome's SSL layer instead of OpenSSL.
  323. + Add three of the six extensions to PAC that Internet Explorer supports.
  324. + WebSocket support in chromium. (Run with --enable-web-sockets
  325. enables WebSocket features.)
  326. + Do not allow GTK File Chooser dialogs to return directories.
  327. + Fix the notifier SSL layer to make notifications work for
  328. Linux Bookmark sync.
  329. + linux: don't override mouse selection behavior in omnibox
  330. * Sun Oct 25 2009 tittiatcoke@gmail.com
  331. - Update to 224.4 svn 30027
  332. + First cut at new page and browser action docs based
  333. on new API. Deleted old stuff.
  334. + Add suppression for new memory leak caused by WebKit merge 49830:49844
  335. + Cleanup: change PIDs to base::ProcessId (or pid_t, as appropriate)
  336. + Minimize dependency of user scripts
  337. + Fixup the flip_framer eof-handling semantics now that we have
  338. the FIN bit in place
  339. + app depends on x11 because of active_window_watcher_x
  340. + Adding two images for the new Extension managment UI
  341. + Removing hard-coded Chrome Frame output path
  342. + Rearrange clipboard code
  343. + Fix crash bug when attempting to download a url with unsupported scheme,
  344. e.g. 'data:', by 'Alt + Click'
  345. + GTK: Change text for extension download UI
  346. + Ignore invalid urls on command line
  347. + Make dropped tabs animate from where they were dropped.
  348. + Make room for the full width of the tab placeholder.
  349. + Make tab dragging as smooth as glass.
  350. + Remove an annoying NOTIMPLEMNETED
  351. + Extensions: guarantee removal of BROWSER_WINDOW_READY registration
  352. + If we're in the middle of a drag, don't allow the user to middle
  353. click to close or right click for the context menu
  354. + "Fix" a NOTIMPLEMENTED on Linux by using the default password store
  355. + Remove +x bit from files that shouldn't have it
  356. + Fold first 3 channels of multichannel instead of 5. Use fixed point
  357. + Adding new image needed for the managment UI
  358. + Fix a race bug where content scripts would not apply to the first page load
  359. + Make escape remove a bookmark if it's just been added (but not if it already existed)
  360. + Fix bubbles deactivating the opaque frame
  361. + Allow ESC to cancel ALT+SHIFT+T in Toolbar
  362. + ake all pepper plugins default to windowless and transparent
  363. + Add styles for printing
  364. + Implement the new extension management UI
  365. + Add support for to automation interface load install and load extensions
  366. + GTK: theme the info bar border
  367. + Update V8 to version 1.3.16.1
  368. + Introduce WebSecurityPolicy for security related methods
  369. + New button scheme...borders are separate from the inner contents so
  370. that they can be highlighted / depressed independently
  371. + When opening Chrome maximized with an application window already
  372. running, the Chrome window was not activated
  373. + Fix compatibility problems with FileZilla FTP Server
  374. + Remove the extension shelf on Linux
  375. + Fix the proxy host and port string to start with http:// if it does not already
  376. + Enable HTML5 databases for all extension renderer processes