/[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 321124 - (show annotations) (download)
Thu Nov 22 23:05:51 2012 UTC (11 years, 4 months ago) by dmorgan
File size: 14464 byte(s)
Enable KDE Integration ( From OpenSuse)
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 3
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 ## KDE INTEGRATION
180 %patch11 -p1 -b .kde
181 %patch12 -p1 -b .kdemoz
182
183 %ifarch %arm
184 %if "%{_target_cpu}" != "armv7l"
185 %patch34 -p1
186 %endif
187 %endif
188 %patch36 -p2 -b .system-virtualenv
189 %patch37 -p0
190
191 pushd js/src
192 autoconf-2.13
193 popd
194 autoconf-2.13
195
196 # needed to regenerate certdata.c
197 pushd security/nss/lib/ckfw/builtins
198 perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
199 popd
200
201 %build
202 export MOZCONFIG=`pwd`/mozconfig
203 cat << EOF > $MOZCONFIG
204 mk_add_options MOZILLA_OFFICIAL=1
205 mk_add_options BUILD_OFFICIAL=1
206 mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
207 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
208 ac_add_options --host=%{_host}
209 ac_add_options --target=%{_target_platform}
210 ac_add_options --enable-optimize="%{optflags}"
211 ac_add_options --prefix="%{_prefix}"
212 ac_add_options --libdir="%{_libdir}"
213 ac_add_options --sysconfdir="%{_sysconfdir}"
214 ac_add_options --mandir="%{_mandir}"
215 ac_add_options --includedir="%{_includedir}"
216 ac_add_options --datadir="%{_datadir}"
217 ac_add_options --with-system-nspr
218 ac_add_options --with-system-nss
219 ac_add_options --with-system-zlib
220 ac_add_options --with-system-libvpx
221 ac_add_options --enable-webm
222 ac_add_options --enable-gio
223 ac_add_options --disable-gnomevfs
224 ac_add_options --disable-updater
225 ac_add_options --disable-tests
226 ac_add_options --disable-debug
227 #ac_add_options --enable-chrome-format=jar
228 #ac_add_options --enable-update-channel=beta
229 ac_add_options --enable-official-branding
230 ac_add_options --enable-libproxy
231 ac_add_options --with-system-png
232 ac_add_options --with-system-jpeg
233 ac_add_options --enable-system-cairo
234 ac_add_options --enable-system-sqlite
235 ac_add_options --enable-startup-notification
236 ac_add_options --enable-xinerama
237 ac_add_options --with-distribution-id=org.mageia
238 ac_add_options --disable-crashreporter
239 ac_add_options --enable-update-channel=%{update_channel}
240 ac_add_options --enable-gstreamer
241 %ifarch %arm
242 %if "%{_target_cpu}" != "armv7l"
243 ac_add_options --disable-methodjit
244 ac_add_options --disable-tracejit
245 %endif
246 ac_add_options --enable-system-ffi
247 %endif
248 %ifnarch %arm %mips
249 ac_add_options --with-valgrind
250 ac_add_options --with-java-include-path=%{java_home}/include
251 ac_add_options --with-java-bin-path=%{java_home}/bin
252 ac_add_options --enable-opus
253 %endif
254
255 EOF
256
257 %__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
258
259 export LDFLAGS="%ldflags"
260 make -f client.mk build
261
262 %install
263 rm -rf %{buildroot}
264
265 make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
266
267 # Copy files to buildroot
268 %{__mkdir_p} %{buildroot}%{mozillalibdir}
269 cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
270
271 %{__mkdir_p} %{buildroot}%{_bindir}
272 ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
273 pushd %{buildroot}%{_bindir}
274 ln -sf firefox mozilla-firefox
275 popd
276 mkdir -p %{buildroot}%{mozillalibdir}/defaults/preferences/
277 install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/defaults/preferences/kde.js
278
279 # Create and own %_libdir/mozilla/plugins & firefox extensions directories
280 %{__mkdir_p} %{buildroot}%{pluginsdir}
281 %{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
282 %{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
283
284 # (tpg) desktop entry
285 %{__mkdir_p} %{buildroot}%{_datadir}/applications
286 install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
287
288 # (tpg) icons
289 %{__cp} %{buildroot}%{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/icons/
290 for i in 16 22 24 32 48 256; do
291 # (cg) Not all icon sizes are installed with make install, so just redo it here.
292 %{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/chrome/icons/default/default$i.png
293 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
294 ln -sf %{mozillalibdir}/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
295 done
296 %{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
297 ln -sf %{mozillalibdir}/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
298 ln -sf %{mozillalibdir}/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
299 ln -sf %{mozillalibdir}/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
300
301 # exclusions
302 rm -f %{buildroot}%{mozillalibdir}/README.txt
303 rm -f %{buildroot}%{mozillalibdir}/removed-files
304 rm -f %{buildroot}%{mozillalibdir}/precomplete
305
306 # this file is only used when creating a new user profile
307 install -D -m644 browser/app/profile/prefs.js %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
308 cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/profile/prefs.js
309 user_pref("browser.EULA.override", true);
310 user_pref("browser.shell.checkDefaultBrowser", false);
311 user_pref("browser.startup.homepage", "file:///usr/share/indexhtml/index.html");
312 user_pref("app.update.auto", false);
313 user_pref("app.update.enabled", false);
314 user_pref("app.update.autoInstallEnabled", false);
315 user_pref("browser.showQuitWarning", true);
316 EOF
317
318 # display icon for Firefox button
319 %{__mkdir_p} %{buildroot}%{mozillalibdir}/defaults/profile/chrome
320 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/profile/chrome/userChrome.css
321 #appmenu-toolbar-button {
322 list-style-image: url("chrome://branding/content/icon16.png");
323 }
324 EOF
325
326 # files in this directory are read on every startup, and can change/add
327 # preferences for existing profiles
328 # extensions.autoDisableScopes is a new preference added in firefox 8
329 # it defines "scopes" where newly installed addons are disabled by default
330 # this is an additive bit field, and the value defaults to 15 (1+2+4+8)
331 # we need to remove system scope (8) from it so language packs and other addons
332 # which are installed systemwide won't get marked as 3rd party and disabled
333 # documentation: http://kb.mozillazine.org/About:config_entries#Extensions.
334 # or in toolkit/mozapps/extensions/AddonManager.jsm
335 # we also need to disable the "disable addon selection dialog"
336 cat << EOF > %{buildroot}%{mozillalibdir}/defaults/pref/mga.js
337 pref("extensions.autoDisableScopes", 0);
338 pref("extensions.shownSelectionUI", true);
339 EOF
340 # FIXME: Add it back in mga.js when this search engine will be used by default.
341 # user_pref("browser.search.selectedEngine","duckduckgo.com");
342
343 # use the system myspell dictionaries
344 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
345 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
346
347 # (lm) touch and %ghost bookmarks.html to a proper uninstall
348 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
349
350 %find_lang %{name}
351
352 mkdir -p %{buildroot}%{_sys_macros_dir}
353 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
354 # Macros from %{name} package
355 %%firefox_major %{major}
356 %%firefox_epoch %{ff_epoch}
357 %%firefox_version %{major}%{?prel:-0.%prel}
358 %%firefox_mozillapath %{mozillalibdir}
359 %%firefox_pluginsdir %{pluginsdir}
360 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
361 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
362 FIN
363 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/searchplugins/duckduckgo.xml
364
365 %pre
366 if [ -d %{mozillalibdir}/dictionaries ]; then
367 rm -fr %{mozillalibdir}/dictionaries
368 fi
369
370 %post
371 if [ ! -r /etc/sysconfig/oem ]; then
372 case `grep META_CLASS /etc/sysconfig/system` in
373 *powerpack) bookmark="mozilla-powerpack.html" ;;
374 *desktop) bookmark="mozilla-one.html";;
375 *) bookmark="mozilla-download.html";;
376 esac
377 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
378 fi
379
380 %files -f %{name}.lang
381 %{_bindir}/%{name}
382 %{_bindir}/mozilla-firefox
383 %{_iconsdir}/hicolor/*/apps/*.png
384 %{_miconsdir}/%{name}.png
385 %{_iconsdir}/%{name}.png
386 %{_liconsdir}/%{name}.png
387 %{_datadir}/applications/*.desktop
388 %{_libdir}/%{name}-%{major}*
389 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
390 %dir %{_libdir}/mozilla
391 %dir %{pluginsdir}
392 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
393 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
394 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
395
396 %files devel
397 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30