summaryrefslogtreecommitdiffstats
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch47
-rw-r--r--debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch34
-rw-r--r--debian/patches/debian-hacks/Add-debian-extra-stuff-to-upstream-build-system-dire.patch20
-rw-r--r--debian/patches/debian-hacks/Adjust-our-gfx-skia-moz.build-patch-to-upstream-chan.patch21
-rw-r--r--debian/patches/debian-hacks/Allow-.js-preference-files-to-set-locked-prefs-with-.patch81
-rw-r--r--debian/patches/debian-hacks/Allow-to-override-rust-LTO-flag.patch31
-rw-r--r--debian/patches/debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch21
-rw-r--r--debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch37
-rw-r--r--debian/patches/debian-hacks/Don-t-auto-disable-extensions-in-system-directories.patch21
-rw-r--r--debian/patches/debian-hacks/Don-t-build-image-gtests.patch23
-rw-r--r--debian/patches/debian-hacks/Fix-math_private.h-for-i386-FTBFS.patch24
-rw-r--r--debian/patches/debian-hacks/Relax-cargo-version-requirement.patch21
-rw-r--r--debian/patches/debian-hacks/Relax-nodejs-minimum-version.patch21
-rw-r--r--debian/patches/debian-hacks/Remove-workaround-for-old-libstdc-problem-which-now-.patch56
-rw-r--r--debian/patches/debian-hacks/Set-DPI-to-system-settings.patch21
-rw-r--r--debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch26
-rw-r--r--debian/patches/debian-hacks/Work-around-GCC-ICE-on-ppc64el.patch29
-rw-r--r--debian/patches/debian-hacks/Work-around-https-sourceware.org-bugzilla-show_bug.c.patch24
-rw-r--r--debian/patches/series18
19 files changed, 576 insertions, 0 deletions
diff --git a/debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch b/debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch
new file mode 100644
index 0000000000..0e6eaa43b8
--- /dev/null
+++ b/debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch
@@ -0,0 +1,47 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Mon, 27 Dec 2010 10:44:28 +0100
+Subject: Add a 2 minutes timeout on xpcshell tests
+
+---
+ testing/xpcshell/runxpcshelltests.py | 21 ++++++++++++++++++---
+ 1 file changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/testing/xpcshell/runxpcshelltests.py b/testing/xpcshell/runxpcshelltests.py
+index 2f1d26d..1b08ed0 100755
+--- a/testing/xpcshell/runxpcshelltests.py
++++ b/testing/xpcshell/runxpcshelltests.py
+@@ -11,6 +11,7 @@ import pipes
+ import platform
+ import random
+ import re
++import select
+ import shutil
+ import signal
+ import subprocess
+@@ -882,9 +883,23 @@ class XPCShellTestThread(Thread):
+ if self.interactive:
+ self.log.info("%s | Process ID: %d" % (name, self.proc_ident))
+
+- # Communicate returns a tuple of (stdout, stderr), however we always
+- # redirect stderr to stdout, so the second element is ignored.
+- process_output, _ = self.communicate(proc)
++ if self.pStdout == PIPE:
++ process_stdout = ""
++ while True:
++ (r, w, e) = select.select([proc.stdout], [], [], 120)
++ if len(r) == 0:
++ process_stdout += "TEST-UNEXPECTED-FAIL | %s | application timed out after 120 seconds with no output" % (test)
++ proc.kill()
++ break
++ line = proc.stdout.read(1)
++ if line == "":
++ break
++ process_stdout += line
++ proc.wait()
++ else:
++ # Communicate returns a tuple of (stdout, stderr), however we always
++ # redirect stderr to stdout, so the second element is ignored.
++ process_output, _ = self.communicate(proc)
+
+ if self.interactive:
+ # Not sure what else to do here...
diff --git a/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch b/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch
new file mode 100644
index 0000000000..ea37a8eedb
--- /dev/null
+++ b/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch
@@ -0,0 +1,34 @@
+From: Mike Hommey <glandium@debian.org>
+Date: Sat, 21 Jun 2008 03:09:21 +0200
+Subject: Add another preferences directory for applications:
+ preferences/syspref
+
+It was existing in previous versions of iceweasel as a symlink to
+/etc/iceweasel/pref.
+
+This has the side effect to make these preferences there work again, and
+to disable the "set as default browser" dialog.
+---
+ toolkit/xre/nsXREDirProvider.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
+index dac063c..db7e780 100644
+--- a/toolkit/xre/nsXREDirProvider.cpp
++++ b/toolkit/xre/nsXREDirProvider.cpp
+@@ -682,6 +682,7 @@ static const char* const kAppendPrefDir[] = {"defaults", "preferences",
+ static const char* const kAppendBackgroundTasksPrefDir[] = {
+ "defaults", "backgroundtasks", nullptr};
+ #endif
++static const char *const kAppendSysPrefDir[] = { "defaults", "syspref", nullptr };
+
+ NS_IMETHODIMP
+ nsXREDirProvider::GetFiles(const char* aProperty,
+@@ -699,6 +700,7 @@ nsXREDirProvider::GetFiles(const char* aProperty,
+ LoadDirIntoArray(mXULAppDir, kAppendBackgroundTasksPrefDir, directories);
+ }
+ #endif
++ LoadDirIntoArray(mXULAppDir, kAppendSysPrefDir, directories);
+
+ rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
+ } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
diff --git a/debian/patches/debian-hacks/Add-debian-extra-stuff-to-upstream-build-system-dire.patch b/debian/patches/debian-hacks/Add-debian-extra-stuff-to-upstream-build-system-dire.patch
new file mode 100644
index 0000000000..a6cfb2aa96
--- /dev/null
+++ b/debian/patches/debian-hacks/Add-debian-extra-stuff-to-upstream-build-system-dire.patch
@@ -0,0 +1,20 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Mon, 16 Dec 2013 10:53:58 +0900
+Subject: Add debian/extra-stuff to upstream build system directory traversal
+
+---
+ moz.build | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/moz.build b/moz.build
+index 5af3642..6c9e879 100644
+--- a/moz.build
++++ b/moz.build
+@@ -217,4 +217,7 @@ SPHINX_TREES["mots"] = "docs/mots"
+
+ SPHINX_TREES["update-infrastructure"] = "docs/update-infrastructure"
+
++if not CONFIG["LIBXUL_SDK"]:
++ DIRS += ["debian/extra-stuff"]
++
+ include("build/templates.mozbuild")
diff --git a/debian/patches/debian-hacks/Adjust-our-gfx-skia-moz.build-patch-to-upstream-chan.patch b/debian/patches/debian-hacks/Adjust-our-gfx-skia-moz.build-patch-to-upstream-chan.patch
new file mode 100644
index 0000000000..3d00e6c4dc
--- /dev/null
+++ b/debian/patches/debian-hacks/Adjust-our-gfx-skia-moz.build-patch-to-upstream-chan.patch
@@ -0,0 +1,21 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Wed, 24 Jan 2024 08:48:37 +0900
+Subject: Adjust our gfx/skia/moz.build patch to upstream changes
+
+---
+ gfx/skia/moz.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
+index ab1581d..60d159b 100644
+--- a/gfx/skia/moz.build
++++ b/gfx/skia/moz.build
+@@ -362,7 +362,7 @@ UNIFIED_SOURCES += [
+ ]
+
+ # Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110606
+-if CONFIG['CC_TYPE'] == 'gcc' and CONFIG['CPU_ARCH'] == 'ppc64':
++if CONFIG['CC_TYPE'] == 'gcc' and CONFIG['TARGET_CPU'] == 'ppc64':
+ SOURCES += ['skia/src/sksl/SkSLInliner.cpp']
+ else:
+ UNIFIED_SOURCES += ['skia/src/sksl/SkSLInliner.cpp']
diff --git a/debian/patches/debian-hacks/Allow-.js-preference-files-to-set-locked-prefs-with-.patch b/debian/patches/debian-hacks/Allow-.js-preference-files-to-set-locked-prefs-with-.patch
new file mode 100644
index 0000000000..39908b6e81
--- /dev/null
+++ b/debian/patches/debian-hacks/Allow-.js-preference-files-to-set-locked-prefs-with-.patch
@@ -0,0 +1,81 @@
+From: Mike Hommey <glandium@debian.org>
+Date: Sat, 21 Jun 2008 02:48:46 +0200
+Subject: Allow .js preference files to set locked prefs with lockPref()
+
+Upstream now supports locked prefs, but with a different syntax from
+the syntax we had supported for a while.
+---
+ modules/libpref/parser/src/lib.rs | 20 +++++++++++++-------
+ 1 file changed, 13 insertions(+), 7 deletions(-)
+
+diff --git a/modules/libpref/parser/src/lib.rs b/modules/libpref/parser/src/lib.rs
+index 3a0ad2c..c6e34be 100644
+--- a/modules/libpref/parser/src/lib.rs
++++ b/modules/libpref/parser/src/lib.rs
+@@ -11,8 +11,9 @@
+ //! ```text
+ //! <pref-file> = <pref>*
+ //! <pref> = <pref-spec> "(" <pref-name> "," <pref-value> <pref-attrs> ")" ";"
+-//! <pref-spec> = "user_pref" | "pref" | "sticky_pref" // in default pref files
++//! <pref-spec> = "user_pref" | "pref" | "sticky_pref" | "lockPref" // in default pref files
+ //! <pref-spec> = "user_pref" // in user pref files
++//! <pref-spec> = "user_pref" | "pref" | "sticky_pref | lockPref"
+ //! <pref-name> = <string-literal>
+ //! <pref-value> = <string-literal> | "true" | "false" | <int-value>
+ //! <int-value> = <sign>? <int-literal>
+@@ -169,6 +170,7 @@ enum Token {
+ // Keywords
+ Pref, // pref
+ StickyPref, // sticky_pref
++ LockPref, // lockPref
+ UserPref, // user_pref
+ True, // true
+ False, // false
+@@ -291,7 +293,7 @@ struct KeywordInfo {
+ token: Token,
+ }
+
+-const KEYWORD_INFOS: [KeywordInfo; 7] = [
++const KEYWORD_INFOS: [KeywordInfo; 8] = [
+ // These are ordered by frequency.
+ KeywordInfo {
+ string: b"pref",
+@@ -321,6 +323,10 @@ const KEYWORD_INFOS: [KeywordInfo; 7] = [
+ string: b"sticky_pref",
+ token: Token::StickyPref,
+ },
++ KeywordInfo {
++ string: b"lockPref",
++ token: Token::LockPref,
++ },
+ ];
+
+ struct Parser<'t> {
+@@ -373,14 +379,15 @@ impl<'t> Parser<'t> {
+ // this will be either the first token of a new pref, or EOF.
+ loop {
+ // <pref-spec>
+- let (pref_value_kind, mut is_sticky) = match token {
++ let (pref_value_kind, mut is_sticky, mut is_locked) = match token {
+ Token::Pref if self.kind == PrefValueKind::Default => {
+- (PrefValueKind::Default, false)
++ (PrefValueKind::Default, false, false)
+ }
+ Token::StickyPref if self.kind == PrefValueKind::Default => {
+- (PrefValueKind::Default, true)
++ (PrefValueKind::Default, true, false)
+ }
+- Token::UserPref => (PrefValueKind::User, false),
++ Token::LockPref => (PrefValueKind::Default, false, true),
++ Token::UserPref => (PrefValueKind::User, false, false),
+ Token::SingleChar(EOF) => return !self.has_errors,
+ _ => {
+ token = self.error_and_recover(
+@@ -490,7 +497,6 @@ impl<'t> Parser<'t> {
+ };
+
+ // ("," <pref-attr>)* // default pref files only
+- let mut is_locked = false;
+ let mut has_attrs = false;
+ if self.kind == PrefValueKind::Default {
+ let ok = loop {
diff --git a/debian/patches/debian-hacks/Allow-to-override-rust-LTO-flag.patch b/debian/patches/debian-hacks/Allow-to-override-rust-LTO-flag.patch
new file mode 100644
index 0000000000..cd4eb18590
--- /dev/null
+++ b/debian/patches/debian-hacks/Allow-to-override-rust-LTO-flag.patch
@@ -0,0 +1,31 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Sun, 14 Aug 2022 15:05:23 +0900
+Subject: Allow to override rust LTO flag
+
+---
+ config/makefiles/rust.mk | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
+index 9e3d525..613d5e3 100644
+--- a/config/makefiles/rust.mk
++++ b/config/makefiles/rust.mk
+@@ -92,8 +92,9 @@ ifndef rustflags_sancov
+ # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
+ ifndef MOZ_CODE_COVERAGE
+ ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
+-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat)
++cargo_rustc_flags += $(or $(DEBIAN_RUST_LTO),-Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat))
+ endif
++ifneq (-Clto=off,$(DEBIAN_RUST_LTO))
+ # We need -Cembed-bitcode=yes for all crates when using -Clto.
+ RUSTFLAGS += -Cembed-bitcode=yes
+ endif
+@@ -101,6 +102,7 @@ endif
+ endif
+ endif
+ endif
++endif
+
+ ifdef CARGO_INCREMENTAL
+ export CARGO_INCREMENTAL
diff --git a/debian/patches/debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch b/debian/patches/debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch
new file mode 100644
index 0000000000..ffe17912ca
--- /dev/null
+++ b/debian/patches/debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch
@@ -0,0 +1,21 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Tue, 22 May 2018 07:51:56 +0900
+Subject: Avoid using vmrs/vmsr on armel
+
+---
+ dom/media/webaudio/blink/DenormalDisabler.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dom/media/webaudio/blink/DenormalDisabler.h b/dom/media/webaudio/blink/DenormalDisabler.h
+index 646482b..8803a7d 100644
+--- a/dom/media/webaudio/blink/DenormalDisabler.h
++++ b/dom/media/webaudio/blink/DenormalDisabler.h
+@@ -45,7 +45,7 @@ namespace WebCore {
+ # define HAVE_DENORMAL 1
+ #endif
+
+-#if defined(__arm__) || defined(__aarch64__)
++#if (defined(__arm__) && !defined(__SOFTFP__)) || defined(__aarch64__)
+ # define HAVE_DENORMAL 1
+ #endif
+
diff --git a/debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch b/debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch
new file mode 100644
index 0000000000..67a21c343b
--- /dev/null
+++ b/debian/patches/debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch
@@ -0,0 +1,37 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Thu, 12 Nov 2009 17:18:31 +0100
+Subject: Avoid wrong sessionstore data to keep windows out of user sight
+
+It happens that sessionstore can keep wrong information for the window
+position or minimized state. Workaround this until the real bug is found
+and fixed (probably in xulrunner).
+
+Closes: #552426, #553453
+---
+ browser/components/sessionstore/SessionStore.sys.mjs | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
+index 91febbe..69a3a42 100644
+--- a/browser/components/sessionstore/SessionStore.sys.mjs
++++ b/browser/components/sessionstore/SessionStore.sys.mjs
+@@ -5918,7 +5918,7 @@ var SessionStoreInternal = {
+ // _getWindowDimension.
+ let desktopToCssScale =
+ aWindow.desktopToDeviceScale / aWindow.devicePixelRatio;
+- aWindow.moveTo(aLeft * desktopToCssScale, aTop * desktopToCssScale);
++ aWindow.moveTo((aLeft < -aWidth) ? 0 : aLeft * desktopToCssScale, (aTop < -aHeight) ? 0 : aTop * desktopToCssScale);
+ }
+ if (
+ aWidth &&
+@@ -5946,9 +5946,8 @@ var SessionStoreInternal = {
+ case "minimized":
+ if (aSizeModeBeforeMinimized == "maximized") {
+ aWindow.maximize();
++ break;
+ }
+- aWindow.minimize();
+- break;
+ case "normal":
+ aWindow.restore();
+ break;
diff --git a/debian/patches/debian-hacks/Don-t-auto-disable-extensions-in-system-directories.patch b/debian/patches/debian-hacks/Don-t-auto-disable-extensions-in-system-directories.patch
new file mode 100644
index 0000000000..14d0030b1f
--- /dev/null
+++ b/debian/patches/debian-hacks/Don-t-auto-disable-extensions-in-system-directories.patch
@@ -0,0 +1,21 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Fri, 17 Feb 2012 17:47:15 +0100
+Subject: Don't auto-disable extensions in system directories
+
+---
+ browser/app/profile/firefox.js | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
+index 5964d40..7ed7bf6 100644
+--- a/browser/app/profile/firefox.js
++++ b/browser/app/profile/firefox.js
+@@ -58,7 +58,7 @@ pref("extensions.systemAddon.update.enabled", true);
+
+ // Disable add-ons that are not installed by the user in all scopes by default.
+ // See the SCOPE constants in AddonManager.jsm for values to use here.
+-pref("extensions.autoDisableScopes", 15);
++pref("extensions.autoDisableScopes", 3);
+ // Scopes to scan for changes at startup.
+ pref("extensions.startupScanScopes", 0);
+
diff --git a/debian/patches/debian-hacks/Don-t-build-image-gtests.patch b/debian/patches/debian-hacks/Don-t-build-image-gtests.patch
new file mode 100644
index 0000000000..01b0ceb179
--- /dev/null
+++ b/debian/patches/debian-hacks/Don-t-build-image-gtests.patch
@@ -0,0 +1,23 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Thu, 9 Jun 2016 14:45:44 +0900
+Subject: Don't build image/ gtests
+
+Building them causes an ICE with GCC 4.7. As they are not part of what
+is shipped, and not currently run either, just skip building them.
+---
+ image/moz.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/image/moz.build b/image/moz.build
+index 0025071..dbb9c87 100644
+--- a/image/moz.build
++++ b/image/moz.build
+@@ -5,8 +5,6 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ DIRS += ["build", "decoders", "encoders"]
+-if CONFIG["ENABLE_TESTS"]:
+- DIRS += ["test/gtest"]
+
+ if CONFIG["FUZZING_INTERFACES"]:
+ DIRS += ["test/fuzzing"]
diff --git a/debian/patches/debian-hacks/Fix-math_private.h-for-i386-FTBFS.patch b/debian/patches/debian-hacks/Fix-math_private.h-for-i386-FTBFS.patch
new file mode 100644
index 0000000000..412716b3f8
--- /dev/null
+++ b/debian/patches/debian-hacks/Fix-math_private.h-for-i386-FTBFS.patch
@@ -0,0 +1,24 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Sat, 27 Nov 2021 06:49:44 +0900
+Subject: Fix math_private.h for i386 FTBFS
+
+---
+ modules/fdlibm/src/math_private.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
+index b588a59..06f2af0 100644
+--- a/modules/fdlibm/src/math_private.h
++++ b/modules/fdlibm/src/math_private.h
+@@ -30,7 +30,11 @@
+ * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
+ */
+
++#if defined __FLT_EVAL_METHOD__ && (__FLT_EVAL_METHOD__ == 2)
++typedef long double __double_t;
++#else
+ typedef double __double_t;
++#endif
+ typedef __double_t double_t;
+ typedef float __float_t;
+
diff --git a/debian/patches/debian-hacks/Relax-cargo-version-requirement.patch b/debian/patches/debian-hacks/Relax-cargo-version-requirement.patch
new file mode 100644
index 0000000000..313f1d472e
--- /dev/null
+++ b/debian/patches/debian-hacks/Relax-cargo-version-requirement.patch
@@ -0,0 +1,21 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Wed, 2 Aug 2023 08:46:33 +0900
+Subject: Relax cargo version requirement
+
+---
+ build/moz.configure/rust.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
+index 7a2fd1a..9801f82 100644
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -180,7 +180,7 @@ def rust_compiler(rustc_info, cargo_info, target):
+ )
+ )
+ rustc_min_version = Version(MINIMUM_RUST_VERSION)
+- cargo_min_version = rustc_min_version
++ cargo_min_version = Version("1.65.0")
+
+ version = rustc_info.version
+ is_nightly = "nightly" in version.version
diff --git a/debian/patches/debian-hacks/Relax-nodejs-minimum-version.patch b/debian/patches/debian-hacks/Relax-nodejs-minimum-version.patch
new file mode 100644
index 0000000000..cd5517cee3
--- /dev/null
+++ b/debian/patches/debian-hacks/Relax-nodejs-minimum-version.patch
@@ -0,0 +1,21 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Wed, 21 Sep 2022 08:48:27 +0900
+Subject: Relax nodejs minimum version
+
+---
+ python/mozbuild/mozbuild/nodeutil.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/python/mozbuild/mozbuild/nodeutil.py b/python/mozbuild/mozbuild/nodeutil.py
+index 42f2627..c0e766c 100644
+--- a/python/mozbuild/mozbuild/nodeutil.py
++++ b/python/mozbuild/mozbuild/nodeutil.py
+@@ -11,7 +11,7 @@ from mozfile import which
+ from packaging.version import Version
+ from six import PY3
+
+-NODE_MIN_VERSION = Version("12.22.12")
++NODE_MIN_VERSION = Version("12.22")
+ NPM_MIN_VERSION = Version("6.14.16")
+
+
diff --git a/debian/patches/debian-hacks/Remove-workaround-for-old-libstdc-problem-which-now-.patch b/debian/patches/debian-hacks/Remove-workaround-for-old-libstdc-problem-which-now-.patch
new file mode 100644
index 0000000000..27017a8a31
--- /dev/null
+++ b/debian/patches/debian-hacks/Remove-workaround-for-old-libstdc-problem-which-now-.patch
@@ -0,0 +1,56 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Mon, 15 Aug 2022 14:49:40 +0900
+Subject: Remove workaround for old libstdc++ problem, which now causes
+ problems with GCC 12 on arm
+
+---
+ intl/icu/source/common/unicode/std_string.h | 5 -----
+ intl/icu/source/common/utypeinfo.h | 3 ---
+ intl/icu/source/io/unicode/ustream.h | 4 ----
+ 3 files changed, 12 deletions(-)
+
+diff --git a/intl/icu/source/common/unicode/std_string.h b/intl/icu/source/common/unicode/std_string.h
+index bf87230..c8388ef 100644
+--- a/intl/icu/source/common/unicode/std_string.h
++++ b/intl/icu/source/common/unicode/std_string.h
+@@ -29,11 +29,6 @@
+
+ #if U_SHOW_CPLUSPLUS_API
+
+-// Workaround for a libstdc++ bug before libstdc++4.6 (2011).
+-// https://bugs.llvm.org/show_bug.cgi?id=13364
+-#if defined(__GLIBCXX__)
+-namespace std { class type_info; }
+-#endif
+ #include <string>
+
+ #endif /* U_SHOW_CPLUSPLUS_API */
+diff --git a/intl/icu/source/common/utypeinfo.h b/intl/icu/source/common/utypeinfo.h
+index c666373..5d97240 100644
+--- a/intl/icu/source/common/utypeinfo.h
++++ b/intl/icu/source/common/utypeinfo.h
+@@ -24,9 +24,6 @@
+ #include <exception>
+ using std::exception;
+ #endif
+-#if defined(__GLIBCXX__)
+-namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
+-#endif
+ #include <typeinfo> // for 'typeid' to work
+
+ #endif
+diff --git a/intl/icu/source/io/unicode/ustream.h b/intl/icu/source/io/unicode/ustream.h
+index 927342c..93ef51c 100644
+--- a/intl/icu/source/io/unicode/ustream.h
++++ b/intl/icu/source/io/unicode/ustream.h
+@@ -34,10 +34,6 @@
+ * C++ I/O stream API.
+ */
+
+-#if defined(__GLIBCXX__)
+-namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
+-#endif
+-
+ #include <iostream>
+
+ U_NAMESPACE_BEGIN
diff --git a/debian/patches/debian-hacks/Set-DPI-to-system-settings.patch b/debian/patches/debian-hacks/Set-DPI-to-system-settings.patch
new file mode 100644
index 0000000000..9a26721cdf
--- /dev/null
+++ b/debian/patches/debian-hacks/Set-DPI-to-system-settings.patch
@@ -0,0 +1,21 @@
+From: Mike Hommey <glandium@debian.org>
+Date: Thu, 13 Mar 2008 20:30:19 +0100
+Subject: Set DPI to system settings
+
+---
+ modules/libpref/init/StaticPrefList.yaml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
+index 82a2582..a00132d 100644
+--- a/modules/libpref/init/StaticPrefList.yaml
++++ b/modules/libpref/init/StaticPrefList.yaml
+@@ -8192,7 +8192,7 @@
+ # interpretation of physical units such as "pt".
+ - name: layout.css.dpi
+ type: int32_t
+- value: -1
++ value: 0
+ mirror: always
+
+ # Whether to always underline links.
diff --git a/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch b/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch
new file mode 100644
index 0000000000..163575b796
--- /dev/null
+++ b/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch
@@ -0,0 +1,26 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Sun, 2 Apr 2017 06:33:19 +0900
+Subject: Use the Mozilla Location Service key when the Google Key is not there
+
+---
+ modules/libpref/init/all.js | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
+index 6e68b4d..56d753c 100644
+--- a/modules/libpref/init/all.js
++++ b/modules/libpref/init/all.js
+@@ -3085,7 +3085,12 @@ pref("network.psl.onUpdate_notify", false);
+
+ // All the Geolocation preferences are here.
+ //
+-pref("geo.provider.network.url", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%");
++#if defined(GOOGLE_LOCATION_SERVICE_API_KEY)
++ pref("geo.provider.network.url", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%");
++#else
++ // Use MLS on Nightly and early Beta.
++ pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
++#endif
+
+ // Timeout to wait before sending the location request.
+ pref("geo.provider.network.timeToWaitBeforeSending", 5000);
diff --git a/debian/patches/debian-hacks/Work-around-GCC-ICE-on-ppc64el.patch b/debian/patches/debian-hacks/Work-around-GCC-ICE-on-ppc64el.patch
new file mode 100644
index 0000000000..8efdf0ce8c
--- /dev/null
+++ b/debian/patches/debian-hacks/Work-around-GCC-ICE-on-ppc64el.patch
@@ -0,0 +1,29 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Tue, 11 Jul 2023 06:34:59 +0900
+Subject: Work around GCC ICE on ppc64el
+
+---
+ gfx/skia/moz.build | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
+index 83aa295..ab1581d 100644
+--- a/gfx/skia/moz.build
++++ b/gfx/skia/moz.build
+@@ -359,7 +359,15 @@ UNIFIED_SOURCES += [
+ 'skia/src/sksl/SkSLConstantFolder.cpp',
+ 'skia/src/sksl/SkSLContext.cpp',
+ 'skia/src/sksl/SkSLErrorReporter.cpp',
+- 'skia/src/sksl/SkSLInliner.cpp',
++]
++
++# Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110606
++if CONFIG['CC_TYPE'] == 'gcc' and CONFIG['CPU_ARCH'] == 'ppc64':
++ SOURCES += ['skia/src/sksl/SkSLInliner.cpp']
++else:
++ UNIFIED_SOURCES += ['skia/src/sksl/SkSLInliner.cpp']
++
++UNIFIED_SOURCES += [
+ 'skia/src/sksl/SkSLIntrinsicList.cpp',
+ 'skia/src/sksl/SkSLMangler.cpp',
+ 'skia/src/sksl/SkSLModuleLoader.cpp',
diff --git a/debian/patches/debian-hacks/Work-around-https-sourceware.org-bugzilla-show_bug.c.patch b/debian/patches/debian-hacks/Work-around-https-sourceware.org-bugzilla-show_bug.c.patch
new file mode 100644
index 0000000000..3cd37c5cdb
--- /dev/null
+++ b/debian/patches/debian-hacks/Work-around-https-sourceware.org-bugzilla-show_bug.c.patch
@@ -0,0 +1,24 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Wed, 5 Jul 2023 05:25:35 +0900
+Subject: Work around https://sourceware.org/bugzilla/show_bug.cgi?id=30578
+
+---
+ media/ffvpx/config_unix64.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/media/ffvpx/config_unix64.h b/media/ffvpx/config_unix64.h
+index 7d63f47..086eaa3 100644
+--- a/media/ffvpx/config_unix64.h
++++ b/media/ffvpx/config_unix64.h
+@@ -204,7 +204,11 @@
+ #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
+ #define HAVE_CABS 0
+ #define HAVE_CEXP 0
++#ifdef FFMPEG_DISABLE_INLINE_ASM
++#define HAVE_INLINE_ASM 0
++#else
+ #define HAVE_INLINE_ASM 1
++#endif
+ #define HAVE_SYMVER 1
+ #define HAVE_X86ASM 1
+ #define HAVE_BIGENDIAN 0
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000000..2321c3f8d5
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,18 @@
+debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch
+debian-hacks/Add-another-preferences-directory-for-applications-p.patch
+debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch
+debian-hacks/Add-debian-extra-stuff-to-upstream-build-system-dire.patch
+debian-hacks/Don-t-build-image-gtests.patch
+debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch
+debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch
+debian-hacks/Fix-math_private.h-for-i386-FTBFS.patch
+debian-hacks/Allow-to-override-rust-LTO-flag.patch
+debian-hacks/Remove-workaround-for-old-libstdc-problem-which-now-.patch
+debian-hacks/Relax-nodejs-minimum-version.patch
+debian-hacks/Work-around-https-sourceware.org-bugzilla-show_bug.c.patch
+debian-hacks/Allow-.js-preference-files-to-set-locked-prefs-with-.patch
+debian-hacks/Set-DPI-to-system-settings.patch
+debian-hacks/Don-t-auto-disable-extensions-in-system-directories.patch
+debian-hacks/Work-around-GCC-ICE-on-ppc64el.patch
+debian-hacks/Relax-cargo-version-requirement.patch
+debian-hacks/Adjust-our-gfx-skia-moz.build-patch-to-upstream-chan.patch