MozillaFirefox/MozillaFirefox.spec
changeset 1053 893fc4d031d6
parent 1052 7a49806c8dae
child 1054 fbfe323c62cd
--- a/MozillaFirefox/MozillaFirefox.spec	Wed May 02 09:28:53 2018 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Fri Jun 08 22:25:59 2018 +0200
@@ -18,11 +18,12 @@
 
 
 # changed with every update
-%define major 59
+%define major 60
 %define mainver %major.99
 %define update_channel beta
 %define branding 1
-%define releasedate 20180426170554
+%define releasedate 20180607135512
+%define source_prefix firefox-%{mainver}
 
 # PIE, full relro (x86_64 for now)
 %define build_hardened 1
@@ -57,6 +58,7 @@
 BuildRequires:  autoconf213
 BuildRequires:  dbus-1-glib-devel
 BuildRequires:  fdupes
+BuildRequires:  memory-constraints
 %if 0%{?suse_version} <= 1320
 BuildRequires:  gcc7-c++
 %else
@@ -71,7 +73,7 @@
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
 BuildRequires:  mozilla-nspr-devel >= 4.19
-BuildRequires:  mozilla-nss-devel >= 3.36.1
+BuildRequires:  mozilla-nss-devel >= 3.37.3
 BuildRequires:  python-devel
 BuildRequires:  python2-xml
 BuildRequires:  rust >= 1.24
@@ -120,7 +122,7 @@
 License:        MPL-2.0
 Group:          Productivity/Networking/Web/Browsers
 Url:            http://www.mozilla.org/
-Source:         firefox-%{version}-source.tar.xz
+Source:         http://ftp.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz
 Source1:        MozillaFirefox.desktop
 Source2:        MozillaFirefox-rpmlintrc
 Source3:        mozilla.sh.in
@@ -141,6 +143,8 @@
 # please get your own set of keys.
 Source18:       mozilla-api-key
 Source19:       google-api-key
+Source20:       http://ftp.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz.asc
+Source21:       mozilla.keyring
 # Gecko/Toolkit
 Patch1:         mozilla-nongnome-proxies.patch
 Patch2:         mozilla-kde.patch
@@ -153,10 +157,11 @@
 Patch9:         mozilla-i586-DecoderDoctorLogger.patch
 Patch10:        mozilla-i586-domPrefs.patch
 Patch11:        mozilla-enable-csd.patch
+Patch12:        mozilla-fix-skia-aarch64.patch
+Patch13:        mozilla-bmo1375074.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
-
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires(post):   coreutils shared-mime-info desktop-file-utils
 Requires(postun): shared-mime-info desktop-file-utils
@@ -206,7 +211,7 @@
 %package translations-other
 Summary:        Extra translations for %{appname}
 Group:          System/Localization
-Provides:       locale(%{name}:ach;af;an;as;ast;az;bg;bn_BD;bn_IN;br;bs;cak;cy;dsb;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;id;is;ka;kab;kk;km;kn;lij;lt;lv;mai;mk;ml;mr;ms;ne-NP;nn_NO;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;uz;vi;xh)
+Provides:       locale(%{name}:ach;af;an;as;ast;az;bg;bn_BD;bn_IN;br;bs;cak;cy;dsb;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;id;is;ka;kab;kk;km;kn;lij;lt;lv;mai;mk;ml;mr;ms;ne-NP;nn_NO;oc;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;uz;vi;xh)
 Requires:       %{name} = %{version}
 Obsoletes:      %{name}-translations < %{version}-%{release}
 
@@ -248,11 +253,11 @@
 
 %prep
 %if %localize
-%setup -q -n mozilla -b 7 -b 10
+%setup -q -n %{source_prefix} -b 7 -b 10
 %else
-%setup -q -n mozilla
+%setup -q -n %{source_prefix}
 %endif
-cd $RPM_BUILD_DIR/mozilla
+cd $RPM_BUILD_DIR/%{source_prefix}
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
@@ -268,6 +273,8 @@
 %patch10 -p1
 %endif
 %patch11 -p1
+%patch12 -p1
+%patch13 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
@@ -317,7 +324,11 @@
 export CFLAGS="$CFLAGS -mminimal-toc"
 %endif
 export CXXFLAGS="$CFLAGS"
+%ifarch %{arm}
+export RUSTFLAGS="-Cdebuginfo=0"
+%endif
 export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
+%limit_build -m 1500
 cat << EOF > $MOZCONFIG
 mk_add_options MOZILLA_OFFICIAL=1
 mk_add_options BUILD_OFFICIAL=1
@@ -371,9 +382,13 @@
 %ifarch %arm
 ac_add_options --with-fpu=vfpv3-d16
 ac_add_options --with-float-abi=hard
+%ifarch armv6l armv6hl
+ac_add_options --with-arch=armv6
+%else
 ac_add_options --with-arch=armv7-a
 %endif
-%ifarch %arm s390x
+%endif
+%ifarch aarch64 %arm s390x
 ac_add_options --disable-webrtc
 %endif
 EOF
@@ -403,35 +418,31 @@
 install -m 644 %{SOURCE9} %{buildroot}%{progdir}/browser/defaults/preferences/firefox.js
 # install additional locales
 %if %localize
-rm -f %{_tmppath}/translations.*
-touch %{_tmppath}/translations.{common,other}
-for locale in $(cat $RPM_BUILD_DIR/mozilla/browser/locales/shipped-locales) ; do
-  case $locale in
-   ja-JP-mac|en-US|'')
-	;;
-   *)
-   	pushd $RPM_BUILD_DIR/compare-locales
-	PYTHONPATH=lib \
-	  scripts/compare-locales -m ../l10n-merged/$locale \
-	  ../mozilla/browser/locales/l10n.ini ../l10n $locale
-	popd
-	LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
-  	make -C browser/locales langpack-$locale
-	cp -rL dist/xpi-stage/locale-$locale \
-	       %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org
-	# remove prefs, profile defaults, and hyphenation from langpack
-	rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/defaults
-	rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/hyphenation
-	# check against the fixed common list and sort into the right filelist
-	_matched=0
-	for _match in ar ca cs da de en-GB el es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do
-	  [ "$_match" = "$locale" ] && _matched=1
-	done
-	[ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other
-  	echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org \
-	  >> %{_tmppath}/translations.$_l10ntarget
-  esac
-done
+truncate -s 0 %{_tmppath}/translations.{common,other}
+sed -r '/^(ja-JP-mac|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{source_prefix}/browser/locales/shipped-locales \
+    | xargs -P 8 -n 1 -I {} /bin/sh -c '
+        locale=$1
+        pushd $RPM_BUILD_DIR/compare-locales
+        PYTHONPATH=lib \
+            scripts/compare-locales -m ../l10n-merged/$locale \
+            ../%{source_prefix}/browser/locales/l10n.ini ../l10n $locale
+        popd
+        LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
+            make -C browser/locales langpack-$locale
+        cp -rL dist/xpi-stage/locale-$locale \
+            %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org
+        # remove prefs, profile defaults, and hyphenation from langpack
+        rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/defaults
+        rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/hyphenation
+        # check against the fixed common list and sort into the right filelist
+        _matched=0
+        for _match in ar ca cs da de en-GB el es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do
+            [ "$_match" = "$locale" ] && _matched=1
+        done
+        [ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other
+        echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org \
+            >> %{_tmppath}/translations.$_l10ntarget
+' -- {}
 %endif
 # remove some executable permissions
 find %{buildroot}%{progdir} \
@@ -442,9 +453,10 @@
      -name "*.dtd" -o \
      -name "*.txt" -o \
      -name "*.xml" -o \
-     -name "*.css" | xargs chmod a-x
+     -name "*.css" \
+     -exec chmod a-x {} +
 # remove mkdir.done files from installed base
-find %{buildroot}%{progdir} -name ".mkdir.done" | xargs rm
+find %{buildroot}%{progdir} -type f -name ".mkdir.done" -delete
 # overwrite the mozilla start-script and link it to /usr/bin
 mkdir --parents %{buildroot}/usr/bin
 sed "s:%%PREFIX:%{_prefix}:g