/[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 319763 - (show annotations) (download)
Tue Nov 20 14:38:38 2012 UTC (11 years, 5 months ago) by dmorgan
File size: 14262 byte(s)
Add duckduckgo search engine support
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}
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 1
34
35 %define update_channel release
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.com/firefox/
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-10.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 BuildRequires: gtk+2-devel
74 BuildRequires: unzip
75 BuildRequires: zip
76 BuildRequires: libxinerama-devel
77 BuildRequires: libxscrnsaver-devel
78 BuildRequires: libjpeg-devel
79 BuildRequires: libpng-devel >= 2:1.4
80 BuildRequires: zlib-devel
81 BuildRequires: glib2-devel
82 BuildRequires: libIDL2-devel
83 BuildRequires: makedepend
84 BuildRequires: nss-devel >= 2:3.12.10
85 BuildRequires: nss-static-devel
86 BuildRequires: nspr-devel >= 2:4.8.9
87 BuildRequires: startup-notification-devel
88 BuildRequires: dbus-glib-devel
89 BuildRequires: python
90 BuildRequires: sqlite3-devel >= 3.7.7.1
91 %ifnarch %arm %mips
92 BuildRequires: valgrind
93 BuildRequires: java-rpmbuild
94 BuildRequires: yasm >= 1.0.1
95 %endif
96 %ifarch %arm
97 BuildRequires: libffi-devel
98 %endif
99 BuildRequires: rootcerts >= 1:20110830.00
100 BuildRequires: libxt-devel
101 %if %_use_syshunspell
102 BuildRequires: hunspell-devel
103 %endif
104 BuildRequires: doxygen
105 # BuildRequires: xulrunner-devel >= %xulrunner_version%{?prel:-0.%prel}
106 BuildRequires: pkgconfig(libproxy-1.0)
107 BuildRequires: pkgconfig(alsa)
108 BuildRequires: wget
109 BuildRequires: libnotify-devel
110 BuildRequires: cairo-devel >= 1.10
111 BuildRequires: mesagl-devel
112 BuildRequires: libvpx-devel
113 BuildRequires: autoconf2.1
114 BuildRequires: libiw-devel
115 BuildRequires: python-virtualenv
116 BuildRequires: gstreamer0.10-devel
117 BuildRequires: libgstreamer0.10-plugins-base-devel
118 BuildRequires: pkgconfig(opus)
119
120 %if 0%{?prel}
121 Provides: %{name} = %{epoch}:%{realver}-0.%{prel}
122 %else
123 Provides: %{name} = %{epoch}:%{realver}
124 %endif
125 Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
126 Provides: webclient
127
128 Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
129 Requires: %{mklibname nss 3} >= 2:%{nss_version}
130 Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
131 Requires: indexhtml
132 Requires: xdg-utils
133 # fixes bug #42096
134 Requires: mailcap
135 Suggests: hunspell-en
136 Suggests: %{_lib}canberra0
137 Suggests: %{_lib}cups2
138 Obsoletes: firefox-ext-weave-sync
139 Obsoletes: firefox-beta < 11
140
141 %description
142 The award-winning Web browser is now faster, more secure, and fully customizable
143 to your online life. With Firefox(R), we've added powerful new features that
144 make your online experience even better. It is an 'open source' product which is
145 freely available, and is acquiring a growing proportion of international web
146 browser usage.
147
148 Firefox claims to offer a more secure web browsing experience than other products,
149 with better protection against spyware and other Internet-based security threats.
150 It includes all the standard features of a modern web browser, like Internet
151 searching, tracking recently visited sites, setting up shortcuts to favourite
152 sites, customising the software behaviour and so on. Firefox also includes
153 features like 'tabbed browsing' (opening several web sites as sections within the
154 same window) and methods for controlling pop-up windows, cookies and downloaded
155 files.
156
157 %package devel
158 Summary: Development files for %{name}
159 Group: Development/Other
160 Obsoletes: firefox-beta-devel < 11
161
162 %description devel
163 Files and macros mainly for building Firefox extensions.
164
165 %prep
166 %setup -qn mozilla-%update_channel
167 %patch1 -p1 -b .lang
168 %patch2 -p1 -b .vendor
169 #patch3 -p1 -b .systemproxy
170 %patch4 -p0 -b .nss
171 %patch5 -p1 -b .appname
172 # It was disabled because firefox3 hangs when using soundwrapper
173 #patch7 -p1
174 %patch8 -p1 -b .disable-software-update
175 %patch9 -p1 -b .ascii
176 %patch10 -p1 -b .default-mail-handler
177 %patch14 -p1
178 %if 0
179 ## KDE INTEGRATION
180 %patch11 -p1 -b .kde
181 %patch12 -p1 -b .kdemoz
182 %endif
183
184 %ifarch %arm
185 %if "%{_target_cpu}" != "armv7l"
186 %patch34 -p1
187 %endif
188 %endif
189 %patch36 -p2 -b .system-virtualenv
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
341 # use the system myspell dictionaries
342 rm -fr %{buildroot}%{mozillalibdir}/dictionaries
343 ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
344
345 # (lm) touch and %ghost bookmarks.html to a proper uninstall
346 touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
347
348 %find_lang %{name}
349
350 mkdir -p %{buildroot}%{_sys_macros_dir}
351 cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
352 # Macros from %{name} package
353 %%firefox_major %{major}
354 %%firefox_epoch %{ff_epoch}
355 %%firefox_version %{major}%{?prel:-0.%prel}
356 %%firefox_mozillapath %{mozillalibdir}
357 %%firefox_pluginsdir %{pluginsdir}
358 %%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
359 %%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
360 FIN
361 cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/searchplugins/duckduckgo.xml
362
363 %pre
364 if [ -d %{mozillalibdir}/dictionaries ]; then
365 rm -fr %{mozillalibdir}/dictionaries
366 fi
367
368 %post
369 if [ ! -r /etc/sysconfig/oem ]; then
370 case `grep META_CLASS /etc/sysconfig/system` in
371 *powerpack) bookmark="mozilla-powerpack.html" ;;
372 *desktop) bookmark="mozilla-one.html";;
373 *) bookmark="mozilla-download.html";;
374 esac
375 ln -s -f ../../../../share/mga/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
376 fi
377
378 %files -f %{name}.lang
379 %{_bindir}/%{name}
380 %{_bindir}/mozilla-firefox
381 %{_iconsdir}/hicolor/*/apps/*.png
382 %{_miconsdir}/%{name}.png
383 %{_iconsdir}/%{name}.png
384 %{_liconsdir}/%{name}.png
385 %{_datadir}/applications/*.desktop
386 %{_libdir}/%{name}-%{major}*
387 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
388 %dir %{_libdir}/mozilla
389 %dir %{pluginsdir}
390 %dir %{_libdir}/mozilla/extensions/%{firefox_appid}
391 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
392 %ghost %{mozillalibdir}/defaults/profile/bookmarks.html
393
394 %files devel
395 %{_sys_macros_dir}/%{name}.macros

  ViewVC Help
Powered by ViewVC 1.1.30