MozillaFirefox/MozillaFirefox.spec
branchfirefox69
changeset 1111 97a6da6d7e29
parent 1110 9e4b30f05706
child 1112 8a4f5aea2475
--- a/MozillaFirefox/MozillaFirefox.spec	Fri Sep 20 14:10:22 2019 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Sun Oct 20 14:25:55 2019 +0200
@@ -19,13 +19,13 @@
 
 # changed with every update
 %define major          69
-%define mainver        %major.0.1
-%define orig_version   69.0.1
+%define mainver        %major.0.3
+%define orig_version   69.0.3
 %define orig_suffix    %{nil}
 %define update_channel release
 %define branding       1
-%define releasedate    20190917135527
-%define source_prefix  firefox-%{orig_version}
+%define devpkg         1
+%define releasedate    20191009172106
 
 # always build with GCC as SUSE Security Team requires that
 %define clang_build 0
@@ -45,6 +45,7 @@
 # general build definitions
 %define progname firefox
 %define pkgname  MozillaFirefox
+%define srcname  firefox
 %define appname  Firefox
 %define progdir %{_prefix}/%_lib/%{progname}
 %define gnome_dir     %{_prefix}
@@ -93,7 +94,9 @@
 BuildRequires:  unzip
 BuildRequires:  update-desktop-files
 BuildRequires:  xorg-x11-libXt-devel
+%if 0%{?do_profiling}
 BuildRequires:  xvfb-run
+%endif
 BuildRequires:  yasm
 BuildRequires:  zip
 %if 0%{?suse_version} < 1550
@@ -137,13 +140,12 @@
 Group:          Productivity/Networking/Web/Browsers
 Url:            http://www.mozilla.org/
 %if !%{with only_print_mozconfig}
-Source:         http://ftp.mozilla.org/pub/%{progname}/releases/%{version}%{orig_suffix}/source/firefox-%{orig_version}%{orig_suffix}.source.tar.xz
+Source:         http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz
 Source1:        MozillaFirefox.desktop
 Source2:        MozillaFirefox-rpmlintrc
 Source3:        mozilla.sh.in
 Source4:        tar_stamps
 Source5:        source-stamp.txt
-Source6:        kde.js
 Source7:        l10n-%{orig_version}%{orig_suffix}.tar.xz
 Source8:        firefox-mimeinfo.xml
 Source9:        firefox.js
@@ -153,14 +155,14 @@
 Source13:       spellcheck.js
 Source14:       https://github.com/openSUSE/firefox-scripts/raw/master/create-tar.sh
 Source15:       firefox-appdata.xml
-Source16:       MozillaFirefox.changes
+Source16:       %{name}.changes
 # Set up API keys, see http://www.chromium.org/developers/how-tos/api-keys
 # Note: these are for the openSUSE Firefox builds ONLY. For your own distribution,
 # please get your own set of keys.
 Source18:       mozilla-api-key
 Source19:       google-api-key
-Source20:       https://ftp.mozilla.org/pub/%{progname}/releases/%{version}%{orig_suffix}/source/%{progname}-%{orig_version}%{orig_suffix}.source.tar.xz.asc
-Source21:       https://ftp.mozilla.org/pub/%{progname}/releases/%{version}%{orig_suffix}/KEY#/mozilla.keyring
+Source20:       https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz.asc
+Source21:       https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/KEY#/mozilla.keyring
 # Gecko/Toolkit
 Patch1:         mozilla-nongnome-proxies.patch
 Patch2:         mozilla-kde.patch
@@ -185,23 +187,24 @@
 Patch21:        mozilla-bmo1554971.patch
 Patch22:        mozilla-nestegg-big-endian.patch
 Patch23:        mozilla-bmo1512162.patch
+Patch24:        mozilla-fix-top-level-asm.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
-Patch103:       firefox-add-kde.js-in-order-to-survive-PGO-build.patch
 %endif # only_print_mozconfig
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires(post):   coreutils shared-mime-info desktop-file-utils
 Requires(postun): shared-mime-info desktop-file-utils
-%if %branding
-Requires:       %{name}-branding > 44.0
-%endif
+Requires:       %{name}-branding >= 68
 Requires:       mozilla-nspr >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nspr)
 Requires:       mozilla-nss >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nss)
 Recommends:     libcanberra0
 Recommends:     libpulse0
 # addon leads to startup crash (bnc#908892)
 Obsoletes:      tracker-miner-firefox < 0.15
+%if 0%{?devpkg} == 0
+Obsoletes:      %{name}-devel < %{version}
+%endif
 # libproxy's mozjs pacrunner crashes FF (bnc#759123)
 %if 0%{?suse_version} < 1220
 Obsoletes:      libproxy1-pacrunner-mozjs <= 0.4.7
@@ -213,6 +216,7 @@
 compliance and performance.  Its functionality can be enhanced via a
 plethora of extensions.
 
+%if 0%{?devpkg}
 %package devel
 Summary:        Devel package for %{appname}
 Group:          Development/Tools/Other
@@ -223,6 +227,7 @@
 
 %description devel
 Development files for %{appname} to make packaging of addons easier.
+%endif
 
 %if %localize
 %package translations-common
@@ -239,7 +244,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;oc;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;ast;az;be;bg;bn;br;bs;cak;cy;dsb;en_CA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;ia;id;is;ka;kab;kk;km;kn;lij;lt;lv;mk;mr;ms;my;ne_NP;nn_NO;oc;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;ur;uz;vi;xh)
 Requires:       %{name} = %{version}
 Obsoletes:      %{name}-translations < %{version}-%{release}
 
@@ -248,7 +253,6 @@
 of %{appname}.
 %endif
 
-%if %branding
 %package branding-upstream
 Summary:        Upstream branding for %{appname}
 Group:          Productivity/Networking/Web/Browsers
@@ -267,7 +271,6 @@
 
 %description branding-upstream
 This package provides upstream look and feel for %{appname}.
-%endif
 
 %if %crashreporter
 %package buildsymbols
@@ -291,11 +294,11 @@
     exit 1
 fi
 
-%setup -q -n %{source_prefix} -b 7 -b 10
+%setup -q -n %{srcname}-%{orig_version} -b 7 -b 10
 %else
-%setup -q -n %{source_prefix}
+%setup -q -n %{srcname}-%{orig_version}
 %endif
-cd $RPM_BUILD_DIR/%{source_prefix}
+cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
@@ -321,10 +324,10 @@
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
+%patch24 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
-%patch103 -p1
 %endif # only_print_mozconfig
 
 %build
@@ -448,16 +451,18 @@
 ac_add_options --disable-webrtc
 %endif
 # mitigation/workaround for bmo#1512162
-%ifarch ppc64le s390x
+%ifarch s390x
 ac_add_options --enable-optimize="-O1"
 %endif
 %ifarch x86_64
 # LTO needs newer toolchain stack only (at least GCC 8.2.1 (r268506)
 %if 0%{?suse_version} > 1500
 ac_add_options --enable-lto
+%if 0%{?do_profiling}
 ac_add_options MOZ_PGO=1
 %endif
 %endif
+%endif
 EOF
 %if !%{with only_print_mozconfig}
 %ifarch ppc64 s390x s390
@@ -470,7 +475,10 @@
 ls -l config/external/icu/data
 rm -f config/external/icu/data/icudt*l.dat
 %endif
-xvfb-run --server-args="-screen 0 1920x1080x24" ./mach build
+%if 0%{?do_profiling}
+xvfb-run --server-args="-screen 0 1920x1080x24" \
+%endif
+./mach build -v
 %endif # only_print_mozconfig
 
 %install
@@ -487,25 +495,29 @@
 grep amazondotcom dist/firefox/browser/omni.ja
 # copy tree into RPM_BUILD_ROOT
 mkdir -p %{buildroot}%{progdir}
-cp -rf $RPM_BUILD_DIR/obj/dist/%{progname}/* %{buildroot}%{progdir}
+cp -rf $RPM_BUILD_DIR/obj/dist/%{srcname}/* %{buildroot}%{progdir}
 mkdir -p %{buildroot}%{progdir}/distribution/extensions
 mkdir -p %{buildroot}%{progdir}/browser/defaults/preferences/
+# renaming executables (for regular vs. ESR)
+%if "%{srcname}" != "%{progname}"
+mv %{buildroot}%{progdir}/%{srcname} %{buildroot}%{progdir}/%{progname}
+mv %{buildroot}%{progdir}/%{srcname}-bin %{buildroot}%{progdir}/%{progname}
+%endif
 # install gre prefs
 install -m 644 %{SOURCE13} %{buildroot}%{progdir}/defaults/pref/
 # install browser prefs
-install -m 644 %{SOURCE6} %{buildroot}%{progdir}/browser/defaults/preferences/kde.js
 install -m 644 %{SOURCE9} %{buildroot}%{progdir}/browser/defaults/preferences/firefox.js
 # build additional locales
 %if %localize
 mkdir -p %{buildroot}%{progdir}/browser/extensions
 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 \
+sed -r '/^(ja-JP-mac|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
     | xargs -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
+            ../%{srcname}-%{orig_version}/browser/locales/l10n.ini ../l10n $locale
         popd
         LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
             make -C browser/locales langpack-$locale
@@ -541,7 +553,7 @@
 mkdir --parents %{buildroot}/usr/bin
 sed "s:%%PREFIX:%{_prefix}:g
 s:%%PROGDIR:%{progdir}:g
-s:%%APPNAME:firefox:g
+s:%%APPNAME:%{progname}:g
 s:%%PROFILE:.mozilla/firefox:g" \
   %{SOURCE3} > %{buildroot}%{progdir}/%{progname}.sh
 chmod 755 %{buildroot}%{progdir}/%{progname}.sh
@@ -558,7 +570,8 @@
 cp %{SOURCE8} %{buildroot}%{_datadir}/mime/packages/%{progname}.xml
 # appdata
 mkdir -p %{buildroot}%{_datadir}/appdata
-cp %{SOURCE15} %{buildroot}%{_datadir}/appdata/%{desktop_file_name}.appdata.xml
+sed "s:firefox.desktop:%{desktop_file_name}:g" \
+  %{SOURCE15} > %{buildroot}%{_datadir}/appdata/%{desktop_file_name}.appdata.xml
 # install man-page
 mkdir -p %{buildroot}%{_mandir}/man1/
 cp %{SOURCE11} %{buildroot}%{_mandir}/man1/%{progname}.1
@@ -588,6 +601,7 @@
 rm -f %{buildroot}%{progdir}/LICENSE
 rm -f %{buildroot}%{progdir}/precomplete
 rm -f %{buildroot}%{progdir}/update-settings.ini
+%if 0%{?devpkg}
 # devel
 mkdir -p %{buildroot}%{_bindir}
 install -m 755 %SOURCE12 %{buildroot}%{_bindir}
@@ -609,12 +623,7 @@
    %%{__unzip} -q -d "$extdir" "%%1" \
    %%{nil}
 FIN
-# just dumping an xpi file there doesn't work...
-#%%firefox_ext_install() \
-#       extdir="%%{buildroot}%%{firefox_extdir}" \
-#       mkdir -p "$extdir" \
-#       cp "%%1" "$extdir" \
-#       %%{nil}
+%endif
 # fdupes
 %fdupes %{buildroot}%{progdir}
 %fdupes %{buildroot}%{_datadir}
@@ -668,8 +677,8 @@
 %{progdir}/gtk2/libmozgtk.so
 %{progdir}/gmp-clearkey/
 %attr(755,root,root) %{progdir}/%{progname}.sh
-%{progdir}/firefox
-%{progdir}/firefox-bin
+%{progdir}/%{progname}
+%{progdir}/%{progname}-bin
 %{progdir}/application.ini
 %{progdir}/chrome.manifest
 %{progdir}/dependentlibs.list
@@ -700,13 +709,14 @@
 %doc %{_mandir}/man1/%{progname}.1.gz
 %{_datadir}/appdata/
 
+%if 0%{?devpkg}
 %files devel
 %defattr(-,root,root)
 %{_bindir}/mozilla-get-app-id
 %config %{_sysconfdir}/rpm/macros.%{progname}
+%endif
 
 %if %localize
-
 %files translations-common -f %{_tmppath}/translations.common
 %defattr(-,root,root)
 %dir %{progdir}
@@ -720,11 +730,9 @@
 
 # this package does not need to provide files but is needed to fulfill
 # requirements if no other branding package is to be installed
-%if %branding
 %files branding-upstream
 %defattr(-,root,root)
 %dir %{progdir}
-%endif
 
 %if %crashreporter
 %files buildsymbols