MozillaFirefox/MozillaFirefox.spec
branchfirefox115
changeset 1190 2a24a948b5cf
parent 1189 ba0c97b018a6
child 1191 37e065158be7
--- a/MozillaFirefox/MozillaFirefox.spec	Mon Jun 05 21:17:55 2023 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Sat Jul 29 14:34:45 2023 +0200
@@ -28,9 +28,9 @@
 # orig_suffix b3
 # major 69
 # mainver %%major.99
-%define major          113
-%define mainver        %major.0.2
-%define orig_version   113.0.2
+%define major          115
+%define mainver        %major.0.3
+%define orig_version   115.0.3
 %define orig_suffix    %{nil}
 %define update_channel release
 %define branding       1
@@ -50,13 +50,17 @@
 # SLE-12 doesn't have this macro
 %{!?_rpmmacrodir: %global _rpmmacrodir %{_rpmconfigdir}/macros.d}
 
+# No i586 on SLE-12, as the rpmlints are broken and can't handle the big rpms resulting from this build.
+%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
+ExclusiveArch:  aarch64 ppc64le x86_64 s390x
+%else
 # Firefox only supports i686
 %ifarch %ix86
 ExclusiveArch:  i586 i686
 BuildArch:      i686
 %{expand:%%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -msse2}
 %endif
-%{expand:%%global optflags %(echo "%optflags"|sed -e s/-Werror=return-type//) }
+%endif
 %{expand:%%global optflags %(echo "%optflags"|sed -e s/-flto=auto//) }
 
 # general build definitions
@@ -94,23 +98,13 @@
 BuildRequires:  fdupes
 BuildRequires:  memory-constraints
 %if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150500
-BuildRequires:  gcc11-c++
+BuildRequires:  gcc12
+BuildRequires:  gcc12-c++
 %else
 BuildRequires:  gcc-c++
 %endif
-%if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150300
-BuildRequires:  cargo >= 1.65
-BuildRequires:  rust >= 1.65
-%else
-# Newer sle/leap/tw use parallel versioned rust releases which have
-# a different method for provides that we can use to request a
-# specific version
-# minimal requirement:
-BuildRequires:  rust+cargo >= 1.65
-# actually used upstream:
-BuildRequires:  cargo1.67
-BuildRequires:  rust1.67
-%endif
+BuildRequires:  cargo1.69
+BuildRequires:  rust1.69
 %if 0%{useccache} != 0
 BuildRequires:  ccache
 %endif
@@ -120,12 +114,15 @@
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
 BuildRequires:  mozilla-nspr-devel >= 4.35
-BuildRequires:  mozilla-nss-devel >= 3.89
+BuildRequires:  mozilla-nss-devel >= 3.90
 BuildRequires:  nasm >= 2.14
-BuildRequires:  nodejs >= 10.22.1
+BuildRequires:  nodejs >= 12.22.12
 %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
+BuildRequires:  libXtst-devel
 BuildRequires:  python-libxml2
-BuildRequires:  python36
+BuildRequires:  python39
+BuildRequires:  python39-curses
+BuildRequires:  python39-devel
 %else
 %if 0%{?sle_version} >= 150000 && 0%{?sle_version} <= 150500
 BuildRequires:  python39
@@ -219,20 +216,20 @@
 Patch6:         mozilla-s390-context.patch
 Patch7:         mozilla-pgo.patch
 Patch8:         mozilla-reduce-rust-debuginfo.patch
-Patch9:         mozilla-bmo1005535.patch
 Patch10:        mozilla-bmo1504834-part1.patch
 Patch11:        mozilla-bmo1504834-part3.patch
 Patch12:        mozilla-bmo1512162.patch
 Patch13:        mozilla-fix-top-level-asm.patch
 Patch14:        mozilla-bmo849632.patch
 Patch15:        mozilla-bmo998749.patch
-Patch16:        mozilla-s390x-skia-gradient.patch
 Patch17:        mozilla-libavcodec58_91.patch
 Patch18:        mozilla-silence-no-return-type.patch
 Patch19:        mozilla-bmo531915.patch
 Patch20:        one_swizzle_to_rule_them_all.patch
 Patch21:        svg-rendering.patch
-Patch22:        mozilla-buildfixes.patch
+Patch22:        mozilla-partial-revert-1768632.patch
+Patch23:        mozilla-bmo1775202.patch
+Patch24:        mozilla-rust-disable-future-incompat.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
@@ -345,19 +342,20 @@
 TIME="\"$(date -d "${modified}" "+%%R")\""
 find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
 
-# SLE-12 provides python36, but that package does not provide a python3 binary
+# SLE-12 provides python39, but that package does not provide a python3 binary
 %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
-sed -i "s/python3/python36/g" configure.in
-sed -i "s/python3/python36/g" mach
-export PYTHON3=/usr/bin/python36
+#sed -i "s/python3/python3.9/g" configure.in
+sed -i "s|/usr/bin/env python3|/usr/bin/env python3.9|" mach
+sed -i "s|potential_python_binary = f\"python3.{i}\"|potential_python_binary = f\"python3.9.{i}\"|" mach
+export PYTHON3=/usr/bin/python3.9
 %endif
 
-#
 kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
 if test "$kdehelperversion" != %{kde_helper_version}; then
   echo fix kde helper version in the .spec file
   exit 1
 fi
+
 # When doing only_print_mozconfig, this file isn't necessarily available, so skip it
 cp %{SOURCE4} .obsenv.sh
 %else
@@ -378,7 +376,8 @@
 export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
 export CFLAGS="%{optflags}"
 %if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150500
-export CC=gcc-11
+export CC=gcc-12
+export CXX=g++-12
 %else
 %if 0%{?clang_build} == 0
 export CC=gcc
@@ -397,7 +396,7 @@
 export LDFLAGS="\$LDFLAGS -fPIC -Wl,-z,relro,-z,now"
 %ifarch ppc64 ppc64le
 %if 0%{?clang_build} == 0
-export CFLAGS="\$CFLAGS -mminimal-toc"
+#export CFLAGS="\$CFLAGS -mminimal-toc"
 %endif
 %endif
 %ifarch %ix86
@@ -494,7 +493,7 @@
 %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
+#ac_add_options --enable-lto
 %if 0%{?do_profiling}
 ac_add_options MOZ_PGO=1
 %endif
@@ -726,6 +725,10 @@
 %{progdir}/application.ini
 %{progdir}/dependentlibs.list
 %{progdir}/*.so
+%{progdir}/glxtest
+%if 0%{wayland_supported}
+%{progdir}/vaapitest
+%endif
 %{progdir}/omni.ja
 %{progdir}/fonts/
 %{progdir}/pingsender