/[packages]/cauldron/firefox/current/SPECS/firefox.spec
ViewVC logotype

Annotation of /cauldron/firefox/current/SPECS/firefox.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 655464 - (hide annotations) (download)
Tue Jul 22 07:48:09 2014 UTC (9 years, 9 months ago) by tv
File size: 15282 byte(s)
build with clang as ff can no more be build with gcc-4.9 (mga#13543)
1 blino 20612 #
2     # WARNING, READ FIRST:
3     #
4     # This is a special package that needs special treatment. Due to the amount of
5     # security updates it needs, it's common to ship new upstream versions instead of patching.
6     # That means this package MUST be BUILDABLE for stable official releases.
7     # This also means only STABLE upstream releases, NO betas.
8     # This is a discussed topic. Please, do not flame it again.
9    
10 fwang 480701 # Stay on ESR for stable releases and for cauldron before mageia 4.
11     # /!\ Do not update more than FF 24 for mga4. /!\
12 dmorgan 287522
13 tv 655456 %define major 31
14 blino 20612 %define ff_epoch 0
15     # (tpg) set version HERE !!!
16 tv 655456 %define extra esr
17     #define extra %nil
18 tv 445222 %define realver %{version}%extra
19 lmenut 130942 %define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
20 dmorgan 127856
21 blino 20612 # (tpg) MOZILLA_FIVE_HOME
22 tv 445222 %define mozillalibdir %{_libdir}/%{name}-%{version}
23 blino 20612 %define pluginsdir %{_libdir}/mozilla/plugins
24    
25     # libxul.so is provided by libxulrunnner2.0.
26     %define _requires_exceptions libxul.so
27    
28     # this seems fragile, so require the exact version or later (#58754)
29     %define sqlite3_version %(pkg-config --modversion sqlite3 &>/dev/null && pkg-config --modversion sqlite3 2>/dev/null || echo 0)
30 lmenut 130942 %define nss_version %(pkg-config --modversion nss &>/dev/null && pkg-config --modversion nss 2>/dev/null || echo 0)
31 fwang 464111 %define nspr_version %(pkg-config --modversion nspr &>/dev/null && pkg-config --modversion nspr 2>/dev/null || echo 0)
32 blino 20612
33     %define _use_syshunspell 1
34    
35    
36 tv 445222 %define update_channel %{extra}%major
37 dmorgan 256220
38 blino 20612 Summary: Next generation web browser
39     Name: firefox
40 fwang 635334 Version: %{major}.0
41 blino 20612 Epoch: %{ff_epoch}
42 ovitters 644848 Release: %mkrel 2
43 blino 20612 License: MPLv1+
44     Group: Networking/WWW
45 fwang 319950 Url: http://www.mozilla.org/firefox/organizations/
46 dmorgan 256939 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}.source.tar.bz2
47 blino 20612 Source4: %{name}.desktop
48 luigiwalser 390568 Source8: %{name}-searchengines-duckduckgo.xml
49 blino 20612 Source9: kde.js
50 fwang 133091 Patch1: firefox-6.0-lang.patch
51 luigiwalser 390568 Patch2: firefox-vendor.patch
52 tv 604711 Patch4: firefox-28.0-nss-binary.patch
53 blino 20612 # (OpenSuse) add patch to make firefox always use /usr/bin/firefox when "make firefox
54     # the default web browser" is used fix mdv bug#58784
55 tv 655456 Patch5: firefox-31.0-appname.patch
56 fwang 149203 Patch6: firefox-7.0-fix-str-fmt.patch
57 dmorgan 127856 Patch8: firefox-disable-check-default-browser.patch
58     Patch10: firefox-3.5.3-default-mail-handler.patch
59 fwang 480717 # Patches for kde integration of FF
60     Patch11: https://build.opensuse.org/package/rawsourcefile/mozilla:Factory/MozillaFirefox/mozilla-kde.patch
61     # (fwang) please modify patch12 with `sed -e 's/MozillaFirefox/firefox/'` to fit our desktop filename
62     Patch12: https://build.opensuse.org/package/rawsourcefile/mozilla:Factory/MozillaFirefox/firefox-kde.patch
63 luigiwalser 390568 Patch13: firefox-13-fix-nspr-include.patch
64     Patch37: firefox-17.0-nss-version.patch
65 blino 20612 BuildRequires: gtk+2-devel
66     BuildRequires: unzip
67     BuildRequires: zip
68 tv 618760 BuildRequires: pkgconfig(xinerama)
69     BuildRequires: pkgconfig(xscrnsaver)
70 blino 20612 BuildRequires: libjpeg-devel
71 tv 618815 BuildRequires: pkgconfig(libpng) >= 1.4
72 tv 618760 BuildRequires: pkgconfig(zlib)
73     BuildRequires: pkgconfig(gio-2.0)
74     BuildRequires: pkgconfig(libIDL-2.0)
75 blino 20612 BuildRequires: makedepend
76 tv 618815 BuildRequires: pkgconfig(nss) >= 3.15.2
77 luigiwalser 390568 BuildRequires: nss-static-devel
78 fwang 635335 BuildRequires: pkgconfig(nspr) >= 4.10.6
79 tv 618760 BuildRequires: pkgconfig(libstartup-notification-1.0)
80     BuildRequires: pkgconfig(dbus-glib-1)
81 blino 20612 BuildRequires: python
82 tv 618760 BuildRequires: pkgconfig(sqlite3) >= 3.7.17
83 rtp 79029 %ifnarch %arm %mips
84 blino 20612 BuildRequires: valgrind
85 oden 496908 %if %{mgaversion} >= 4
86 fwang 484107 BuildRequires: java-devel
87     BuildRequires: jpackage-utils
88 oden 496812 %else
89     BuildRequires: java-rpmbuild
90     %endif
91 luigiwalser 390568 BuildRequires: yasm >= 1.0.1
92 rtp 79029 %endif
93     %ifarch %arm
94 tv 618760 BuildRequires: pkgconfig(libffi)
95 rtp 79029 %endif
96 oden 496812 BuildRequires: rootcerts >= 1:20130411.00
97 tv 618760 BuildRequires: pkgconfig(xt)
98 blino 20612 %if %_use_syshunspell
99 tv 618760 BuildRequires: pkgconfig(hunspell)
100 blino 20612 %endif
101     BuildRequires: doxygen
102     BuildRequires: wget
103 tv 618760 BuildRequires: pkgconfig(libnotify)
104     BuildRequires: pkgconfig(cairo) >= 1.10
105     BuildRequires: pkgconfig(dri)
106     BuildRequires: pkgconfig(libvpx)
107 rtp 79029 BuildRequires: autoconf2.1
108 luigiwalser 390568 BuildRequires: libiw-devel
109 dmorgan 284628 BuildRequires: python-virtualenv
110 fwang 655459 BuildRequires: icu-devel
111 tv 618760 BuildRequires: pkgconfig(gstreamer-0.10)
112     BuildRequires: pkgconfig(gstreamer-app-0.10)
113 tv 604772 BuildRequires: pkgconfig(alsa)
114 tv 604751 BuildRequires: pkgconfig(libevent)
115 tv 604772 BuildRequires: pkgconfig(libproxy-1.0)
116 tv 604755 BuildRequires: pkgconfig(libpulse)
117 luigiwalser 390635 BuildRequires: pkgconfig(ogg)
118 tv 604751 BuildRequires: pkgconfig(opus)
119     BuildRequires: pkgconfig(theoradec)
120 luigiwalser 390635 BuildRequires: pkgconfig(vorbis)
121 tv 655464 BuildRequires: clang
122 lmenut 329825
123 tv 445222 Provides: %{name} = %{epoch}:%{version}
124 lmenut 130942 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
125 blino 20612 Provides: webclient
126 lmenut 130942
127     Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
128     Requires: %{mklibname nss 3} >= 2:%{nss_version}
129     Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
130 blino 20612 Requires: indexhtml
131 luigiwalser 390568 Requires: xdg-utils
132 lmenut 130942 # fixes bug #42096
133     Requires: mailcap
134 fwang 211783 Suggests: hunspell-en
135 oden 496908 %if %{mgaversion} >= 4
136 fwang 485813 Requires: %{_lib}notify4
137     Requires: %{_lib}gstreamer0.10_0
138     Requires: %{_lib}gstreamer-plugins-base0.10_0
139 oden 496908 %endif
140 doktor5000 492319 # make sure our default bookmarks are present
141     Requires: desktop-common-data
142 fwang 205048 Suggests: %{_lib}canberra0
143     Suggests: %{_lib}cups2
144 ahmad 75375 Obsoletes: firefox-ext-weave-sync
145 tv 492484 Obsoletes: firefox-beta < 25
146 blino 20612
147     %description
148     The award-winning Web browser is now faster, more secure, and fully customizable
149 tv 45609 to your online life. With Firefox(R), we've added powerful new features that
150 blino 20612 make your online experience even better. It is an 'open source' product which is
151     freely available, and is acquiring a growing proportion of international web
152     browser usage.
153    
154     Firefox claims to offer a more secure web browsing experience than other products,
155     with better protection against spyware and other Internet-based security threats.
156     It includes all the standard features of a modern web browser, like Internet
157     searching, tracking recently visited sites, setting up shortcuts to favourite
158     sites, customising the software behaviour and so on. Firefox also includes
159     features like 'tabbed browsing' (opening several web sites as sections within the
160     same window) and methods for controlling pop-up windows, cookies and downloaded
161     files.
162    
163     %package devel
164     Summary: Development files for %{name}
165     Group: Development/Other
166 tv 492484 Obsoletes: firefox-beta-devel < 25
167 blino 20612
168     %description devel
169     Files and macros mainly for building Firefox extensions.
170    
171     %prep
172 tv 655456 %if %{?extra}
173 doktor5000 492319 %setup -q -n mozilla-%update_channel
174 tv 445222 %else
175 tv 587039 %setup -q -n mozilla-release
176 tv 445222 %endif
177 dmorgan 116916 %patch1 -p1 -b .lang
178 dmorgan 127856 %patch2 -p1 -b .vendor
179 fwang 223798 %patch4 -p0 -b .nss
180 lmenut 130942 %patch5 -p1 -b .appname
181 dmorgan 252897 %patch8 -p1 -b .disable-software-update
182 dmorgan 127856 %patch10 -p1 -b .default-mail-handler
183 tv 587049 #patch11 -p1 -b .mozkde
184     #patch12 -p1 -b .ffkde
185 blino 20612
186 dmorgan 320058 %patch37 -p0
187 dmorgan 284628
188 rtp 79029 pushd js/src
189     autoconf-2.13
190     popd
191     autoconf-2.13
192    
193 dmorgan 127856 # needed to regenerate certdata.c
194     pushd security/nss/lib/ckfw/builtins
195     perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
196     popd
197    
198 blino 20612 %build
199 tv 492471 export MOZCONFIG=$PWD/mozconfig
200 dmorgan 127856 cat << EOF > $MOZCONFIG
201     mk_add_options MOZILLA_OFFICIAL=1
202     mk_add_options BUILD_OFFICIAL=1
203     mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
204     mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
205 fwang 132978 ac_add_options --host=%{_host}
206     ac_add_options --target=%{_target_platform}
207 fwang 205048 ac_add_options --enable-optimize="%{optflags}"
208 dmorgan 127856 ac_add_options --prefix="%{_prefix}"
209     ac_add_options --libdir="%{_libdir}"
210     ac_add_options --sysconfdir="%{_sysconfdir}"
211     ac_add_options --mandir="%{_mandir}"
212     ac_add_options --includedir="%{_includedir}"
213     ac_add_options --datadir="%{_datadir}"
214     ac_add_options --with-system-nspr
215     ac_add_options --with-system-nss
216     ac_add_options --with-system-zlib
217 fwang 133280 ac_add_options --with-system-libvpx
218 fwang 467025 ac_add_options --with-system-libevent
219 tv 655464 ac_add_options --with-system-harfbuzz
220 fwang 655459 ac_add_options --with-system-icu
221 fwang 133280 ac_add_options --enable-webm
222 lmenut 130942 ac_add_options --enable-gio
223     ac_add_options --disable-gnomevfs
224 dmorgan 127856 ac_add_options --disable-updater
225     ac_add_options --disable-tests
226     ac_add_options --disable-debug
227     ac_add_options --enable-official-branding
228     ac_add_options --enable-libproxy
229 oden 497301 %if %{mgaversion} >= 3
230 fwang 142362 ac_add_options --with-system-png
231 oden 497301 %endif
232 dmorgan 127856 ac_add_options --with-system-jpeg
233     ac_add_options --enable-system-cairo
234     ac_add_options --enable-system-sqlite
235 lmenut 130942 ac_add_options --enable-startup-notification
236 fwang 133282 ac_add_options --enable-xinerama
237 dmorgan 127856 ac_add_options --with-distribution-id=org.mageia
238     ac_add_options --disable-crashreporter
239 dmorgan 263350 ac_add_options --enable-update-channel=%{update_channel}
240 dmorgan 276864 ac_add_options --enable-gstreamer
241 rtp 79029 %ifarch %arm
242     %if "%{_target_cpu}" != "armv7l"
243 dmorgan 127856 ac_add_options --disable-methodjit
244 rtp 79029 %endif
245 dmorgan 127856 ac_add_options --enable-system-ffi
246 rtp 79029 %endif
247     %ifnarch %arm %mips
248 dmorgan 127856 ac_add_options --with-valgrind
249     ac_add_options --with-java-include-path=%{java_home}/include
250     ac_add_options --with-java-bin-path=%{java_home}/bin
251 rtp 385395 %endif
252 luigiwalser 390635 ac_add_options --with-system-ogg
253 dmorgan 284628 ac_add_options --enable-opus
254 luigiwalser 390635 ac_add_options --disable-webrtc
255 blino 20612
256 tv 655464 # use clang as gcc-4.9 fails to compile ff-31:
257     export CC="clang"
258     export CXX="clang++"
259 dmorgan 127856 EOF
260    
261 blino 20612 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
262 rtp 385395 %ifarch %arm
263     export CFLAGS="-D__ARM_PCS $(echo %{optflags})"
264     export CXXFLAGS="$CFLAGS"
265     %endif
266 tv 655464
267     # use clang as gcc-4.9 fails to compile ff-31:
268     export CC="clang"
269     export CXX="clang++"
270    
271 fwang 133345 export LDFLAGS="%ldflags"
272 dmorgan 127856 make -f client.mk build
273 blino 20612
274     %install
275 dmorgan 287524 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
276 blino 20612
277 dmorgan 127856 # Copy files to buildroot
278     %{__mkdir_p} %{buildroot}%{mozillalibdir}
279     cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
280 blino 20612
281 dmorgan 127856 %{__mkdir_p} %{buildroot}%{_bindir}
282     ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
283     pushd %{buildroot}%{_bindir}
284     ln -sf firefox mozilla-firefox
285     popd
286 doktor5000 492319 mkdir -p %{buildroot}%{mozillalibdir}/browser/defaults/preferences/
287     install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/kde.js
288 tv 110649
289 lmenut 130942 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
290     %{__mkdir_p} %{buildroot}%{pluginsdir}
291     %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
292     %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
293 blino 20612
294     # (tpg) desktop entry
295     %{__mkdir_p} %{buildroot}%{_datadir}/applications
296     install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
297    
298     # (tpg) icons
299 tv 445230 %{__cp} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/browser/icons/
300 colin 130660 for i in 16 22 24 32 48 256; do
301 blino 20612 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
302 tv 445243 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
303 blino 20612 done
304 colin 130660 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
305 tv 445230 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
306     ln -sf %{mozillalibdir}/browser/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
307     ln -sf %{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
308 blino 20612
309 dmorgan 127856 # exclusions
310     rm -f %{buildroot}%{mozillalibdir}/README.txt
311     rm -f %{buildroot}%{mozillalibdir}/removed-files
312     rm -f %{buildroot}%{mozillalibdir}/precomplete
313    
314 doktor5000 170221 # this file is only used when creating a new user profile
315 doktor5000 492319 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/browser/defaults/profile/prefs.js
316     cat << EOF >> %{buildroot}%{mozillalibdir}/browser/defaults/profile/prefs.js
317 blino 20612 user_pref("browser.EULA.override", true);
318     user_pref("browser.shell.checkDefaultBrowser", false);
319 rda 76933 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
320 blino 20612 user_pref("app.update.auto", false);
321     user_pref("app.update.enabled", false);
322     user_pref("app.update.autoInstallEnabled", false);
323 lmenut 130942 user_pref("browser.showQuitWarning", true);
324 blino 20612 EOF
325    
326 fwang 223187 # display icon for Firefox button
327 doktor5000 492319 %{__mkdir_p} %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome
328     cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome/userChrome.css
329 fwang 223187 #appmenu-toolbar-button {
330     list-style-image: url("chrome://branding/content/icon16.png");
331     }
332     EOF
333    
334 doktor5000 170221 # files in this directory are read on every startup, and can change/add
335     # preferences for existing profiles
336     # extensions.autoDisableScopes is a new preference added in firefox 8
337     # it defines "scopes" where newly installed addons are disabled by default
338     # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
339     # we need to remove system scope (8) from it so language packs and other addons
340     # which are installed systemwide won't get marked as 3rd party and disabled
341     # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
342     # or in toolkit/mozapps/extensions/AddonManager.jsm
343     # we also need to disable the "disable addon selection dialog"
344 doktor5000 492319 # (doktor5000) - path has changed since FF 21
345     # http://mike.kaply.com/2013/04/24/major-changes-coming-in-firefox-21/
346     cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/preferences/mga.js
347 fwang 484046 pref("general.useragent.locale", "chrome://global/locale/intl.properties");
348 doktor5000 170221 pref("extensions.autoDisableScopes", 0);
349     pref("extensions.shownSelectionUI", true);
350     EOF
351 dmorgan 320058 # FIXME: Add it back in mga.js when this search engine will be used by default.
352     # user_pref("browser.search.selectedEngine","duckduckgo.com");
353 doktor5000 170221
354 ahmad 130766 # use the system myspell dictionaries
355     rm -fr %{buildroot}%{mozillalibdir}/dictionaries
356 fwang 211783 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
357 ahmad 130766
358 lmenut 130942 # (lm) touch and %ghost bookmarks.html to a proper uninstall
359 doktor5000 492319 touch %{buildroot}%{mozillalibdir}/browser/defaults/profile/bookmarks.html
360 lmenut 130942
361 blino 20612 %find_lang %{name}
362    
363 pterjan 566090 # Add stuff to build a plugin to -devel
364     mkdir -p %{buildroot}%{_includedir}
365     cp -a dom/plugins/base/np*.h %{buildroot}%{_includedir}
366     mkdir -p %{buildroot}/%{_datadir}/pkgconfig
367     cat <<EOF >%{buildroot}/%{_datadir}/pkgconfig/mozilla-plugin.pc
368     Name: Mozilla Plug-In API
369     Description: Mozilla Plug-In API
370     Version: %{version}
371     Cflags: -I%{_includedir} -DXP_UNIX
372     EOF
373    
374 blino 20612 mkdir -p %{buildroot}%{_sys_macros_dir}
375     cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
376     # Macros from %{name} package
377 tv 445222 %%firefox_major %{version}
378 blino 20612 %%firefox_epoch %{ff_epoch}
379 tv 445222 %%firefox_version %{version}
380 blino 20612 %%firefox_mozillapath %{mozillalibdir}
381     %%firefox_pluginsdir %{pluginsdir}
382 tv 45614 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
383     %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
384 blino 20612 FIN
385 tv 445249 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/browser/searchplugins/duckduckgo.xml
386 blino 20612
387 ahmad 130766 %pre
388     if [ -d %{mozillalibdir}/dictionaries ]; then
389     rm -fr %{mozillalibdir}/dictionaries
390     fi
391 dmorgan 127856
392 blino 20612 %post
393     if [ ! -r /etc/sysconfig/oem ]; then
394     case `grep META_CLASS /etc/sysconfig/system` in
395     *powerpack) bookmark="mozilla-powerpack.html" ;;
396     *desktop) bookmark="mozilla-one.html";;
397     *) bookmark="mozilla-download.html";;
398     esac
399 doktor5000 492319 ln -s -f %_prefix/share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/browser/defaults/profile/bookmarks.html
400 blino 20612 fi
401    
402     %files -f %{name}.lang
403     %{_bindir}/%{name}
404     %{_bindir}/mozilla-firefox
405     %{_iconsdir}/hicolor/*/apps/*.png
406 colin 130660 %{_miconsdir}/%{name}.png
407     %{_iconsdir}/%{name}.png
408     %{_liconsdir}/%{name}.png
409 blino 20612 %{_datadir}/applications/*.desktop
410 tv 445222 %{_libdir}/%{name}-%{version}*
411 doktor5000 492319 %ghost %{mozillalibdir}/browser/defaults/profile/bookmarks.html
412 blino 20612 %dir %{_libdir}/mozilla
413     %dir %{pluginsdir}
414 lmenut 130942 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
415     %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
416 blino 20612
417     %files devel
418     %{_sys_macros_dir}/%{name}.macros
419 pterjan 566090 %{_includedir}/np*.h
420     %{_datadir}/pkgconfig/mozilla-plugin.pc

  ViewVC Help
Powered by ViewVC 1.1.30