source: projects/specs/trunk/c/chromium/chromium-vl.spec @ 783

Revision 783, 19.0 KB checked in by munepi, 14 years ago (diff)

updated chromium-vl.spec

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