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

  ViewVC Help
Powered by ViewVC 1.1.30