/[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 263346 - (show annotations) (download)
Sun Jun 24 23:17:20 2012 UTC (11 years, 9 months ago) by dmorgan
File size: 13599 byte(s)
SILENT: The comment is not valid on mageia as we do not store tarballs in the svn
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 13.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 1
32
33 %define 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 BuildRequires: gtk+2-devel
69 BuildRequires: unzip
70 BuildRequires: zip
71 BuildRequires: libxinerama-devel
72 BuildRequires: libxscrnsaver-devel
73 BuildRequires: libjpeg-devel
74 BuildRequires: libpng-devel >= 2:1.4
75 BuildRequires: zlib-devel
76 BuildRequires: glib2-devel
77 BuildRequires: libIDL2-devel
78 BuildRequires: makedepend
79 BuildRequires: nss-devel >= 2:3.12.10
80 BuildRequires: nss-static-devel
81 BuildRequires: nspr-devel >= 2:4.8.9
82 BuildRequires: startup-notification-devel
83 BuildRequires: dbus-glib-devel
84 BuildRequires: python
85 BuildRequires: sqlite3-devel >= 3.7.7.1
86 %ifnarch %arm %mips
87 BuildRequires: valgrind
88 BuildRequires: java-rpmbuild
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: xulrunner-devel >= %xulrunner_version%{?prel:-0.%prel}
101 BuildRequires: pkgconfig(libproxy-1.0)
102 BuildRequires: pkgconfig(alsa)
103 BuildRequires: wget
104 BuildRequires: libnotify-devel
105 BuildRequires: cairo-devel >= 1.10
106 BuildRequires: mesagl-devel
107 BuildRequires: libvpx-devel
108 BuildRequires: autoconf2.1
109 BuildRequires: libiw-devel
110
111 %if 0%{?prel}
112 Provides: %{name} = %{epoch}:%{realver}-0.%{prel}
113 %else
114 Provides: %{name} = %{epoch}:%{realver}
115 %endif
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 < 11
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 < 11
152
153 %description devel
154 Files and macros mainly for building Firefox extensions.
155
156 %prep
157 %setup -qn mozilla-%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 %patch10 -p1 -b .default-mail-handler
167 %patch13 -p0
168 %patch14 -p1
169
170 ## KDE INTEGRATION
171 # Disable kde integration , need refactoring
172 #patch11 -p1 -b .kde
173 #patch12 -p1 -b .kdemoz
174 # install kde.js
175 install -m 644 %{SOURCE9} browser/app/profile/kde.js
176
177 %ifarch %arm
178 %if "%{_target_cpu}" != "armv7l"
179 %patch34 -p1
180 %endif
181 %endif
182 %patch35 -p1
183 pushd js/src
184 autoconf-2.13
185 popd
186 autoconf-2.13
187
188 # needed to regenerate certdata.c
189 pushd security/nss/lib/ckfw/builtins
190 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
191 popd
192
193 %build
194 export MOZCONFIG=`pwd`/mozconfig
195 cat << EOF > $MOZCONFIG
196 mk_add_options MOZILLA_OFFICIAL=1
197 mk_add_options BUILD_OFFICIAL=1
198 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
199 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
200 ac_add_options --host=%{_host}
201 ac_add_options --target=%{_target_platform}
202 ac_add_options --enable-optimize="%{optflags}"
203 ac_add_options --prefix="%{_prefix}"
204 ac_add_options --libdir="%{_libdir}"
205 ac_add_options --sysconfdir="%{_sysconfdir}"
206 ac_add_options --mandir="%{_mandir}"
207 ac_add_options --includedir="%{_includedir}"
208 ac_add_options --datadir="%{_datadir}"
209 ac_add_options --with-system-nspr
210 ac_add_options --with-system-nss
211 ac_add_options --with-system-zlib
212 ac_add_options --with-system-libvpx
213 ac_add_options --enable-webm
214 ac_add_options --enable-gio
215 ac_add_options --disable-gnomevfs
216 ac_add_options --disable-installer
217 ac_add_options --disable-updater
218 ac_add_options --disable-tests
219 ac_add_options --disable-debug
220 #ac_add_options --enable-chrome-format=jar
221 #ac_add_options --enable-update-channel=beta
222 ac_add_options --enable-official-branding
223 ac_add_options --enable-libproxy
224 ac_add_options --with-system-png
225 ac_add_options --with-system-jpeg
226 ac_add_options --enable-system-cairo
227 ac_add_options --enable-system-sqlite
228 ac_add_options --enable-startup-notification
229 ac_add_options --enable-xinerama
230 ac_add_options --with-distribution-id=org.mageia
231 ac_add_options --disable-crashreporter
232 %ifarch %arm
233 %if "%{_target_cpu}" != "armv7l"
234 ac_add_options --disable-methodjit
235 ac_add_options --disable-tracejit
236 %endif
237 ac_add_options --enable-system-ffi
238 %endif
239 %ifnarch %arm %mips
240 ac_add_options --with-valgrind
241 ac_add_options --with-java-include-path=%{java_home}/include
242 ac_add_options --with-java-bin-path=%{java_home}/bin
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
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
267 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
268 %{__mkdir_p} %{buildroot}%{pluginsdir}
269 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
270 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
271
272 # (tpg) desktop entry
273 %{__mkdir_p} %{buildroot}%{_datadir}/applications
274 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
275
276 # (tpg) icons
277 %{__cp} %{buildroot}%{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/icons/
278 for i in 16 22 24 32 48 256; do
279 # (cg) Not all icon sizes are installed with make install, so just redo it here.
280 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
281 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
282 ln -sf %{mozillalibdir}/chrome/icons/default/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}/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
286 ln -sf %{mozillalibdir}/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
287 ln -sf %{mozillalibdir}/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/pref/mga.js
325 pref("extensions.autoDisableScopes", 0);
326 pref("extensions.shownSelectionUI", true);
327 EOF
328
329 # use the system myspell dictionaries
330 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
331 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
332
333 # (lm) touch and %ghost bookmarks.html to a proper uninstall
334 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
335
336 %find_lang %{name}
337
338 mkdir -p %{buildroot}%{_sys_macros_dir}
339 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
340 # Macros from %{name} package
341 %%firefox_major %{major}
342 %%firefox_epoch %{ff_epoch}
343 %%firefox_version %{major}%{?prel:-0.%prel}
344 %%firefox_mozillapath %{mozillalibdir}
345 %%firefox_pluginsdir %{pluginsdir}
346 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
347 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
348 FIN
349
350 %pre
351 if [ -d %{mozillalibdir}/dictionaries ]; then
352 rm -fr %{mozillalibdir}/dictionaries
353 fi
354
355 %post
356 if [ ! -r /etc/sysconfig/oem ]; then
357 case `grep META_CLASS /etc/sysconfig/system` in
358 *powerpack) bookmark="mozilla-powerpack.html" ;;
359 *desktop) bookmark="mozilla-one.html";;
360 *) bookmark="mozilla-download.html";;
361 esac
362 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
363 fi
364
365 %files -f %{name}.lang
366 %{_bindir}/%{name}
367 %{_bindir}/mozilla-firefox
368 %{_iconsdir}/hicolor/*/apps/*.png
369 %{_miconsdir}/%{name}.png
370 %{_iconsdir}/%{name}.png
371 %{_liconsdir}/%{name}.png
372 %{_datadir}/applications/*.desktop
373 %{_libdir}/%{name}-%{major}*
374 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
375 %dir %{_libdir}/mozilla
376 %dir %{pluginsdir}
377 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
378 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
379
380 %files devel
381 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30