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

  ViewVC Help
Powered by ViewVC 1.1.28