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

  ViewVC Help
Powered by ViewVC 1.1.30