/[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 284629 - (show annotations) (download)
Mon Aug 27 22:36:16 2012 UTC (11 years, 7 months ago) by dmorgan
File size: 14515 byte(s)
SILENT: Add back ascii patch
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 %patch36 -p1 -b .system-nss-nspr
189
190 %ifarch %arm
191 %if "%{_target_cpu}" != "armv7l"
192 %patch34 -p1
193 %endif
194 %endif
195 %patch35 -p2 -b .h264-youtube-ok
196 %patch36 -p2 -b .system-virtualenv
197 %patch37 -p1 -b .gstreamer-crash
198 %patch38 -p1 -b .system-nss-nspr
199
200 pushd js/src
201 autoconf-2.13
202 popd
203 autoconf-2.13
204
205 # needed to regenerate certdata.c
206 pushd security/nss/lib/ckfw/builtins
207 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
208 popd
209
210 %build
211 export MOZCONFIG=`pwd`/mozconfig
212 cat << EOF > $MOZCONFIG
213 mk_add_options MOZILLA_OFFICIAL=1
214 mk_add_options BUILD_OFFICIAL=1
215 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
216 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
217 ac_add_options --host=%{_host}
218 ac_add_options --target=%{_target_platform}
219 ac_add_options --enable-optimize="%{optflags}"
220 ac_add_options --prefix="%{_prefix}"
221 ac_add_options --libdir="%{_libdir}"
222 ac_add_options --sysconfdir="%{_sysconfdir}"
223 ac_add_options --mandir="%{_mandir}"
224 ac_add_options --includedir="%{_includedir}"
225 ac_add_options --datadir="%{_datadir}"
226 ac_add_options --with-system-nspr
227 ac_add_options --with-system-nss
228 ac_add_options --with-system-zlib
229 ac_add_options --with-system-libvpx
230 ac_add_options --enable-webm
231 ac_add_options --enable-gio
232 ac_add_options --disable-gnomevfs
233 ac_add_options --disable-updater
234 ac_add_options --disable-tests
235 ac_add_options --disable-debug
236 #ac_add_options --enable-chrome-format=jar
237 #ac_add_options --enable-update-channel=beta
238 ac_add_options --enable-official-branding
239 ac_add_options --enable-libproxy
240 ac_add_options --with-system-png
241 ac_add_options --with-system-jpeg
242 ac_add_options --enable-system-cairo
243 ac_add_options --enable-system-sqlite
244 ac_add_options --enable-startup-notification
245 ac_add_options --enable-xinerama
246 ac_add_options --with-distribution-id=org.mageia
247 ac_add_options --disable-crashreporter
248 ac_add_options --enable-update-channel=%{update_channel}
249 ac_add_options --enable-gstreamer
250 %ifarch %arm
251 %if "%{_target_cpu}" != "armv7l"
252 ac_add_options --disable-methodjit
253 ac_add_options --disable-tracejit
254 %endif
255 ac_add_options --enable-system-ffi
256 %endif
257 %ifnarch %arm %mips
258 ac_add_options --with-valgrind
259 ac_add_options --with-java-include-path=%{java_home}/include
260 ac_add_options --with-java-bin-path=%{java_home}/bin
261 ac_add_options --enable-opus
262 %endif
263
264 EOF
265
266 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
267
268 export LDFLAGS="%ldflags"
269 make -f client.mk build
270
271 %install
272 rm -rf %{buildroot}
273
274 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true
275
276 # Copy files to buildroot
277 %{__mkdir_p} %{buildroot}%{mozillalibdir}
278 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
279
280 %{__mkdir_p} %{buildroot}%{_bindir}
281 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
282 pushd %{buildroot}%{_bindir}
283 ln -sf firefox mozilla-firefox
284 popd
285
286 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
287 %{__mkdir_p} %{buildroot}%{pluginsdir}
288 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
289 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
290
291 # (tpg) desktop entry
292 %{__mkdir_p} %{buildroot}%{_datadir}/applications
293 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
294
295 # (tpg) icons
296 %{__cp} %{buildroot}%{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/icons/
297 for i in 16 22 24 32 48 256; do
298 # (cg) Not all icon sizes are installed with make install, so just redo it here.
299 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
300 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
301 ln -sf %{mozillalibdir}/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
302 done
303 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
304 ln -sf %{mozillalibdir}/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
305 ln -sf %{mozillalibdir}/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
306 ln -sf %{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
307
308 # exclusions
309 rm -f %{buildroot}%{mozillalibdir}/README.txt
310 rm -f %{buildroot}%{mozillalibdir}/removed-files
311 rm -f %{buildroot}%{mozillalibdir}/precomplete
312
313 # this file is only used when creating a new user profile
314 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
315 cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
316 user_pref("browser.EULA.override", true);
317 user_pref("browser.shell.checkDefaultBrowser", false);
318 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
319 user_pref("app.update.auto", false);
320 user_pref("app.update.enabled", false);
321 user_pref("app.update.autoInstallEnabled", false);
322 user_pref("browser.showQuitWarning", true);
323 EOF
324
325 # display icon for Firefox button
326 %{__mkdir_p} %{buildroot}%{mozillalibdir}/defaults/profile/chrome
327 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/profile/chrome/userChrome.css
328 #appmenu-toolbar-button {
329 list-style-image: url("chrome://branding/content/icon16.png");
330 }
331 EOF
332
333 # files in this directory are read on every startup, and can change/add
334 # preferences for existing profiles
335 # extensions.autoDisableScopes is a new preference added in firefox 8
336 # it defines "scopes" where newly installed addons are disabled by default
337 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
338 # we need to remove system scope (8) from it so language packs and other addons
339 # which are installed systemwide won't get marked as 3rd party and disabled
340 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
341 # or in toolkit/mozapps/extensions/AddonManager.jsm
342 # we also need to disable the "disable addon selection dialog"
343 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/pref/mga.js
344 pref("extensions.autoDisableScopes", 0);
345 pref("extensions.shownSelectionUI", true);
346 EOF
347
348 # use the system myspell dictionaries
349 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
350 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
351
352 # (lm) touch and %ghost bookmarks.html to a proper uninstall
353 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
354
355 %find_lang %{name}
356
357 mkdir -p %{buildroot}%{_sys_macros_dir}
358 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
359 # Macros from %{name} package
360 %%firefox_major %{major}
361 %%firefox_epoch %{ff_epoch}
362 %%firefox_version %{major}%{?prel:-0.%prel}
363 %%firefox_mozillapath %{mozillalibdir}
364 %%firefox_pluginsdir %{pluginsdir}
365 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
366 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
367 FIN
368
369 %pre
370 if [ -d %{mozillalibdir}/dictionaries ]; then
371 rm -fr %{mozillalibdir}/dictionaries
372 fi
373
374 %post
375 if [ ! -r /etc/sysconfig/oem ]; then
376 case `grep META_CLASS /etc/sysconfig/system` in
377 *powerpack) bookmark="mozilla-powerpack.html" ;;
378 *desktop) bookmark="mozilla-one.html";;
379 *) bookmark="mozilla-download.html";;
380 esac
381 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
382 fi
383
384 %files -f %{name}.lang
385 %{_bindir}/%{name}
386 %{_bindir}/mozilla-firefox
387 %{_iconsdir}/hicolor/*/apps/*.png
388 %{_miconsdir}/%{name}.png
389 %{_iconsdir}/%{name}.png
390 %{_liconsdir}/%{name}.png
391 %{_datadir}/applications/*.desktop
392 %{_libdir}/%{name}-%{major}*
393 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
394 %dir %{_libdir}/mozilla
395 %dir %{pluginsdir}
396 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
397 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
398
399 %files devel
400 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30