/[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 656603 - (show annotations) (download)
Sat Jul 26 19:15:56 2014 UTC (9 years, 9 months ago) by tv
File size: 15241 byte(s)
requires gstreamer1.0-libav instead of gstreamer libs (Charles A Edwards)
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 5
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: gstreamer1.0-libav
138 %endif
139 # make sure our default bookmarks are present
140 Requires: desktop-common-data
141 Suggests: %{_lib}canberra0
142 Suggests: %{_lib}cups2
143 Obsoletes: firefox-ext-weave-sync
144 Obsoletes: firefox-beta < 25
145
146 %description
147 The award-winning Web browser is now faster, more secure, and fully customizable
148 to your online life. With Firefox(R), we've added powerful new features that
149 make your online experience even better. It is an 'open source' product which is
150 freely available, and is acquiring a growing proportion of international web
151 browser usage.
152
153 Firefox claims to offer a more secure web browsing experience than other products,
154 with better protection against spyware and other Internet-based security threats.
155 It includes all the standard features of a modern web browser, like Internet
156 searching, tracking recently visited sites, setting up shortcuts to favourite
157 sites, customising the software behaviour and so on. Firefox also includes
158 features like 'tabbed browsing' (opening several web sites as sections within the
159 same window) and methods for controlling pop-up windows, cookies and downloaded
160 files.
161
162 %package devel
163 Summary: Development files for %{name}
164 Group: Development/Other
165 Obsoletes: firefox-beta-devel < 25
166
167 %description devel
168 Files and macros mainly for building Firefox extensions.
169
170 %prep
171 %if %{?extra}
172 %setup -q -n mozilla-%update_channel
173 %else
174 %setup -q -n mozilla-release
175 %endif
176 %patch1 -p1 -b .lang
177 %patch2 -p1 -b .vendor
178 %patch4 -p0 -b .nss
179 %patch5 -p1 -b .appname
180 %patch8 -p1 -b .disable-software-update
181 %patch10 -p1 -b .default-mail-handler
182 #patch11 -p1 -b .mozkde
183 #patch12 -p1 -b .ffkde
184
185 %patch37 -p0
186
187 pushd js/src
188 autoconf-2.13
189 popd
190 autoconf-2.13
191
192 # needed to regenerate certdata.c
193 pushd security/nss/lib/ckfw/builtins
194 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
195 popd
196
197 %build
198 export MOZCONFIG=$PWD/mozconfig
199 cat << EOF > $MOZCONFIG
200 mk_add_options MOZILLA_OFFICIAL=1
201 mk_add_options BUILD_OFFICIAL=1
202 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
203 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
204 ac_add_options --host=%{_host}
205 ac_add_options --target=%{_target_platform}
206 ac_add_options --enable-optimize="%{optflags}"
207 ac_add_options --prefix="%{_prefix}"
208 ac_add_options --libdir="%{_libdir}"
209 ac_add_options --sysconfdir="%{_sysconfdir}"
210 ac_add_options --mandir="%{_mandir}"
211 ac_add_options --includedir="%{_includedir}"
212 ac_add_options --datadir="%{_datadir}"
213 ac_add_options --with-system-nspr
214 ac_add_options --with-system-nss
215 ac_add_options --with-system-zlib
216 ac_add_options --with-system-libvpx
217 ac_add_options --with-system-libevent
218 ac_add_options --with-system-harfbuzz
219 ac_add_options --with-system-icu
220 ac_add_options --enable-webm
221 ac_add_options --enable-gio
222 ac_add_options --disable-gnomevfs
223 ac_add_options --disable-updater
224 ac_add_options --disable-tests
225 ac_add_options --disable-debug
226 ac_add_options --enable-official-branding
227 ac_add_options --enable-libproxy
228 %if %{mgaversion} >= 3
229 ac_add_options --with-system-png
230 %endif
231 ac_add_options --with-system-jpeg
232 ac_add_options --enable-system-cairo
233 ac_add_options --enable-system-sqlite
234 ac_add_options --enable-startup-notification
235 ac_add_options --enable-xinerama
236 ac_add_options --with-distribution-id=org.mageia
237 ac_add_options --disable-crashreporter
238 ac_add_options --enable-update-channel=%{update_channel}
239 ac_add_options --enable-gstreamer=1.0
240 %ifarch %arm
241 %if "%{_target_cpu}" != "armv7l"
242 ac_add_options --disable-methodjit
243 %endif
244 ac_add_options --enable-system-ffi
245 %endif
246 %ifnarch %arm %mips
247 ac_add_options --with-valgrind
248 ac_add_options --with-java-include-path=%{java_home}/include
249 ac_add_options --with-java-bin-path=%{java_home}/bin
250 %endif
251 ac_add_options --with-system-ogg
252 ac_add_options --enable-opus
253 ac_add_options --disable-webrtc
254
255 # use clang as gcc-4.9 fails to compile ff-31:
256 export CC="clang"
257 export CXX="clang++"
258 EOF
259
260 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
261 %ifarch %arm
262 export CFLAGS="-D__ARM_PCS $(echo %{optflags})"
263 export CXXFLAGS="$CFLAGS"
264 %endif
265
266 # use clang as gcc-4.9 fails to compile ff-31:
267 export CC="clang"
268 export CXX="clang++"
269
270 export LDFLAGS="%ldflags"
271 make -f client.mk build
272
273 %install
274 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
275
276 # Copy files to buildroot
277 %{__mkdir_p} %{buildroot}%{mozillalibdir}
278 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
279
280 %{__mkdir_p} %{buildroot}%{_bindir}
281 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
282 pushd %{buildroot}%{_bindir}
283 ln -sf firefox mozilla-firefox
284 popd
285 mkdir -p %{buildroot}%{mozillalibdir}/browser/defaults/preferences/
286 install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/kde.js
287
288 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
289 %{__mkdir_p} %{buildroot}%{pluginsdir}
290 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
291 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
292
293 # (tpg) desktop entry
294 %{__mkdir_p} %{buildroot}%{_datadir}/applications
295 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
296
297 # (tpg) icons
298 %{__cp} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/browser/icons/
299 for i in 16 22 24 32 48 256; do
300 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
301 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
302 done
303 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
304 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
305 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
306 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
307
308 # exclusions
309 rm -f %{buildroot}%{mozillalibdir}/README.txt
310 rm -f %{buildroot}%{mozillalibdir}/removed-files
311 rm -f %{buildroot}%{mozillalibdir}/precomplete
312
313 # this file is only used when creating a new user profile
314 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/browser/defaults/profile/prefs.js
315 cat << EOF >> %{buildroot}%{mozillalibdir}/browser/defaults/profile/prefs.js
316 user_pref("browser.EULA.override", true);
317 user_pref("browser.shell.checkDefaultBrowser", false);
318 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
319 user_pref("app.update.auto", false);
320 user_pref("app.update.enabled", false);
321 user_pref("app.update.autoInstallEnabled", false);
322 user_pref("browser.showQuitWarning", true);
323 EOF
324
325 # display icon for Firefox button
326 %{__mkdir_p} %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome
327 cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome/userChrome.css
328 #appmenu-toolbar-button {
329 list-style-image: url("chrome://branding/content/icon16.png");
330 }
331 EOF
332
333 # files in this directory are read on every startup, and can change/add
334 # preferences for existing profiles
335 # extensions.autoDisableScopes is a new preference added in firefox 8
336 # it defines "scopes" where newly installed addons are disabled by default
337 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
338 # we need to remove system scope (8) from it so language packs and other addons
339 # which are installed systemwide won't get marked as 3rd party and disabled
340 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
341 # or in toolkit/mozapps/extensions/AddonManager.jsm
342 # we also need to disable the "disable addon selection dialog"
343 # (doktor5000) - path has changed since FF 21
344 # http://mike.kaply.com/2013/04/24/major-changes-coming-in-firefox-21/
345 cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/preferences/mga.js
346 pref("general.useragent.locale", "chrome://global/locale/intl.properties");
347 pref("extensions.autoDisableScopes", 0);
348 pref("extensions.shownSelectionUI", true);
349 EOF
350 # FIXME: Add it back in mga.js when this search engine will be used by default.
351 # user_pref("browser.search.selectedEngine","duckduckgo.com");
352
353 # use the system myspell dictionaries
354 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
355 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
356
357 # (lm) touch and %ghost bookmarks.html to a proper uninstall
358 touch %{buildroot}%{mozillalibdir}/browser/defaults/profile/bookmarks.html
359
360 %find_lang %{name}
361
362 # Add stuff to build a plugin to -devel
363 mkdir -p %{buildroot}%{_includedir}
364 cp -a dom/plugins/base/np*.h %{buildroot}%{_includedir}
365 mkdir -p %{buildroot}/%{_datadir}/pkgconfig
366 cat <<EOF >%{buildroot}/%{_datadir}/pkgconfig/mozilla-plugin.pc
367 Name: Mozilla Plug-In API
368 Description: Mozilla Plug-In API
369 Version: %{version}
370 Cflags: -I%{_includedir} -DXP_UNIX
371 EOF
372
373 mkdir -p %{buildroot}%{_sys_macros_dir}
374 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
375 # Macros from %{name} package
376 %%firefox_major %{version}
377 %%firefox_epoch %{ff_epoch}
378 %%firefox_version %{version}
379 %%firefox_mozillapath %{mozillalibdir}
380 %%firefox_pluginsdir %{pluginsdir}
381 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
382 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
383 FIN
384 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/browser/searchplugins/duckduckgo.xml
385
386 %pre
387 if [ -d %{mozillalibdir}/dictionaries ]; then
388 rm -fr %{mozillalibdir}/dictionaries
389 fi
390
391 %post
392 if [ ! -r /etc/sysconfig/oem ]; then
393 case `grep META_CLASS /etc/sysconfig/system` in
394 *powerpack) bookmark="mozilla-powerpack.html" ;;
395 *desktop) bookmark="mozilla-one.html";;
396 *) bookmark="mozilla-download.html";;
397 esac
398 ln -s -f %_prefix/share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/browser/defaults/profile/bookmarks.html
399 fi
400
401 %files -f %{name}.lang
402 %{_bindir}/%{name}
403 %{_bindir}/mozilla-firefox
404 %{_iconsdir}/hicolor/*/apps/*.png
405 %{_miconsdir}/%{name}.png
406 %{_iconsdir}/%{name}.png
407 %{_liconsdir}/%{name}.png
408 %{_datadir}/applications/*.desktop
409 %{_libdir}/%{name}-%{version}*
410 %ghost %{mozillalibdir}/browser/defaults/profile/bookmarks.html
411 %dir %{_libdir}/mozilla
412 %dir %{pluginsdir}
413 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
414 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
415
416 %files devel
417 %{_sys_macros_dir}/%{name}.macros
418 %{_includedir}/np*.h
419 %{_datadir}/pkgconfig/mozilla-plugin.pc

  ViewVC Help
Powered by ViewVC 1.1.30