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

  ViewVC Help
Powered by ViewVC 1.1.30