/[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 284628 - (show annotations) (download)
Mon Aug 27 22:32:20 2012 UTC (11 years, 7 months ago) by dmorgan
File size: 14450 byte(s)
New version 15.0
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 mageia2 .
11 %define major 15.0
12 %define ff_epoch 0
13 # (tpg) set version HERE !!!
14 %define realver %{major}
15 %define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
16
17 # (tpg) MOZILLA_FIVE_HOME
18 %define mozillalibdir %{_libdir}/%{name}-%{major}
19 %define pluginsdir %{_libdir}/mozilla/plugins
20
21 # libxul.so is provided by libxulrunnner2.0.
22 %define _requires_exceptions libxul.so
23
24 # this seems fragile, so require the exact version or later (#58754)
25 %define sqlite3_version %(pkg-config --modversion sqlite3 &>/dev/null && pkg-config --modversion sqlite3 2>/dev/null || echo 0)
26 %define nss_version %(pkg-config --modversion nss &>/dev/null && pkg-config --modversion nss 2>/dev/null || echo 0)
27 %define nspr_version %(pkg-config --modversion nspr &>/dev/null && pkg-config --modversion nspr 2>/dev/null |sed -e 's!\.0!!' || echo 0)
28
29 %define _use_syshunspell 1
30
31 %define release %mkrel 1
32
33 %define update_channel release
34
35 Summary: Next generation web browser
36 Name: firefox
37 Version: %{major}
38 Epoch: %{ff_epoch}
39 Release: %{release}
40 License: MPLv1+
41 Group: Networking/WWW
42 Url: http://www.mozilla.com/firefox/
43 %if 0%{?prel}
44 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}%prel.source.tar.bz2
45 %else
46 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}.source.tar.bz2
47 %endif
48 Source4: %{name}.desktop
49 Source9: kde.js
50 Patch1: firefox-6.0-lang.patch
51 Patch2: firefox-vendor.patch
52 Patch3: mozilla-firefox-1.5.0.6-systemproxy.patch
53 Patch4: firefox-10.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-6.0-appname.patch
57 Patch6: firefox-7.0-fix-str-fmt.patch
58 Patch7: mozilla-firefox-run-mozilla.patch
59 Patch8: firefox-disable-check-default-browser.patch
60 Patch10: firefox-3.5.3-default-mail-handler.patch
61 # Patches for kde integration of FF
62 Patch11: firefox-kde.patch
63 Patch12: mozilla-kde.patch
64 Patch13: firefox-13-fix-nspr-include.patch
65 Patch14: firefox-13-fix-cairo-build.patch
66 Patch34: xulrunner_nojit.patch
67 # (cjw) make youtube show a green light for html5 h.264 support (?)
68 Patch35: iceape-2.11-gstreamer-h264-avc1.42001E.patch
69 # (cjw) use system virtualenv
70 Patch36: iceape-2.12-system-virtualenv.patch
71 # (cjw) from hg: fix segfault in gstreamer video playback code, see https://bugzilla.mozilla.org/show_bug.cgi?id=761030
72 Patch37: iceape-2.12-b8c6c7c773c3-gstreamer-video-segfault.patch
73 # (cjw) make system-nss and system-nspr options work again (...)
74 Patch38: firefox-15b2-native-nss-nspr.patch
75 BuildRequires: gtk+2-devel
76 BuildRequires: unzip
77 BuildRequires: zip
78 BuildRequires: libxinerama-devel
79 BuildRequires: libxscrnsaver-devel
80 BuildRequires: libjpeg-devel
81 BuildRequires: libpng-devel >= 2:1.4
82 BuildRequires: zlib-devel
83 BuildRequires: glib2-devel
84 BuildRequires: libIDL2-devel
85 BuildRequires: makedepend
86 BuildRequires: nss-devel >= 2:3.12.10
87 BuildRequires: nss-static-devel
88 BuildRequires: nspr-devel >= 2:4.8.9
89 BuildRequires: startup-notification-devel
90 BuildRequires: dbus-glib-devel
91 BuildRequires: python
92 BuildRequires: sqlite3-devel >= 3.7.7.1
93 %ifnarch %arm %mips
94 BuildRequires: valgrind
95 BuildRequires: java-rpmbuild
96 BuildRequires: yasm >= 1.0.1
97 %endif
98 %ifarch %arm
99 BuildRequires: libffi-devel
100 %endif
101 BuildRequires: rootcerts >= 1:20110830.00
102 BuildRequires: libxt-devel
103 %if %_use_syshunspell
104 BuildRequires: hunspell-devel
105 %endif
106 BuildRequires: doxygen
107 # BuildRequires: xulrunner-devel >= %xulrunner_version%{?prel:-0.%prel}
108 BuildRequires: pkgconfig(libproxy-1.0)
109 BuildRequires: pkgconfig(alsa)
110 BuildRequires: wget
111 BuildRequires: libnotify-devel
112 BuildRequires: cairo-devel >= 1.10
113 BuildRequires: mesagl-devel
114 BuildRequires: libvpx-devel
115 BuildRequires: autoconf2.1
116 BuildRequires: libiw-devel
117 BuildRequires: python-virtualenv
118 BuildRequires: gstreamer0.10-devel
119 BuildRequires: libgstreamer0.10-plugins-base-devel
120 BuildRequires: pkgconfig(opus)
121
122 %if 0%{?prel}
123 Provides: %{name} = %{epoch}:%{realver}-0.%{prel}
124 %else
125 Provides: %{name} = %{epoch}:%{realver}
126 %endif
127 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
128 Provides: webclient
129
130 Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
131 Requires: %{mklibname nss 3} >= 2:%{nss_version}
132 Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
133 Requires: indexhtml
134 Requires: xdg-utils
135 # fixes bug #42096
136 Requires: mailcap
137 Suggests: hunspell-en
138 Suggests: %{_lib}canberra0
139 Suggests: %{_lib}cups2
140 Obsoletes: firefox-ext-weave-sync
141 Obsoletes: firefox-beta < 11
142
143 %description
144 The award-winning Web browser is now faster, more secure, and fully customizable
145 to your online life. With Firefox(R), we've added powerful new features that
146 make your online experience even better. It is an 'open source' product which is
147 freely available, and is acquiring a growing proportion of international web
148 browser usage.
149
150 Firefox claims to offer a more secure web browsing experience than other products,
151 with better protection against spyware and other Internet-based security threats.
152 It includes all the standard features of a modern web browser, like Internet
153 searching, tracking recently visited sites, setting up shortcuts to favourite
154 sites, customising the software behaviour and so on. Firefox also includes
155 features like 'tabbed browsing' (opening several web sites as sections within the
156 same window) and methods for controlling pop-up windows, cookies and downloaded
157 files.
158
159 %package devel
160 Summary: Development files for %{name}
161 Group: Development/Other
162 Obsoletes: firefox-beta-devel < 11
163
164 %description devel
165 Files and macros mainly for building Firefox extensions.
166
167 %prep
168 %setup -qn mozilla-%update_channel
169 %patch1 -p1 -b .lang
170 %patch2 -p1 -b .vendor
171 #patch3 -p1 -b .systemproxy
172 %patch4 -p0 -b .nss
173 %patch5 -p1 -b .appname
174 # It was disabled because firefox3 hangs when using soundwrapper
175 #patch7 -p1
176 %patch8 -p1 -b .disable-software-update
177 %patch10 -p1 -b .default-mail-handler
178 %patch14 -p1
179
180 ## KDE INTEGRATION
181 # Disable kde integration , need refactoring
182 #patch11 -p1 -b .kde
183 #patch12 -p1 -b .kdemoz
184 # install kde.js
185 #install -m 644 %{SOURCE9} browser/app/profile/kde.js
186 %patch36 -p1 -b .system-nss-nspr
187
188 %ifarch %arm
189 %if "%{_target_cpu}" != "armv7l"
190 %patch34 -p1
191 %endif
192 %endif
193 %patch35 -p2 -b .h264-youtube-ok
194 %patch36 -p2 -b .system-virtualenv
195 %patch37 -p1 -b .gstreamer-crash
196 %patch38 -p1 -b .system-nss-nspr
197
198 pushd js/src
199 autoconf-2.13
200 popd
201 autoconf-2.13
202
203 # needed to regenerate certdata.c
204 pushd security/nss/lib/ckfw/builtins
205 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
206 popd
207
208 %build
209 export MOZCONFIG=`pwd`/mozconfig
210 cat << EOF > $MOZCONFIG
211 mk_add_options MOZILLA_OFFICIAL=1
212 mk_add_options BUILD_OFFICIAL=1
213 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
214 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
215 ac_add_options --host=%{_host}
216 ac_add_options --target=%{_target_platform}
217 ac_add_options --enable-optimize="%{optflags}"
218 ac_add_options --prefix="%{_prefix}"
219 ac_add_options --libdir="%{_libdir}"
220 ac_add_options --sysconfdir="%{_sysconfdir}"
221 ac_add_options --mandir="%{_mandir}"
222 ac_add_options --includedir="%{_includedir}"
223 ac_add_options --datadir="%{_datadir}"
224 ac_add_options --with-system-nspr
225 ac_add_options --with-system-nss
226 ac_add_options --with-system-zlib
227 ac_add_options --with-system-libvpx
228 ac_add_options --enable-webm
229 ac_add_options --enable-gio
230 ac_add_options --disable-gnomevfs
231 ac_add_options --disable-updater
232 ac_add_options --disable-tests
233 ac_add_options --disable-debug
234 #ac_add_options --enable-chrome-format=jar
235 #ac_add_options --enable-update-channel=beta
236 ac_add_options --enable-official-branding
237 ac_add_options --enable-libproxy
238 ac_add_options --with-system-png
239 ac_add_options --with-system-jpeg
240 ac_add_options --enable-system-cairo
241 ac_add_options --enable-system-sqlite
242 ac_add_options --enable-startup-notification
243 ac_add_options --enable-xinerama
244 ac_add_options --with-distribution-id=org.mageia
245 ac_add_options --disable-crashreporter
246 ac_add_options --enable-update-channel=%{update_channel}
247 ac_add_options --enable-gstreamer
248 %ifarch %arm
249 %if "%{_target_cpu}" != "armv7l"
250 ac_add_options --disable-methodjit
251 ac_add_options --disable-tracejit
252 %endif
253 ac_add_options --enable-system-ffi
254 %endif
255 %ifnarch %arm %mips
256 ac_add_options --with-valgrind
257 ac_add_options --with-java-include-path=%{java_home}/include
258 ac_add_options --with-java-bin-path=%{java_home}/bin
259 ac_add_options --enable-opus
260 %endif
261
262 EOF
263
264 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
265
266 export LDFLAGS="%ldflags"
267 make -f client.mk build
268
269 %install
270 rm -rf %{buildroot}
271
272 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true
273
274 # Copy files to buildroot
275 %{__mkdir_p} %{buildroot}%{mozillalibdir}
276 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
277
278 %{__mkdir_p} %{buildroot}%{_bindir}
279 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
280 pushd %{buildroot}%{_bindir}
281 ln -sf firefox mozilla-firefox
282 popd
283
284 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
285 %{__mkdir_p} %{buildroot}%{pluginsdir}
286 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
287 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
288
289 # (tpg) desktop entry
290 %{__mkdir_p} %{buildroot}%{_datadir}/applications
291 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
292
293 # (tpg) icons
294 %{__cp} %{buildroot}%{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/icons/
295 for i in 16 22 24 32 48 256; do
296 # (cg) Not all icon sizes are installed with make install, so just redo it here.
297 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
298 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
299 ln -sf %{mozillalibdir}/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
300 done
301 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
302 ln -sf %{mozillalibdir}/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
303 ln -sf %{mozillalibdir}/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
304 ln -sf %{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
305
306 # exclusions
307 rm -f %{buildroot}%{mozillalibdir}/README.txt
308 rm -f %{buildroot}%{mozillalibdir}/removed-files
309 rm -f %{buildroot}%{mozillalibdir}/precomplete
310
311 # this file is only used when creating a new user profile
312 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
313 cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
314 user_pref("browser.EULA.override", true);
315 user_pref("browser.shell.checkDefaultBrowser", false);
316 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
317 user_pref("app.update.auto", false);
318 user_pref("app.update.enabled", false);
319 user_pref("app.update.autoInstallEnabled", false);
320 user_pref("browser.showQuitWarning", true);
321 EOF
322
323 # display icon for Firefox button
324 %{__mkdir_p} %{buildroot}%{mozillalibdir}/defaults/profile/chrome
325 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/profile/chrome/userChrome.css
326 #appmenu-toolbar-button {
327 list-style-image: url("chrome://branding/content/icon16.png");
328 }
329 EOF
330
331 # files in this directory are read on every startup, and can change/add
332 # preferences for existing profiles
333 # extensions.autoDisableScopes is a new preference added in firefox 8
334 # it defines "scopes" where newly installed addons are disabled by default
335 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
336 # we need to remove system scope (8) from it so language packs and other addons
337 # which are installed systemwide won't get marked as 3rd party and disabled
338 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
339 # or in toolkit/mozapps/extensions/AddonManager.jsm
340 # we also need to disable the "disable addon selection dialog"
341 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/pref/mga.js
342 pref("extensions.autoDisableScopes", 0);
343 pref("extensions.shownSelectionUI", true);
344 EOF
345
346 # use the system myspell dictionaries
347 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
348 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
349
350 # (lm) touch and %ghost bookmarks.html to a proper uninstall
351 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
352
353 %find_lang %{name}
354
355 mkdir -p %{buildroot}%{_sys_macros_dir}
356 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
357 # Macros from %{name} package
358 %%firefox_major %{major}
359 %%firefox_epoch %{ff_epoch}
360 %%firefox_version %{major}%{?prel:-0.%prel}
361 %%firefox_mozillapath %{mozillalibdir}
362 %%firefox_pluginsdir %{pluginsdir}
363 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
364 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
365 FIN
366
367 %pre
368 if [ -d %{mozillalibdir}/dictionaries ]; then
369 rm -fr %{mozillalibdir}/dictionaries
370 fi
371
372 %post
373 if [ ! -r /etc/sysconfig/oem ]; then
374 case `grep META_CLASS /etc/sysconfig/system` in
375 *powerpack) bookmark="mozilla-powerpack.html" ;;
376 *desktop) bookmark="mozilla-one.html";;
377 *) bookmark="mozilla-download.html";;
378 esac
379 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
380 fi
381
382 %files -f %{name}.lang
383 %{_bindir}/%{name}
384 %{_bindir}/mozilla-firefox
385 %{_iconsdir}/hicolor/*/apps/*.png
386 %{_miconsdir}/%{name}.png
387 %{_iconsdir}/%{name}.png
388 %{_liconsdir}/%{name}.png
389 %{_datadir}/applications/*.desktop
390 %{_libdir}/%{name}-%{major}*
391 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
392 %dir %{_libdir}/mozilla
393 %dir %{pluginsdir}
394 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
395 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
396
397 %files devel
398 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30