/[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 284631 - (show annotations) (download)
Mon Aug 27 22:51:21 2012 UTC (11 years, 7 months ago) by dmorgan
File size: 14482 byte(s)
SILENT: readd P14
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 Patch9: firefox-5.0-asciidel.patch
61 Patch10: firefox-3.5.3-default-mail-handler.patch
62 # Patches for kde integration of FF
63 Patch11: firefox-kde.patch
64 Patch12: mozilla-kde.patch
65 Patch13: firefox-13-fix-nspr-include.patch
66 Patch14: firefox-13-fix-cairo-build.patch
67 Patch34: xulrunner_nojit.patch
68 # (cjw) make youtube show a green light for html5 h.264 support (?)
69 Patch35: iceape-2.11-gstreamer-h264-avc1.42001E.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 # install kde.js
187 #install -m 644 %{SOURCE9} browser/app/profile/kde.js
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
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
285 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
286 %{__mkdir_p} %{buildroot}%{pluginsdir}
287 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
288 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
289
290 # (tpg) desktop entry
291 %{__mkdir_p} %{buildroot}%{_datadir}/applications
292 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
293
294 # (tpg) icons
295 %{__cp} %{buildroot}%{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/icons/
296 for i in 16 22 24 32 48 256; do
297 # (cg) Not all icon sizes are installed with make install, so just redo it here.
298 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
299 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
300 ln -sf %{mozillalibdir}/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
301 done
302 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
303 ln -sf %{mozillalibdir}/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
304 ln -sf %{mozillalibdir}/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
305 ln -sf %{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
306
307 # exclusions
308 rm -f %{buildroot}%{mozillalibdir}/README.txt
309 rm -f %{buildroot}%{mozillalibdir}/removed-files
310 rm -f %{buildroot}%{mozillalibdir}/precomplete
311
312 # this file is only used when creating a new user profile
313 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
314 cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
315 user_pref("browser.EULA.override", true);
316 user_pref("browser.shell.checkDefaultBrowser", false);
317 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
318 user_pref("app.update.auto", false);
319 user_pref("app.update.enabled", false);
320 user_pref("app.update.autoInstallEnabled", false);
321 user_pref("browser.showQuitWarning", true);
322 EOF
323
324 # display icon for Firefox button
325 %{__mkdir_p} %{buildroot}%{mozillalibdir}/defaults/profile/chrome
326 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/profile/chrome/userChrome.css
327 #appmenu-toolbar-button {
328 list-style-image: url("chrome://branding/content/icon16.png");
329 }
330 EOF
331
332 # files in this directory are read on every startup, and can change/add
333 # preferences for existing profiles
334 # extensions.autoDisableScopes is a new preference added in firefox 8
335 # it defines "scopes" where newly installed addons are disabled by default
336 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
337 # we need to remove system scope (8) from it so language packs and other addons
338 # which are installed systemwide won't get marked as 3rd party and disabled
339 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
340 # or in toolkit/mozapps/extensions/AddonManager.jsm
341 # we also need to disable the "disable addon selection dialog"
342 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/pref/mga.js
343 pref("extensions.autoDisableScopes", 0);
344 pref("extensions.shownSelectionUI", true);
345 EOF
346
347 # use the system myspell dictionaries
348 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
349 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
350
351 # (lm) touch and %ghost bookmarks.html to a proper uninstall
352 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
353
354 %find_lang %{name}
355
356 mkdir -p %{buildroot}%{_sys_macros_dir}
357 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
358 # Macros from %{name} package
359 %%firefox_major %{major}
360 %%firefox_epoch %{ff_epoch}
361 %%firefox_version %{major}%{?prel:-0.%prel}
362 %%firefox_mozillapath %{mozillalibdir}
363 %%firefox_pluginsdir %{pluginsdir}
364 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
365 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
366 FIN
367
368 %pre
369 if [ -d %{mozillalibdir}/dictionaries ]; then
370 rm -fr %{mozillalibdir}/dictionaries
371 fi
372
373 %post
374 if [ ! -r /etc/sysconfig/oem ]; then
375 case `grep META_CLASS /etc/sysconfig/system` in
376 *powerpack) bookmark="mozilla-powerpack.html" ;;
377 *desktop) bookmark="mozilla-one.html";;
378 *) bookmark="mozilla-download.html";;
379 esac
380 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
381 fi
382
383 %files -f %{name}.lang
384 %{_bindir}/%{name}
385 %{_bindir}/mozilla-firefox
386 %{_iconsdir}/hicolor/*/apps/*.png
387 %{_miconsdir}/%{name}.png
388 %{_iconsdir}/%{name}.png
389 %{_liconsdir}/%{name}.png
390 %{_datadir}/applications/*.desktop
391 %{_libdir}/%{name}-%{major}*
392 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
393 %dir %{_libdir}/mozilla
394 %dir %{pluginsdir}
395 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
396 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
397
398 %files devel
399 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30