/[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 303841 - (show annotations) (download)
Tue Oct 9 07:10:52 2012 UTC (11 years, 6 months ago) by tv
File size: 14474 byte(s)
- new release
- drop patch 35 (merged)
- rediff KDE patches
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 16.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 1
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) use system virtualenv
71 Patch36: iceape-2.12-system-virtualenv.patch
72 # (cjw) from hg: fix segfault in gstreamer video playback code, see https://bugzilla.mozilla.org/show_bug.cgi?id=761030
73 Patch37: iceape-2.12-b8c6c7c773c3-gstreamer-video-segfault.patch
74 # (cjw) make system-nss and system-nspr options work again (...)
75 Patch38: firefox-15b2-native-nss-nspr.patch
76 BuildRequires: gtk+2-devel
77 BuildRequires: unzip
78 BuildRequires: zip
79 BuildRequires: libxinerama-devel
80 BuildRequires: libxscrnsaver-devel
81 BuildRequires: libjpeg-devel
82 BuildRequires: libpng-devel >= 2:1.4
83 BuildRequires: zlib-devel
84 BuildRequires: glib2-devel
85 BuildRequires: libIDL2-devel
86 BuildRequires: makedepend
87 BuildRequires: nss-devel >= 2:3.12.10
88 BuildRequires: nss-static-devel
89 BuildRequires: nspr-devel >= 2:4.8.9
90 BuildRequires: startup-notification-devel
91 BuildRequires: dbus-glib-devel
92 BuildRequires: python
93 BuildRequires: sqlite3-devel >= 3.7.7.1
94 %ifnarch %arm %mips
95 BuildRequires: valgrind
96 BuildRequires: java-rpmbuild
97 BuildRequires: yasm >= 1.0.1
98 %endif
99 %ifarch %arm
100 BuildRequires: libffi-devel
101 %endif
102 BuildRequires: rootcerts >= 1:20110830.00
103 BuildRequires: libxt-devel
104 %if %_use_syshunspell
105 BuildRequires: hunspell-devel
106 %endif
107 BuildRequires: doxygen
108 # BuildRequires: xulrunner-devel >= %xulrunner_version%{?prel:-0.%prel}
109 BuildRequires: pkgconfig(libproxy-1.0)
110 BuildRequires: pkgconfig(alsa)
111 BuildRequires: wget
112 BuildRequires: libnotify-devel
113 BuildRequires: cairo-devel >= 1.10
114 BuildRequires: mesagl-devel
115 BuildRequires: libvpx-devel
116 BuildRequires: autoconf2.1
117 BuildRequires: libiw-devel
118 BuildRequires: python-virtualenv
119 BuildRequires: gstreamer0.10-devel
120 BuildRequires: libgstreamer0.10-plugins-base-devel
121 BuildRequires: pkgconfig(opus)
122
123 %if 0%{?prel}
124 Provides: %{name} = %{epoch}:%{realver}-0.%{prel}
125 %else
126 Provides: %{name} = %{epoch}:%{realver}
127 %endif
128 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
129 Provides: webclient
130
131 Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
132 Requires: %{mklibname nss 3} >= 2:%{nss_version}
133 Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
134 Requires: indexhtml
135 Requires: xdg-utils
136 # fixes bug #42096
137 Requires: mailcap
138 Suggests: hunspell-en
139 Suggests: %{_lib}canberra0
140 Suggests: %{_lib}cups2
141 Obsoletes: firefox-ext-weave-sync
142 Obsoletes: firefox-beta < 11
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 < 11
164
165 %description devel
166 Files and macros mainly for building Firefox extensions.
167
168 %prep
169 %setup -qn mozilla-%update_channel
170 %patch1 -p1 -b .lang
171 %patch2 -p1 -b .vendor
172 #patch3 -p1 -b .systemproxy
173 %patch4 -p0 -b .nss
174 %patch5 -p1 -b .appname
175 # It was disabled because firefox3 hangs when using soundwrapper
176 #patch7 -p1
177 %patch8 -p1 -b .disable-software-update
178 %patch9 -p1 -b .ascii
179 %patch10 -p1 -b .default-mail-handler
180 %patch14 -p1
181
182 ## KDE INTEGRATION
183 # Disable kde integration , need refactoring
184 %patch11 -p1 -b .kde
185 %patch12 -p1 -b .kdemoz
186
187 %ifarch %arm
188 %if "%{_target_cpu}" != "armv7l"
189 %patch34 -p1
190 %endif
191 %endif
192 %patch36 -p2 -b .system-virtualenv
193 %patch37 -p1 -b .gstreamer-crash
194 %patch38 -p1 -b .system-nss-nspr
195
196 pushd js/src
197 autoconf-2.13
198 popd
199 autoconf-2.13
200
201 # needed to regenerate certdata.c
202 pushd security/nss/lib/ckfw/builtins
203 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
204 popd
205
206 %build
207 export MOZCONFIG=`pwd`/mozconfig
208 cat << EOF > $MOZCONFIG
209 mk_add_options MOZILLA_OFFICIAL=1
210 mk_add_options BUILD_OFFICIAL=1
211 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
212 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
213 ac_add_options --host=%{_host}
214 ac_add_options --target=%{_target_platform}
215 ac_add_options --enable-optimize="%{optflags}"
216 ac_add_options --prefix="%{_prefix}"
217 ac_add_options --libdir="%{_libdir}"
218 ac_add_options --sysconfdir="%{_sysconfdir}"
219 ac_add_options --mandir="%{_mandir}"
220 ac_add_options --includedir="%{_includedir}"
221 ac_add_options --datadir="%{_datadir}"
222 ac_add_options --with-system-nspr
223 ac_add_options --with-system-nss
224 ac_add_options --with-system-zlib
225 ac_add_options --with-system-libvpx
226 ac_add_options --enable-webm
227 ac_add_options --enable-gio
228 ac_add_options --disable-gnomevfs
229 ac_add_options --disable-updater
230 ac_add_options --disable-tests
231 ac_add_options --disable-debug
232 #ac_add_options --enable-chrome-format=jar
233 #ac_add_options --enable-update-channel=beta
234 ac_add_options --enable-official-branding
235 ac_add_options --enable-libproxy
236 ac_add_options --with-system-png
237 ac_add_options --with-system-jpeg
238 ac_add_options --enable-system-cairo
239 ac_add_options --enable-system-sqlite
240 ac_add_options --enable-startup-notification
241 ac_add_options --enable-xinerama
242 ac_add_options --with-distribution-id=org.mageia
243 ac_add_options --disable-crashreporter
244 ac_add_options --enable-update-channel=%{update_channel}
245 ac_add_options --enable-gstreamer
246 %ifarch %arm
247 %if "%{_target_cpu}" != "armv7l"
248 ac_add_options --disable-methodjit
249 ac_add_options --disable-tracejit
250 %endif
251 ac_add_options --enable-system-ffi
252 %endif
253 %ifnarch %arm %mips
254 ac_add_options --with-valgrind
255 ac_add_options --with-java-include-path=%{java_home}/include
256 ac_add_options --with-java-bin-path=%{java_home}/bin
257 ac_add_options --enable-opus
258 %endif
259
260 EOF
261
262 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
263
264 export LDFLAGS="%ldflags"
265 make -f client.mk build
266
267 %install
268 rm -rf %{buildroot}
269
270 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
271
272 # Copy files to buildroot
273 %{__mkdir_p} %{buildroot}%{mozillalibdir}
274 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
275
276 %{__mkdir_p} %{buildroot}%{_bindir}
277 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
278 pushd %{buildroot}%{_bindir}
279 ln -sf firefox mozilla-firefox
280 popd
281 mkdir -p %{buildroot}%{mozillalibdir}/defaults/preferences/
282 install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/defaults/preferences/kde.js
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