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

  ViewVC Help
Powered by ViewVC 1.1.30