]> git.pld-linux.org Git - packages/firefox.git/blame_incremental - mozilla-firefox.spec
- adjusted wrt. disabled GConf and libnotify no longer used
[packages/firefox.git] / mozilla-firefox.spec
... / ...
CommitLineData
1# NOTE: PLD distributes iceweasel instead
2#
3# TODO:
4# - (12:22:58) patrys: can you also move _libdir/mozilla-firefox to just _libdir/firefox?
5# (12:23:25) patrys: it's not like we ship official firefox
6# - fix wrapper script to allow playing with profiles (must not use -remote)
7#
8# Conditional build:
9%bcond_with tests # enable tests (whatever they check)
10%bcond_with gtk3 # GTK+ 3.x instead of 2.x
11%bcond_without kerberos # disable krb5 support
12%bcond_without xulrunner # system xulrunner
13
14%if %{without xulrunner}
15# The actual sqlite version (see RHBZ#480989):
16%define sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo ERROR)
17%endif
18
19%define nspr_ver 4.10.3
20%define nss_ver 3.16
21
22Summary: Firefox Community Edition web browser
23Summary(pl.UTF-8): Firefox Community Edition - przeglądarka WWW
24Name: mozilla-firefox
25Version: 29.0.1
26Release: 1
27License: MPL v2.0
28Group: X11/Applications/Networking
29Source0: http://releases.mozilla.org/pub/mozilla.org/firefox/releases/%{version}/source/firefox-%{version}.source.tar.bz2
30# Source0-md5: ca37addc3a69ef30247e00375dd93cd0
31Source3: %{name}.desktop
32Source4: %{name}.sh
33Source5: vendor.js
34Source6: vendor-ac.js
35Patch0: %{name}-branding.patch
36Patch7: %{name}-prefs.patch
37Patch9: %{name}-no-subshell.patch
38Patch11: %{name}-middle_click_paste.patch
39Patch12: %{name}-packaging.patch
40Patch13: %{name}-system-virtualenv.patch
41Patch15: %{name}-Disable-Firefox-Health-Report.patch
42URL: http://www.mozilla.org/projects/firefox/
43BuildRequires: OpenGL-devel
44BuildRequires: alsa-lib-devel
45BuildRequires: automake
46BuildRequires: bzip2-devel
47BuildRequires: cairo-devel >= 1.10.2-5
48BuildRequires: dbus-glib-devel >= 0.60
49BuildRequires: gcc-c++ >= 6:4.4
50BuildRequires: glib2-devel >= 1:2.20
51%{!?with_gtk3:BuildRequires: gtk+2-devel >= 2:2.14}
52%{?with_gtk3:BuildRequires: gtk+3-devel >= 3.0.0}
53%{?with_kerberos:BuildRequires: heimdal-devel >= 0.7.1}
54BuildRequires: hunspell-devel
55BuildRequires: libIDL-devel >= 0.8.0
56BuildRequires: libdnet-devel
57BuildRequires: libevent-devel >= 1.4.7
58# standalone libffi 3.0.9 or gcc's from 4.5(?)+
59BuildRequires: libffi-devel >= 6:3.0.9
60BuildRequires: libicu-devel >= 50.1
61# requires libjpeg-turbo implementing at least libjpeg 6b API
62BuildRequires: libjpeg-devel >= 6b
63BuildRequires: libjpeg-turbo-devel
64BuildRequires: libpng(APNG)-devel >= 0.10
65BuildRequires: libpng-devel >= 2:1.6.7
66BuildRequires: libstdc++-devel >= 6:4.4
67BuildRequires: libvpx-devel >= 1.3.0
68BuildRequires: nspr-devel >= 1:%{nspr_ver}
69BuildRequires: nss-devel >= 1:%{nss_ver}
70BuildRequires: pango-devel >= 1:1.14.0
71BuildRequires: pixman-devel >= 0.19.2
72BuildRequires: perl-modules >= 5.004
73BuildRequires: pkgconfig
74BuildRequires: pkgconfig(libffi) >= 3.0.9
75BuildRequires: python-modules
76BuildRequires: python-virtualenv
77BuildRequires: rpm >= 4.4.9-56
78BuildRequires: rpmbuild(macros) >= 1.601
79BuildRequires: sqlite3-devel >= 3.8.2
80BuildRequires: startup-notification-devel >= 0.8
81BuildRequires: xorg-lib-libXScrnSaver-devel
82BuildRequires: xorg-lib-libXext-devel
83BuildRequires: xorg-lib-libXinerama-devel
84BuildRequires: xorg-lib-libXt-devel
85%if %{with xulrunner}
86BuildRequires: xulrunner-devel >= 2:%{version}
87%endif
88BuildRequires: zip
89BuildRequires: zlib-devel >= 1.2.3
90Requires(post): mktemp >= 1.5-18
91Requires: desktop-file-utils
92Requires: hicolor-icon-theme
93%if %{with xulrunner}
94%requires_eq_to xulrunner xulrunner-devel
95%else
96Requires: browser-plugins >= 2.0
97Requires: cairo >= 1.10.2-5
98Requires: dbus-glib >= 0.60
99Requires: glib2 >= 1:2.20
100%{!?with_gtk3:Requires: gtk+2 >= 2:2.14}
101%{?with_gtk3:Requires: gtk+3 >= 3.0.0}
102Requires: libjpeg-turbo
103Requires: libpng >= 2:1.6.7
104Requires: libpng(APNG) >= 0.10
105Requires: libvpx >= 1.3.0
106Requires: myspell-common
107Requires: nspr >= 1:%{nspr_ver}
108Requires: nss >= 1:%{nss_ver}
109Requires: pango >= 1:1.14.0
110Requires: sqlite3 >= %{sqlite_build_version}
111Requires: startup-notification >= 0.8
112%endif
113Provides: wwwbrowser
114Obsoletes: mozilla-firebird
115Obsoletes: mozilla-firefox-lang-en < 2.0.0.8-3
116Obsoletes: mozilla-firefox-libs
117Conflicts: mozilla-firefox-lang-resources < %{version}
118BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
119
120%define filterout_cpp -D_FORTIFY_SOURCE=[0-9]+
121
122# don't satisfy other packages (don't use %{name} here)
123%define _noautoprovfiles %{_libdir}/mozilla-firefox
124%if %{without xulrunner}
125# and as we don't provide them, don't require either
126%define _noautoreq libmozalloc.so libmozjs.so libxpcom.so libxul.so
127%endif
128
129%description
130Firefox Community Edition is an open-source web browser, designed for
131standards compliance, performance and portability.
132
133%description -l pl.UTF-8
134Firefox Community Edition jest przeglądarką WWW rozpowszechnianą
135zgodnie z ideami ruchu otwartego oprogramowania oraz tworzoną z myślą
136o zgodności ze standardami, wydajnością i przenośnością.
137
138%prep
139%setup -qc
140mv -f mozilla-release mozilla
141cd mozilla
142
143%patch0 -p1
144%patch7 -p1
145%patch9 -p2
146%patch11 -p2
147%patch12 -p2
148%patch13 -p2
149%patch15 -p1
150
151%build
152cd mozilla
153cp -f %{_datadir}/automake/config.* build/autoconf
154
155cat << EOF > .mozconfig
156. \$topsrcdir/browser/config/mozconfig
157
158mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-%{_target_cpu}
159# parallel build fails on _xpidlgen/
160%if %{without xulrunner}
161mk_add_options MOZ_MAKE_FLAGS=%{_smp_mflags}
162%endif
163mk_add_options PROFILE_GEN_SCRIPT='@PYTHON@ @MOZ_OBJDIR@/_profile/pgo/profileserver.py'
164
165# Options for 'configure' (same as command-line options).
166ac_add_options --build=%{_target_platform}
167ac_add_options --host=%{_target_platform}
168ac_add_options --prefix=%{_prefix}
169ac_add_options --exec-prefix=%{_exec_prefix}
170ac_add_options --bindir=%{_bindir}
171ac_add_options --sbindir=%{_sbindir}
172ac_add_options --sysconfdir=%{_sysconfdir}
173ac_add_options --datadir=%{_datadir}
174ac_add_options --includedir=%{_includedir}
175ac_add_options --libdir=%{_libdir}
176ac_add_options --libexecdir=%{_libexecdir}
177ac_add_options --localstatedir=%{_localstatedir}
178ac_add_options --sharedstatedir=%{_sharedstatedir}
179ac_add_options --mandir=%{_mandir}
180ac_add_options --infodir=%{_infodir}
181%if %{?debug:1}0
182ac_add_options --disable-optimize
183ac_add_options --enable-debug
184ac_add_options --enable-debug-modules
185ac_add_options --enable-debugger-info-modules
186ac_add_options --enable-crash-on-assert
187%else
188ac_add_options --disable-debug
189ac_add_options --disable-debug-modules
190ac_add_options --disable-logging
191ac_add_options --enable-optimize="%{rpmcflags} -Os"
192%endif
193ac_add_options --disable-strip
194ac_add_options --disable-strip-libs
195ac_add_options --disable-install-strip
196%if %{with tests}
197ac_add_options --enable-tests
198ac_add_options --enable-mochitest
199%else
200ac_add_options --disable-tests
201ac_add_options --disable-mochitest
202%endif
203ac_add_options --disable-cpp-exceptions
204ac_add_options --disable-crashreporter
205ac_add_options --disable-elf-dynstr-gc
206ac_add_options --disable-gconf
207ac_add_options --disable-gnomeui
208ac_add_options --disable-gnomevfs
209ac_add_options --disable-installer
210ac_add_options --disable-javaxpcom
211ac_add_options --disable-long-long-warning
212ac_add_options --disable-necko-wifi
213ac_add_options --disable-pedantic
214ac_add_options --disable-updater
215ac_add_options --disable-xterm-updates
216ac_add_options --enable-canvas
217ac_add_options --enable-chrome-format=omni
218ac_add_options --enable-default-toolkit=%{?with_gtk3:cairo-gtk3}%{!?with_gtk3:cairo-gtk2}
219ac_add_options --enable-extensions="default,gio"
220ac_add_options --enable-gio
221ac_add_options --enable-libxul
222ac_add_options --enable-mathml
223ac_add_options --enable-pango
224ac_add_options --enable-readline
225ac_add_options --enable-safe-browsing
226ac_add_options --enable-shared-js
227ac_add_options --enable-startup-notification
228ac_add_options --enable-svg
229ac_add_options --enable-system-cairo
230ac_add_options --enable-system-ffi
231ac_add_options --enable-system-hunspell
232ac_add_options --enable-system-sqlite
233ac_add_options --enable-url-classifier
234ac_add_options --enable-xinerama
235ac_add_options --with-default-mozilla-five-home=%{_libdir}/%{name}
236ac_add_options --with-distribution-id=org.pld-linux
237%if %{with xulrunner}
238ac_add_options --with-libxul-sdk=$(pkg-config --variable=sdkdir libxul)
239%endif
240ac_add_options --with-pthreads
241ac_add_options --with-system-bz2
242ac_add_options --with-system-jpeg
243ac_add_options --with-system-libevent
244ac_add_options --with-system-libvpx
245ac_add_options --with-system-nspr
246ac_add_options --with-system-nss
247ac_add_options --with-system-ply
248ac_add_options --with-system-png
249ac_add_options --with-system-zlib
250ac_add_options --with-system-icu
251ac_add_options --with-x
252EOF
253
254%{__make} -f client.mk build \
255 STRIP="/bin/true" \
256 CC="%{__cc}" \
257 CXX="%{__cxx}"
258
259%install
260rm -rf $RPM_BUILD_ROOT
261cd mozilla
262install -d \
263 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}} \
264 $RPM_BUILD_ROOT%{_desktopdir} \
265 $RPM_BUILD_ROOT%{_datadir}/%{name}/browser \
266 $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/plugins
267
268%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/browser/plugins
269
270%{__make} -C obj-%{_target_cpu}/browser/installer stage-package \
271 DESTDIR=$RPM_BUILD_ROOT \
272 installdir=%{_libdir}/%{name} \
273 PKG_SKIP_STRIP=1
274
275cp -a obj-%{_target_cpu}/dist/firefox/* $RPM_BUILD_ROOT%{_libdir}/%{name}/
276
277%if %{with xulrunner}
278# >= 5.0 seems to require this
279ln -s ../xulrunner $RPM_BUILD_ROOT%{_libdir}/%{name}/xulrunner
280%endif
281
282# move arch independant ones to datadir
283mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/chrome $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/chrome
284mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/extensions $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/extensions
285mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/icons $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/icons
286mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/searchplugins $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/searchplugins
287%if %{without xulrunner}
288mv $RPM_BUILD_ROOT%{_libdir}/%{name}/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults
289mv $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/{pref,preferences}
290%else
291mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults
292%endif
293
294ln -s ../../../share/%{name}/browser/chrome $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/chrome
295ln -s ../../../share/%{name}/browser/defaults $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/defaults
296ln -s ../../../share/%{name}/browser/extensions $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/extensions
297ln -s ../../../share/%{name}/browser/icons $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/icons
298ln -s ../../../share/%{name}/browser/searchplugins $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/searchplugins
299
300%if %{without xulrunner}
301%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
302ln -s %{_datadir}/myspell $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
303%endif
304
305sed 's,@LIBDIR@,%{_libdir},' %{SOURCE4} > $RPM_BUILD_ROOT%{_bindir}/mozilla-firefox
306chmod 755 $RPM_BUILD_ROOT%{_bindir}/mozilla-firefox
307ln -s mozilla-firefox $RPM_BUILD_ROOT%{_bindir}/firefox
308
309# install icons and desktop file
310for i in 48 64; do
311 install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps
312 cp -a browser/branding/unofficial/content/icon${i}.png \
313 $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps/mozilla-firefox.png
314done
315
316cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
317
318# install our settings
319%if "%{pld_release}" == "ac"
320cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/preferences/vendor.js
321%else
322cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/preferences/vendor.js
323%endif
324
325# files created by firefox -register
326touch $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/components/compreg.dat
327touch $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/components/xpti.dat
328
329cat << 'EOF' > $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate
330#!/bin/sh
331umask 022
332rm -f %{_libdir}/%{name}/browser/components/{compreg,xpti}.dat
333
334# it attempts to touch files in $HOME/.mozilla
335# beware if you run this with sudo!!!
336export HOME=$(mktemp -d)
337# also TMPDIR could be pointing to sudo user's homedir
338unset TMPDIR TMP || :
339
340%{_libdir}/%{name}/firefox -register
341
342rm -rf $HOME
343EOF
344chmod 755 $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate
345
346%clean
347rm -rf $RPM_BUILD_ROOT
348
349%pretrans
350if [ -d %{_libdir}/%{name}/browser/extensions ] && [ ! -L %{_libdir}/%{name}/browser/extensions ]; then
351 install -d %{_datadir}/%{name}/browser
352 if [ -e %{_datadir}/%{name}/browser/extensions ]; then
353 mv %{_datadir}/%{name}/browser/extensions{,.rpmsave}
354 fi
355 mv -v %{_libdir}/%{name}/browser/extensions %{_datadir}/%{name}/browser/extensions
356fi
357if [ -d %{_libdir}/%{name}/dictionaries ] && [ ! -L %{_libdir}/%{name}/dictionaries ]; then
358 mv -v %{_libdir}/%{name}/dictionaries{,.rpmsave}
359fi
360exit 0
361
362%post
363%{_sbindir}/%{name}-chrome+xpcom-generate
364%update_browser_plugins
365%update_icon_cache hicolor
366%update_desktop_database
367
368%postun
369if [ "$1" = 0 ]; then
370 %update_browser_plugins
371 %update_icon_cache hicolor
372fi
373
374%files
375%defattr(644,root,root,755)
376%attr(755,root,root) %{_bindir}/%{name}
377%attr(755,root,root) %{_bindir}/firefox
378%attr(755,root,root) %{_sbindir}/%{name}-chrome+xpcom-generate
379
380%{_desktopdir}/mozilla-firefox.desktop
381%{_iconsdir}/hicolor/*/apps/mozilla-firefox.png
382
383# browser plugins v2
384%{_browserpluginsconfdir}/browsers.d/%{name}.*
385%config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist
386
387%dir %{_libdir}/%{name}
388%dir %{_libdir}/%{name}/browser
389%dir %{_libdir}/%{name}/browser/components
390%dir %{_libdir}/%{name}/browser/plugins
391
392%dir %{_datadir}/%{name}
393%dir %{_datadir}/%{name}/browser
394%dir %{_datadir}/%{name}/browser/extensions
395%{_datadir}/%{name}/browser/chrome
396%{_datadir}/%{name}/browser/defaults
397%{_datadir}/%{name}/browser/icons
398%{_datadir}/%{name}/browser/searchplugins
399
400# symlinks
401%{_libdir}/%{name}/browser/extensions
402%{_libdir}/%{name}/browser/chrome
403%{_libdir}/%{name}/browser/icons
404%{_libdir}/%{name}/browser/searchplugins
405%if %{with xulrunner}
406%{_libdir}/%{name}/xulrunner
407%endif
408%{_libdir}/%{name}/browser/defaults
409
410%attr(755,root,root) %{_libdir}/%{name}/firefox
411%attr(755,root,root) %{_libdir}/%{name}/firefox-bin
412%attr(755,root,root) %{_libdir}/%{name}/run-mozilla.sh
413%{_libdir}/%{name}/application.ini
414%{_libdir}/%{name}/browser/blocklist.xml
415%{_libdir}/%{name}/browser/chrome.manifest
416%{_libdir}/%{name}/browser/components/components.manifest
417%attr(755,root,root) %{_libdir}/%{name}/browser/components/libbrowsercomps.so
418# the signature of the default theme
419%{_datadir}/%{name}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
420%{_libdir}/%{name}/browser/omni.ja
421%{_libdir}/%{name}/webapprt
422%attr(755,root,root) %{_libdir}/%{name}/webapprt-stub
423
424# files created by firefox -register
425%ghost %{_libdir}/%{name}/browser/components/compreg.dat
426%ghost %{_libdir}/%{name}/browser/components/xpti.dat
427
428%if %{without xulrunner}
429# private xulrunner instance
430%{_libdir}/%{name}/dependentlibs.list
431%{_libdir}/%{name}/platform.ini
432%dir %{_libdir}/%{name}/components
433%{_libdir}/%{name}/components/components.manifest
434%attr(755,root,root) %{_libdir}/%{name}/components/libdbusservice.so
435%attr(755,root,root) %{_libdir}/%{name}/components/libmozgnome.so
436%attr(755,root,root) %{_libdir}/%{name}/libmozalloc.so
437%attr(755,root,root) %{_libdir}/%{name}/libmozjs.so
438%attr(755,root,root) %{_libdir}/%{name}/libxul.so
439%attr(755,root,root) %{_libdir}/%{name}/mozilla-xremote-client
440%attr(755,root,root) %{_libdir}/%{name}/plugin-container
441%{_libdir}/%{name}/dictionaries
442%{_libdir}/%{name}/chrome.manifest
443%{_libdir}/%{name}/omni.ja
444%endif
This page took 0.251642 seconds and 4 git commands to generate.