#
# Conditional build:
%bcond_with tests # enable tests (whatever they check)
-%bcond_with gtk3 # GTK+ 3.x instead of 2.x
+%bcond_without gtk3 # GTK+ 3.x instead of 2.x
%bcond_without kerberos # disable krb5 support
-%bcond_with pgo # PGO-enabled build (requires working $DISPLAY == :100)
+%bcond_without official # official Firefox branding
+%bcond_without pgo # PGO-enabled build (requires working $DISPLAY == :100)
# - disabled shared_js - https://bugzilla.mozilla.org/show_bug.cgi?id=1039964
%bcond_with shared_js # shared libmozjs library [broken]
+%bcond_with system_icu # build with system ICU (disabled due to crashes with system icu 58.2)
# On updating version, grab CVE links from:
# https://www.mozilla.org/security/known-vulnerabilities/firefox.html
# The actual sqlite version (see RHBZ#480989):
%define sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo ERROR)
-%define nspr_ver 4.10.8
-%define nss_ver 3.19.2
+%define nspr_ver 4.13.1
+%define nss_ver 3.28.1
Summary: Firefox web browser
Summary(hu.UTF-8): Firefox web böngésző
Summary(pl.UTF-8): Firefox - przeglądarka WWW
Name: firefox
-Version: 45.0
-Release: 0.1
+Version: 53.0
+Release: 1
License: MPL v2.0
Group: X11/Applications/Networking
Source0: http://releases.mozilla.org/pub/mozilla.org/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz
-# Source0-md5: 09cbada824841f9e1d77f095e7cd02c1
+# Source0-md5: 73175f850d4ff6068c6af674df20477c
Source3: %{name}.desktop
Source4: %{name}.sh
Source5: vendor.js
Source6: vendor-ac.js
-Patch1: idl-parser.patch
-Patch2: xulrunner-new-libxul.patch
-Patch3: xulrunner-paths.patch
-Patch4: xulrunner-pc.patch
-Patch5: install-pc-files.patch
-Patch6: %{name}-prefs.patch
-Patch7: %{name}-pld-bookmarks.patch
-Patch8: %{name}-no-subshell.patch
-Patch9: %{name}-middle_click_paste.patch
-Patch11: %{name}-system-virtualenv.patch
-Patch12: %{name}-Disable-Firefox-Health-Report.patch
-Patch14: freetype.patch
+Patch0: idl-parser.patch
+Patch1: xulrunner-new-libxul.patch
+Patch2: xulrunner-paths.patch
+Patch3: xulrunner-pc.patch
+Patch4: %{name}-prefs.patch
+Patch5: %{name}-pld-bookmarks.patch
+Patch6: %{name}-no-subshell.patch
+Patch7: %{name}-middle_click_paste.patch
+Patch8: %{name}-system-virtualenv.patch
+Patch9: %{name}-Disable-Firefox-Health-Report.patch
+Patch10: freetype.patch
URL: https://www.mozilla.org/firefox/
BuildRequires: OpenGL-devel
-BuildRequires: ImageMagick
-BuildRequires: ImageMagick-coder-png
-BuildRequires: ImageMagick-coder-svg
BuildRequires: alsa-lib-devel
BuildRequires: automake
+BuildRequires: autoconf2_13
BuildRequires: bzip2-devel
BuildRequires: cairo-devel >= 1.10.2-5
BuildRequires: dbus-glib-devel >= 0.60
+BuildRequires: fontconfig-devel >= 1:2.7.0
BuildRequires: freetype-devel >= 1:2.1.8
BuildRequires: gcc-c++ >= 6:4.4
BuildRequires: glib2-devel >= 1:2.22
BuildRequires: libevent-devel >= 1.4.7
# standalone libffi 3.0.9 or gcc's from 4.5(?)+
BuildRequires: libffi-devel >= 6:3.0.9
-BuildRequires: libicu-devel >= 50.1
+%{?with_system_icu:BuildRequires: libicu-devel >= 58.1}
# requires libjpeg-turbo implementing at least libjpeg 6b API
BuildRequires: libjpeg-devel >= 6b
BuildRequires: libjpeg-turbo-devel
-# for rsvg-convert
-BuildRequires: librsvg
BuildRequires: libpng(APNG)-devel >= 0.10
-BuildRequires: libpng-devel >= 2:1.6.16
+BuildRequires: libpng-devel >= 2:1.6.25
BuildRequires: libstdc++-devel >= 6:4.4
-BuildRequires: libvpx-devel >= 1.3.0
-BuildRequires: libxslt-progs >= 1.1.28
+BuildRequires: libvpx-devel >= 1.5.0
BuildRequires: nspr-devel >= 1:%{nspr_ver}
BuildRequires: nss-devel >= 1:%{nss_ver}
BuildRequires: pango-devel >= 1:1.22.0
BuildRequires: python-modules >= 1:2.5
%{?with_pgo:BuildRequires: python-modules-sqlite}
BuildRequires: python-simplejson
-BuildRequires: python-virtualenv >= 1.9.1-4
+BuildRequires: python-virtualenv >= 15
BuildRequires: readline-devel
BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpmbuild(macros) >= 1.601
BuildRequires: sed >= 4.0
-BuildRequires: sqlite3-devel >= 3.8.11.1-3
+BuildRequires: sqlite3-devel >= 3.17.0
BuildRequires: startup-notification-devel >= 0.8
-BuildRequires: virtualenv
+BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXScrnSaver-devel
+BuildRequires: xorg-lib-libXcomposite-devel
+BuildRequires: xorg-lib-libXdamage-devel
BuildRequires: xorg-lib-libXext-devel
+BuildRequires: xorg-lib-libXfixes-devel
BuildRequires: xorg-lib-libXinerama-devel
BuildRequires: xorg-lib-libXt-devel
%{?with_pgo:BuildRequires: xorg-xserver-Xvfb}
+%ifarch %{x8664}
+BuildRequires: yasm >= 1.0.1
+%endif
BuildRequires: zip
BuildRequires: zlib-devel >= 1.2.3
BuildConflicts: %{name}-devel < %{version}
Group: X11/Libraries
Requires: cairo >= 1.10.2-5
Requires: dbus-glib >= 0.60
+Requires: fontconfig-libs >= 1:2.7.0
Requires: glib2 >= 1:2.22
%{!?with_gtk3:Requires: gtk+2 >= 2:2.18.0}
%{?with_gtk3:Requires: gtk+3 >= 3.4.0}
Requires: libjpeg-turbo
-Requires: libpng >= 2:1.6.16
+Requires: libpng >= 2:1.6.25
Requires: libpng(APNG) >= 0.10
-Requires: libvpx >= 1.3.0
+Requires: libvpx >= 1.5.0
Requires: pango >= 1:1.22.0
Requires: sqlite3 >= %{sqlite_build_version}
Requires: startup-notification >= 0.8
# hunspell needed for factory including mozHunspell.h
echo 'LOCAL_INCLUDES += $(MOZ_HUNSPELL_CFLAGS)' >> extensions/spellcheck/src/Makefile.in
-%patch1 -p2
-%patch2 -p1
-%patch3 -p2
+%patch0 -p2
+%patch1 -p1
+%patch2 -p2
+%patch3 -p1
%patch4 -p1
-%patch5 -p2
-%patch6 -p1
+%patch5 -p1
+%patch6 -p2
%patch7 -p1
%patch8 -p2
-#%patch9 -p2
-%patch11 -p2
-%patch12 -p1
-%patch14 -p2
+%patch9 -p1
+%patch10 -p2
-cp -a xulrunner/installer/*.pc.in browser/installer/
+%{__sed} -i -e '1s,/usr/bin/env python,%{__python},' xpcom/typelib/xpt/tools/xpt.py xpcom/idl-parser/xpidl/xpidl.py
%if %{with pgo}
-sed -i -e 's@__BROWSER_PATH__@"../../dist/bin/firefox-bin"@' build/automation.py.in
+%{__sed} -i -e 's@__BROWSER_PATH__@"../../dist/bin/firefox-bin"@' build/automation.py.in
%endif
%build
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-%{_target_cpu}
# Options for 'configure' (same as command-line options).
-ac_add_options --build=%{_target_platform}
ac_add_options --host=%{_target_platform}
ac_add_options --prefix=%{_prefix}
-ac_add_options --exec-prefix=%{_exec_prefix}
-ac_add_options --bindir=%{_bindir}
-ac_add_options --sbindir=%{_sbindir}
-ac_add_options --sysconfdir=%{_sysconfdir}
-ac_add_options --datadir=%{_datadir}
-ac_add_options --includedir=%{_includedir}
-ac_add_options --libdir=%{_libdir}
-ac_add_options --libexecdir=%{_libexecdir}
-ac_add_options --localstatedir=%{_localstatedir}
-ac_add_options --sharedstatedir=%{_sharedstatedir}
-ac_add_options --mandir=%{_mandir}
-ac_add_options --infodir=%{_infodir}
%if %{?debug:1}0
ac_add_options --disable-optimize
ac_add_options --enable-debug
ac_add_options --enable-crash-on-assert
%else
ac_add_options --disable-debug
-ac_add_options --disable-debug-modules
ac_add_options --enable-optimize="%{rpmcflags} -Os"
%endif
ac_add_options --disable-strip
-ac_add_options --disable-strip-libs
ac_add_options --disable-install-strip
%if %{with tests}
ac_add_options --enable-tests
%else
ac_add_options --disable-tests
%endif
-ac_add_options --disable-mochitest
%endif
-ac_add_options --disable-cpp-exceptions
ac_add_options --disable-crashreporter
-ac_add_options --disable-elf-dynstr-gc
ac_add_options --disable-gconf
ac_add_options --disable-gnomeui
-ac_add_options --disable-gnomevfs
-ac_add_options --disable-installer
-ac_add_options --disable-javaxpcom
-ac_add_options --disable-long-long-warning
ac_add_options --disable-necko-wifi
-ac_add_options --disable-pedantic
ac_add_options --disable-updater
-ac_add_options --disable-xterm-updates
-ac_add_options --enable-canvas
+ac_add_options --disable-rust
+ac_add_options --enable-alsa
ac_add_options --enable-chrome-format=omni
ac_add_options --enable-default-toolkit=%{?with_gtk3:cairo-gtk3}%{!?with_gtk3:cairo-gtk2}
ac_add_options --enable-extensions=default
ac_add_options --enable-gio
-ac_add_options --enable-gstreamer=1.0
-ac_add_options --enable-libxul
-ac_add_options --enable-mathml
-ac_add_options --enable-pango
ac_add_options --enable-readline
ac_add_options --enable-safe-browsing
%{?with_shared_js:ac_add_options --enable-shared-js}
ac_add_options --enable-startup-notification
-ac_add_options --enable-svg
ac_add_options --enable-system-cairo
ac_add_options --enable-system-ffi
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-url-classifier
-ac_add_options --enable-xinerama
-ac_add_options --enable-official-branding
+%{?with_official:ac_add_options --enable-official-branding}
ac_add_options --with-default-mozilla-five-home=%{_libdir}/%{name}
ac_add_options --with-distribution-id=org.pld-linux
ac_add_options --with-pthreads
ac_add_options --with-system-bz2
-ac_add_options --with-system-icu
+ac_add_options --with%{!?with_system_icu:out}-system-icu
ac_add_options --with-system-jpeg
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
-ac_add_options --with-system-ply
ac_add_options --with-system-png
ac_add_options --with-system-zlib
ac_add_options --with-x
[ -n "$XVFB_PID" ] || exit 1
export DISPLAY=:${D}
%{__make} -j1 -f client.mk profiledbuild \
+ AUTOCONF=/usr/bin/autoconf2_13 \
DESTDIR=obj-%{_target_cpu}/dist \
- CC="%{__cc}" \
- CXX="%{__cxx}" \
MOZ_MAKE_FLAGS="%{_smp_mflags}"
kill $XVFB_PID
%else
%{__make} -j1 -f client.mk build \
- CC="%{__cc}" \
- CXX="%{__cxx}" \
+ AUTOCONF=/usr/bin/autoconf2_13 \
MOZ_MAKE_FLAGS="%{_smp_mflags}"
%endif
chmod 755 $RPM_BUILD_ROOT%{_bindir}/firefox
# install icons and desktop file
-for i in 16 22 24 32 48 256; do
+for i in 16 32 48 %{?with_official:22 24 256}; do
install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps
- cp -a ../browser/branding/official/default${i}.png \
+ cp -a ../browser/branding/%{!?with_official:un}official/default${i}.png \
$RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps/firefox.png
done
cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/preferences/vendor.js
%endif
-# files created by firefox -register
-touch $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/components/compreg.dat
-touch $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/components/xpti.dat
-
cat << 'EOF' > $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate
#!/bin/sh
umask 022
%config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist
%dir %{_libdir}/%{name}/browser
-%dir %{_libdir}/%{name}/browser/components
%dir %{_libdir}/%{name}/browser/plugins
%dir %{_libdir}/%{name}/browser/features
%attr(755,root,root) %{_libdir}/%{name}/firefox-bin
%attr(755,root,root) %{_libdir}/%{name}/run-mozilla.sh
%{_libdir}/%{name}/application.ini
+%{_libdir}/%{name}/chrome.manifest
%{_libdir}/%{name}/browser/blocklist.xml
%{_libdir}/%{name}/browser/chrome.manifest
-%{_libdir}/%{name}/browser/components/components.manifest
-%attr(755,root,root) %{_libdir}/%{name}/browser/components/libbrowsercomps.so
# the signature of the default theme
%{_datadir}/%{name}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
%{_libdir}/%{name}/browser/omni.ja
-%{_libdir}/%{name}/webapprt
-%attr(755,root,root) %{_libdir}/%{name}/webapprt-stub
-
-%{_libdir}/%{name}/browser/features/loop@mozilla.org.xpi
-# files created by firefox -register
-%ghost %{_libdir}/%{name}/browser/components/compreg.dat
-%ghost %{_libdir}/%{name}/browser/components/xpti.dat
+%{_libdir}/%{name}/browser/features/aushelper@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/e10srollout@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/firefox@getpocket.com.xpi
+%{_libdir}/%{name}/browser/features/webcompat@mozilla.org.xpi
%attr(755,root,root) %{_libdir}/%{name}/plugin-container
%{_libdir}/%{name}/dictionaries
+%dir %{_libdir}/%{name}/fonts
+%{_libdir}/%{name}/fonts/EmojiOneMozilla.ttf
+
%dir %{_libdir}/%{name}/gmp-clearkey
%dir %{_libdir}/%{name}/gmp-clearkey/0.1
%{_libdir}/%{name}/gmp-clearkey/0.1/clearkey.info
%attr(755,root,root) %{_libdir}/%{name}/gmp-clearkey/0.1/libclearkey.so
+%{!?with_system_icu:%{_libdir}/%{name}//icudt58l.dat}
%files libs
%defattr(644,root,root,755)
%{?with_shared_js:%attr(755,root,root) %{_libdir}/%{name}/libmozjs.so}
%attr(755,root,root) %{_libdir}/%{name}/liblgpllibs.so
%attr(755,root,root) %{_libdir}/%{name}/libxul.so
+%attr(755,root,root) %{_libdir}/%{name}/libmozavcodec.so
+%attr(755,root,root) %{_libdir}/%{name}/libmozavutil.so
+%attr(755,root,root) %{_libdir}/%{name}/libmozsandbox.so
%{_libdir}/%{name}/dependentlibs.list
%{_libdir}/%{name}/omni.ja
+%if %{with gtk3}
+%dir %{_libdir}/%{name}/gtk2
+%attr(755,root,root) %{_libdir}/%{name}/gtk2/libmozgtk.so
+%attr(755,root,root) %{_libdir}/%{name}/libmozgtk.so
+%endif
%files devel
%defattr(644,root,root,755)