/[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 496812 - (show annotations) (download)
Mon Oct 14 08:29:59 2013 UTC (10 years, 6 months ago) by oden
File size: 14472 byte(s)
- fix deps
- make it backportable to at least mga3

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 5
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-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 Requires: %{_lib}notify4
135 Requires: %{_lib}gstreamer0.10_0
136 Requires: %{_lib}gstreamer-plugins-base0.10_0
137 # make sure our default bookmarks are present
138 Requires: desktop-common-data
139 Suggests: %{_lib}canberra0
140 Suggests: %{_lib}cups2
141 Obsoletes: firefox-ext-weave-sync
142 Obsoletes: firefox-beta < 25
143
144 %description
145 The award-winning Web browser is now faster, more secure, and fully customizable
146 to your online life. With Firefox(R), we've added powerful new features that
147 make your online experience even better. It is an 'open source' product which is
148 freely available, and is acquiring a growing proportion of international web
149 browser usage.
150
151 Firefox claims to offer a more secure web browsing experience than other products,
152 with better protection against spyware and other Internet-based security threats.
153 It includes all the standard features of a modern web browser, like Internet
154 searching, tracking recently visited sites, setting up shortcuts to favourite
155 sites, customising the software behaviour and so on. Firefox also includes
156 features like 'tabbed browsing' (opening several web sites as sections within the
157 same window) and methods for controlling pop-up windows, cookies and downloaded
158 files.
159
160 %package devel
161 Summary: Development files for %{name}
162 Group: Development/Other
163 Obsoletes: firefox-beta-devel < 25
164
165 %description devel
166 Files and macros mainly for building Firefox extensions.
167
168 %prep
169 %if %{?extra}
170 %setup -q -n mozilla-%update_channel
171 %else
172 setup -q -n mozilla-release
173 %endif
174 %patch1 -p1 -b .lang
175 %patch2 -p1 -b .vendor
176 %patch4 -p0 -b .nss
177 %patch5 -p1 -b .appname
178 %patch8 -p1 -b .disable-software-update
179 %patch9 -p1 -b .ascii
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 ac_add_options --with-system-png
226 ac_add_options --with-system-jpeg
227 ac_add_options --enable-system-cairo
228 ac_add_options --enable-system-sqlite
229 ac_add_options --enable-startup-notification
230 ac_add_options --enable-xinerama
231 ac_add_options --with-distribution-id=org.mageia
232 ac_add_options --disable-crashreporter
233 ac_add_options --enable-update-channel=%{update_channel}
234 ac_add_options --enable-gstreamer
235 %ifarch %arm
236 %if "%{_target_cpu}" != "armv7l"
237 ac_add_options --disable-methodjit
238 %endif
239 ac_add_options --enable-system-ffi
240 %endif
241 %ifnarch %arm %mips
242 ac_add_options --with-valgrind
243 ac_add_options --with-java-include-path=%{java_home}/include
244 ac_add_options --with-java-bin-path=%{java_home}/bin
245 %endif
246 ac_add_options --with-system-ogg
247 ac_add_options --enable-opus
248 ac_add_options --disable-webrtc
249
250 EOF
251
252 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
253 %ifarch %arm
254 export CFLAGS="-D__ARM_PCS $(echo %{optflags})"
255 export CXXFLAGS="$CFLAGS"
256 %endif
257 export LDFLAGS="%ldflags"
258 make -f client.mk build
259
260 %install
261 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
262
263 # Copy files to buildroot
264 %{__mkdir_p} %{buildroot}%{mozillalibdir}
265 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
266
267 %{__mkdir_p} %{buildroot}%{_bindir}
268 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
269 pushd %{buildroot}%{_bindir}
270 ln -sf firefox mozilla-firefox
271 popd
272 mkdir -p %{buildroot}%{mozillalibdir}/browser/defaults/preferences/
273 install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/browser/defaults/preferences/kde.js
274
275 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
276 %{__mkdir_p} %{buildroot}%{pluginsdir}
277 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
278 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
279
280 # (tpg) desktop entry
281 %{__mkdir_p} %{buildroot}%{_datadir}/applications
282 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
283
284 # (tpg) icons
285 %{__cp} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/browser/icons/
286 for i in 16 22 24 32 48 256; do
287 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
288 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
289 done
290 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
291 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
292 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
293 ln -sf %{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
294
295 # exclusions
296 rm -f %{buildroot}%{mozillalibdir}/README.txt
297 rm -f %{buildroot}%{mozillalibdir}/removed-files
298 rm -f %{buildroot}%{mozillalibdir}/precomplete
299
300 # this file is only used when creating a new user profile
301 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/browser/defaults/profile/prefs.js
302 cat << EOF >> %{buildroot}%{mozillalibdir}/browser/defaults/profile/prefs.js
303 user_pref("browser.EULA.override", true);
304 user_pref("browser.shell.checkDefaultBrowser", false);
305 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
306 user_pref("app.update.auto", false);
307 user_pref("app.update.enabled", false);
308 user_pref("app.update.autoInstallEnabled", false);
309 user_pref("browser.showQuitWarning", true);
310 EOF
311
312 # display icon for Firefox button
313 %{__mkdir_p} %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome
314 cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/profile/chrome/userChrome.css
315 #appmenu-toolbar-button {
316 list-style-image: url("chrome://branding/content/icon16.png");
317 }
318 EOF
319
320 # files in this directory are read on every startup, and can change/add
321 # preferences for existing profiles
322 # extensions.autoDisableScopes is a new preference added in firefox 8
323 # it defines "scopes" where newly installed addons are disabled by default
324 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
325 # we need to remove system scope (8) from it so language packs and other addons
326 # which are installed systemwide won't get marked as 3rd party and disabled
327 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
328 # or in toolkit/mozapps/extensions/AddonManager.jsm
329 # we also need to disable the "disable addon selection dialog"
330 # (doktor5000) - path has changed since FF 21
331 # http://mike.kaply.com/2013/04/24/major-changes-coming-in-firefox-21/
332 cat << EOF > %{buildroot}%{mozillalibdir}/browser/defaults/preferences/mga.js
333 pref("general.useragent.locale", "chrome://global/locale/intl.properties");
334 pref("extensions.autoDisableScopes", 0);
335 pref("extensions.shownSelectionUI", true);
336 EOF
337 # FIXME: Add it back in mga.js when this search engine will be used by default.
338 # user_pref("browser.search.selectedEngine","duckduckgo.com");
339
340 # use the system myspell dictionaries
341 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
342 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
343
344 # (lm) touch and %ghost bookmarks.html to a proper uninstall
345 touch %{buildroot}%{mozillalibdir}/browser/defaults/profile/bookmarks.html
346
347 %find_lang %{name}
348
349 mkdir -p %{buildroot}%{_sys_macros_dir}
350 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
351 # Macros from %{name} package
352 %%firefox_major %{version}
353 %%firefox_epoch %{ff_epoch}
354 %%firefox_version %{version}
355 %%firefox_mozillapath %{mozillalibdir}
356 %%firefox_pluginsdir %{pluginsdir}
357 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
358 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
359 FIN
360 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/browser/searchplugins/duckduckgo.xml
361
362 %pre
363 if [ -d %{mozillalibdir}/dictionaries ]; then
364 rm -fr %{mozillalibdir}/dictionaries
365 fi
366
367 %post
368 if [ ! -r /etc/sysconfig/oem ]; then
369 case `grep META_CLASS /etc/sysconfig/system` in
370 *powerpack) bookmark="mozilla-powerpack.html" ;;
371 *desktop) bookmark="mozilla-one.html";;
372 *) bookmark="mozilla-download.html";;
373 esac
374 ln -s -f %_prefix/share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/browser/defaults/profile/bookmarks.html
375 fi
376
377 %files -f %{name}.lang
378 %{_bindir}/%{name}
379 %{_bindir}/mozilla-firefox
380 %{_iconsdir}/hicolor/*/apps/*.png
381 %{_miconsdir}/%{name}.png
382 %{_iconsdir}/%{name}.png
383 %{_liconsdir}/%{name}.png
384 %{_datadir}/applications/*.desktop
385 %{_libdir}/%{name}-%{version}*
386 %ghost %{mozillalibdir}/browser/defaults/profile/bookmarks.html
387 %dir %{_libdir}/mozilla
388 %dir %{pluginsdir}
389 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
390 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
391
392 %files devel
393 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30