/[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 587039 - (show annotations) (download)
Sun Feb 9 10:36:45 2014 UTC (10 years, 1 month ago) by tv
File size: 14956 byte(s)
typo fix

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

  ViewVC Help
Powered by ViewVC 1.1.30