+# Conditional build:
+%bcond_without system_ffmpeg # build with internal ffmpeg library
+%bcond_without system_gtk # build with internal gtk library
+%bcond_without system_sqlite # build with internal sqlite library
+
%define realname firefox
+%define avcodec_soname_ver 57
+%define avutil_soname_ver 55
+%define gtk_soname_ver 0
+%define sqlite_soname_ver 0
Summary: Mozilla Firefox web browser
Summary(pl.UTF-8): Mozilla Firefox - przeglądarka WWW
Name: mozilla-firefox-bin
-Version: 28.0
+Version: 57.0
Release: 1
License: MPL/LGPL
Group: X11/Applications/Networking
-Source0: http://download.cdn.mozilla.net/pub/mozilla.org/%{realname}/releases/%{version}/linux-i686/en-US/%{realname}-%{version}.tar.bz2?/%{realname}-%{version}.i686.tar.bz2
-# Source0-md5: b9992b491c3d4131bd7f4982d0240d6d
-Source1: http://download.cdn.mozilla.net/pub/mozilla.org/%{realname}/releases/%{version}/linux-x86_64/en-US/%{realname}-%{version}.tar.bz2?/%{realname}-%{version}.x8664.tar.bz2
-# Source1-md5: 8264fda486828d925aa094de902eb182
+Source0: https://ftp.mozilla.org/pub/firefox/releases/%{version}/linux-i686/en-US/%{realname}-%{version}.tar.bz2?/%{realname}-%{version}.i686.tar.bz2
+# Source0-md5: 3183ff5bad59a709b9e9167985a79763
+Source1: https://ftp.mozilla.org/pub/firefox/releases/%{version}/linux-x86_64/en-US/%{realname}-%{version}.tar.bz2?/%{realname}-%{version}.x8664.tar.bz2
+# Source1-md5: 3cd253e5d7ad278ae3d646b7b8fe112a
Source2: %{name}.desktop
Source3: %{name}.sh
-#Patch0: %{name}-agent.patch
-#Patch1: %{name}-ti-agent.patch
-#Patch2: nochilds.patch
-URL: http://www.mozilla.org/projects/firefox/
+URL: https://www.mozilla.org/firefox/
BuildRequires: rpmbuild(macros) >= 1.453
BuildRequires: zip
+Requires(post,postun): desktop-file-utils
Requires: browser-plugins >= 2.0
+Requires: cpuinfo(sse2)
+%{?with_system_ffmpeg:Requires: ffmpeg-libs >= 3.2.1}
+%{?with_system_gtk:Requires: gtk+3 >= 3.22}
Requires: myspell-common
-Requires: nss >= 1:3.15.4
-Requires: sqlite3 >= 3.6.22-2
+Requires: nspr >= 1:4.16
+Requires: nss >= 1:3.32.1
+%{?with_system_sqlite:Requires: sqlite3 >= 3.19.3}
+Suggests: pulseaudio
Provides: wwwbrowser
Obsoletes: mozilla-firebird
Conflicts: mozilla-firefox
%define _firefoxdir %{_libdir}/%{name}
-%define moz_caps libmozalloc.so libmozsqlite3.so libxpcom.so libxul.so
+%define moz_caps libmozalloc.so libmozavcodec.so libmozavutil.so libclearkey.so liblgpllibs.so libmozgtk.so libmozsandbox.so libmozsqlite3.so libxpcom.so libxul.so
%define sqlite_caps libsqlite3.so
# list of files (regexps) which don't generate Provides
%define _noautoprovfiles %{_libdir}/%{name}/components
# list of script capabilities (regexps) not to be used in Provides
-%define _noautoprov %{moz_caps}
-%define _noautoreq %{_noautoprov} %{sqlite_caps} libnotify.so.1
+%define _noautoprov %{moz_caps}
+%define _noautoreq %{_noautoprov} %{sqlite_caps} libnotify.so.1
# no debuginfo available
%define _enable_debug_packages 0
%ifarch %{x8664}
%{__tar} jxf %{SOURCE1} --strip-components=1
%endif
-%if "%{pld_release}" == "th"
-#%patch0 -p0
-%endif
-%if "%{pld_release}" == "ti"
-#%patch1 -p0
-%endif
-#%patch2 -p1
%install
rm -rf $RPM_BUILD_ROOT
%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/browser/plugins
# use system dict
-rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
+rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
ln -s %{_datadir}/myspell $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
+%if %{with system_ffmpeg}
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/libmozavcodec.so
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/libmozavutil.so
+ln -s %{_libdir}/libavcodec.so.%{avcodec_soname_ver} $RPM_BUILD_ROOT%{_libdir}/%{name}/libmozavcodec.so
+ln -s %{_libdir}/libavutil.so.%{avutil_soname_ver} $RPM_BUILD_ROOT%{_libdir}/%{name}/libmozavutil.so
+%endif
+
+%if %{with system_gtk}
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/libmozgtk.so
+ln -s %{_libdir}/libgtk-3.so.%{gtk_soname_ver} $RPM_BUILD_ROOT%{_libdir}/%{name}/libmozgtk.so
+%endif
+
+%if %{with system_sqlite}
# use system sqlite
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/libsqlite3.so
-ln -s /%{_lib}/libsqlite3.so.0 $RPM_BUILD_ROOT%{_libdir}/%{name}/libsqlite3.so
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/libmozsqlite3.so
+ln -s /%{_lib}/libsqlite3.so.%{sqlite_soname_ver} $RPM_BUILD_ROOT%{_libdir}/%{name}/libmozsqlite3.so
+%endif
# never package these
# nss
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/lib{freebl3,nss3,nssckbi,nssdbm3,nssutil3,smime3,softokn3,ssl3}.*
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/lib{freeblpriv3,nss3,nssckbi,nssdbm3,nssutil3,smime3,softokn3,ssl3}.*
# nspr
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/lib{nspr4,plc4,plds4}.so
-# mozldap
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/lib{ldap,ldif,prldap,ssldap}60.so
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/lib{nspr4,plc4,plds4}.so
grep -v 'libnspr4.so\|libplc4.so\|libplds4.so\|libnssutil3.so\|libnss3.so\|libsmime3.so\|libssl3.so' \
dependentlibs.list > $RPM_BUILD_ROOT%{_libdir}/%{name}/dependentlibs.list
# remove update notifier, we prefer rpm packages for updating
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/updater
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/updater.ini
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/update.locale
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/Throbber-small.gif
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/updater
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/updater.ini
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/update-settings.ini
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/Throbber-small.gif
# remove unecessary stuff
rm $RPM_BUILD_ROOT%{_libdir}/%{name}/removed-files
%post
%update_browser_plugins
+%update_desktop_database_post
%postun
+%update_desktop_database_postun
if [ "$1" = 0 ]; then
%update_browser_plugins
fi
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/application.ini
+%{_libdir}/%{name}/chrome.manifest
+%{_libdir}/%{name}/icudt59l.dat
%dir %{_libdir}/%{name}/browser
%{_libdir}/%{name}/browser/blocklist.xml
%{_libdir}/%{name}/browser/chrome.manifest
%{_libdir}/%{name}/browser/omni.ja
-%dir %{_libdir}/%{name}/browser/components
-%{_libdir}/%{name}/browser/components/components.manifest
-%attr(755,root,root) %{_libdir}/%{name}/browser/components/libbrowsercomps.so
-#%{_libdir}/%{name}/browserconfig.properties
-%{_libdir}/%{name}/chrome.manifest
%{_libdir}/%{name}/omni.ja
%{_libdir}/%{name}/platform.ini
%attr(755,root,root) %{_libdir}/%{name}/firefox
%attr(755,root,root) %{_libdir}/%{name}/firefox-bin
-%attr(755,root,root) %{_libdir}/%{name}/precomplete
-%attr(755,root,root) %{_libdir}/%{name}/mozilla-xremote-client
+%attr(755,root,root) %{_libdir}/%{name}/minidump-analyzer
+%attr(755,root,root) %{_libdir}/%{name}/pingsender
%attr(755,root,root) %{_libdir}/%{name}/plugin-container
+%attr(755,root,root) %{_libdir}/%{name}/precomplete
%{_libdir}/%{name}/browser/chrome
%{_libdir}/%{name}/browser/icons
%{_libdir}/%{name}/defaults
%{_libdir}/%{name}/dependentlibs.list
%{_libdir}/%{name}/dictionaries
-#%{_libdir}/%{name}/greprefs
-#%{_libdir}/%{name}/hyphenation
-#%{_libdir}/%{name}/hyphenation/hyph_en_US.dic
%{_libdir}/%{name}/icons
-#%{_libdir}/%{name}/modules
-#%{_libdir}/%{name}/res
-%{_libdir}/%{name}/browser/searchplugins
-%{_libdir}/%{name}/webapprt
-%attr(755,root,root) %{_libdir}/%{name}/webapprt-stub
-%dir %{_libdir}/%{name}/browser/extensions
-# the signature of the default theme
-%{_libdir}/%{name}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
+%dir %{_libdir}/%{name}/fonts
+%{_libdir}/%{name}/fonts/EmojiOneMozilla.ttf
-#%dir %{_libdir}/%{name}/distribution
-#%dir %{_libdir}/%{name}/distribution/extensions
-#%{_libdir}/%{name}/distribution/extensions/testpilot@labs.mozilla.com.xpi
+%dir %{_libdir}/%{name}/gtk2
+%attr(755,root,root) %{_libdir}/%{name}/gtk2/libmozgtk.so
-%dir %{_libdir}/%{name}/components
-%attr(755,root,root) %{_libdir}/%{name}/components/*.so
-%{_libdir}/%{name}/components/components.manifest
-#%{_libdir}/%{name}/components/*.js
-#%{_libdir}/%{name}/components/*.xpt
+%dir %{_libdir}/%{name}/browser/extensions
+# the signature of the default theme
+%{_libdir}/%{name}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
+
+%dir %{_libdir}/%{name}/browser/features
+%{_libdir}/%{name}/browser/features/activity-stream@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/aushelper@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/clicktoplay-rollout@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/e10srollout@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/firefox@getpocket.com.xpi
+%{_libdir}/%{name}/browser/features/followonsearch@mozilla.com.xpi
+%{_libdir}/%{name}/browser/features/formautofill@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/onboarding@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/screenshots@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/shield-recipe-client@mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/webcompat@mozilla.org.xpi
%dir %{_libdir}/%{name}/browser/plugins
-#%attr(755,root,root) %{_libdir}/%{name}/plugins/libnullplugin.so
%attr(755,root,root) %{_libdir}/%{name}/*.so
%attr(755,root,root) %{_libdir}/%{name}/*.sh
%{_libdir}/%{name}/browser/crashreporter-override.ini
%{_libdir}/%{name}/crashreporter.ini
+%dir %{_libdir}/%{name}/gmp-clearkey
+%dir %{_libdir}/%{name}/gmp-clearkey/0.1
+%{_libdir}/%{name}/gmp-clearkey/0.1/manifest.json
+%attr(755,root,root) %{_libdir}/%{name}/gmp-clearkey/0.1/libclearkey.so
+
%{_pixmapsdir}/%{name}.png
%{_desktopdir}/%{name}.desktop