/[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 325454 - (show annotations) (download)
Sun Dec 2 17:21:34 2012 UTC (11 years, 4 months ago) by fwang
File size: 14149 byte(s)
update virtual provides
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 17.0.1
14 %define ff_epoch 0
15 # (tpg) set version HERE !!!
16 %define realver %{major}esr
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 esr17
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.org/firefox/organizations/
45 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}.source.tar.bz2
46 Source4: %{name}.desktop
47 Source8: %{name}-searchengines-duckduckgo.xml
48 Source9: kde.js
49 Patch1: firefox-6.0-lang.patch
50 Patch2: firefox-vendor.patch
51 Patch3: mozilla-firefox-1.5.0.6-systemproxy.patch
52 Patch4: firefox-17.0-nss-binary.patch
53 # (OpenSuse) add patch to make firefox always use /usr/bin/firefox when "make firefox
54 # the default web browser" is used fix mdv bug#58784
55 Patch5: firefox-6.0-appname.patch
56 Patch6: firefox-7.0-fix-str-fmt.patch
57 Patch7: mozilla-firefox-run-mozilla.patch
58 Patch8: firefox-disable-check-default-browser.patch
59 Patch9: firefox-5.0-asciidel.patch
60 Patch10: firefox-3.5.3-default-mail-handler.patch
61 # Patches for kde integration of FF
62 Patch11: firefox-kde.patch
63 Patch12: mozilla-kde.patch
64 Patch13: firefox-13-fix-nspr-include.patch
65 Patch14: firefox-13-fix-cairo-build.patch
66 Patch34: xulrunner_nojit.patch
67 # (cjw) use system virtualenv
68 Patch36: iceape-2.12-system-virtualenv.patch
69 Patch37: firefox-17.0-nss-version.patch
70 BuildRequires: gtk+2-devel
71 BuildRequires: unzip
72 BuildRequires: zip
73 BuildRequires: libxinerama-devel
74 BuildRequires: libxscrnsaver-devel
75 BuildRequires: libjpeg-devel
76 BuildRequires: libpng-devel >= 2:1.4
77 BuildRequires: zlib-devel
78 BuildRequires: glib2-devel
79 BuildRequires: libIDL2-devel
80 BuildRequires: makedepend
81 BuildRequires: nss-devel >= 2:3.13.2
82 BuildRequires: nss-static-devel
83 BuildRequires: nspr-devel >= 2:4.8.9
84 BuildRequires: startup-notification-devel
85 BuildRequires: dbus-glib-devel
86 BuildRequires: python
87 BuildRequires: sqlite3-devel >= 3.7.13
88 %ifnarch %arm %mips
89 BuildRequires: valgrind
90 BuildRequires: java-rpmbuild
91 BuildRequires: yasm >= 1.0.1
92 %endif
93 %ifarch %arm
94 BuildRequires: libffi-devel
95 %endif
96 BuildRequires: rootcerts >= 1:20110830.00
97 BuildRequires: libxt-devel
98 %if %_use_syshunspell
99 BuildRequires: hunspell-devel
100 %endif
101 BuildRequires: doxygen
102 BuildRequires: pkgconfig(libproxy-1.0)
103 BuildRequires: pkgconfig(alsa)
104 BuildRequires: wget
105 BuildRequires: libnotify-devel
106 BuildRequires: cairo-devel >= 1.10
107 BuildRequires: mesagl-devel
108 BuildRequires: libvpx-devel
109 BuildRequires: autoconf2.1
110 BuildRequires: libiw-devel
111 BuildRequires: python-virtualenv
112 BuildRequires: gstreamer0.10-devel
113 BuildRequires: libgstreamer0.10-plugins-base-devel
114 BuildRequires: pkgconfig(opus)
115 Provides: firefox = %{epoch}:%{version}
116 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
117 Provides: webclient
118
119 Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
120 Requires: %{mklibname nss 3} >= 2:%{nss_version}
121 Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
122 Requires: indexhtml
123 Requires: xdg-utils
124 # fixes bug #42096
125 Requires: mailcap
126 Suggests: hunspell-en
127 Suggests: %{_lib}canberra0
128 Suggests: %{_lib}cups2
129 Obsoletes: firefox-ext-weave-sync
130 Obsoletes: firefox-beta < 18
131
132 %description
133 The award-winning Web browser is now faster, more secure, and fully customizable
134 to your online life. With Firefox(R), we've added powerful new features that
135 make your online experience even better. It is an 'open source' product which is
136 freely available, and is acquiring a growing proportion of international web
137 browser usage.
138
139 Firefox claims to offer a more secure web browsing experience than other products,
140 with better protection against spyware and other Internet-based security threats.
141 It includes all the standard features of a modern web browser, like Internet
142 searching, tracking recently visited sites, setting up shortcuts to favourite
143 sites, customising the software behaviour and so on. Firefox also includes
144 features like 'tabbed browsing' (opening several web sites as sections within the
145 same window) and methods for controlling pop-up windows, cookies and downloaded
146 files.
147
148 %package devel
149 Summary: Development files for %{name}
150 Group: Development/Other
151 Obsoletes: firefox-beta-devel < 18
152
153 %description devel
154 Files and macros mainly for building Firefox extensions.
155
156 %prep
157 %setup -qn mozilla-%update_channel
158 %patch1 -p1 -b .lang
159 %patch2 -p1 -b .vendor
160 #patch3 -p1 -b .systemproxy
161 %patch4 -p0 -b .nss
162 %patch5 -p1 -b .appname
163 # It was disabled because firefox3 hangs when using soundwrapper
164 #patch7 -p1
165 %patch8 -p1 -b .disable-software-update
166 %patch9 -p1 -b .ascii
167 %patch10 -p1 -b .default-mail-handler
168 %patch14 -p1
169 ## KDE INTEGRATION
170 %patch11 -p1 -b .kde
171 %patch12 -p1 -b .kdemoz
172
173 %ifarch %arm
174 %if "%{_target_cpu}" != "armv7l"
175 %patch34 -p1
176 %endif
177 %endif
178 %patch36 -p2 -b .system-virtualenv
179 %patch37 -p0
180
181 pushd js/src
182 autoconf-2.13
183 popd
184 autoconf-2.13
185
186 # needed to regenerate certdata.c
187 pushd security/nss/lib/ckfw/builtins
188 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
189 popd
190
191 %build
192 export MOZCONFIG=`pwd`/mozconfig
193 cat << EOF > $MOZCONFIG
194 mk_add_options MOZILLA_OFFICIAL=1
195 mk_add_options BUILD_OFFICIAL=1
196 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
197 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
198 ac_add_options --host=%{_host}
199 ac_add_options --target=%{_target_platform}
200 ac_add_options --enable-optimize="%{optflags}"
201 ac_add_options --prefix="%{_prefix}"
202 ac_add_options --libdir="%{_libdir}"
203 ac_add_options --sysconfdir="%{_sysconfdir}"
204 ac_add_options --mandir="%{_mandir}"
205 ac_add_options --includedir="%{_includedir}"
206 ac_add_options --datadir="%{_datadir}"
207 ac_add_options --with-system-nspr
208 ac_add_options --with-system-nss
209 ac_add_options --with-system-zlib
210 ac_add_options --with-system-libvpx
211 ac_add_options --enable-webm
212 ac_add_options --enable-gio
213 ac_add_options --disable-gnomevfs
214 ac_add_options --disable-updater
215 ac_add_options --disable-tests
216 ac_add_options --disable-debug
217 #ac_add_options --enable-chrome-format=jar
218 #ac_add_options --enable-update-channel=beta
219 ac_add_options --enable-official-branding
220 ac_add_options --enable-libproxy
221 ac_add_options --with-system-png
222 ac_add_options --with-system-jpeg
223 ac_add_options --enable-system-cairo
224 ac_add_options --enable-system-sqlite
225 ac_add_options --enable-startup-notification
226 ac_add_options --enable-xinerama
227 ac_add_options --with-distribution-id=org.mageia
228 ac_add_options --disable-crashreporter
229 ac_add_options --enable-update-channel=%{update_channel}
230 ac_add_options --enable-gstreamer
231 %ifarch %arm
232 %if "%{_target_cpu}" != "armv7l"
233 ac_add_options --disable-methodjit
234 ac_add_options --disable-tracejit
235 %endif
236 ac_add_options --enable-system-ffi
237 %endif
238 %ifnarch %arm %mips
239 ac_add_options --with-valgrind
240 ac_add_options --with-java-include-path=%{java_home}/include
241 ac_add_options --with-java-bin-path=%{java_home}/bin
242 ac_add_options --enable-opus
243 %endif
244
245 EOF
246
247 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
248
249 export LDFLAGS="%ldflags"
250 make -f client.mk build
251
252 %install
253 rm -rf %{buildroot}
254
255 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
256
257 # Copy files to buildroot
258 %{__mkdir_p} %{buildroot}%{mozillalibdir}
259 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
260
261 %{__mkdir_p} %{buildroot}%{_bindir}
262 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
263 pushd %{buildroot}%{_bindir}
264 ln -sf firefox mozilla-firefox
265 popd
266 mkdir -p %{buildroot}%{mozillalibdir}/defaults/preferences/
267 install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/defaults/preferences/kde.js
268
269 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
270 %{__mkdir_p} %{buildroot}%{pluginsdir}
271 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
272 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
273
274 # (tpg) desktop entry
275 %{__mkdir_p} %{buildroot}%{_datadir}/applications
276 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
277
278 # (tpg) icons
279 %{__cp} %{buildroot}%{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/icons/
280 for i in 16 22 24 32 48 256; do
281 # (cg) Not all icon sizes are installed with make install, so just redo it here.
282 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
283 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
284 ln -sf %{mozillalibdir}/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
285 done
286 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
287 ln -sf %{mozillalibdir}/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
288 ln -sf %{mozillalibdir}/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
289 ln -sf %{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
290
291 # exclusions
292 rm -f %{buildroot}%{mozillalibdir}/README.txt
293 rm -f %{buildroot}%{mozillalibdir}/removed-files
294 rm -f %{buildroot}%{mozillalibdir}/precomplete
295
296 # this file is only used when creating a new user profile
297 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
298 cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
299 user_pref("browser.EULA.override", true);
300 user_pref("browser.shell.checkDefaultBrowser", false);
301 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
302 user_pref("app.update.auto", false);
303 user_pref("app.update.enabled", false);
304 user_pref("app.update.autoInstallEnabled", false);
305 user_pref("browser.showQuitWarning", true);
306 EOF
307
308 # display icon for Firefox button
309 %{__mkdir_p} %{buildroot}%{mozillalibdir}/defaults/profile/chrome
310 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/profile/chrome/userChrome.css
311 #appmenu-toolbar-button {
312 list-style-image: url("chrome://branding/content/icon16.png");
313 }
314 EOF
315
316 # files in this directory are read on every startup, and can change/add
317 # preferences for existing profiles
318 # extensions.autoDisableScopes is a new preference added in firefox 8
319 # it defines "scopes" where newly installed addons are disabled by default
320 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
321 # we need to remove system scope (8) from it so language packs and other addons
322 # which are installed systemwide won't get marked as 3rd party and disabled
323 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
324 # or in toolkit/mozapps/extensions/AddonManager.jsm
325 # we also need to disable the "disable addon selection dialog"
326 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/pref/mga.js
327 pref("extensions.autoDisableScopes", 0);
328 pref("extensions.shownSelectionUI", true);
329 EOF
330 # FIXME: Add it back in mga.js when this search engine will be used by default.
331 # user_pref("browser.search.selectedEngine","duckduckgo.com");
332
333 # use the system myspell dictionaries
334 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
335 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
336
337 # (lm) touch and %ghost bookmarks.html to a proper uninstall
338 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
339
340 %find_lang %{name}
341
342 mkdir -p %{buildroot}%{_sys_macros_dir}
343 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
344 # Macros from %{name} package
345 %%firefox_major %{major}
346 %%firefox_epoch %{ff_epoch}
347 %%firefox_version %{major}
348 %%firefox_mozillapath %{mozillalibdir}
349 %%firefox_pluginsdir %{pluginsdir}
350 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
351 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
352 FIN
353 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/searchplugins/duckduckgo.xml
354
355 %pre
356 if [ -d %{mozillalibdir}/dictionaries ]; then
357 rm -fr %{mozillalibdir}/dictionaries
358 fi
359
360 %post
361 if [ ! -r /etc/sysconfig/oem ]; then
362 case `grep META_CLASS /etc/sysconfig/system` in
363 *powerpack) bookmark="mozilla-powerpack.html" ;;
364 *desktop) bookmark="mozilla-one.html";;
365 *) bookmark="mozilla-download.html";;
366 esac
367 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
368 fi
369
370 %files -f %{name}.lang
371 %{_bindir}/%{name}
372 %{_bindir}/mozilla-firefox
373 %{_iconsdir}/hicolor/*/apps/*.png
374 %{_miconsdir}/%{name}.png
375 %{_iconsdir}/%{name}.png
376 %{_liconsdir}/%{name}.png
377 %{_datadir}/applications/*.desktop
378 %{_libdir}/%{name}-%{major}*
379 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
380 %dir %{_libdir}/mozilla
381 %dir %{pluginsdir}
382 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
383 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
384 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
385
386 %files devel
387 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30