Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package seamonkey for openSUSE:Factory checked in at 2025-08-29 18:35:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/seamonkey (Old) and /work/SRC/openSUSE:Factory/.seamonkey.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seamonkey" Fri Aug 29 18:35:54 2025 rev:42 rq:1301636 version:2.53.21 Changes: -------- --- /work/SRC/openSUSE:Factory/seamonkey/seamonkey.changes 2025-08-25 20:38:57.174239571 +0200 +++ /work/SRC/openSUSE:Factory/.seamonkey.new.1977/seamonkey.changes 2025-08-29 18:36:44.990015900 +0200 @@ -1,0 +2,44 @@ +Wed Aug 27 23:34:52 UTC 2025 - Tristan Miller <psychon...@nothingisreal.com> + +- remove SUSE_ASNEEDED from spec file +- add build options for using system jpg, png, nss, nspr, and zlib + libraries + +------------------------------------------------------------------- +Tue Aug 26 18:27:50 UTC 2025 - Tristan Miller <psychon...@nothingisreal.com> + +- refactor spec file +- rename patches according to their source/bug and to the + earliest version of the package they were applied to: + seamonkey-icu.patch => seamonkey-2.53.21-bmo1927380.patch + mozilla-bmo1862601.patch => seamonkey-2.53.21-bmo1862601.patch + mozilla-bmo1896958.patch => seamonkey-2.53.19-bmo1896958.patch + mach-use-python-311.patch => seamonkey-2.53.20-mach-use-python-311.patch + reproducible.patch => seamonkey-2.53.20-boo1237231.patch + seamonkey-man-page.patch => seamonkey-2.53.7.1-man-page.patch + seamonkey-lto.patch => seamonkey-2.53.3-lto.patch + mozilla-ntlm-full-path.patch => seamonkey-2.1.0-bmo634334.patch + mozilla-nongnome-proxies.patch => seamonkey-2.0.0-nongnome-proxies.patch + mozilla-bmo531915.patch => seamonkey-2.53.17.1-bmo531915.patch +- remove build workarounds for Leap 15.5 (now unsupported) +- add seamonkey-2.53.20-system-av1.patch for using system AV1 +- add seamonkey-2.53.21-bmo1332139.patch for using system VPx +- remove spec file code specific to aarch64 and PPC; these are + no longer supported upstream and are difficult to get to build +- remove spec file code that since r207 had been setting an invalid + value for the network.negotiate-auth.gsslib preference +- remove (most probably obsolete) -fno-string-aliasing, + -fimplicit-constexpr, fno-delete-null-pointer-checks, + -fno-lifetime-dse, and fno-schedule-insns2 compiler options in spec + file +- make compiler output less chatty by removing -Wall +- add a listsettings recipe to the GNU Makefile that runs + mach settings --list +- add seamonkey-2.53.21-bmo1662867.patch to allow mach settings + to run +- import some compiler/linker settings and syntactic sugar from + Fedora's spec file by Dmitry Butskoy et al. +- re-enable elf-hack since builds seem to work now +- apply existing ICU fixes to Leap 16 + +------------------------------------------------------------------- Old: ---- mach-use-python-311.patch mozilla-bmo1862601.patch mozilla-bmo1896958.patch mozilla-bmo531915.patch mozilla-nongnome-proxies.patch mozilla-ntlm-full-path.patch reproducible.patch seamonkey-icu.patch seamonkey-lto.patch seamonkey-man-page.patch New: ---- seamonkey-2.0.0-nongnome-proxies.patch seamonkey-2.1.0-bmo634334.patch seamonkey-2.53.17.1-bmo531915.patch seamonkey-2.53.19-bmo1896958.patch seamonkey-2.53.20-boo1237231.patch seamonkey-2.53.20-mach-use-python-311.patch seamonkey-2.53.20-system-av1.patch seamonkey-2.53.21-bmo1332139.patch seamonkey-2.53.21-bmo1662867.patch seamonkey-2.53.21-bmo1862601.patch seamonkey-2.53.21-bmo1927380.patch seamonkey-2.53.3-lto.patch seamonkey-2.53.7.1-man-page.patch ----------(Old B)---------- Old: mozilla-bmo1896958.patch => seamonkey-2.53.19-bmo1896958.patch mach-use-python-311.patch => seamonkey-2.53.20-mach-use-python-311.patch reproducible.patch => seamonkey-2.53.20-boo1237231.patch Old: seamonkey-icu.patch => seamonkey-2.53.21-bmo1927380.patch mozilla-bmo1862601.patch => seamonkey-2.53.21-bmo1862601.patch mozilla-bmo1896958.patch => seamonkey-2.53.19-bmo1896958.patch Old: mozilla-bmo1862601.patch => seamonkey-2.53.21-bmo1862601.patch mozilla-bmo1896958.patch => seamonkey-2.53.19-bmo1896958.patch mach-use-python-311.patch => seamonkey-2.53.20-mach-use-python-311.patch Old: mozilla-nongnome-proxies.patch => seamonkey-2.0.0-nongnome-proxies.patch mozilla-bmo531915.patch => seamonkey-2.53.17.1-bmo531915.patch - remove build workarounds for Leap 15.5 (now unsupported) Old: mozilla-ntlm-full-path.patch => seamonkey-2.1.0-bmo634334.patch mozilla-nongnome-proxies.patch => seamonkey-2.0.0-nongnome-proxies.patch mozilla-bmo531915.patch => seamonkey-2.53.17.1-bmo531915.patch Old: seamonkey-lto.patch => seamonkey-2.53.3-lto.patch mozilla-ntlm-full-path.patch => seamonkey-2.1.0-bmo634334.patch mozilla-nongnome-proxies.patch => seamonkey-2.0.0-nongnome-proxies.patch Old: mach-use-python-311.patch => seamonkey-2.53.20-mach-use-python-311.patch reproducible.patch => seamonkey-2.53.20-boo1237231.patch seamonkey-man-page.patch => seamonkey-2.53.7.1-man-page.patch Old: earliest version of the package they were applied to: seamonkey-icu.patch => seamonkey-2.53.21-bmo1927380.patch mozilla-bmo1862601.patch => seamonkey-2.53.21-bmo1862601.patch Old: seamonkey-man-page.patch => seamonkey-2.53.7.1-man-page.patch seamonkey-lto.patch => seamonkey-2.53.3-lto.patch mozilla-ntlm-full-path.patch => seamonkey-2.1.0-bmo634334.patch Old: reproducible.patch => seamonkey-2.53.20-boo1237231.patch seamonkey-man-page.patch => seamonkey-2.53.7.1-man-page.patch seamonkey-lto.patch => seamonkey-2.53.3-lto.patch ----------(Old E)---------- ----------(New B)---------- New: mozilla-ntlm-full-path.patch => seamonkey-2.1.0-bmo634334.patch mozilla-nongnome-proxies.patch => seamonkey-2.0.0-nongnome-proxies.patch mozilla-bmo531915.patch => seamonkey-2.53.17.1-bmo531915.patch New: seamonkey-lto.patch => seamonkey-2.53.3-lto.patch mozilla-ntlm-full-path.patch => seamonkey-2.1.0-bmo634334.patch mozilla-nongnome-proxies.patch => seamonkey-2.0.0-nongnome-proxies.patch New: mozilla-nongnome-proxies.patch => seamonkey-2.0.0-nongnome-proxies.patch mozilla-bmo531915.patch => seamonkey-2.53.17.1-bmo531915.patch - remove build workarounds for Leap 15.5 (now unsupported) New: mozilla-bmo1862601.patch => seamonkey-2.53.21-bmo1862601.patch mozilla-bmo1896958.patch => seamonkey-2.53.19-bmo1896958.patch mach-use-python-311.patch => seamonkey-2.53.20-mach-use-python-311.patch New: mach-use-python-311.patch => seamonkey-2.53.20-mach-use-python-311.patch reproducible.patch => seamonkey-2.53.20-boo1237231.patch seamonkey-man-page.patch => seamonkey-2.53.7.1-man-page.patch New: mozilla-bmo1896958.patch => seamonkey-2.53.19-bmo1896958.patch mach-use-python-311.patch => seamonkey-2.53.20-mach-use-python-311.patch reproducible.patch => seamonkey-2.53.20-boo1237231.patch New:- remove build workarounds for Leap 15.5 (now unsupported) - add seamonkey-2.53.20-system-av1.patch for using system AV1 - add seamonkey-2.53.21-bmo1332139.patch for using system VPx New:- add seamonkey-2.53.20-system-av1.patch for using system AV1 - add seamonkey-2.53.21-bmo1332139.patch for using system VPx - remove spec file code specific to aarch64 and PPC; these are New: mach settings --list - add seamonkey-2.53.21-bmo1662867.patch to allow mach settings to run New: seamonkey-icu.patch => seamonkey-2.53.21-bmo1927380.patch mozilla-bmo1862601.patch => seamonkey-2.53.21-bmo1862601.patch mozilla-bmo1896958.patch => seamonkey-2.53.19-bmo1896958.patch New: earliest version of the package they were applied to: seamonkey-icu.patch => seamonkey-2.53.21-bmo1927380.patch mozilla-bmo1862601.patch => seamonkey-2.53.21-bmo1862601.patch New: seamonkey-man-page.patch => seamonkey-2.53.7.1-man-page.patch seamonkey-lto.patch => seamonkey-2.53.3-lto.patch mozilla-ntlm-full-path.patch => seamonkey-2.1.0-bmo634334.patch New: reproducible.patch => seamonkey-2.53.20-boo1237231.patch seamonkey-man-page.patch => seamonkey-2.53.7.1-man-page.patch seamonkey-lto.patch => seamonkey-2.53.3-lto.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ seamonkey.spec ++++++ --- /var/tmp/diff_new_pack.yRkGUQ/_old 2025-08-29 18:36:49.790221092 +0200 +++ /var/tmp/diff_new_pack.yRkGUQ/_new 2025-08-29 18:36:49.802221605 +0200 @@ -17,33 +17,101 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # -# upstream default is clang (to use gcc for large parts set to 0) -%define clang_build 0 +### build options + +# Components to include/exclude +%bcond_without dominspector +%bcond_without irc +%bcond_without localizations + +# System vs. bundled libraries +%bcond_without system_webp +%bcond_without system_icu +%bcond_without system_libvpx +%bcond_without system_ffi +%bcond_without system_nspr +%bcond_without system_nss +%bcond_without system_zlib +# Disable system AV1 on Leap; as of 15.6 dav1d is not yet packaged for it +%if 0%{?suse_version} > 1600 +%bcond_without system_av1 +%endif +%bcond_with system_jpeg +%bcond_with system_png + +# Compiler/linker options +%bcond_with clang +%ifarch %ix86 +# As of 2.53.3 (and still in 2.53.21) i586 builds fail with LTO +%bcond_with lto +%else +%bcond_without lto +%endif +%bcond_with gold + + +%define progname %{name} +%define sources_subdir %{name}-%{version} +%define prefix /usr +%define progdir %_libdir/%{progname} +### build options end + +%define releasedate 20250605000000 Name: seamonkey +Summary: An integrated web browser, composer, mail/news client, and IRC client +Version: 2.53.21 +Release: 0 +License: MPL-2.0 +Group: Productivity/Networking/Web/Browsers +URL: https://www.seamonkey-project.org/ + +Source0: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source.tar.xz +Source1: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source-l10n.tar.xz +Source2: seamonkey-desktop.tar.bz2 +Source3: spellcheck.js +Source4: mozilla.sh.in +Source5: suse-default-prefs.js +Source6: seamonkey-rpmlintrc +Source7: seamonkey-appdata.tar.bz2 +Source8: seamonkey-GNUmakefile + +Patch1: seamonkey-2.0.0-nongnome-proxies.patch +Patch2: seamonkey-2.1.0-bmo634334.patch +Patch3: seamonkey-2.53.3-lto.patch +Patch4: seamonkey-2.53.7.1-man-page.patch +Patch5: seamonkey-2.53.20-boo1237231.patch +Patch6: seamonkey-2.53.17.1-bmo531915.patch +Patch7: seamonkey-2.53.19-bmo1896958.patch +Patch8: seamonkey-2.53.20-mach-use-python-311.patch +Patch9: seamonkey-2.53.21-bmo1862601.patch +Patch10: seamonkey-2.53.21-bmo1927380.patch +Patch11: seamonkey-2.53.20-system-av1.patch +Patch12: seamonkey-2.53.21-bmo1332139.patch +Patch13: seamonkey-2.53.21-bmo1662867.patch + BuildRequires: Mesa-devel BuildRequires: alsa-devel BuildRequires: autoconf213 BuildRequires: dbus-1-glib-devel BuildRequires: fdupes -# Use GCC 14 on Tumbleweed because builds of 2.53.21 fail with GCC 15 -%if 0%{?suse_version} > 1600 -BuildRequires: gcc14-c++ -%else -BuildRequires: gcc-c++ -%endif BuildRequires: hunspell-devel -# Using system AV1 decoder depends on pending patch from -# https://bugzilla.mozilla.org/show_bug.cgi?id=1559213 -#BuildRequires: dav1d5-devel +%if 0%{?suse_version} > 1600 && %{with system_av1} +BuildRequires: libaom-devel +BuildRequires: dav1d-devel +%endif BuildRequires: libiw-devel BuildRequires: libnotify-devel BuildRequires: libproxy-devel -#BuildRequires: libvpx-devel # Compile errors with 1.10.0 +%if %{with system_libvpx} +BuildRequires: libvpx-devel +%endif %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200 && 0%{?is_opensuse} BuildRequires: libwebp-devel >= 1.0.0 %endif +%if %{with system_icu} BuildRequires: libicu-devel >= 67.1 +%endif BuildRequires: makeinfo BuildRequires: memory-constraints BuildRequires: python311-base @@ -60,7 +128,9 @@ BuildRequires: pkgconfig(gtk+-3.0) >= 3.22.30 BuildRequires: pkgconfig(gtk+-unix-print-2.0) BuildRequires: pkgconfig(gtk+-unix-print-3.0) +%if %{with system_ffi} BuildRequires: pkgconfig(libffi) > 3.0.9 +%endif BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(xcomposite) %if 0%{?suse_version} > 1600 @@ -73,38 +143,25 @@ BuildRequires: rust-cbindgen BuildRequires: git BuildRequires: nasm >= 2.13 -#BuildRequires: llvm-devel BuildRequires: clang-devel +%if %{with clang} +BuildRequires: clang +%else +# Use GCC 14 on Tumbleweed because builds of 2.53.21 fail with GCC 15 +%if 0%{?suse_version} > 1600 +%define gcc_version 14 +%endif +BuildRequires: gcc%{?gcc_version:%gcc_version}-c++ +%if %{with gold} +BuildRequires: binutils-gold +%endif +%endif + +PreReq: /bin/sh coreutils +BuildRoot: %{_tmppath}/%{name}-%{version}-build + Provides: web_browser Provides: browser(npapi) -Version: 2.53.21 -Release: 0 -%define releasedate 20250605000000 -Summary: An integrated web browser, composer, mail/news client, and IRC client -License: MPL-2.0 -Group: Productivity/Networking/Web/Browsers -Url: https://www.seamonkey-project.org/ -Source: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source.tar.xz -Source1: seamonkey-desktop.tar.bz2 -Source2: spellcheck.js -Source3: mozilla.sh.in -Source4: suse-default-prefs.js -Source5: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source-l10n.tar.xz -Source7: seamonkey-rpmlintrc -Source11: seamonkey-appdata.tar.bz2 -Source12: seamonkey-GNUmakefile -Patch1: mozilla-nongnome-proxies.patch -Patch2: mozilla-ntlm-full-path.patch -Patch3: seamonkey-lto.patch -Patch4: seamonkey-man-page.patch -Patch5: reproducible.patch -Patch6: mozilla-bmo531915.patch -Patch7: mozilla-bmo1896958.patch -Patch8: mach-use-python-311.patch -Patch9: mozilla-bmo1862601.patch -Patch10: seamonkey-icu.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-build -PreReq: /bin/sh coreutils Provides: seamonkey-mail = %{version} Obsoletes: seamonkey-mail <= 2.0 Provides: seamonkey-spellchecker = %{version} @@ -119,42 +176,35 @@ # therefore the Packman version is required # minimum version of libavcodec is 53 Recommends: libavcodec-full >= 0.10.16 -%define progname %{name} -%define sources_subdir %{name}-%{version} -%define prefix /usr -%define progdir %_libdir/%{progname} -%define libgssapi libgssapi_krb5.so.2 -### build options -%define has_system_cairo 0 -%define localize 1 -%define with_chatzilla 1 -%define with_domi 1 -### build options end # It no longer makes sense to include separate language packs because these # apply only to the main SeaMonkey suite, but not to the integrated Chatzilla # or Calendar -%if %localize +%if %{with localizations} Provides: seamonkey-translations-common = %{version} Obsoletes: seamonkey-translations-common < 2.53.6 Provides: seamonkey-translations-other = %{version} Obsoletes: seamonkey-translations-other < 2.53.6 Provides: locale(%{name}:cs;de;el;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;ka;nb_NO;nl;pl;pt_BR;pt_PT;ru;sk;sv_SE;zh_CN;zh_TW) %endif -%if 0%{?with_chatzilla} == 0 +%if %{with irc} Provides: seamonkey-irc = %{version} %endif -%if 0%{?with_domi} == 0 +%if %{with dominspector} Provides: seamonkey-dom-inspector = %{version} %endif %define __provides_exclude ^lib.*\\.so.*$ %define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libld.*|libprldap.*)$ # the following conditions are always met in Factory by definition +%if %{with system_nspr} BuildRequires: mozilla-nspr-devel >= 4.13.1 PreReq: mozilla-nspr >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nspr) +%endif +%if %{with system_nss} %if 0%{?sle_version} != 150500 && 0%{?is_opensuse} BuildRequires: mozilla-nss-devel >= 3.28.6 PreReq: mozilla-nss >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nss) %endif +%endif %description SeaMonkey is an all-in-one Internet application suite containing a web @@ -166,6 +216,7 @@ interface. Many Thunderbird and (legacy) Firefox extensions are compatible with SeaMonkey. + %package irc Summary: IRC for SeaMonkey Group: Productivity/Networking/IRC @@ -193,8 +244,8 @@ SeaMonkey. This is of great use to people who are doing SeaMonkey chrome development or web page development. -%if %localize +%if %{with localizations} %package translations-common Summary: Common translations for SeaMonkey Group: System/Localization @@ -217,20 +268,21 @@ of SeaMonkey. %endif + %prep -%setup -q -b 1 -b 11 -c +%setup -q -b 2 -b 7 -c mv %{sources_subdir} mozilla -%if %localize -%setup -q -T -D -c -n %{name}-%{version}/l10n -a 5 +%if %{with localizations} +%setup -q -T -D -c -n %{name}-%{version}/l10n -a 1 %setup -q -T -D %endif cd mozilla -cp %{SOURCE12} GNUmakefile +cp %{SOURCE8} GNUmakefile %patch -P 1 -p1 %patch -P 2 -p2 @@ -241,90 +293,102 @@ %patch -P 7 -p1 %patch -P 8 -p1 -# Fix --with-system-icu builds on Tumbleweed; see https://bugzilla.mozilla.org/show_bug.cgi?id=1862601 and https://bugzilla.mozilla.org/show_bug.cgi?id=1927380 -%if 0%{?suse_version} > 1600 +%if %{with system_icu} +%if 0%{?suse_version} >= 1600 %patch -P 9 -p1 %patch -P 10 -p1 %endif +%endif + +%if 0%{?suse_version} > 1600 && %{with system_av1} +%patch -P 11 -p1 +%endif + +%if %{with system_libvpx} +%patch -P 12 -p1 +%endif + +%patch -P 13 -p1 + +%define with_sys() ac_add_options --with%%{!?with_system_%1:out}-system-%1 +%define endis_sys() ac_add_options --%%{?with_system_%1:enable}%%{!?with_system_%1:disable}-system-%1 +%define endis() ac_add_options --%%{?with_%1:enable}%%{!?with_%1:disable}-%1 cat << EOF > .mozconfig +### Various build options mk_add_options MOZILLA_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1 mk_add_options MOZ_MILESTONE_RELEASE=1 mk_add_options MOZ_MAKE_FLAGS=%{?_smp_mflags} #mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj -ac_add_options --enable-application=comm/suite ac_add_options --libdir=%{_libdir} ac_add_options --prefix=%{_prefix} ac_add_options --mandir=%{_mandir} -%if %localize -ac_add_options --with-l10n-base=$RPM_BUILD_DIR/seamonkey-%{version}/l10n -%endif ac_add_options --disable-tests ac_add_options --disable-install-strip ac_add_options --enable-release -ac_add_options --enable-default-toolkit=cairo-gtk3 +%if %{with localizations} +ac_add_options --with-l10n-base=$RPM_BUILD_DIR/seamonkey-%{version}/l10n +%endif -# Removed for SeaMonkey 2.53.20 -#ac_add_options --disable-gconf +#ac_add_options --disable-elf-hack -# Elfhack fails on ix86: https://bugzilla.mozilla.org/show_bug.cgi?id=1706264 -%ifarch aarch64 ppc %arm %ix86 -ac_add_options --disable-elf-hack -%endif +%{expand:%endis gold} +%ifarch %ix86 +ac_add_options --disable-debug-symbols +%endif ac_add_options --disable-debug +ac_add_options --enable-alsa +ac_add_options --enable-default-toolkit=cairo-gtk3 +ac_add_options --enable-libproxy -ac_add_options --with-system-nspr -%if 0%{?sle_version} != 150500 && 0%{?is_opensuse} -ac_add_options --with-system-nss -%endif -ac_add_options --with-system-zlib -# Removed for SeaMonkey 2.53.20 -#ac_add_options --with-system-bz2 -%if 0%{?suse_version} > 1600 || 0%{?sle_version} >= 150200 && 0%{?is_opensuse} -ac_add_options --with-system-webp -%endif +### Features + +### Components to include +ac_add_options --enable-application=comm/suite +%{expand:%endis dominspector} +%{expand:%endis irc} +ac_add_options --disable-crashreporter +ac_add_options --disable-updater + +# Calendar is always enabled as it's required to build various +# components and addons +ac_add_options --enable-calendar -ac_add_options --with-system-icu -# Compile errors with system libvpx-1.10.0 -#ac_add_options --with-system-libvpx +### System vs. bundled libraries -# Using system AV1 decoder depends on pending patch from -# https://bugzilla.mozilla.org/show_bug.cgi?id=1559213 -# ac_add_options --with-system-av1 +%{expand:%with_sys nspr} +%{expand:%with_sys nss} +%{expand:%with_sys zlib} +%{expand:%with_sys icu} +%{expand:%with_sys libvpx} +%{expand:%with_sys webp} +%{expand:%endis_sys ffi} +%if 0%{?suse_version} > 1600 +%{expand:%with_sys av1} +%endif # Mozilla's internal JPEG library is used because of the "turbo" patches # that make it more efficient than the stock system libjpeg: # https://bugzilla.mozilla.org/show_bug.cgi?id=573948 -#ac_add_options --with-system-jpeg +%{expand:%with_sys jpeg} # The stock system libpng lacks support for APNG, whereas Mozilla's # internal version suports APNG -#ac_add_options--with-system-png +%{expand:%with_sys png} -ac_add_options --disable-crashreporter -ac_add_options --disable-updater -# Removed for SeaMonkey 2.53.20 -#ac_add_options --enable-startup-notification -ac_add_options --enable-alsa -%if %has_system_cairo -ac_add_options --enable-system-cairo -%endif -ac_add_options --enable-libproxy -%if 0%{?with_chatzilla} -ac_add_options --with-irc -%endif -%if %with_domi -ac_add_options --with-dominspector -%endif -ac_add_options --enable-calendar EOF %build + +export MOZ_BUILD_DATE=%{releasedate} +export MOZILLA_OFFICIAL=1 +export BUILD_OFFICIAL=1 + # no need to add build time to binaries modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")" DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\"" @@ -332,65 +396,60 @@ find . -regex ".*\.c\|.*\.cpp\|.*\.h" \ -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} + -# As of 2.53.3, i586 builds are failing due to out-of-memory issues, -# so we disable LTO. (This workaround is still necessary as of -# 2.53.7.1.) -%ifarch %ix86 -%define _lto_cflags %{nil} +# Compiler settings + +MOZ_OPT_FLAGS=$RPM_OPT_FLAGS + +# Make compiler output less chatty +MOZ_OPT_FLAGS=$(echo $MOZ_OPT_FLAGS | sed -e 's/-Wall//g') + +%if %{without clang} +export CC=gcc%{?gcc_version:-%gcc_version} +export CXX=g++%{?gcc_version:-%gcc_version} %endif -# -# As of 2.53.13, Tumbleweed builds are failing due to the linker -# issue <https://bugzilla.mozilla.org/show_bug.cgi?id=1778981> -# so we disable LTO. -%if 0%{?suse_version} > 1600 + +# Linker settings + %define _lto_cflags %{nil} -%endif -export SUSE_ASNEEDED=0 -export MOZ_BUILD_DATE=%{releasedate} -export MOZILLA_OFFICIAL=1 -export BUILD_OFFICIAL=1 +MOZ_LD_FLAGS=$RPM_LD_FLAGS -export CFLAGS="%{optflags} -fno-strict-aliasing" -%if 0%{?clang_build} == 0 -# Use GCC 14 on Tumbleweed because builds of 2.53.21 fail with GCC 15 -%if 0%{?suse_version} > 1600 -export CC=gcc-14 -export CXX=g++-14 -%else -export CC=gcc -export CXX=g++ -%endif -%if 0%{?gcc_version:%{gcc_version}} >= 12 -export CFLAGS="$CFLAGS -fimplicit-constexpr" +# Reduce memory consumption when building for i586 +%ifarch %ix86 +%if %{without gold} +MOZ_LD_FLAGS="$MOZ_LD_FLAGS -Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--no-map-whole-files -Wl,--hash-size=31" %endif +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -g1" %endif -if [ $(gcc -dumpversion | awk -F. '{print $1}') -ge 6 ]; then -export CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2" -fi -%ifarch %arm -export CFLAGS="${CFLAGS/-g / }" -%endif -%ifarch %arm %ix86 -# Limit RAM usage during link -export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" -%endif -%ifarch ppc64 ppc64le -%if 0%{?clang_build} == 0 -export CFLAGS="$CFLAGS -mminimal-toc" +# LTO settings +# TODO: Perhaps just let SeaMonkey do this via --enable-lto? +%if %{with lto} +MOZ_LD_FLAGS=$(echo $MOZ_LD_FLAGS | sed -e 's/-flto\b//g') +%if %{with clang} +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -flto=thin" +MOZ_LD_FLAGS="$MOZ_LD_FLAGS -flto=thin -fuse-ld=lld -Wl,-plugin-opt=-import-instr-limit=10" +export AR=llvm-ar +export RANLIB=llvm-ranlib +%else +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -flto=auto -flifetime-dse=1" +MOZ_LD_FLAGS="$MOZ_LD_FLAGS -flto=auto -flifetime-dse=1" +export AR=gcc-ar%{?gcc_version:-%gcc_version} +export RANLIB=gcc-ranlib%{?gcc_version:-%gcc_version} %endif %endif -export CXXFLAGS="$CFLAGS" -# +export CFLAGS=$MOZ_OPT_FLAGS +export CXXFLAGS=$MOZ_OPT_FLAGS +export LDFLAGS=$MOZ_LD_FLAGS + %limit_build -m 2000 cd mozilla make %{?_smp_mflags} -%if %localize +%if %{with localizations} make -j1 locales %endif -# + %install @@ -411,16 +470,15 @@ sed "s:%%PREFIX:%{prefix}:g s:%%PROGDIR:%{progdir}:g s:%%APPNAME:seamonkey:g" \ - %{SOURCE3} > $RPM_BUILD_ROOT%{progdir}/%{progname}.sh + %{SOURCE4} > $RPM_BUILD_ROOT%{progdir}/%{progname}.sh chmod 755 $RPM_BUILD_ROOT%{progdir}/%{progname}.sh ln -sf ../..%{progdir}/%{progname}.sh $RPM_BUILD_ROOT%{_bindir}/%{progname} # apply SUSE defaults -sed -e 's,RPM_VERSION,%{version}-%{release},g -#s,GSSAPI,%{libgssapi},g' \ - %{SOURCE4} > suse-default-prefs +sed -e 's,RPM_VERSION,%{version}-%{release},g' \ + %{SOURCE5} > suse-default-prefs cp suse-default-prefs $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-openSUSE.js rm suse-default-prefs -install -m 644 %{SOURCE2} %{buildroot}%{progdir}/defaults/pref/ +install -m 644 %{SOURCE3} %{buildroot}%{progdir}/defaults/pref/ # Desktop definition mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications install -m 644 $RPM_BUILD_DIR/*.desktop \ @@ -484,13 +542,13 @@ %{_datadir}/appdata/*.appdata.xml %{_mandir}/*/* -%if 0%{?with_chatzilla} +%if %{with irc} %files irc %defattr(-,root,root) %{progdir}/extensions/{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}.xpi %endif -%if 0%{?with_domi} +%if %{with dominspector} %files dom-inspector %defattr(-,root,root) %{progdir}/extensions/inspector*.xpi ++++++ seamonkey-2.0.0-nongnome-proxies.patch ++++++ From: Wolfgang Rosenauer, Tristan Miller Subject: Do not use gconf for proxy settings if not running within Gnome diff -ruN seamonkey-2.53.17b1.orig/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp seamonkey-2.53.17b1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp --- seamonkey-2.53.17b1.orig/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2023-06-10 12:41:26.000000000 +0200 +++ seamonkey-2.53.17b1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2023-07-12 09:41:08.047344985 +0200 @@ -55,10 +55,14 @@ nsresult nsUnixSystemProxySettings::Init() { - mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID); - if (mGSettings) { - mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"), - getter_AddRefs(mProxySettings)); + // only use GSettings if that is a GNOME session + const char* sessionType = PR_GetEnv("DESKTOP_SESSION"); + if (sessionType && !strcmp(sessionType, "gnome")) { + mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID); + if (mGSettings) { + mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"), + getter_AddRefs(mProxySettings)); + } } return NS_OK; ++++++ seamonkey-2.1.0-bmo634334.patch ++++++ # HG changeset patch # User Petr Cerny <pce...@novell.com> # Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6 # Parent 03565086f1e230cf6f0f6c01bf9a792c732de50b Bug 634334 - call to the ntlm_auth helper fails diff -ruN seamonkey/mozilla/extensions/auth/nsAuthSambaNTLM.cpp seamonkey.new/mozilla/extensions/auth/nsAuthSambaNTLM.cpp --- seamonkey/mozilla/extensions/auth/nsAuthSambaNTLM.cpp 2020-02-18 00:37:50.000000000 +0100 +++ seamonkey.new/mozilla/extensions/auth/nsAuthSambaNTLM.cpp 2020-03-02 12:53:27.147346423 +0100 @@ -174,7 +174,7 @@ return NS_ERROR_FAILURE; const char* const args[] = { - "ntlm_auth", + "/usr/bin/ntlm_auth", "--helper-protocol", "ntlmssp-client-1", "--use-cached-creds", "--username", username, ++++++ seamonkey-2.53.17.1-bmo531915.patch ++++++ # HG changeset patch # User Wolfgang Rosenauer <w...@rosenauer.org> # Parent fa8a5832a374ccd7af5db927b992b5d9f15273ef diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h --- a/modules/fdlibm/src/math_private.h +++ b/modules/fdlibm/src/math_private.h @@ -25,19 +25,24 @@ #include "fdlibm.h" /* * Emulate FreeBSD internal double types. * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t */ +#ifdef __i386__ +typedef long double __double_t; +typedef long double __float_t; +#else typedef double __double_t; +typedef float __float_t; +#endif typedef __double_t double_t; -typedef float __float_t; /* * The original fdlibm code used statements like: * n0 = ((*(int*)&one)>>29)^1; * index of high word * * ix0 = *(n0+(int*)&x); * high word of x * * ix1 = *((1-n0)+(int*)&x); * low word of x * * to dig two 32 bit words out of the 64 bit IEEE floating point * value. That is non-ANSI, and, moreover, the gcc instruction ++++++ seamonkey-2.53.19-bmo1896958.patch ++++++ ++++ 24887 lines (skipped) ++++++ seamonkey-2.53.20-boo1237231.patch ++++++ https://github.com/mozilla/gecko-dev/commit/025982b6714051c747dcb9600d6e5c92d2dcaf7b >From 025982b6714051c747dcb9600d6e5c92d2dcaf7b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.courno...@gmail.com> Date: Thu, 16 Mar 2023 14:01:58 +0000 Subject: [PATCH] Bug 1817032 - Honor SOURCE_DATE_EPOCH to build langpacks reproducibly. r=eem...@mozilla.com Differential Revision: https://phabricator.services.mozilla.com/D169979 --- .../mozbuild/action/langpack_manifest.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py index f82a329cc..10e42fe99 100644 --- a/python/mozbuild/mozbuild/action/langpack_manifest.py +++ b/python/mozbuild/mozbuild/action/langpack_manifest.py @@ -16,6 +16,7 @@ import os import json import io import datetime +import time import requests import mozversioncontrol import mozpack.path as mozpath @@ -36,9 +37,17 @@ def write_file(path, content): pushlog_api_url = "{0}/json-rev/{1}" +def get_build_date(): + """Return the current date or SOURCE_DATE_EPOCH, if set.""" + return datetime.datetime.utcfromtimestamp( + int(os.environ.get("SOURCE_DATE_EPOCH", time.time())) + ) + + ### -# Retrievers a UTC datetime of the push for the current commit -# from a mercurial clone directory. +# Retrieves a UTC datetime of the push for the current commit from a +# mercurial clone directory. The SOURCE_DATE_EPOCH environment +# variable is honored, for reproducibility. # # Args: # path (str) - path to a directory @@ -54,7 +63,7 @@ def get_dt_from_hg(path): with mozversioncontrol.get_repository_object(path=path) as repo: phase = repo._run("log", "-r", ".", "-T" "{phase}") if phase.strip() != "public": - return datetime.datetime.utcnow() + return get_build_date() repo_url = repo._run("paths", "default") repo_url = repo_url.strip().replace("ssh://", "https://") repo_url = repo_url.replace("hg://", "https://") @@ -99,7 +108,7 @@ def get_timestamp_for_locale(path): dt = get_dt_from_hg(path) if dt is None: - dt = datetime.datetime.utcnow() + dt = get_build_date() dt = dt.replace(microsecond=0) return dt.strftime("%Y%m%d%H%M%S") ++++++ seamonkey-2.53.20-mach-use-python-311.patch ++++++ --- mozilla/mach~ 2025-03-19 05:32:33.217982928 +0000 +++ mozilla/mach 2025-03-19 05:32:42.248303296 +0000 @@ -87,7 +87,7 @@ esac py3executable=$state_dir/_virtualenvs/mach/$bin_path/python else - py3executable=python3 + py3executable=python3.11 fi # Check whether we need to run with the native Python 3 interpreter. ++++++ seamonkey-2.53.20-system-av1.patch ++++++ diff -Nrup mozilla/config/external/moz.build mozilla-OK/config/external/moz.build --- mozilla/config/external/moz.build 2024-12-11 23:05:11.000000000 +0300 +++ mozilla-OK/config/external/moz.build 2024-12-18 22:25:57.015364278 +0300 @@ -32,8 +32,9 @@ if not CONFIG['MOZ_SYSTEM_LIBVPX']: external_dirs += ['media/libvpx'] if CONFIG['MOZ_AV1']: - external_dirs += ['media/libaom'] - external_dirs += ['media/libdav1d'] + if not CONFIG['MOZ_SYSTEM_AV1']: + external_dirs += ['media/libaom'] + external_dirs += ['media/libdav1d'] if not CONFIG['MOZ_SYSTEM_PNG']: external_dirs += ['media/libpng'] diff -Nrup mozilla/config/system-headers.mozbuild mozilla-OK/config/system-headers.mozbuild --- mozilla/config/system-headers.mozbuild 2024-12-11 23:05:11.000000000 +0300 +++ mozilla-OK/config/system-headers.mozbuild 2024-12-18 22:25:57.015364278 +0300 @@ -1289,6 +1289,14 @@ if CONFIG['MOZ_ENABLE_LIBPROXY']: 'proxy.h', ] +if CONFIG['MOZ_SYSTEM_AV1']: + system_headers += [ + 'aom/aom_decoder.h', + 'aom/aomdx.h', + 'aom/aom_image.h', + 'dav1d/dav1d.h', + ] + if CONFIG['MOZ_SYSTEM_LIBVPX']: system_headers += [ 'vpx_mem/vpx_mem.h', diff -Nrup mozilla/dom/media/platforms/moz.build mozilla-OK/dom/media/platforms/moz.build --- mozilla/dom/media/platforms/moz.build 2024-12-11 23:05:11.000000000 +0300 +++ mozilla-OK/dom/media/platforms/moz.build 2024-12-18 22:25:57.016364270 +0300 @@ -74,6 +74,11 @@ if CONFIG['MOZ_AV1']: 'agnostic/AOMDecoder.cpp', 'agnostic/DAV1DDecoder.cpp', ] + if CONFIG['MOZ_SYSTEM_AV1']: + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] if CONFIG['MOZ_APPLEMEDIA']: EXPORTS += [ diff -Nrup mozilla/toolkit/moz.configure mozilla-OK/toolkit/moz.configure --- mozilla/toolkit/moz.configure 2024-12-11 23:05:11.000000000 +0300 +++ mozilla-OK/toolkit/moz.configure 2024-12-18 22:35:00.174271221 +0300 @@ -414,8 +414,23 @@ def av1(value): if value: return True +option('--with-system-av1', + help="Use system av1 (located with pkgconfig)") -@depends(target, when=av1 & compile_environment) +system_libaom_info = pkg_check_modules('MOZ_SYSTEM_LIBAOM', 'aom >= 1.0.0', + when='--with-system-av1') + +system_libdav1d_info = pkg_check_modules('MOZ_SYSTEM_LIBDAV1D', 'dav1d >= 0.1.1', + when='--with-system-av1') + +@depends(system_libaom_info, system_libdav1d_info) +def system_av1(system_libaom_info, system_libdav1d_info): + has_av1_libs = False + if system_libaom_info and system_libdav1d_info: + has_av1_libs = True + return has_av1_libs + +@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) def dav1d_asm(target): if target.cpu in ("aarch64", "x86", "x86_64"): return True @@ -431,6 +446,7 @@ set_config('MOZ_DAV1D_ASM', dav1d_asm) set_define('MOZ_DAV1D_ASM', dav1d_asm) set_config('MOZ_AV1', av1) set_define('MOZ_AV1', av1) +set_config('MOZ_SYSTEM_AV1', depends_if(system_av1)(lambda _: True)) # Built-in fragmented MP4 support. # ============================================================== @@ -1745,4 +1761,4 @@ def android_package_name(value, moz_app_ return 'org.mozilla.fennec_aurora' return 'org.mozilla.%s' % moz_app_name -set_config('ANDROID_PACKAGE_NAME', android_package_name) \ No newline at end of file +set_config('ANDROID_PACKAGE_NAME', android_package_name) ++++++ seamonkey-2.53.21-bmo1332139.patch ++++++ diff -Nrup -U 8 a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc --- a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc 2020-02-18 02:37:58.000000000 +0300 +++ b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc 2020-03-02 00:34:19.000000000 +0300 @@ -79,17 +79,19 @@ VP9EncoderImpl::VP9EncoderImpl() num_temporal_layers_(0), num_spatial_layers_(0), num_cores_(0), is_flexible_mode_(false), frames_encoded_(0), // Use two spatial when screensharing with flexible mode. spatial_layer_(new ScreenshareLayersVP9(2)) { memset(&codec_, 0, sizeof(codec_)); +#ifdef LIBVPX_SVC memset(&svc_params_, 0, sizeof(vpx_svc_extra_cfg_t)); +#endif uint32_t seed = rtc::Time32(); srand(seed); } VP9EncoderImpl::~VP9EncoderImpl() { Release(); } @@ -115,55 +117,66 @@ int VP9EncoderImpl::Release() { } inited_ = false; return WEBRTC_VIDEO_CODEC_OK; } bool VP9EncoderImpl::ExplicitlyConfiguredSpatialLayers() const { // We check target_bitrate_bps of the 0th layer to see if the spatial layers // (i.e. bitrates) were explicitly configured. +#ifdef LIBVPX_SVC return num_spatial_layers_ > 1 && codec_.spatialLayers[0].target_bitrate_bps > 0; +#else + return false; +#endif } bool VP9EncoderImpl::SetSvcRates() { uint8_t i = 0; if (ExplicitlyConfiguredSpatialLayers()) { +#ifdef LIBVPX_SVC if (num_temporal_layers_ > 1) { LOG(LS_ERROR) << "Multiple temporal layers when manually specifying " "spatial layers not implemented yet!"; return false; } int total_bitrate_bps = 0; for (i = 0; i < num_spatial_layers_; ++i) total_bitrate_bps += codec_.spatialLayers[i].target_bitrate_bps; // If total bitrate differs now from what has been specified at the // beginning, update the bitrates in the same ratio as before. for (i = 0; i < num_spatial_layers_; ++i) { config_->ss_target_bitrate[i] = config_->layer_target_bitrate[i] = static_cast<int>(static_cast<int64_t>(config_->rc_target_bitrate) * codec_.spatialLayers[i].target_bitrate_bps / total_bitrate_bps); } +#endif } else { float rate_ratio[VPX_MAX_LAYERS] = {0}; float total = 0; +#ifdef LIBVPX_SVC for (i = 0; i < num_spatial_layers_; ++i) { if (svc_params_.scaling_factor_num[i] <= 0 || svc_params_.scaling_factor_den[i] <= 0) { LOG(LS_ERROR) << "Scaling factors not specified!"; return false; } rate_ratio[i] = static_cast<float>(svc_params_.scaling_factor_num[i]) / svc_params_.scaling_factor_den[i]; total += rate_ratio[i]; } +#else + rate_ratio[0] = 1; + total = 1; +#endif for (i = 0; i < num_spatial_layers_; ++i) { config_->ss_target_bitrate[i] = static_cast<unsigned int>( config_->rc_target_bitrate * rate_ratio[i] / total); if (num_temporal_layers_ == 1) { config_->layer_target_bitrate[i] = config_->ss_target_bitrate[i]; } else if (num_temporal_layers_ == 2) { config_->layer_target_bitrate[i * num_temporal_layers_] = @@ -390,16 +403,17 @@ int VP9EncoderImpl::NumberOfThreads(int return 2; } else { // 1 thread less than VGA. return 1; } } int VP9EncoderImpl::InitAndSetControlSettings(const VideoCodec* inst) { +#ifdef LIBVPX_SVC // Set QP-min/max per spatial and temporal layer. int tot_num_layers = num_spatial_layers_ * num_temporal_layers_; for (int i = 0; i < tot_num_layers; ++i) { svc_params_.max_quantizers[i] = config_->rc_max_quantizer; svc_params_.min_quantizers[i] = config_->rc_min_quantizer; } config_->ss_number_layers = num_spatial_layers_; if (ExplicitlyConfiguredSpatialLayers()) { @@ -413,37 +427,41 @@ int VP9EncoderImpl::InitAndSetControlSet for (int i = num_spatial_layers_ - 1; i >= 0; --i) { // 1:2 scaling in each dimension. svc_params_.scaling_factor_num[i] = scaling_factor_num; svc_params_.scaling_factor_den[i] = 256; if (codec_.mode != kScreensharing) scaling_factor_num /= 2; } } +#endif if (!SetSvcRates()) { return WEBRTC_VIDEO_CODEC_ERR_PARAMETER; } if (vpx_codec_enc_init(encoder_, vpx_codec_vp9_cx(), config_, 0)) { return WEBRTC_VIDEO_CODEC_UNINITIALIZED; } vpx_codec_control(encoder_, VP8E_SET_CPUUSED, cpu_speed_); vpx_codec_control(encoder_, VP8E_SET_MAX_INTRA_BITRATE_PCT, rc_max_intra_target_); vpx_codec_control(encoder_, VP9E_SET_AQ_MODE, inst->VP9().adaptiveQpMode ? 3 : 0); +#ifdef LIBVPX_SVC vpx_codec_control( encoder_, VP9E_SET_SVC, (num_temporal_layers_ > 1 || num_spatial_layers_ > 1) ? 1 : 0); if (num_temporal_layers_ > 1 || num_spatial_layers_ > 1) { vpx_codec_control(encoder_, VP9E_SET_SVC_PARAMETERS, &svc_params_); } +#endif + // Register callback for getting each spatial layer. vpx_codec_priv_output_cx_pkt_cb_pair_t cbp = { VP9EncoderImpl::EncoderOutputCodedPacketCallback, reinterpret_cast<void*>(this)}; vpx_codec_control(encoder_, VP9E_REGISTER_CX_CALLBACK, reinterpret_cast<void*>(&cbp)); // Control function to set the number of column tiles in encoding a frame, in @@ -527,16 +545,17 @@ int VP9EncoderImpl::Encode(const VideoFr vpx_enc_frame_flags_t flags = 0; bool send_keyframe = (frame_type == kVideoFrameKey); if (send_keyframe) { // Key frame request from caller. flags = VPX_EFLAG_FORCE_KF; } +#ifdef LIBVPX_SVC if (is_flexible_mode_) { SuperFrameRefSettings settings; // These structs are copied when calling vpx_codec_control, // therefore it is ok for them to go out of scope. vpx_svc_ref_frame_config enc_layer_conf; vpx_svc_layer_id layer_id; @@ -548,16 +567,17 @@ int VP9EncoderImpl::Encode(const VideoFr send_keyframe); } enc_layer_conf = GenerateRefsAndFlags(settings); layer_id.temporal_layer_id = 0; layer_id.spatial_layer_id = settings.start_layer; vpx_codec_control(encoder_, VP9E_SET_SVC_LAYER_ID, &layer_id); vpx_codec_control(encoder_, VP9E_SET_SVC_REF_FRAME_CONFIG, &enc_layer_conf); } +#endif assert(codec_.maxFramerate > 0); uint32_t duration = 90000 / codec_.maxFramerate; if (vpx_codec_encode(encoder_, raw_, timestamp_, duration, flags, VPX_DL_REALTIME)) { return WEBRTC_VIDEO_CODEC_ERROR; } timestamp_ += duration; @@ -686,29 +706,31 @@ void VP9EncoderImpl::PopulateCodecSpecif vp9_info->p_diff[i] = p_diff_[layer_id.spatial_layer_id][i]; } } else { vp9_info->gof_idx = static_cast<uint8_t>(frames_since_kf_ % gof_.num_frames_in_gof); vp9_info->temporal_up_switch = gof_.temporal_up_switch[vp9_info->gof_idx]; } +#ifdef LIBVPX_SVC if (vp9_info->ss_data_available) { vp9_info->spatial_layer_resolution_present = true; for (size_t i = 0; i < vp9_info->num_spatial_layers; ++i) { vp9_info->width[i] = codec_.width * svc_params_.scaling_factor_num[i] / svc_params_.scaling_factor_den[i]; vp9_info->height[i] = codec_.height * svc_params_.scaling_factor_num[i] / svc_params_.scaling_factor_den[i]; } - if (!vp9_info->flexible_mode) { - vp9_info->gof.CopyGofInfoVP9(gof_); - } + } +#endif + if (!vp9_info->flexible_mode) { + vp9_info->gof.CopyGofInfoVP9(gof_); } } int VP9EncoderImpl::GetEncodedLayerFrame(const vpx_codec_cx_pkt* pkt) { RTC_DCHECK_EQ(pkt->kind, VPX_CODEC_CX_FRAME_PKT); if (pkt->data.frame.sz > encoded_image_._size) { delete[] encoded_image_._buffer; @@ -756,16 +778,17 @@ int VP9EncoderImpl::GetEncodedLayerFrame vpx_codec_control(encoder_, VP8E_GET_LAST_QUANTIZER, &qp); encoded_image_.qp_ = qp; encoded_complete_callback_->OnEncodedImage(encoded_image_, &codec_specific, &frag_info); } return WEBRTC_VIDEO_CODEC_OK; } +#ifdef LIBVPX_SVC vpx_svc_ref_frame_config VP9EncoderImpl::GenerateRefsAndFlags( const SuperFrameRefSettings& settings) { static const vpx_enc_frame_flags_t kAllFlags = VP8_EFLAG_NO_REF_ARF | VP8_EFLAG_NO_REF_GF | VP8_EFLAG_NO_REF_LAST | VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_UPD_GF; vpx_svc_ref_frame_config sf_conf = {}; if (settings.is_keyframe) { // Used later on to make sure we don't make any invalid references. @@ -857,16 +880,17 @@ vpx_svc_ref_frame_config VP9EncoderImpl: buffer_updated_at_frame_[updated_buffer] = frames_encoded_; sf_conf.frame_flags[layer_idx] = layer_flags; } } } ++frames_encoded_; return sf_conf; } +#endif int VP9EncoderImpl::SetChannelParameters(uint32_t packet_loss, int64_t rtt) { return WEBRTC_VIDEO_CODEC_OK; } int VP9EncoderImpl::RegisterEncodeCompleteCallback( EncodedImageCallback* callback) { encoded_complete_callback_ = callback; diff -Nrup -U 8 a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h --- a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h 2020-02-18 02:37:58.000000000 +0300 +++ b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h 2020-03-02 00:32:05.000000000 +0300 @@ -77,24 +77,26 @@ class VP9EncoderImpl : public VP9Encoder void PopulateCodecSpecific(CodecSpecificInfo* codec_specific, const vpx_codec_cx_pkt& pkt, uint32_t timestamp); bool ExplicitlyConfiguredSpatialLayers() const; bool SetSvcRates(); +#ifdef LIBVPX_SVC // Used for flexible mode to set the flags and buffer references used // by the encoder. Also calculates the references used by the RTP // packetizer. // // Has to be called for every frame (keyframes included) to update the // state used to calculate references. vpx_svc_ref_frame_config GenerateRefsAndFlags( const SuperFrameRefSettings& settings); +#endif virtual int GetEncodedLayerFrame(const vpx_codec_cx_pkt* pkt); // Callback function for outputting packets per spatial layer. static void EncoderOutputCodedPacketCallback(vpx_codec_cx_pkt* pkt, void* user_data); // Determine maximum target for Intra frames @@ -111,17 +113,19 @@ class VP9EncoderImpl : public VP9Encoder bool inited_; int64_t timestamp_; uint16_t picture_id_; int cpu_speed_; uint32_t rc_max_intra_target_; vpx_codec_ctx_t* encoder_; vpx_codec_enc_cfg_t* config_; vpx_image_t* raw_; +#ifdef LIBVPX_SVC vpx_svc_extra_cfg_t svc_params_; +#endif const VideoFrame* input_image_; GofInfoVP9 gof_; // Contains each frame's temporal information for // non-flexible mode. uint8_t tl0_pic_idx_; // Only used in non-flexible mode. size_t frames_since_kf_; uint8_t num_temporal_layers_; uint8_t num_spatial_layers_; uint8_t num_cores_; ++++++ seamonkey-2.53.21-bmo1662867.patch ++++++ --- seamonkey-2.53.21.old/python/mach/mach/commands/settings.py 2025-04-20 11:29:48.000000000 -0500 +++ seamonkey-2.53.21/python/mach/mach/commands/settings.py 2025-08-27 14:09:03.800204529 -0500 @@ -27,7 +27,7 @@ description='Show available config settings.') @CommandArgument('-l', '--list', dest='short', action='store_true', help='Show settings in a concise list') - def settings(self, command_context, short=None): + def run_settings(self, command_context, short=None): """List available settings.""" types = {v: k for k, v in TYPE_CLASSES.items()} wrapper = TextWrapper(initial_indent='# ', subsequent_indent='# ') ++++++ seamonkey-2.53.21-bmo1862601.patch ++++++ --- a/intl/lwbrk/LineBreaker.cpp +++ b/intl/lwbrk/LineBreaker.cpp @@ -559,7 +559,12 @@ /* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER, /* E_BASE = 40, [EB] */ CLASS_BREAKABLE, /* E_MODIFIER = 41, [EM] */ CLASS_CHARACTER, - /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER + /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER, + /* AKSARA = 43, [AK] */ CLASS_CHARACTER, + /* AKSARA_PREBASE = 44, [AP] */ CLASS_CHARACTER, + /* AKSARA_START = 45, [AS] */ CLASS_CHARACTER, + /* VIRAMA_FINAL = 46, [VF] */ CLASS_CHARACTER, + /* VIRAMA = 47, [VI] */ CLASS_CHARACTER, }; static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass), ++++++ seamonkey-2.53.21-bmo1927380.patch ++++++ --- seamonkey-2.53.21.old/js/moz.configure 2025-04-20 11:29:48.000000000 -0500 +++ seamonkey-2.53.21/js/moz.configure 2025-08-24 07:24:58.108230222 -0500 @@ -403,7 +403,7 @@ # ====================================================== option('--with-system-icu', help='Use system ICU') -system_icu = pkg_check_modules('MOZ_ICU', 'icu-i18n >= 67.1', when='--with-system-icu') +system_icu = pkg_check_modules('MOZ_ICU', 'icu-uc icu-i18n >= 67.1', when='--with-system-icu') set_config('MOZ_SYSTEM_ICU', True, when=system_icu) set_define('MOZ_SYSTEM_ICU', True, when=system_icu) ++++++ seamonkey-2.53.3-lto.patch ++++++ diff -ruN seamonkey-2.53.17b1.orig/security/sandbox/linux/moz.build seamonkey-2.53.17b1/security/sandbox/linux/moz.build --- seamonkey-2.53.17b1.orig/security/sandbox/linux/moz.build 2023-06-10 12:41:21.000000000 +0200 +++ seamonkey-2.53.17b1/security/sandbox/linux/moz.build 2023-07-12 09:48:50.099448143 +0200 @@ -101,7 +101,7 @@ # forcing there to be only one partition. for f in CONFIG['OS_CXXFLAGS']: if f.startswith('-flto') and CONFIG['CC_TYPE'] != 'clang': - LDFLAGS += ['--param lto-partitions=1'] + LDFLAGS += ['--param=lto-partitions=1'] DEFINES['NS_NO_XPCOM'] = True DisableStlWrapping() ++++++ seamonkey-2.53.7.1-man-page.patch ++++++ --- build/moz.configure/old.configure 2024-12-12 18:30:12.000000000 -0600 +++ build/moz.configure/old.configure 2024-12-30 17:18:44.383356721 -0600 @@ -112,6 +112,7 @@ '--enable-zipwriter', '--includedir', '--libdir', + '--mandir', '--prefix', '--with-branding', '--with-debug-label', --- comm/suite/installer/Makefile.in 2021-08-08 15:29:32.000000000 +0200 +++ comm/suite/installer/Makefile.in 2022-07-11 14:04:44.710104711 +0200 @@ -145,6 +145,10 @@ include $(topsrcdir)/toolkit/mozapps/installer/packager.mk +install:: + $(NSINSTALL) -D $(DESTDIR)$(mandir)/man1 + $(SYSINSTALL) $(IFLAGS1) $(DIST)/man/man1/$(MOZ_APP_NAME).1 $(DESTDIR)$(mandir)/man1 + ifeq (Darwin, $(OS_ARCH)) BINPATH = $(_BINPATH) DEFINES += -DAPPNAME=$(_APPNAME) ++++++ seamonkey-GNUmakefile ++++++ --- /var/tmp/diff_new_pack.yRkGUQ/_old 2025-08-29 18:36:51.186280769 +0200 +++ /var/tmp/diff_new_pack.yRkGUQ/_new 2025-08-29 18:36:51.210281795 +0200 @@ -83,6 +83,10 @@ $(MAKE) -C $(OBJDIR) +listsettings: .mozconfig + $(MACH_CMD) settings --list + + $(OBJDIR_TARGETS): $(MAKE) -C $(OBJDIR) $@ ++++++ suse-default-prefs.js ++++++ --- /var/tmp/diff_new_pack.yRkGUQ/_old 2025-08-29 18:36:51.478293252 +0200 +++ /var/tmp/diff_new_pack.yRkGUQ/_new 2025-08-29 18:36:51.502294277 +0200 @@ -2,7 +2,6 @@ pref("browser.startup.homepage_override.mstone", "ignore"); pref("general.smoothScroll", true); pref("font.default", "sans-serif"); -pref("network.negotiate-auth.gsslib", "GSSAPI"); pref("print.print_edge_top", 14); // 1/100 of an inch pref("print.print_edge_left", 16); // 1/100 of an inch pref("print.print_edge_right", 16); // 1/100 of an inch