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

  ViewVC Help
Powered by ViewVC 1.1.30