/[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 639708 - (show annotations) (download)
Wed Jun 25 17:12:28 2014 UTC (9 years, 9 months ago) by tv
File size: 15018 byte(s)
try rebuilding with latest gcc (mga#13575)
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 30
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 %define release %mkrel 2
36
37 %define update_channel %{extra}%major
38
39 Summary: Next generation web browser
40 Name: firefox
41 Version: %{major}.0
42 Epoch: %{ff_epoch}
43 Release: %{release}
44 License: MPLv1+
45 Group: Networking/WWW
46 Url: http://www.mozilla.org/firefox/organizations/
47 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}.source.tar.bz2
48 Source4: %{name}.desktop
49 Source8: %{name}-searchengines-duckduckgo.xml
50 Source9: kde.js
51 Patch1: firefox-6.0-lang.patch
52 Patch2: firefox-vendor.patch
53 Patch4: firefox-28.0-nss-binary.patch
54 # (OpenSuse) add patch to make firefox always use /usr/bin/firefox when "make firefox
55 # the default web browser" is used fix mdv bug#58784
56 Patch5: firefox-21.0-appname.patch
57 Patch6: firefox-7.0-fix-str-fmt.patch
58 Patch8: firefox-disable-check-default-browser.patch
59 Patch10: firefox-3.5.3-default-mail-handler.patch
60 # Patches for kde integration of FF
61 Patch11: https://build.opensuse.org/package/rawsourcefile/mozilla:Factory/MozillaFirefox/mozilla-kde.patch
62 # (fwang) please modify patch12 with `sed -e 's/MozillaFirefox/firefox/'` to fit our desktop filename
63 Patch12: https://build.opensuse.org/package/rawsourcefile/mozilla:Factory/MozillaFirefox/firefox-kde.patch
64 Patch13: firefox-13-fix-nspr-include.patch
65 Patch37: firefox-17.0-nss-version.patch
66 BuildRequires: gtk+2-devel
67 BuildRequires: unzip
68 BuildRequires: zip
69 BuildRequires: pkgconfig(xinerama)
70 BuildRequires: pkgconfig(xscrnsaver)
71 BuildRequires: libjpeg-devel
72 BuildRequires: pkgconfig(libpng) >= 1.4
73 BuildRequires: pkgconfig(zlib)
74 BuildRequires: pkgconfig(gio-2.0)
75 BuildRequires: pkgconfig(libIDL-2.0)
76 BuildRequires: makedepend
77 BuildRequires: pkgconfig(nss) >= 3.15.2
78 BuildRequires: nss-static-devel
79 BuildRequires: pkgconfig(nspr) >= 4.10.6
80 BuildRequires: pkgconfig(libstartup-notification-1.0)
81 BuildRequires: pkgconfig(dbus-glib-1)
82 BuildRequires: python
83 BuildRequires: pkgconfig(sqlite3) >= 3.7.17
84 %ifnarch %arm %mips
85 BuildRequires: valgrind
86 %if %{mgaversion} >= 4
87 BuildRequires: java-devel
88 BuildRequires: jpackage-utils
89 %else
90 BuildRequires: java-rpmbuild
91 %endif
92 BuildRequires: yasm >= 1.0.1
93 %endif
94 %ifarch %arm
95 BuildRequires: pkgconfig(libffi)
96 %endif
97 BuildRequires: rootcerts >= 1:20130411.00
98 BuildRequires: pkgconfig(xt)
99 %if %_use_syshunspell
100 BuildRequires: pkgconfig(hunspell)
101 %endif
102 BuildRequires: doxygen
103 BuildRequires: wget
104 BuildRequires: pkgconfig(libnotify)
105 BuildRequires: pkgconfig(cairo) >= 1.10
106 BuildRequires: pkgconfig(dri)
107 BuildRequires: pkgconfig(libvpx)
108 BuildRequires: autoconf2.1
109 BuildRequires: libiw-devel
110 BuildRequires: python-virtualenv
111 BuildRequires: pkgconfig(gstreamer-0.10)
112 BuildRequires: pkgconfig(gstreamer-app-0.10)
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
122 Provides: %{name} = %{epoch}:%{version}
123 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
124 Provides: webclient
125
126 Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
127 Requires: %{mklibname nss 3} >= 2:%{nss_version}
128 Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
129 Requires: indexhtml
130 Requires: xdg-utils
131 # fixes bug #42096
132 Requires: mailcap
133 Suggests: hunspell-en
134 %if %{mgaversion} >= 4
135 Requires: %{_lib}notify4
136 Requires: %{_lib}gstreamer0.10_0
137 Requires: %{_lib}gstreamer-plugins-base0.10_0
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 0%{?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 --enable-webm
219 ac_add_options --enable-gio
220 ac_add_options --disable-gnomevfs
221 ac_add_options --disable-updater
222 ac_add_options --disable-tests
223 ac_add_options --disable-debug
224 ac_add_options --enable-official-branding
225 ac_add_options --enable-libproxy
226 %if %{mgaversion} >= 3
227 ac_add_options --with-system-png
228 %endif
229 ac_add_options --with-system-jpeg
230 ac_add_options --enable-system-cairo
231 ac_add_options --enable-system-sqlite
232 ac_add_options --enable-startup-notification
233 ac_add_options --enable-xinerama
234 ac_add_options --with-distribution-id=org.mageia
235 ac_add_options --disable-crashreporter
236 ac_add_options --enable-update-channel=%{update_channel}
237 ac_add_options --enable-gstreamer
238 %ifarch %arm
239 %if "%{_target_cpu}" != "armv7l"
240 ac_add_options --disable-methodjit
241 %endif
242 ac_add_options --enable-system-ffi
243 %endif
244 %ifnarch %arm %mips
245 ac_add_options --with-valgrind
246 ac_add_options --with-java-include-path=%{java_home}/include
247 ac_add_options --with-java-bin-path=%{java_home}/bin
248 %endif
249 ac_add_options --with-system-ogg
250 ac_add_options --enable-opus
251 ac_add_options --disable-webrtc
252
253 EOF
254
255 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
256 %ifarch %arm
257 export CFLAGS="-D__ARM_PCS $(echo %{optflags})"
258 export CXXFLAGS="$CFLAGS"
259 %endif
260 export LDFLAGS="%ldflags"
261 make -f client.mk build
262
263 %install
264 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
265
266 # Copy files to buildroot
267 %{__mkdir_p} %{buildroot}%{mozillalibdir}
268 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
269
270 %{__mkdir_p} %{buildroot}%{_bindir}
271 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
272 pushd %{buildroot}%{_bindir}
273 ln -sf firefox mozilla-firefox
274 popd
275 mkdir -p %{buildroot}%{mozillalibdir}/browser/defaults/preferences/
276 install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/kde.js
277
278 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
279 %{__mkdir_p} %{buildroot}%{pluginsdir}
280 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
281 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
282
283 # (tpg) desktop entry
284 %{__mkdir_p} %{buildroot}%{_datadir}/applications
285 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
286
287 # (tpg) icons
288 %{__cp} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/browser/icons/
289 for i in 16 22 24 32 48 256; do
290 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
291 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
292 done
293 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
294 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
295 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
296 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
297
298 # exclusions
299 rm -f %{buildroot}%{mozillalibdir}/README.txt
300 rm -f %{buildroot}%{mozillalibdir}/removed-files
301 rm -f %{buildroot}%{mozillalibdir}/precomplete
302
303 # this file is only used when creating a new user profile
304 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/browser/defaults/profile/prefs.js
305 cat << EOF >> %{buildroot}%{mozillalibdir}/browser/defaults/profile/prefs.js
306 user_pref("browser.EULA.override", true);
307 user_pref("browser.shell.checkDefaultBrowser", false);
308 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
309 user_pref("app.update.auto", false);
310 user_pref("app.update.enabled", false);
311 user_pref("app.update.autoInstallEnabled", false);
312 user_pref("browser.showQuitWarning", true);
313 EOF
314
315 # display icon for Firefox button
316 %{__mkdir_p} %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome
317 cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome/userChrome.css
318 #appmenu-toolbar-button {
319 list-style-image: url("chrome://branding/content/icon16.png");
320 }
321 EOF
322
323 # files in this directory are read on every startup, and can change/add
324 # preferences for existing profiles
325 # extensions.autoDisableScopes is a new preference added in firefox 8
326 # it defines "scopes" where newly installed addons are disabled by default
327 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
328 # we need to remove system scope (8) from it so language packs and other addons
329 # which are installed systemwide won't get marked as 3rd party and disabled
330 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
331 # or in toolkit/mozapps/extensions/AddonManager.jsm
332 # we also need to disable the "disable addon selection dialog"
333 # (doktor5000) - path has changed since FF 21
334 # http://mike.kaply.com/2013/04/24/major-changes-coming-in-firefox-21/
335 cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/preferences/mga.js
336 pref("general.useragent.locale", "chrome://global/locale/intl.properties");
337 pref("extensions.autoDisableScopes", 0);
338 pref("extensions.shownSelectionUI", true);
339 EOF
340 # FIXME: Add it back in mga.js when this search engine will be used by default.
341 # user_pref("browser.search.selectedEngine","duckduckgo.com");
342
343 # use the system myspell dictionaries
344 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
345 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
346
347 # (lm) touch and %ghost bookmarks.html to a proper uninstall
348 touch %{buildroot}%{mozillalibdir}/browser/defaults/profile/bookmarks.html
349
350 %find_lang %{name}
351
352 # Add stuff to build a plugin to -devel
353 mkdir -p %{buildroot}%{_includedir}
354 cp -a dom/plugins/base/np*.h %{buildroot}%{_includedir}
355 mkdir -p %{buildroot}/%{_datadir}/pkgconfig
356 cat <<EOF >%{buildroot}/%{_datadir}/pkgconfig/mozilla-plugin.pc
357 Name: Mozilla Plug-In API
358 Description: Mozilla Plug-In API
359 Version: %{version}
360 Cflags: -I%{_includedir} -DXP_UNIX
361 EOF
362
363 mkdir -p %{buildroot}%{_sys_macros_dir}
364 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
365 # Macros from %{name} package
366 %%firefox_major %{version}
367 %%firefox_epoch %{ff_epoch}
368 %%firefox_version %{version}
369 %%firefox_mozillapath %{mozillalibdir}
370 %%firefox_pluginsdir %{pluginsdir}
371 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
372 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
373 FIN
374 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/browser/searchplugins/duckduckgo.xml
375
376 %pre
377 if [ -d %{mozillalibdir}/dictionaries ]; then
378 rm -fr %{mozillalibdir}/dictionaries
379 fi
380
381 %post
382 if [ ! -r /etc/sysconfig/oem ]; then
383 case `grep META_CLASS /etc/sysconfig/system` in
384 *powerpack) bookmark="mozilla-powerpack.html" ;;
385 *desktop) bookmark="mozilla-one.html";;
386 *) bookmark="mozilla-download.html";;
387 esac
388 ln -s -f %_prefix/share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/browser/defaults/profile/bookmarks.html
389 fi
390
391 %files -f %{name}.lang
392 %{_bindir}/%{name}
393 %{_bindir}/mozilla-firefox
394 %{_iconsdir}/hicolor/*/apps/*.png
395 %{_miconsdir}/%{name}.png
396 %{_iconsdir}/%{name}.png
397 %{_liconsdir}/%{name}.png
398 %{_datadir}/applications/*.desktop
399 %{_libdir}/%{name}-%{version}*
400 %ghost %{mozillalibdir}/browser/defaults/profile/bookmarks.html
401 %dir %{_libdir}/mozilla
402 %dir %{pluginsdir}
403 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
404 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
405
406 %files devel
407 %{_sys_macros_dir}/%{name}.macros
408 %{_includedir}/np*.h
409 %{_datadir}/pkgconfig/mozilla-plugin.pc

  ViewVC Help
Powered by ViewVC 1.1.30