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

  ViewVC Help
Powered by ViewVC 1.1.30