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

  ViewVC Help
Powered by ViewVC 1.1.28