diff --git a/firefox/MozillaFirefox.spec b/firefox/MozillaFirefox.spec index 0ae19c8..b3536f2 100644 --- a/firefox/MozillaFirefox.spec +++ b/firefox/MozillaFirefox.spec @@ -29,8 +29,8 @@ # major 69 # mainver %%major.99 %define major 115 -%define mainver %major.0 -%define orig_version 115.0 +%define mainver %major.3.1 +%define orig_version 115.3.1 %define orig_suffix esr %define update_channel release %define branding 1 @@ -64,6 +64,8 @@ BuildArch: i686 %{expand:%%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -msse2} %endif %endif +# Let mach set the appropriate LTO-flags for us, but correctly. +%{expand:%%global optflags %(echo "%optflags"|sed -e s/-flto=auto//) } # general build definitions %define progname firefox @@ -117,19 +119,22 @@ BuildRequires: makeinfo BuildRequires: mozilla-nspr-devel >= 4.35 BuildRequires: mozilla-nss-devel >= 3.90 BuildRequires: nasm >= 2.14 +%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 150000 BuildRequires: nodejs12 >= 12.22.12 -%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 BuildRequires: libXtst-devel -BuildRequires: python-libxml2 +#BuildRequires: python-libxml2 BuildRequires: python39 BuildRequires: python39-curses BuildRequires: python39-devel %else -%if 0%{?sle_version} >= 150000 && 0%{?sle_version} <= 150500 +%if 0%{?sle_version} > 150000 && 0%{?sle_version} <= 150500 +BuildRequires: nodejs12 >= 12.22.12 BuildRequires: python39 BuildRequires: python39-curses BuildRequires: python39-devel %else +# ALP +BuildRequires: nodejs >= 12.22.12 BuildRequires: python3 >= 3.7 BuildRequires: python3-curses BuildRequires: python3-devel @@ -228,8 +233,8 @@ 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-fix-broken-ffmpeg.patch Patch28: mozilla-partial-revert-1768632.patch -Patch29: mozilla-bmo1775202.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch @@ -380,8 +385,13 @@ export MOZ_TELEMETRY_REPORTING=1 export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system export CFLAGS="%{optflags}" %if 0%{?clang_build} == 0 +%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150500 export CC=gcc-12 export CXX=g++-12 +%else +export CC=gcc +export CXX=g++ +%endif %if 0%{?gcc_version:%{gcc_version}} >= 12 export CFLAGS="\$CFLAGS -fimplicit-constexpr" %endif @@ -400,6 +410,10 @@ export LDFLAGS="\$LDFLAGS -fPIC -Wl,-z,relro,-z,now" #export CFLAGS="\$CFLAGS -mminimal-toc" %endif %endif +%ifarch %ix86 +# Not enough memory on 32-bit systems, reduce debug info. +export CFLAGS="\$CFLAGS -g1" +%endif export CXXFLAGS="\$CFLAGS" export MOZCONFIG=$RPM_BUILD_DIR/mozconfig EOF @@ -489,7 +503,7 @@ 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 +%if 0%{?suse_version} > 1600 ac_add_options --enable-lto %if 0%{?do_profiling} ac_add_options MOZ_PGO=1 @@ -723,7 +737,7 @@ exit 0 %{progdir}/dependentlibs.list %{progdir}/*.so %{progdir}/glxtest -%if 0%{wayland_supported} +%if 0%{?sle_version} >= 150000 || 0%{?suse_version} == 1600 %{progdir}/vaapitest %endif %{progdir}/omni.ja diff --git a/firefox/mozilla-bmo1775202.patch b/firefox/mozilla-bmo1775202.patch deleted file mode 120000 index 4a9fb02..0000000 --- a/firefox/mozilla-bmo1775202.patch +++ /dev/null @@ -1 +0,0 @@ -../mozilla-bmo1775202.patch \ No newline at end of file diff --git a/firefox/mozilla-fix-broken-ffmpeg.patch b/firefox/mozilla-fix-broken-ffmpeg.patch new file mode 120000 index 0000000..7e707da --- /dev/null +++ b/firefox/mozilla-fix-broken-ffmpeg.patch @@ -0,0 +1 @@ +../mozilla-fix-broken-ffmpeg.patch \ No newline at end of file diff --git a/firefox/mozilla.sh.in b/firefox/mozilla.sh.in index dc12fa1..d743328 100644 --- a/firefox/mozilla.sh.in +++ b/firefox/mozilla.sh.in @@ -100,7 +100,7 @@ if [ "$WAYLAND_DISPLAY" ]; then fi # xinput2 (boo#1173320) -source /etc/os-release +. /etc/os-release if [ "$ID" = "opensuse-tumbleweed" ]; then export MOZ_USE_XINPUT2=1 fi @@ -151,7 +151,7 @@ if [ $MOZILLA_DOWN -ne 0 ]; then # Try with a local variant first, then without a local variant SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"` MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"` - function create_langpack_link() { + create_langpack_link() { local language=$* local langpack=langpack-${language}@firefox.mozilla.org.xpi if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then diff --git a/firefox/tar_stamps b/firefox/tar_stamps index 5200249..1d92331 100644 --- a/firefox/tar_stamps +++ b/firefox/tar_stamps @@ -1,10 +1,10 @@ PRODUCT="firefox" CHANNEL="release" -VERSION="115.0" +VERSION="115.3.1" VERSION_SUFFIX="esr" -PREV_VERSION="102.12" +PREV_VERSION="115.3.0" PREV_VERSION_SUFFIX="esr" #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-esr115" -RELEASE_TAG="4a8666238269bba3dcccc95812d13d2c8abd9252" -RELEASE_TIMESTAMP="20230629151558" +RELEASE_TAG="749617c4473c65f8aebb2e3254777ae99dc17cce" +RELEASE_TIMESTAMP="20230927234915" diff --git a/mozilla-bmo1775202.patch b/mozilla-bmo1775202.patch deleted file mode 100644 index f19e4b6..0000000 --- a/mozilla-bmo1775202.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Mike Hommey -Date: Sun, 14 Aug 2022 07:01:33 +0900 -Subject: Work around bz#1775202 to fix FTBFS on ppc64el - ---- - third_party/libwebrtc/moz.build | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build -index 976cf373..311519c 100644 ---- a/third_party/libwebrtc/moz.build -+++ b/third_party/libwebrtc/moz.build -@@ -566,6 +566,13 @@ if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] == "Linux": - "/third_party/libwebrtc/third_party/pipewire/pipewire_gn" - ] - -+if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux": -+ -+ DIRS += [ -+ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn", -+ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn", -+ ] -+ - if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux": - - DIRS += [ diff --git a/mozilla-fix-broken-ffmpeg.patch b/mozilla-fix-broken-ffmpeg.patch new file mode 100644 index 0000000..7da95fb --- /dev/null +++ b/mozilla-fix-broken-ffmpeg.patch @@ -0,0 +1,74 @@ +From: RĂ©mi Denis-Courmont +Date: Sun, 16 Jul 2023 15:18:02 +0000 (+0300) +Subject: avcodec/x86/mathops: clip constants used with shift instructions within inline assembly +X-Git-Url: https://git.videolan.org/?p=ffmpeg.git;a=commitdiff_plain;h=effadce6c756247ea8bae32dc13bb3e6f464f0eb + +avcodec/x86/mathops: clip constants used with shift instructions within inline assembly + +Fixes assembling with binutil as >= 2.41 + +Signed-off-by: James Almer + +NOTE: I've adjusted the paths to work with Firefox sources +--- + +diff --git a/media/ffvpx/libavcodec/x86/mathops.h b/media/ffvpx/libavcodec/x86/mathops.h +index 6298f5ed19..ca7e2dffc1 100644 +--- a/media/ffvpx/libavcodec/x86/mathops.h ++++ b/media/ffvpx/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } +