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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 694170 - (show annotations) (download)
Thu Sep 18 05:56:45 2014 UTC (9 years, 7 months ago) by tv
File size: 16329 byte(s)
gcc build is still broken

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

  ViewVC Help
Powered by ViewVC 1.1.30