/[packages]/updates/1/firefox/current/SPECS/firefox.spec
ViewVC logotype

Contents of /updates/1/firefox/current/SPECS/firefox.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 210077 - (show annotations) (download)
Fri Feb 17 15:05:55 2012 UTC (12 years, 2 months ago) by dmorgan
File size: 15118 byte(s)
New version 10.0.2
1 #
2 # WARNING, READ FIRST:
3 #
4 # PLEASE svn cp SOURCES FROM xulrunner SOURCES INSTEAD
5 # OF COMMITING AGAIN THE TARBALL
6 #
7 # This is a special package that needs special treatment. Due to the amount of
8 # security updates it needs, it's common to ship new upstream versions instead of patching.
9 # That means this package MUST be BUILDABLE for stable official releases.
10 # This also means only STABLE upstream releases, NO betas.
11 # This is a discussed topic. Please, do not flame it again.
12
13 # Stay on ESR for stable releases.
14 %define major 10.0.2
15 %define ff_epoch 0
16 # (tpg) set version HERE !!!
17 %define realver %{major}esr
18 %define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
19
20 # (tpg) MOZILLA_FIVE_HOME
21 %define mozillalibdir %{_libdir}/%{name}-%{major}
22 %define pluginsdir %{_libdir}/mozilla/plugins
23
24 # libxul.so is provided by libxulrunnner2.0.
25 %define _requires_exceptions libxul.so
26
27 # this seems fragile, so require the exact version or later (#58754)
28 %define sqlite3_version %(pkg-config --modversion sqlite3 &>/dev/null && pkg-config --modversion sqlite3 2>/dev/null || echo 0)
29 %define nss_version %(pkg-config --modversion nss &>/dev/null && pkg-config --modversion nss 2>/dev/null || echo 0)
30 %define nspr_version %(pkg-config --modversion nspr &>/dev/null && pkg-config --modversion nspr 2>/dev/null || echo 0)
31
32 %define _use_syshunspell 1
33 %define subrel 1
34
35 Summary: Next generation web browser
36 Name: firefox
37 Version: %{major}
38 Epoch: %{ff_epoch}
39 Release: %mkrel 0
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
51 Patch1: firefox-6.0-lang.patch
52 Patch2: firefox-vendor.patch
53 Patch3: mozilla-firefox-1.5.0.6-systemproxy.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 Patch7: mozilla-firefox-run-mozilla.patch
58 Patch8: firefox-disable-check-default-browser.patch
59 Patch10: firefox-3.5.3-default-mail-handler.patch
60 # Patches for kde integration of FF
61 Patch11: firefox-kde.patch
62 Patch12: mozilla-kde.patch
63
64 # patch from https://bugzilla.mozilla.org/show_bug.cgi?id=551138
65 # we'll have to use system libffi on arm because moz folks are using
66 # vfp asm which doesn't exist on non-cortex platforms
67 # src/arm/sysv.S: Assembler messages:
68 # src/arm/sysv.S:266: Error: selected processor does not support ARM mode `flddle d0,[ip]'
69 # src/arm/sysv.S:267: Error: selected processor does not support ARM mode `fldmiadgt ip,{d0-d7}'
70 # src/arm/sysv.S:307: Error: selected processor does not support ARM mode `fstseq s0,[r2]'
71 # src/arm/sysv.S:311: Error: selected processor does not support ARM mode `fstdeq d0,[r2]'
72 # src/arm/sysv.S:316: Error: selected processor does not support ARM mode `fstmiadeq r2,{d0-d3}'
73 # src/arm/sysv.S:400: Error: selected processor does not support ARM mode `fstmfdd sp!,{d0-d7}'
74 # src/arm/sysv.S:438: Error: selected processor does not support ARM mode `flds s0,[sp]'
75 # src/arm/sysv.S:441: Error: selected processor does not support ARM mode `fldd d0,[sp]'
76 # src/arm/sysv.S:450: Error: selected processor does not support ARM mode `fldmiad sp,{d0-d1}'
77 # src/arm/sysv.S:453: Error: selected processor does not support ARM mode `fldmiad sp,{d0-d3}'
78 Patch34: xulrunner_nojit.patch
79 Patch35: firefox-5.0-asciidel.patch
80
81 BuildRequires: gtk+2-devel
82 BuildRequires: unzip
83 BuildRequires: zip
84 BuildRequires: libxinerama-devel
85 BuildRequires: libjpeg-devel
86 BuildRequires: zlib-devel
87 BuildRequires: glib2-devel
88 BuildRequires: libIDL2-devel
89 BuildRequires: makedepend
90 BuildRequires: nss-devel >= 2:3.13.1
91 BuildRequires: nss-static-devel
92 BuildRequires: nspr-devel >= 2:4.8.7
93 BuildRequires: startup-notification-devel
94 BuildRequires: dbus-glib-devel
95 BuildRequires: python
96 BuildRequires: libsqlite3-devel >= 3.7.7.1
97 %ifnarch %arm %mips
98 BuildRequires: valgrind
99 BuildRequires: java-rpmbuild
100 BuildRequires: yasm >= 1.0.1
101 %endif
102 %ifarch %arm
103 BuildRequires: libffi-devel
104 %endif
105 BuildRequires: rootcerts >= 1:20110902.00
106 BuildRequires: libxt-devel
107 %if %_use_syshunspell
108 BuildRequires: hunspell-devel
109 %endif
110 BuildRequires: doxygen
111 # BuildRequires: xulrunner-devel >= %xulrunner_version%{?prel:-0.%prel}
112 BuildRequires: pkgconfig(libproxy-1.0)
113 BuildRequires: pkgconfig(alsa)
114 BuildRequires: wget
115 BuildRequires: libnotify-devel
116 BuildRequires: cairo-devel >= 1.10
117 BuildRequires: mesagl-devel
118 BuildRequires: libvpx-devel
119 BuildRequires: autoconf2.1
120 BuildRequires: libiw-devel
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: myspell-en_US
138 %ifarch x86_64
139 Suggests: nspluginwrapper
140 %endif
141 Suggests: %{_lib}canberra0
142 Suggests: %{_lib}cups2
143 Obsoletes: firefox-ext-weave-sync
144
145 %description
146 The award-winning Web browser is now faster, more secure, and fully customizable
147 to your online life. With Firefox(R), we've added powerful new features that
148 make your online experience even better. It is an 'open source' product which is
149 freely available, and is acquiring a growing proportion of international web
150 browser usage.
151
152 Firefox claims to offer a more secure web browsing experience than other products,
153 with better protection against spyware and other Internet-based security threats.
154 It includes all the standard features of a modern web browser, like Internet
155 searching, tracking recently visited sites, setting up shortcuts to favourite
156 sites, customising the software behaviour and so on. Firefox also includes
157 features like 'tabbed browsing' (opening several web sites as sections within the
158 same window) and methods for controlling pop-up windows, cookies and downloaded
159 files.
160
161 %package devel
162 Summary: Development files for %{name}
163 Group: Development/Other
164
165 %description devel
166 Files and macros mainly for building Firefox extensions.
167
168 %prep
169 %setup -qn mozilla-esr10
170 %patch1 -p1 -b .lang
171 %patch2 -p1 -b .vendor
172 #patch3 -p1 -b .systemproxy
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 ## KDE INTEGRATION
179 # copy current files and patch them later to keep them in sync
180 # Disable kde integration , need refactoring
181 #%patch11 -p1 -b .kde
182 #%patch12 -p1 -b .kdemoz
183 # install kde.js
184 install -m 644 %{SOURCE9} browser/app/profile/kde.js
185
186 %ifarch %arm
187 %if "%{_target_cpu}" != "armv7l"
188 %patch34 -p1
189 %endif
190 %endif
191 %patch35 -p1
192 pushd js/src
193 autoconf-2.13
194 popd
195 autoconf-2.13
196
197 # needed to regenerate certdata.c
198 pushd security/nss/lib/ckfw/builtins
199 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
200 popd
201
202 %build
203 export MOZCONFIG=`pwd`/mozconfig
204 cat << EOF > $MOZCONFIG
205 mk_add_options MOZILLA_OFFICIAL=1
206 mk_add_options BUILD_OFFICIAL=1
207 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
208 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
209 ac_add_options --host=%{_host}
210 ac_add_options --target=%{_target_platform}
211 ac_add_options --enable-optimize="%{optflags}"
212 ac_add_options --prefix="%{_prefix}"
213 ac_add_options --libdir="%{_libdir}"
214 ac_add_options --sysconfdir="%{_sysconfdir}"
215 ac_add_options --mandir="%{_mandir}"
216 ac_add_options --includedir="%{_includedir}"
217 ac_add_options --datadir="%{_datadir}"
218 ac_add_options --with-system-nspr
219 ac_add_options --with-system-nss
220 ac_add_options --with-system-zlib
221 ac_add_options --with-system-libvpx
222 ac_add_options --enable-webm
223 ac_add_options --enable-gio
224 ac_add_options --disable-gnomevfs
225 ac_add_options --disable-installer
226 ac_add_options --disable-updater
227 ac_add_options --disable-tests
228 ac_add_options --disable-debug
229 #ac_add_options --enable-chrome-format=jar
230 #ac_add_options --enable-update-channel=beta
231 ac_add_options --enable-official-branding
232 ac_add_options --enable-libproxy
233 ac_add_options --without-system-png
234 ac_add_options --with-system-jpeg
235 ac_add_options --enable-system-cairo
236 ac_add_options --enable-system-sqlite
237 ac_add_options --enable-startup-notification
238 ac_add_options --enable-xinerama
239 ac_add_options --with-distribution-id=org.mageia
240 ac_add_options --disable-crashreporter
241 %ifarch %arm
242 %if "%{_target_cpu}" != "armv7l"
243 ac_add_options --disable-methodjit
244 ac_add_options --disable-tracejit
245 %endif
246 ac_add_options --enable-system-ffi
247 %endif
248 %ifnarch %arm %mips
249 ac_add_options --with-valgrind
250 ac_add_options --with-java-include-path=%{java_home}/include
251 ac_add_options --with-java-bin-path=%{java_home}/bin
252 %endif
253
254 EOF
255
256 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
257
258 export LDFLAGS="%ldflags"
259 make -f client.mk build
260
261 %install
262 rm -rf %{buildroot}
263
264 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true
265
266 # Copy files to buildroot
267 %{__mkdir_p} %{buildroot}%{mozillalibdir}
268 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
269
270 %{__mkdir_p} %{buildroot}%{_bindir}
271 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
272 pushd %{buildroot}%{_bindir}
273 ln -sf firefox mozilla-firefox
274 popd
275
276 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
277 %{__mkdir_p} %{buildroot}%{pluginsdir}
278 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
279 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
280
281 # (tpg) desktop entry
282 %{__mkdir_p} %{buildroot}%{_datadir}/applications
283 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
284
285 # (tpg) icons
286 %{__cp} %{buildroot}%{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/icons/
287 for i in 16 22 24 32 48 256; do
288 # (cg) Not all icon sizes are installed with make install, so just redo it here.
289 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
290 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
291 ln -sf %{mozillalibdir}/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
292 done
293 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
294 ln -sf %{mozillalibdir}/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
295 ln -sf %{mozillalibdir}/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
296 ln -sf %{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
297
298 # exclusions
299 rm -f %{buildroot}%{mozillalibdir}/README.txt
300 rm -f %{buildroot}%{mozillalibdir}/removed-files
301 rm -f %{buildroot}%{mozillalibdir}/precomplete
302
303 # this file is only used when creating a new user profile
304 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
305 cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
306 user_pref("browser.EULA.override", true);
307 user_pref("browser.shell.checkDefaultBrowser", false);
308 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
309 user_pref("app.update.auto", false);
310 user_pref("app.update.enabled", false);
311 user_pref("app.update.autoInstallEnabled", false);
312 user_pref("browser.showQuitWarning", true);
313 EOF
314
315 # files in this directory are read on every startup, and can change/add
316 # preferences for existing profiles
317 # extensions.autoDisableScopes is a new preference added in firefox 8
318 # it defines "scopes" where newly installed addons are disabled by default
319 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
320 # we need to remove system scope (8) from it so language packs and other addons
321 # which are installed systemwide won't get marked as 3rd party and disabled
322 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
323 # or in toolkit/mozapps/extensions/AddonManager.jsm
324 # we also need to disable the "disable addon selection dialog"
325 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/pref/mga.js
326 pref("extensions.autoDisableScopes", 0);
327 pref("extensions.shownSelectionUI", true);
328 EOF
329
330 # (ahmad) these ones belonged in prefs.js (see above), remove them until it's
331 # decided what search engines to ship by default
332 #user_pref("browser.search.selectedEngine","Ask.com");
333 #user_pref("browser.search.order.1","Ask.com");
334 #user_pref("browser.search.order.2","Exalead");
335 #user_pref("browser.search.order.3","Google");
336 #user_pref("browser.search.order.4","Yahoo");
337
338 # (ahmad) don't install these until it's decided what search engines to ship by
339 # default
340 # search engines
341 #cp -f %{SOURCE5} %{buildroot}%{mozillalibdir}/searchplugins/jamendo.xml
342 #cp -f %{SOURCE6} %{buildroot}%{mozillalibdir}/searchplugins/exalead.xml
343 #cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/searchplugins/askcom.xml
344
345 #sed -i 's/@DISTRO_VALUE@/ffx/' %{buildroot}%{mozillalibdir}/searchplugins/askcom.xml
346 #sed -i 's/@DISTRO_VALUE@//' %{buildroot}%{mozillalibdir}/searchplugins/exalead.xml
347
348 # use the system myspell dictionaries
349 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
350 ln -s %{_datadir}/dict/mozilla %{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 %{realver}%{?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