diff options
Diffstat (limited to 'debian/patches/debian-hacks')
15 files changed, 772 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..2aaafbfd9b --- /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 8a5378e..42e8255 100755 +--- a/testing/xpcshell/runxpcshelltests.py ++++ b/testing/xpcshell/runxpcshelltests.py +@@ -10,6 +10,7 @@ import os + import pipes + import random + import re ++import select + import shutil + import signal + import subprocess +@@ -838,9 +839,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..bd617dff70 --- /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 e8a4f54..83a91dd 100644 +--- a/toolkit/xre/nsXREDirProvider.cpp ++++ b/toolkit/xre/nsXREDirProvider.cpp +@@ -787,6 +787,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 }; + + nsresult nsXREDirProvider::GetFilesInternal(const char* aProperty, + nsISimpleEnumerator** aResult) { +@@ -803,6 +804,7 @@ nsresult nsXREDirProvider::GetFilesInternal(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..9a854ab73e --- /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 80e23e9..a7b9599 100644 +--- a/moz.build ++++ b/moz.build +@@ -210,4 +210,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/Add-missing-webrtc-directory-for-ppc64el-bz-1775202.patch b/debian/patches/debian-hacks/Add-missing-webrtc-directory-for-ppc64el-bz-1775202.patch new file mode 100644 index 0000000000..f6367a51f9 --- /dev/null +++ b/debian/patches/debian-hacks/Add-missing-webrtc-directory-for-ppc64el-bz-1775202.patch @@ -0,0 +1,20 @@ +From: Mike Hommey <mh@glandium.org> +Date: Mon, 15 Aug 2022 15:41:15 +0900 +Subject: Add missing webrtc directory for ppc64el (bz#1775202) + +--- + third_party/libwebrtc/moz.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build +index e405ed6..01cd3d6 100644 +--- a/third_party/libwebrtc/moz.build ++++ b/third_party/libwebrtc/moz.build +@@ -627,6 +627,7 @@ if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux": + "/third_party/libwebrtc/modules/audio_coding/isac_gn", + "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn", + "/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": 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..d18b9360f3 --- /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 9afd7e7..2848d04 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 ++cargo_rustc_flags += $(or $(DEBIAN_RUST_LTO),-Clto) + 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..1af4423c17 --- /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 36d2bb4..a46ea43 100644 +--- a/browser/components/sessionstore/SessionStore.sys.mjs ++++ b/browser/components/sessionstore/SessionStore.sys.mjs +@@ -5154,7 +5154,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 && +@@ -5183,9 +5183,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-build-image-gtests.patch b/debian/patches/debian-hacks/Don-t-build-image-gtests.patch new file mode 100644 index 0000000000..b6884bbd98 --- /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 aab71c1..5f2192c 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..1da8156de8 --- /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 f4373f2..632d2c4 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-minimum-supporter-rust-version-to-1.63.patch b/debian/patches/debian-hacks/Relax-minimum-supporter-rust-version-to-1.63.patch new file mode 100644 index 0000000000..6410524f36 --- /dev/null +++ b/debian/patches/debian-hacks/Relax-minimum-supporter-rust-version-to-1.63.patch @@ -0,0 +1,373 @@ +From: Mike Hommey <mh@glandium.org> +Date: Wed, 1 Mar 2023 07:19:18 +0900 +Subject: Relax minimum supporter rust version to 1.63 + +This reverts: +- https://phabricator.services.mozilla.com/D165236 +- https://phabricator.services.mozilla.com/D165332 +--- + Cargo.lock | 4 ++-- + python/mozboot/mozboot/util.py | 2 +- + servo/components/selectors/context.rs | 2 +- + servo/components/selectors/parser.rs | 4 ++-- + servo/components/style/gecko/selector_parser.rs | 7 ++++--- + servo/components/style/properties/gecko.mako.rs | 13 ++----------- + servo/components/style/style_resolver.rs | 4 ++-- + .../style/stylesheets/container_rule.rs | 16 ++++++++-------- + servo/components/style/stylist.rs | 10 +++++----- + third_party/rust/cstr/.cargo-checksum.json | 2 +- + third_party/rust/cstr/Cargo.toml | 11 ++--------- + third_party/rust/cstr/README.md | 2 +- + third_party/rust/cstr/src/lib.rs | 4 ++-- + 13 files changed, 33 insertions(+), 48 deletions(-) + +diff --git a/Cargo.lock b/Cargo.lock +index 86617c3..be7d828 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -1128,9 +1128,9 @@ dependencies = [ + + [[package]] + name = "cstr" +-version = "0.2.11" ++version = "0.2.10" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8aa998c33a6d3271e3678950a22134cd7dd27cef86dee1b611b5b14207d1d90b" ++checksum = "a60f0dd132e4b67f20fd764d4835d968f666ff1a2f59e432983d168b98424deb" + dependencies = [ + "proc-macro2", + "quote", +diff --git a/python/mozboot/mozboot/util.py b/python/mozboot/mozboot/util.py +index 667df3b..bdb5ac1 100644 +--- a/python/mozboot/mozboot/util.py ++++ b/python/mozboot/mozboot/util.py +@@ -10,7 +10,7 @@ from urllib.request import urlopen + from mach.site import PythonVirtualenv + from mach.util import get_state_dir + +-MINIMUM_RUST_VERSION = "1.65.0" ++MINIMUM_RUST_VERSION = "1.63.0" + + + def get_tools_dir(srcdir=False): +diff --git a/servo/components/selectors/context.rs b/servo/components/selectors/context.rs +index e29abe6..f595389 100644 +--- a/servo/components/selectors/context.rs ++++ b/servo/components/selectors/context.rs +@@ -145,7 +145,7 @@ where + pub pseudo_element_matching_fn: Option<&'a dyn Fn(&Impl::PseudoElement) -> bool>, + + /// Extra implementation-dependent matching data. +- pub extra_data: Impl::ExtraMatchingData<'a>, ++ pub extra_data: Impl::ExtraMatchingData, + + quirks_mode: QuirksMode, + needs_selector_flags: NeedsSelectorFlags, +diff --git a/servo/components/selectors/parser.rs b/servo/components/selectors/parser.rs +index b5cbd64..183a4f9 100644 +--- a/servo/components/selectors/parser.rs ++++ b/servo/components/selectors/parser.rs +@@ -194,7 +194,7 @@ macro_rules! with_all_bounds { + /// are parameterized on SelectorImpl. See + /// <https://github.com/rust-lang/rust/issues/26925> + pub trait SelectorImpl: Clone + Debug + Sized + 'static { +- type ExtraMatchingData<'a>: Sized + Default; ++ type ExtraMatchingData: Sized + Default + 'static; + type AttrValue: $($InSelector)*; + type Identifier: $($InSelector)*; + type LocalName: $($InSelector)* + Borrow<Self::BorrowedLocalName>; +@@ -2791,7 +2791,7 @@ pub mod tests { + } + + impl SelectorImpl for DummySelectorImpl { +- type ExtraMatchingData<'a> = std::marker::PhantomData<&'a ()>; ++ type ExtraMatchingData = (); + type AttrValue = DummyAttrValue; + type Identifier = DummyAtom; + type LocalName = DummyAtom; +diff --git a/servo/components/style/gecko/selector_parser.rs b/servo/components/style/gecko/selector_parser.rs +index d149cf7..eb1ce3e 100644 +--- a/servo/components/style/gecko/selector_parser.rs ++++ b/servo/components/style/gecko/selector_parser.rs +@@ -18,6 +18,7 @@ use cssparser::{CowRcStr, SourceLocation, ToCss, Token}; + use dom::{DocumentState, ElementState}; + use selectors::parser::SelectorParseErrorKind; + use selectors::SelectorList; ++use servo_arc::Arc; + use std::fmt; + use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss as ToCss_}; + +@@ -235,7 +236,7 @@ pub struct SelectorImpl; + /// A set of extra data to carry along with the matching context, either for + /// selector-matching or invalidation. + #[derive(Default)] +-pub struct ExtraMatchingData<'a> { ++pub struct ExtraMatchingData { + /// The invalidation data to invalidate doc-state pseudo-classes correctly. + pub invalidation_data: InvalidationMatchingData, + +@@ -245,11 +246,11 @@ pub struct ExtraMatchingData<'a> { + + /// The style of the originating element in order to evaluate @container + /// size queries affecting pseudo-elements. +- pub originating_element_style: Option<&'a ComputedValues>, ++ pub originating_element_style: Option<Arc<ComputedValues>>, + } + + impl ::selectors::SelectorImpl for SelectorImpl { +- type ExtraMatchingData<'a> = ExtraMatchingData<'a>; ++ type ExtraMatchingData = ExtraMatchingData; + type AttrValue = AtomString; + type Identifier = AtomIdent; + type LocalName = AtomIdent; +diff --git a/servo/components/style/properties/gecko.mako.rs b/servo/components/style/properties/gecko.mako.rs +index 63316c0..85afb2c 100644 +--- a/servo/components/style/properties/gecko.mako.rs ++++ b/servo/components/style/properties/gecko.mako.rs +@@ -103,15 +103,6 @@ impl ComputedValues { + ).to_outer(None) + } + +- /// Converts the computed values to an Arc<> from a reference. +- pub fn to_arc(&self) -> Arc<Self> { +- // SAFETY: We're guaranteed to be allocated as an Arc<> since the +- // functions above are the only ones that create ComputedValues +- // instances in Gecko (and that must be the case since ComputedValues' +- // member is private). +- unsafe { Arc::from_raw_addrefed(self) } +- } +- + #[inline] + pub fn is_pseudo_style(&self) -> bool { + self.0.mPseudoType != PseudoStyleType::NotPseudo +@@ -217,8 +208,8 @@ impl ComputedValuesInner { + &self, + pseudo_ty, + ); +- // We're simulating move semantics by having C++ do a memcpy and +- // then forgetting it on this end. ++ // We're simulating move semantics by having C++ do a memcpy and then forgetting ++ // it on this end. + forget(self); + UniqueArc::assume_init(arc).shareable() + } +diff --git a/servo/components/style/style_resolver.rs b/servo/components/style/style_resolver.rs +index 19a5338..e2ad792 100644 +--- a/servo/components/style/style_resolver.rs ++++ b/servo/components/style/style_resolver.rs +@@ -507,7 +507,7 @@ where + + fn match_pseudo( + &mut self, +- originating_element_style: &ComputedValues, ++ originating_element_style: &Arc<ComputedValues>, + pseudo_element: &PseudoElement, + visited_handling: VisitedHandlingMode, + ) -> Option<MatchingResults> { +@@ -544,7 +544,7 @@ where + NeedsSelectorFlags::Yes, + ); + matching_context.extra_data.originating_element_style = +- Some(originating_element_style); ++ Some(originating_element_style.clone()); + + // NB: We handle animation rules for ::before and ::after when + // traversing them. +diff --git a/servo/components/style/stylesheets/container_rule.rs b/servo/components/style/stylesheets/container_rule.rs +index f9d488b..74ea7c5 100644 +--- a/servo/components/style/stylesheets/container_rule.rs ++++ b/servo/components/style/stylesheets/container_rule.rs +@@ -135,14 +135,14 @@ enum TraversalResult<T> { + Done(T), + } + +-fn traverse_container<E, F, R>( ++fn traverse_container<E, S, F, R>( + mut e: E, +- originating_element_style: Option<&ComputedValues>, ++ originating_element_style: Option<&S>, + evaluator: F, + ) -> Option<(E, R)> + where + E: TElement, +- F: Fn(E, Option<&ComputedValues>) -> TraversalResult<R>, ++ F: Fn(E, Option<&S>) -> TraversalResult<R>, + { + if originating_element_style.is_some() { + match evaluator(e, originating_element_style) { +@@ -185,7 +185,7 @@ impl ContainerCondition { + fn valid_container_info<E>( + &self, + potential_container: E, +- originating_element_style: Option<&ComputedValues>, ++ originating_element_style: Option<&Arc<ComputedValues>>, + ) -> TraversalResult<ContainerLookupResult<E>> + where + E: TElement, +@@ -198,7 +198,7 @@ impl ContainerCondition { + Some(d) => d, + None => return TraversalResult::InProgress, + }; +- &**data.styles.primary() ++ data.styles.primary() + }, + }; + let wm = style.writing_mode; +@@ -220,7 +220,7 @@ impl ContainerCondition { + } + + let size = potential_container.query_container_size(&box_style.clone_display()); +- let style = style.to_arc(); ++ let style = style.clone(); + TraversalResult::Done(ContainerLookupResult { + element: potential_container, + info: ContainerInfo { size, wm }, +@@ -232,7 +232,7 @@ impl ContainerCondition { + pub fn find_container<E>( + &self, + e: E, +- originating_element_style: Option<&ComputedValues>, ++ originating_element_style: Option<&Arc<ComputedValues>>, + ) -> Option<ContainerLookupResult<E>> + where + E: TElement, +@@ -254,7 +254,7 @@ impl ContainerCondition { + &self, + device: &Device, + element: E, +- originating_element_style: Option<&ComputedValues>, ++ originating_element_style: Option<&Arc<ComputedValues>>, + invalidation_flags: &mut ComputedValueFlags, + ) -> KleeneValue + where +diff --git a/servo/components/style/stylist.rs b/servo/components/style/stylist.rs +index e4d0e79..6a42d87 100644 +--- a/servo/components/style/stylist.rs ++++ b/servo/components/style/stylist.rs +@@ -966,7 +966,7 @@ impl Stylist { + element: E, + pseudo: &PseudoElement, + rule_inclusion: RuleInclusion, +- originating_element_style: &ComputedValues, ++ originating_element_style: &Arc<ComputedValues>, + parent_style: &Arc<ComputedValues>, + is_probe: bool, + matching_fn: Option<&dyn Fn(&PseudoElement) -> bool>, +@@ -1112,7 +1112,7 @@ impl Stylist { + &self, + guards: &StylesheetGuards, + element: E, +- originating_element_style: &ComputedValues, ++ originating_element_style: &Arc<ComputedValues>, + parent_style: &Arc<ComputedValues>, + pseudo: &PseudoElement, + is_probe: bool, +@@ -1143,7 +1143,7 @@ impl Stylist { + + matching_context.pseudo_element_matching_fn = matching_fn; + matching_context.extra_data.originating_element_style = +- Some(originating_element_style); ++ Some(originating_element_style.clone()); + + self.push_applicable_declarations( + element, +@@ -1175,7 +1175,7 @@ impl Stylist { + ); + matching_context.pseudo_element_matching_fn = matching_fn; + matching_context.extra_data.originating_element_style = +- Some(originating_element_style); ++ Some(originating_element_style.clone()); + + self.push_applicable_declarations( + element, +@@ -2385,7 +2385,7 @@ impl CascadeData { + .matches( + stylist.device(), + element, +- context.extra_data.originating_element_style, ++ context.extra_data.originating_element_style.as_ref(), + &mut context.extra_data.cascade_input_flags, + ) + .to_bool(/* unknown = */ false); +diff --git a/third_party/rust/cstr/.cargo-checksum.json b/third_party/rust/cstr/.cargo-checksum.json +index 9d9ca8a..d6c4e0e 100644 +--- a/third_party/rust/cstr/.cargo-checksum.json ++++ b/third_party/rust/cstr/.cargo-checksum.json +@@ -1 +1 @@ +-{"files":{"Cargo.toml":"9766da0dcd235f8d0d4ebdc925050558710adfd4495c123b1f4997666869d524","LICENSE":"5a9bf0e7661617253ca7c12313f51a96aa62dec0bcd15a59c533c88b8093d124","README.md":"8fdfa924e95d7a83f3c032dcc103cb411743c404e7e080b985c97b5db90eea24","src/lib.rs":"ad266f1d5c682943741344d84dba39c516c3b8b26b34a4ff2c858de9934cdfe5","src/parse.rs":"19214fac49af5852b93a37d43af6ee93e62a1e95e3a629f8d5da254925b7d294","tests/clippy_lints.rs":"4398124cd5bc3a7f295f6203d543fc7d99abfd945eb7418ccfa60535586d7e37","tests/compile_fail/empty.rs":"52dc3c0d4d6ee0bd6d89a34d1caf38d159830401f24ba30f5655f9de92697903","tests/compile_fail/empty.stderr":"dbcf3dab8a8638b833df9089d9bc9ff7494f39dbb91e94bdd769912678ccf7f8","tests/compile_fail/interior-nul.rs":"ecc09440020287377ca18e4b8308d1d516620a87612a5381bafc01fe48734d34","tests/compile_fail/interior-nul.stderr":"8bd003a7dfff248411403bdf666f8a0631307f468d589cf01e475b062db4b101","tests/compile_fail/non-str.rs":"e08be18a524a4482fb7f34cbc6e8448a878b41cf2c26dea99268aaabab6c3f3f","tests/compile_fail/non-str.stderr":"8dff245264d9c69dc151f742542a72400d7422f2a0f2b133a9f4d4fc96a4016a","tests/compile_fail/trash-after.rs":"7dff7a301c9087984c5acda183e34492f3d0f2ebec14b8dc0d2b11aab972a111","tests/compile_fail/trash-after.stderr":"487b5d6b687c52b80f9d9cba691a8654067a88f7d03d2d952d7e97d610ab70f3","tests/compile_test.rs":"13e3e0d22ec0dffa4d0be0c4db6381a03feff50cc25aa65c4950cc7e865d122d","tests/pass/byte_str_lit.rs":"9085e1f1e67dae193d33ff59c253cac23c9e23e9d8c7f92f0aba99097ade132e","tests/pass/const.rs":"777aeb93c3030349529a41ac62b3577b36badc4bada4ec46e45b5055d3676dbd","tests/pass/ident.rs":"5116ee71578d479d899345e039e5955b5dee442234dc504e1a9bfb9260cf8f15","tests/pass/macro.rs":"9596c936ed4d963fb40459ecd98b60610d3d90e41918f350ff45b6129b1aa0b7","tests/pass/str_lit.rs":"955fb887ebc01538bafe10fa810381eb53aebaafb8b36053e8712c081862fe7a"},"package":"8aa998c33a6d3271e3678950a22134cd7dd27cef86dee1b611b5b14207d1d90b"} +\ No newline at end of file ++{"files":{"Cargo.toml":"efcf30ffc92f8247fde5ac01eb17820b53de43d8407fdab0e6ba226e0538e0f2","LICENSE":"5a9bf0e7661617253ca7c12313f51a96aa62dec0bcd15a59c533c88b8093d124","README.md":"6dd83f5c2d0f29317921e2c1050740cb24e273d5d83409f21d5b955026934804","src/lib.rs":"a54a9c9b3ea2346a2b82f4a66f9614f5596278cd20857a502d272a9ce5c4da4e","src/parse.rs":"19214fac49af5852b93a37d43af6ee93e62a1e95e3a629f8d5da254925b7d294","tests/clippy_lints.rs":"4398124cd5bc3a7f295f6203d543fc7d99abfd945eb7418ccfa60535586d7e37","tests/compile_fail/empty.rs":"52dc3c0d4d6ee0bd6d89a34d1caf38d159830401f24ba30f5655f9de92697903","tests/compile_fail/empty.stderr":"dbcf3dab8a8638b833df9089d9bc9ff7494f39dbb91e94bdd769912678ccf7f8","tests/compile_fail/interior-nul.rs":"ecc09440020287377ca18e4b8308d1d516620a87612a5381bafc01fe48734d34","tests/compile_fail/interior-nul.stderr":"8bd003a7dfff248411403bdf666f8a0631307f468d589cf01e475b062db4b101","tests/compile_fail/non-str.rs":"e08be18a524a4482fb7f34cbc6e8448a878b41cf2c26dea99268aaabab6c3f3f","tests/compile_fail/non-str.stderr":"8dff245264d9c69dc151f742542a72400d7422f2a0f2b133a9f4d4fc96a4016a","tests/compile_fail/trash-after.rs":"7dff7a301c9087984c5acda183e34492f3d0f2ebec14b8dc0d2b11aab972a111","tests/compile_fail/trash-after.stderr":"487b5d6b687c52b80f9d9cba691a8654067a88f7d03d2d952d7e97d610ab70f3","tests/compile_test.rs":"13e3e0d22ec0dffa4d0be0c4db6381a03feff50cc25aa65c4950cc7e865d122d","tests/pass/byte_str_lit.rs":"9085e1f1e67dae193d33ff59c253cac23c9e23e9d8c7f92f0aba99097ade132e","tests/pass/const.rs":"777aeb93c3030349529a41ac62b3577b36badc4bada4ec46e45b5055d3676dbd","tests/pass/ident.rs":"5116ee71578d479d899345e039e5955b5dee442234dc504e1a9bfb9260cf8f15","tests/pass/macro.rs":"9596c936ed4d963fb40459ecd98b60610d3d90e41918f350ff45b6129b1aa0b7","tests/pass/str_lit.rs":"955fb887ebc01538bafe10fa810381eb53aebaafb8b36053e8712c081862fe7a"},"package":"a60f0dd132e4b67f20fd764d4835d968f666ff1a2f59e432983d168b98424deb"} +\ No newline at end of file +diff --git a/third_party/rust/cstr/Cargo.toml b/third_party/rust/cstr/Cargo.toml +index 712f393..046519f 100644 +--- a/third_party/rust/cstr/Cargo.toml ++++ b/third_party/rust/cstr/Cargo.toml +@@ -11,31 +11,24 @@ + + [package] + edition = "2018" +-rust-version = "1.64" + name = "cstr" +-version = "0.2.11" ++version = "0.2.10" + authors = ["Xidorn Quan <me@upsuper.org>"] + description = "Macro for building static CStr reference" + readme = "README.md" +-keywords = [ +- "macro", +- "cstr", +-] ++keywords = ["macro", "cstr"] + license = "MIT" + repository = "https://github.com/upsuper/cstr" + + [lib] + proc-macro = true +- + [dependencies.proc-macro2] + version = "1" + + [dependencies.quote] + version = "1" +- + [dev-dependencies.trybuild] + version = "1.0.30" +- + [badges.travis-ci] + branch = "master" + repository = "upsuper/cstr" +diff --git a/third_party/rust/cstr/README.md b/third_party/rust/cstr/README.md +index 7ee3ba2..9ebda24 100644 +--- a/third_party/rust/cstr/README.md ++++ b/third_party/rust/cstr/README.md +@@ -11,7 +11,7 @@ A macro for getting `&'static CStr` from literal or identifier. + This macro checks whether the given literal is valid for `CStr` + at compile time, and returns a static reference of `CStr`. + +-This macro can be used to to initialize constants on Rust 1.64 and above. ++This macro can be used to to initialize constants on Rust 1.59 and above. + + ## Example + +diff --git a/third_party/rust/cstr/src/lib.rs b/third_party/rust/cstr/src/lib.rs +index c9e69d9..91d83ae 100644 +--- a/third_party/rust/cstr/src/lib.rs ++++ b/third_party/rust/cstr/src/lib.rs +@@ -3,7 +3,7 @@ + //! This macro checks whether the given literal is valid for `CStr` + //! at compile time, and returns a static reference of `CStr`. + //! +-//! This macro can be used to to initialize constants on Rust 1.64 and above. ++//! This macro can be used to to initialize constants on Rust 1.59 and above. + //! + //! ## Example + //! +@@ -37,7 +37,7 @@ struct Error(Span, &'static str); + #[proc_macro] + pub fn cstr(input: RawTokenStream) -> RawTokenStream { + let tokens = match build_byte_str(input.into()) { +- Ok(s) => quote!(unsafe { ::core::ffi::CStr::from_bytes_with_nul_unchecked(#s) }), ++ Ok(s) => quote!(unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(#s) }), + Err(Error(span, msg)) => quote_spanned!(span => compile_error!(#msg)), + }; + tokens.into() 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..8839a39026 --- /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 8ec724a..efc7b7f 100644 +--- a/python/mozbuild/mozbuild/nodeutil.py ++++ b/python/mozbuild/mozbuild/nodeutil.py +@@ -11,7 +11,7 @@ from mozboot.util import get_tools_dir + from mozfile import which + from six import PY3 + +-NODE_MIN_VERSION = StrictVersion("12.22.12") ++NODE_MIN_VERSION = StrictVersion("12.22") + NPM_MIN_VERSION = StrictVersion("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/Use-build-id-as-langpack-version-for-reproducibility.patch b/debian/patches/debian-hacks/Use-build-id-as-langpack-version-for-reproducibility.patch new file mode 100644 index 0000000000..463e1683ca --- /dev/null +++ b/debian/patches/debian-hacks/Use-build-id-as-langpack-version-for-reproducibility.patch @@ -0,0 +1,21 @@ +From: Mike Hommey <mh@glandium.org> +Date: Fri, 12 Jul 2019 18:37:52 +0900 +Subject: Use build id as langpack version for reproducibility + +--- + python/mozbuild/mozbuild/action/langpack_manifest.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py +index 598f03e..cb97a9d 100644 +--- a/python/mozbuild/mozbuild/action/langpack_manifest.py ++++ b/python/mozbuild/mozbuild/action/langpack_manifest.py +@@ -106,7 +106,7 @@ def get_timestamp_for_locale(path): + dt = get_dt_from_hg(path) + + if dt is None: +- dt = datetime.datetime.utcnow() ++ return os.environ['MOZ_BUILD_DATE'] + + dt = dt.replace(microsecond=0) + return dt.strftime("%Y%m%d%H%M%S") 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..a6c73700e3 --- /dev/null +++ b/debian/patches/debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch @@ -0,0 +1,21 @@ +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 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js +index 88e7709..bb03e1c 100644 +--- a/modules/libpref/init/all.js ++++ b/modules/libpref/init/all.js +@@ -3283,7 +3283,7 @@ pref("network.psl.onUpdate_notify", false); + + // All the Geolocation preferences are here. + // +-#ifndef EARLY_BETA_OR_EARLIER ++#if !defined(EARLY_BETA_OR_EARLIER) && 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. diff --git a/debian/patches/debian-hacks/Work-around-bz-1775202-to-fix-FTBFS-on-ppc64el.patch b/debian/patches/debian-hacks/Work-around-bz-1775202-to-fix-FTBFS-on-ppc64el.patch new file mode 100644 index 0000000000..e35eb3a973 --- /dev/null +++ b/debian/patches/debian-hacks/Work-around-bz-1775202-to-fix-FTBFS-on-ppc64el.patch @@ -0,0 +1,23 @@ +From: Mike Hommey <mh@glandium.org> +Date: Sun, 14 Aug 2022 07:01:33 +0900 +Subject: Work around bz#1775202 to fix FTBFS on ppc64el + +--- + third_party/libwebrtc/moz.build | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build +index a32d3b3..e405ed6 100644 +--- a/third_party/libwebrtc/moz.build ++++ b/third_party/libwebrtc/moz.build +@@ -624,7 +624,9 @@ if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux": + "/third_party/libwebrtc/api/audio_codecs/isac/audio_decoder_isac_float_gn", + "/third_party/libwebrtc/api/audio_codecs/isac/audio_encoder_isac_float_gn", + "/third_party/libwebrtc/modules/audio_coding/isac_c_gn", +- "/third_party/libwebrtc/modules/audio_coding/isac_gn" ++ "/third_party/libwebrtc/modules/audio_coding/isac_gn", ++ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn", ++ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn", + ] + + if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux": |