/[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 655519 - (show annotations) (download)
Tue Jul 22 10:30:59 2014 UTC (9 years, 8 months ago) by tv
File size: 15291 byte(s)
build with gstreamer-1.0 instead of with 0.1
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 major 31
14 %define ff_epoch 0
15 # (tpg) set version HERE !!!
16 %define extra esr
17 #define extra %nil
18 %define realver %{version}%extra
19 %define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
20
21 # (tpg) MOZILLA_FIVE_HOME
22 %define mozillalibdir %{_libdir}/%{name}-%{version}
23 %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 %define nss_version %(pkg-config --modversion nss &>/dev/null && pkg-config --modversion nss 2>/dev/null || echo 0)
31 %define nspr_version %(pkg-config --modversion nspr &>/dev/null && pkg-config --modversion nspr 2>/dev/null || echo 0)
32
33 %define _use_syshunspell 1
34
35
36 %define update_channel %{extra}%major
37
38 Summary: Next generation web browser
39 Name: firefox
40 Version: %{major}.0
41 Epoch: %{ff_epoch}
42 Release: %mkrel 3
43 License: MPLv1+
44 Group: Networking/WWW
45 Url: http://www.mozilla.org/firefox/organizations/
46 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}.source.tar.bz2
47 Source4: %{name}.desktop
48 Source8: %{name}-searchengines-duckduckgo.xml
49 Source9: kde.js
50 Patch1: firefox-6.0-lang.patch
51 Patch2: firefox-vendor.patch
52 Patch4: firefox-28.0-nss-binary.patch
53 # (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 Patch5: firefox-31.0-appname.patch
56 Patch6: firefox-7.0-fix-str-fmt.patch
57 Patch8: firefox-disable-check-default-browser.patch
58 Patch10: firefox-3.5.3-default-mail-handler.patch
59 # 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 Patch13: firefox-13-fix-nspr-include.patch
64 Patch37: firefox-17.0-nss-version.patch
65 BuildRequires: gtk+2-devel
66 BuildRequires: unzip
67 BuildRequires: zip
68 BuildRequires: pkgconfig(xinerama)
69 BuildRequires: pkgconfig(xscrnsaver)
70 BuildRequires: libjpeg-devel
71 BuildRequires: pkgconfig(libpng) >= 1.4
72 BuildRequires: pkgconfig(zlib)
73 BuildRequires: pkgconfig(gio-2.0)
74 BuildRequires: pkgconfig(libIDL-2.0)
75 BuildRequires: makedepend
76 BuildRequires: pkgconfig(nss) >= 3.15.2
77 BuildRequires: nss-static-devel
78 BuildRequires: pkgconfig(nspr) >= 4.10.6
79 BuildRequires: pkgconfig(libstartup-notification-1.0)
80 BuildRequires: pkgconfig(dbus-glib-1)
81 BuildRequires: python
82 BuildRequires: pkgconfig(sqlite3) >= 3.7.17
83 %ifnarch %arm %mips
84 BuildRequires: valgrind
85 %if %{mgaversion} >= 4
86 BuildRequires: java-devel
87 BuildRequires: jpackage-utils
88 %else
89 BuildRequires: java-rpmbuild
90 %endif
91 BuildRequires: yasm >= 1.0.1
92 %endif
93 %ifarch %arm
94 BuildRequires: pkgconfig(libffi)
95 %endif
96 BuildRequires: rootcerts >= 1:20130411.00
97 BuildRequires: pkgconfig(xt)
98 %if %_use_syshunspell
99 BuildRequires: pkgconfig(hunspell)
100 %endif
101 BuildRequires: doxygen
102 BuildRequires: wget
103 BuildRequires: pkgconfig(libnotify)
104 BuildRequires: pkgconfig(cairo) >= 1.10
105 BuildRequires: pkgconfig(dri)
106 BuildRequires: pkgconfig(libvpx)
107 BuildRequires: autoconf2.1
108 BuildRequires: libiw-devel
109 BuildRequires: python-virtualenv
110 BuildRequires: icu-devel
111 BuildRequires: pkgconfig(gstreamer-1.0)
112 BuildRequires: pkgconfig(gstreamer-allocators-1.0)
113 BuildRequires: pkgconfig(alsa)
114 BuildRequires: pkgconfig(libevent)
115 BuildRequires: pkgconfig(libproxy-1.0)
116 BuildRequires: pkgconfig(libpulse)
117 BuildRequires: pkgconfig(ogg)
118 BuildRequires: pkgconfig(opus)
119 BuildRequires: pkgconfig(theoradec)
120 BuildRequires: pkgconfig(vorbis)
121 BuildRequires: clang
122
123 Provides: %{name} = %{epoch}:%{version}
124 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
125 Provides: webclient
126
127 Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
128 Requires: %{mklibname nss 3} >= 2:%{nss_version}
129 Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
130 Requires: indexhtml
131 Requires: xdg-utils
132 # fixes bug #42096
133 Requires: mailcap
134 Suggests: hunspell-en
135 %if %{mgaversion} >= 4
136 Requires: %{_lib}notify4
137 Requires: %{_lib}gstreamer0.10_0
138 Requires: %{_lib}gstreamer-plugins-base0.10_0
139 %endif
140 # make sure our default bookmarks are present
141 Requires: desktop-common-data
142 Suggests: %{_lib}canberra0
143 Suggests: %{_lib}cups2
144 Obsoletes: firefox-ext-weave-sync
145 Obsoletes: firefox-beta < 25
146
147 %description
148 The award-winning Web browser is now faster, more secure, and fully customizable
149 to your online life. With Firefox(R), we've added powerful new features that
150 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 Obsoletes: firefox-beta-devel < 25
167
168 %description devel
169 Files and macros mainly for building Firefox extensions.
170
171 %prep
172 %if %{?extra}
173 %setup -q -n mozilla-%update_channel
174 %else
175 %setup -q -n mozilla-release
176 %endif
177 %patch1 -p1 -b .lang
178 %patch2 -p1 -b .vendor
179 %patch4 -p0 -b .nss
180 %patch5 -p1 -b .appname
181 %patch8 -p1 -b .disable-software-update
182 %patch10 -p1 -b .default-mail-handler
183 #patch11 -p1 -b .mozkde
184 #patch12 -p1 -b .ffkde
185
186 %patch37 -p0
187
188 pushd js/src
189 autoconf-2.13
190 popd
191 autoconf-2.13
192
193 # 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 %build
199 export MOZCONFIG=$PWD/mozconfig
200 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 ac_add_options --host=%{_host}
206 ac_add_options --target=%{_target_platform}
207 ac_add_options --enable-optimize="%{optflags}"
208 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 ac_add_options --with-system-libvpx
218 ac_add_options --with-system-libevent
219 ac_add_options --with-system-harfbuzz
220 ac_add_options --with-system-icu
221 ac_add_options --enable-webm
222 ac_add_options --enable-gio
223 ac_add_options --disable-gnomevfs
224 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 %if %{mgaversion} >= 3
230 ac_add_options --with-system-png
231 %endif
232 ac_add_options --with-system-jpeg
233 ac_add_options --enable-system-cairo
234 ac_add_options --enable-system-sqlite
235 ac_add_options --enable-startup-notification
236 ac_add_options --enable-xinerama
237 ac_add_options --with-distribution-id=org.mageia
238 ac_add_options --disable-crashreporter
239 ac_add_options --enable-update-channel=%{update_channel}
240 ac_add_options --enable-gstreamer=1.0
241 %ifarch %arm
242 %if "%{_target_cpu}" != "armv7l"
243 ac_add_options --disable-methodjit
244 %endif
245 ac_add_options --enable-system-ffi
246 %endif
247 %ifnarch %arm %mips
248 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 %endif
252 ac_add_options --with-system-ogg
253 ac_add_options --enable-opus
254 ac_add_options --disable-webrtc
255
256 # use clang as gcc-4.9 fails to compile ff-31:
257 export CC="clang"
258 export CXX="clang++"
259 EOF
260
261 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
262 %ifarch %arm
263 export CFLAGS="-D__ARM_PCS $(echo %{optflags})"
264 export CXXFLAGS="$CFLAGS"
265 %endif
266
267 # use clang as gcc-4.9 fails to compile ff-31:
268 export CC="clang"
269 export CXX="clang++"
270
271 export LDFLAGS="%ldflags"
272 make -f client.mk build
273
274 %install
275 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
276
277 # Copy files to buildroot
278 %{__mkdir_p} %{buildroot}%{mozillalibdir}
279 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
280
281 %{__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 mkdir -p %{buildroot}%{mozillalibdir}/browser/defaults/preferences/
287 install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/kde.js
288
289 # 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
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 %{__cp} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/browser/icons/
300 for i in 16 22 24 32 48 256; do
301 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
302 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
303 done
304 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
305 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
309 # exclusions
310 rm -f %{buildroot}%{mozillalibdir}/README.txt
311 rm -f %{buildroot}%{mozillalibdir}/removed-files
312 rm -f %{buildroot}%{mozillalibdir}/precomplete
313
314 # this file is only used when creating a new user profile
315 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 user_pref("browser.EULA.override", true);
318 user_pref("browser.shell.checkDefaultBrowser", false);
319 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
320 user_pref("app.update.auto", false);
321 user_pref("app.update.enabled", false);
322 user_pref("app.update.autoInstallEnabled", false);
323 user_pref("browser.showQuitWarning", true);
324 EOF
325
326 # display icon for Firefox button
327 %{__mkdir_p} %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome
328 cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome/userChrome.css
329 #appmenu-toolbar-button {
330 list-style-image: url("chrome://branding/content/icon16.png");
331 }
332 EOF
333
334 # 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) - 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 pref("general.useragent.locale", "chrome://global/locale/intl.properties");
348 pref("extensions.autoDisableScopes", 0);
349 pref("extensions.shownSelectionUI", true);
350 EOF
351 # 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
354 # use the system myspell dictionaries
355 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
356 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
357
358 # (lm) touch and %ghost bookmarks.html to a proper uninstall
359 touch %{buildroot}%{mozillalibdir}/browser/defaults/profile/bookmarks.html
360
361 %find_lang %{name}
362
363 # 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 mkdir -p %{buildroot}%{_sys_macros_dir}
375 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
376 # Macros from %{name} package
377 %%firefox_major %{version}
378 %%firefox_epoch %{ff_epoch}
379 %%firefox_version %{version}
380 %%firefox_mozillapath %{mozillalibdir}
381 %%firefox_pluginsdir %{pluginsdir}
382 %%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 FIN
385 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/browser/searchplugins/duckduckgo.xml
386
387 %pre
388 if [ -d %{mozillalibdir}/dictionaries ]; then
389 rm -fr %{mozillalibdir}/dictionaries
390 fi
391
392 %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 ln -s -f %_prefix/share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/browser/defaults/profile/bookmarks.html
400 fi
401
402 %files -f %{name}.lang
403 %{_bindir}/%{name}
404 %{_bindir}/mozilla-firefox
405 %{_iconsdir}/hicolor/*/apps/*.png
406 %{_miconsdir}/%{name}.png
407 %{_iconsdir}/%{name}.png
408 %{_liconsdir}/%{name}.png
409 %{_datadir}/applications/*.desktop
410 %{_libdir}/%{name}-%{version}*
411 %ghost %{mozillalibdir}/browser/defaults/profile/bookmarks.html
412 %dir %{_libdir}/mozilla
413 %dir %{pluginsdir}
414 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
415 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
416
417 %files devel
418 %{_sys_macros_dir}/%{name}.macros
419 %{_includedir}/np*.h
420 %{_datadir}/pkgconfig/mozilla-plugin.pc

  ViewVC Help
Powered by ViewVC 1.1.30