chromium-vl.spec 16 KB

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