diff options
Diffstat (limited to '')
22 files changed, 986 insertions, 0 deletions
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..2cece0897b --- /dev/null +++ b/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch @@ -0,0 +1,30 @@ +From: Mike Hommey <glandium@debian.org> +Date: Sat, 21 Jun 2008 03:09:21 +0200 +Subject: Add another preferences directory for applications: + preferences/syspref + +This can be used to symlink to /etc/thunderbird/pref. +--- + toolkit/xre/nsXREDirProvider.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp +index 41d2353..28d9780 100644 +--- a/toolkit/xre/nsXREDirProvider.cpp ++++ b/toolkit/xre/nsXREDirProvider.cpp +@@ -676,6 +676,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, +@@ -693,6 +694,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/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch b/debian/patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch new file mode 100644 index 0000000000..19928b9974 --- /dev/null +++ b/debian/patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch @@ -0,0 +1,48 @@ +From: Mike Hommey <glandium@debian.org> +Date: Mon, 5 Apr 2010 17:58:23 +0200 +Subject: Don't error-out when run-time libsqlite is older than build-time + libsqlite + +In Debian, we have shlibs to handle this. +--- + storage/mozStorageService.cpp | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp +index d73a168..4a2eb64 100644 +--- a/storage/mozStorageService.cpp ++++ b/storage/mozStorageService.cpp +@@ -167,6 +167,33 @@ already_AddRefed<Service> Service::getSingleton() { + return do_AddRef(gService); + } + ++#if 0 ++ // Ensure that we are using the same version of SQLite that we compiled with ++ // or newer. Our configure check ensures we are using a new enough version ++ // at compile time. ++ if (SQLITE_VERSION_NUMBER > ::sqlite3_libversion_number() || ++ !::sqlite3_compileoption_used("SQLITE_SECURE_DELETE") || ++ !::sqlite3_compileoption_used("SQLITE_THREADSAFE=1") || ++ !::sqlite3_compileoption_used("SQLITE_ENABLE_FTS3") || ++ !::sqlite3_compileoption_used("SQLITE_ENABLE_UNLOCK_NOTIFY") || ++ !::sqlite3_compileoption_used("SQLITE_ENABLE_DBSTAT_VTAB")) { ++ nsCOMPtr<nsIPromptService> ps(do_GetService(NS_PROMPTSERVICE_CONTRACTID)); ++ if (ps) { ++ nsAutoString title, message; ++ title.AppendLiteral("SQLite Version Error"); ++ message.AppendLiteral( ++ "The application has been updated, but the SQLite " ++ "library wasn't updated properly and the application " ++ "cannot run. Please try to launch the application again. " ++ "If that should still fail, please try reinstalling " ++ "it, or contact the support of where you got the " ++ "application from."); ++ (void)ps->Alert(nullptr, title.get(), message.get()); ++ } ++ MOZ_CRASH("SQLite Version Error"); ++ } ++#endif ++ + // The first reference to the storage service must be obtained on the + // main thread. + NS_ENSURE_TRUE(NS_IsMainThread(), nullptr); 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..1c11ba6e26 --- /dev/null +++ b/debian/patches/debian-hacks/Relax-minimum-supporter-rust-version-to-1.63.patch @@ -0,0 +1,378 @@ +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 + +Cherry picked from firefox. +--- + 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 | 5 +++-- + servo/components/style/stylesheets/container_rule.rs | 16 ++++++++-------- + servo/components/style/stylist.rs | 12 +++++++----- + 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, 36 insertions(+), 48 deletions(-) + +diff --git a/Cargo.lock b/Cargo.lock +index 88645ca..2e8b667 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -1040,9 +1040,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 583c08b..a15cae2 100644 +--- a/python/mozboot/mozboot/util.py ++++ b/python/mozboot/mozboot/util.py +@@ -11,7 +11,7 @@ import certifi + from mach.site import PythonVirtualenv + from mach.util import get_state_dir + +-MINIMUM_RUST_VERSION = "1.66.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 fc620ba..bc1a68d 100644 +--- a/servo/components/selectors/context.rs ++++ b/servo/components/selectors/context.rs +@@ -142,7 +142,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, + + /// The current element we're anchoring on for evaluating the relative selector. + current_relative_selector_anchor: Option<OpaqueElement>, +diff --git a/servo/components/selectors/parser.rs b/servo/components/selectors/parser.rs +index ca587e9..a15362f 100644 +--- a/servo/components/selectors/parser.rs ++++ b/servo/components/selectors/parser.rs +@@ -202,7 +202,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>; +@@ -3344,7 +3344,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 6bf527b..08018fd 100644 +--- a/servo/components/style/gecko/selector_parser.rs ++++ b/servo/components/style/gecko/selector_parser.rs +@@ -15,6 +15,7 @@ use cssparser::{BasicParseError, BasicParseErrorKind, Parser}; + use cssparser::{CowRcStr, SourceLocation, ToCss, Token}; + use dom::{DocumentState, ElementState}; + use selectors::parser::SelectorParseErrorKind; ++use servo_arc::Arc; + use std::fmt; + use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss as ToCss_}; + use thin_vec::ThinVec; +@@ -239,7 +240,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, + +@@ -249,11 +250,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 4fe2909..01f41bb 100644 +--- a/servo/components/style/properties/gecko.mako.rs ++++ b/servo/components/style/properties/gecko.mako.rs +@@ -99,15 +99,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 +@@ -228,8 +219,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 a082b2c..bc96fb7 100644 +--- a/servo/components/style/style_resolver.rs ++++ b/servo/components/style/style_resolver.rs +@@ -522,7 +522,7 @@ where + + fn match_pseudo( + &mut self, +- originating_element_style: &ComputedValues, ++ originating_element_style: &Arc<ComputedValues>, + pseudo_element: &PseudoElement, + visited_handling: VisitedHandlingMode, + ) -> Option<MatchingResults> { +@@ -558,7 +558,8 @@ where + self.context.shared.quirks_mode(), + NeedsSelectorFlags::Yes, + ); +- matching_context.extra_data.originating_element_style = Some(originating_element_style); ++ matching_context.extra_data.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 81f30ee..bbb80e9 100644 +--- a/servo/components/style/stylist.rs ++++ b/servo/components/style/stylist.rs +@@ -979,7 +979,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>, +@@ -1125,7 +1125,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, +@@ -1156,7 +1156,8 @@ impl Stylist { + ); + + matching_context.pseudo_element_matching_fn = matching_fn; +- matching_context.extra_data.originating_element_style = Some(originating_element_style); ++ matching_context.extra_data.originating_element_style = ++ Some(originating_element_style.clone()); + + self.push_applicable_declarations( + element, +@@ -1189,7 +1190,8 @@ impl Stylist { + needs_selector_flags, + ); + matching_context.pseudo_element_matching_fn = matching_fn; +- matching_context.extra_data.originating_element_style = Some(originating_element_style); ++ matching_context.extra_data.originating_element_style = ++ Some(originating_element_style.clone()); + + self.push_applicable_declarations( + element, +@@ -2502,7 +2504,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/Set-program-name-from-the-remoting-name.patch b/debian/patches/debian-hacks/Set-program-name-from-the-remoting-name.patch new file mode 100644 index 0000000000..48bb4c026a --- /dev/null +++ b/debian/patches/debian-hacks/Set-program-name-from-the-remoting-name.patch @@ -0,0 +1,26 @@ +From: Mike Hommey <mh@glandium.org> +Date: Sun, 5 Feb 2017 08:41:22 +0900 +Subject: Set program name from the remoting name + +--- + toolkit/xre/nsAppRunner.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp +index 9158d4f..8f03e1c 100644 +--- a/toolkit/xre/nsAppRunner.cpp ++++ b/toolkit/xre/nsAppRunner.cpp +@@ -4634,8 +4634,11 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) { + // consistently. + + // Set program name to the one defined in application.ini. +- g_set_prgname(gAppData->remotingName); +- ++ { ++ nsAutoCString program(gAppData->remotingName); ++ ToLowerCase(program); ++ g_set_prgname(program.get()); ++ } + // Initialize GTK here for splash. + + # if defined(MOZ_WIDGET_GTK) && defined(MOZ_X11) diff --git a/debian/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch b/debian/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch new file mode 100644 index 0000000000..1c85d5d9e3 --- /dev/null +++ b/debian/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch @@ -0,0 +1,24 @@ +From: =?utf-8?q?Guido_G=C3=BCnther?= <agx@sigxcpu.org> +Date: Sat, 24 Nov 2012 11:39:58 +0100 +Subject: Strip version number from application before installation + +Strip thunderbird's version number from the installation directories so +we have a fixed location for extensions that build against it. +--- + config/baseconfig.mk | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/config/baseconfig.mk b/config/baseconfig.mk +index 8f3e920..47c442a 100644 +--- a/config/baseconfig.mk ++++ b/config/baseconfig.mk +@@ -3,6 +3,9 @@ + # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending + # whether a normal build is happening or whether the check is running. + installdir = $(libdir)/$(MOZ_APP_NAME) ++includedir := $(includedir)/$(MOZ_APP_NAME) ++idldir = $(datadir)/idl/$(MOZ_APP_NAME) ++sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel + ifeq (.,$(DEPTH)) + DIST = dist + else diff --git a/debian/patches/debian-hacks/rnp-Fix-include-for-format-specifiers-for-uint32_t.patch b/debian/patches/debian-hacks/rnp-Fix-include-for-format-specifiers-for-uint32_t.patch new file mode 100644 index 0000000000..152e5978f8 --- /dev/null +++ b/debian/patches/debian-hacks/rnp-Fix-include-for-format-specifiers-for-uint32_t.patch @@ -0,0 +1,24 @@ +From: Carsten Schoenert <c.schoenert@t-online.de> +Date: Tue, 18 Jul 2023 19:55:09 +0200 +Subject: rnp: Fix include for format specifiers for uint32_t + +The internal rnp library need the header file cinttypes so the format +definitions in sexp-error.h knows the format of uint32_t. + +Forwarded: not-needed +--- + comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h b/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h +index 332a63b..6e9dacc 100644 +--- a/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h ++++ b/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h +@@ -29,6 +29,7 @@ + + #pragma once + ++#include <cinttypes> + #include <cstdint> + #include <exception> + #include <iostream> diff --git a/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch b/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch new file mode 100644 index 0000000000..b77465002b --- /dev/null +++ b/debian/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch @@ -0,0 +1,77 @@ +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() + +--- + modules/libpref/parser/src/lib.rs | 23 ++++++++++++----------- + 1 file changed, 12 insertions(+), 11 deletions(-) + +diff --git a/modules/libpref/parser/src/lib.rs b/modules/libpref/parser/src/lib.rs +index 3a0ad2c..ae884a6 100644 +--- a/modules/libpref/parser/src/lib.rs ++++ b/modules/libpref/parser/src/lib.rs +@@ -11,7 +11,7 @@ + //! ```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-name> = <string-literal> + //! <pref-value> = <string-literal> | "true" | "false" | <int-value> +@@ -169,6 +169,7 @@ enum Token { + // Keywords + Pref, // pref + StickyPref, // sticky_pref ++ LockPref, // lockPref + UserPref, // user_pref + True, // true + False, // false +@@ -291,7 +292,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 +322,10 @@ const KEYWORD_INFOS: [KeywordInfo; 7] = [ + string: b"sticky_pref", + token: Token::StickyPref, + }, ++ KeywordInfo { ++ string: b"lock_pref", ++ token: Token::LockPref, ++ }, + ]; + + struct Parser<'t> { +@@ -373,14 +378,11 @@ 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 { +- Token::Pref if self.kind == PrefValueKind::Default => { +- (PrefValueKind::Default, false) +- } +- Token::StickyPref if self.kind == PrefValueKind::Default => { +- (PrefValueKind::Default, true) +- } +- Token::UserPref => (PrefValueKind::User, false), ++ let (pref_value_kind, mut is_sticky, mut is_locked) = match token { ++ Token::Pref => (PrefValueKind::Default, false, false), ++ Token::StickyPref => (PrefValueKind::Default, true, 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 +492,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/fixes/Appdata-Adding-some-German-translations.patch b/debian/patches/fixes/Appdata-Adding-some-German-translations.patch new file mode 100644 index 0000000000..13088078d8 --- /dev/null +++ b/debian/patches/fixes/Appdata-Adding-some-German-translations.patch @@ -0,0 +1,48 @@ +From: Carsten Schoenert <c.schoenert@t-online.de> +Date: Sun, 18 Oct 2020 08:38:29 +0200 +Subject: Appdata: Adding some German translations + +--- + .../thunderbird/net.thunderbird.Thunderbird.appdata.xml | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml b/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml +index 30397d1..d31e2dd 100644 +--- a/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml ++++ b/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml +@@ -3,7 +3,9 @@ + <id>net.thunderbird.Thunderbird</id> + <metadata_license>CC0-1.0</metadata_license> + <name>Thunderbird</name> ++ <name xml:lang="de">Thunderbird</name> + <summary>Thunderbird is a free and open source email, newsfeed, chat, and calendaring client</summary> ++ <summary xml:lang="de">Thunderbird ist ein freier und Quelloffener Klient für E-Mail-, Newsfeed-, Chat- und Kalender</summary> + <description> + <!-- From https://www.thunderbird.net/en-US/about/ --> + <p> +@@ -14,10 +16,25 @@ + that can’t communicate with each other. We want our users to have freedom + and choice in how they communicate. + </p> ++ <!-- Von https://www.thunderbird.net/de/about/ --> ++ <p xml:lang="de"> ++ Thunderbird ist ein kostenloses E-Mail-, Newsfeed-, Chat- und ++ Kalender-Programm, das einfach einzurichten und anzupassen ist. Eines ++ der Kernprinzipien von Thunderbird ist die Verwendung und Förderung ++ offener Standards – durch diesen Fokus lehnen wir die geschlossenen ++ Plattformen und Dienste unserer Welt ab, die nicht miteinander ++ kommunizieren können. Wir möchten, dass unsere Benutzer die Freiheit ++ und Wahl haben, wie sie kommunizieren. ++ </p> ++ + <p> + Thunderbird is an open source project, which means anyone can contribute + ideas, designs, code, and time helping fellow users. + </p> ++ <p xml:lang="de"> ++ Thunderbird ist ein Freies Softwareprojekt, jede Person kann Ideen, ++ Designs, Code und Zeit einbringen um anderen Benutzern zu helfen. ++ </p> + </description> + <categories> + <category>Calendar</category> diff --git a/debian/patches/fixes/Appdata-Fix-up-AppStream-error-by-adding-missing-field.patch b/debian/patches/fixes/Appdata-Fix-up-AppStream-error-by-adding-missing-field.patch new file mode 100644 index 0000000000..0472ed9173 --- /dev/null +++ b/debian/patches/fixes/Appdata-Fix-up-AppStream-error-by-adding-missing-field.patch @@ -0,0 +1,21 @@ +From: Carsten Schoenert <c.schoenert@t-online.de> +Date: Sun, 18 Oct 2020 08:39:44 +0200 +Subject: Appdata: Fix up AppStream error by adding missing field + +The AppStream data is missing the lauchable element. +--- + comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml b/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml +index d31e2dd..1f20e06 100644 +--- a/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml ++++ b/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml +@@ -2,6 +2,7 @@ + <component type="desktop-application"> + <id>net.thunderbird.Thunderbird</id> + <metadata_license>CC0-1.0</metadata_license> ++ <launchable type="desktop-id">thunderbird.desktop</launchable> + <name>Thunderbird</name> + <name xml:lang="de">Thunderbird</name> + <summary>Thunderbird is a free and open source email, newsfeed, chat, and calendaring client</summary> diff --git a/debian/patches/fixes/Fix-math_private.h-for-i386-FTBFS.patch b/debian/patches/fixes/Fix-math_private.h-for-i386-FTBFS.patch new file mode 100644 index 0000000000..ff53126401 --- /dev/null +++ b/debian/patches/fixes/Fix-math_private.h-for-i386-FTBFS.patch @@ -0,0 +1,25 @@ +From: Mike Hommey <mh@glandium.org> +Date: Sat, 27 Nov 2021 06:49:44 +0900 +Subject: Fix math_private.h for i386 FTBFS + +Cherry picked from firefox. +--- + 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/fixes/Load-dependent-libraries-with-their-real-path.patch b/debian/patches/fixes/Load-dependent-libraries-with-their-real-path.patch new file mode 100644 index 0000000000..088c79b0b8 --- /dev/null +++ b/debian/patches/fixes/Load-dependent-libraries-with-their-real-path.patch @@ -0,0 +1,22 @@ +From: Christoph Goehre <chris@sigxcpu.org> +Date: Mon, 16 Sep 2013 20:40:57 +0200 +Subject: Load dependent libraries with their real path + +--- + xpcom/glue/standalone/nsXPCOMGlue.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/xpcom/glue/standalone/nsXPCOMGlue.cpp b/xpcom/glue/standalone/nsXPCOMGlue.cpp +index 09edef1..6930417 100644 +--- a/xpcom/glue/standalone/nsXPCOMGlue.cpp ++++ b/xpcom/glue/standalone/nsXPCOMGlue.cpp +@@ -140,6 +140,9 @@ static ReadDependentCBResult ReadDependentCB( + ReadAheadLib(aDependentLib); + } + #endif ++ char lib[MAXPATHLEN]; ++ if (realpath(aDependentLib, lib)) ++ aDependentLib = lib; + LibHandleType libHandle; + MOZ_TRY_VAR(libHandle, GetLibHandle(aDependentLib)); + diff --git a/debian/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch b/debian/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch new file mode 100644 index 0000000000..0b05f7adc9 --- /dev/null +++ b/debian/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch @@ -0,0 +1,24 @@ +From: Mike Hommey <glandium@debian.org> +Date: Sat, 22 Nov 2008 09:35:23 +0100 +Subject: Properly launch applications set in $HOME/.mailcap + +https://bugzilla.mozilla.org/show_bug.cgi?id=444440 +--- + uriloader/exthandler/unix/nsMIMEInfoUnix.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +index 330c441..ff9d78b 100644 +--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp ++++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +@@ -57,6 +57,10 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWithFile(nsIFile* aFile) { + } + + nsAutoCString nativePath; ++/* the name of the function has changed ++ * the old was the following: ++ nsCAutoString nativePath; ++ */ + aFile->GetNativePath(nativePath); + + nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); diff --git a/debian/patches/fixes/skia-Cast-SkEndian_SwapBE32-n-to-uint32_t-on-big-endian.patch b/debian/patches/fixes/skia-Cast-SkEndian_SwapBE32-n-to-uint32_t-on-big-endian.patch new file mode 100644 index 0000000000..1afb5dab63 --- /dev/null +++ b/debian/patches/fixes/skia-Cast-SkEndian_SwapBE32-n-to-uint32_t-on-big-endian.patch @@ -0,0 +1,25 @@ +From: Carsten Schoenert <c.schoenert@t-online.de> +Date: Tue, 18 Jul 2023 16:02:48 +0200 +Subject: skia: Cast SkEndian_SwapBE32(n) to uint32_t on big-endian + +On BE the byte-swapping needs to be unint32_t so cast that to that. +We have ppc64 and s390x which are Big Endian platforms. + +Based on https://cgit.freebsd.org/ports/commit/?id=3110f3a0dcfdf1d5be165bbbb1ff08d720c63c48 +--- + gfx/skia/skia/src/base/SkEndian.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gfx/skia/skia/src/base/SkEndian.h b/gfx/skia/skia/src/base/SkEndian.h +index 732c248..ea35557 100644 +--- a/gfx/skia/skia/src/base/SkEndian.h ++++ b/gfx/skia/skia/src/base/SkEndian.h +@@ -131,7 +131,7 @@ static inline void SkEndianSwap64s(uint64_t array[], int count) { + #define SkTEndian_SwapLE64(n) (n) + #else // SK_CPU_BENDIAN + #define SkEndian_SwapBE16(n) (n) +- #define SkEndian_SwapBE32(n) (n) ++ #define SkEndian_SwapBE32(n) uint32_t(n) + #define SkEndian_SwapBE64(n) (n) + #define SkEndian_SwapLE16(n) SkEndianSwap16(n) + #define SkEndian_SwapLE32(n) SkEndianSwap32(n) diff --git a/debian/patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch b/debian/patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch new file mode 100644 index 0000000000..ffe17912ca --- /dev/null +++ b/debian/patches/porting-armel/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/porting-mips64el/skia-Disable-musttail-on-mips64.patch b/debian/patches/porting-mips64el/skia-Disable-musttail-on-mips64.patch new file mode 100644 index 0000000000..b18380ec6c --- /dev/null +++ b/debian/patches/porting-mips64el/skia-Disable-musttail-on-mips64.patch @@ -0,0 +1,23 @@ +From: Carsten Schoenert <c.schoenert@t-online.de> +Date: Sun, 23 Jul 2023 09:01:29 +0200 +Subject: skia: Disable musttail on mips64 + +Basically also based on https://cgit.freebsd.org/ports/commit/?id=8efc1c41f45d0d7c7fe2b9c05128bd00db9c397d +just extended about the macro __mips64 +--- + gfx/skia/skia/src/core/SkRasterPipeline.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gfx/skia/skia/src/core/SkRasterPipeline.h b/gfx/skia/skia/src/core/SkRasterPipeline.h +index 88c6cb2..41ae2e8 100644 +--- a/gfx/skia/skia/src/core/SkRasterPipeline.h ++++ b/gfx/skia/skia/src/core/SkRasterPipeline.h +@@ -24,7 +24,7 @@ enum SkColorType : int; + struct SkImageInfo; + struct skcms_TransferFunction; + +-#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && !defined(__powerpc__) ++#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && !defined(__powerpc__) && !defined(__mips64) + #define SK_HAS_MUSTTAIL 1 + #else + #define SK_HAS_MUSTTAIL 0 diff --git a/debian/patches/porting-ppc64el/Work-around-GCC-ICE-on-ppc64el.patch b/debian/patches/porting-ppc64el/Work-around-GCC-ICE-on-ppc64el.patch new file mode 100644 index 0000000000..911ad79b63 --- /dev/null +++ b/debian/patches/porting-ppc64el/Work-around-GCC-ICE-on-ppc64el.patch @@ -0,0 +1,30 @@ +From: Mike Hommey <mh@glandium.org> +Date: Tue, 11 Jul 2023 06:34:59 +0900 +Subject: Work around GCC ICE on ppc64el + +Cherry picked from firefox. +--- + 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 1d92936..ac0e0b2 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/porting-ppc64el/skia-Disable-musttail-on-ppc64el.patch b/debian/patches/porting-ppc64el/skia-Disable-musttail-on-ppc64el.patch new file mode 100644 index 0000000000..9e06c27ff7 --- /dev/null +++ b/debian/patches/porting-ppc64el/skia-Disable-musttail-on-ppc64el.patch @@ -0,0 +1,22 @@ +From: Carsten Schoenert <c.schoenert@t-online.de> +Date: Tue, 18 Jul 2023 16:20:51 +0200 +Subject: skia: Disable musttail on ppc64el + +Based on https://cgit.freebsd.org/ports/commit/?id=8efc1c41f45d0d7c7fe2b9c05128bd00db9c397d +--- + gfx/skia/skia/src/core/SkRasterPipeline.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gfx/skia/skia/src/core/SkRasterPipeline.h b/gfx/skia/skia/src/core/SkRasterPipeline.h +index 766bb0c..88c6cb2 100644 +--- a/gfx/skia/skia/src/core/SkRasterPipeline.h ++++ b/gfx/skia/skia/src/core/SkRasterPipeline.h +@@ -24,7 +24,7 @@ enum SkColorType : int; + struct SkImageInfo; + struct skcms_TransferFunction; + +-#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) ++#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && !defined(__powerpc__) + #define SK_HAS_MUSTTAIL 1 + #else + #define SK_HAS_MUSTTAIL 0 diff --git a/debian/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch b/debian/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch new file mode 100644 index 0000000000..3cf2b0062f --- /dev/null +++ b/debian/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch @@ -0,0 +1,21 @@ +From: Mike Hommey <glandium@debian.org> +Date: Sun, 2 Nov 2008 17:56:24 +0100 +Subject: Disable optimization on alpha for the url-classifier component + +The use of this component leads to crashes when built with optimizations. +--- + comm/suite/components/build/Makefile.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/comm/suite/components/build/Makefile.in b/comm/suite/components/build/Makefile.in +index 2387227..d5ca1ba 100644 +--- a/comm/suite/components/build/Makefile.in ++++ b/comm/suite/components/build/Makefile.in +@@ -6,3 +6,7 @@ include $(topsrcdir)/config/rules.mk + + # Ensure that we don't embed a manifest referencing the CRT. + EMBED_MANIFEST_AT = ++ ++ifeq ($(OS_TEST),alpha) ++MOZ_OPTIMIZE_FLAGS := -O0 ++endif diff --git a/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch b/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch new file mode 100644 index 0000000000..5bb8e35afe --- /dev/null +++ b/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch @@ -0,0 +1,21 @@ +From: Christoph Goehre <chris@sigxcpu.org> +Date: Sat, 24 Mar 2012 11:54:43 +0100 +Subject: Don't auto-disable extensions in system directories + +--- + comm/mail/app/profile/all-thunderbird.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/comm/mail/app/profile/all-thunderbird.js b/comm/mail/app/profile/all-thunderbird.js +index f80a70f..008018d 100644 +--- a/comm/mail/app/profile/all-thunderbird.js ++++ b/comm/mail/app/profile/all-thunderbird.js +@@ -189,7 +189,7 @@ pref("extensions.systemAddon.update.enabled", true); // See bug 1462160. + // Disable add-ons installed into the shared user and shared system areas by + // default. This does not include the application directory. See the SCOPE + // constants in AddonManager.jsm for values to use here +-pref("extensions.autoDisableScopes", 15); ++pref("extensions.autoDisableScopes", 3); + + // Enable add-ons installed and owned by the application, like the default theme. + pref("extensions.startupScanScopes", 4); diff --git a/debian/patches/prefs/Set-javascript.options.showInConsole.patch b/debian/patches/prefs/Set-javascript.options.showInConsole.patch new file mode 100644 index 0000000000..33f8fdd487 --- /dev/null +++ b/debian/patches/prefs/Set-javascript.options.showInConsole.patch @@ -0,0 +1,33 @@ +From: Mike Hommey <glandium@debian.org> +Date: Sat, 8 Dec 2007 19:24:40 +0100 +Subject: Set javascript.options.showInConsole + +--- + modules/libpref/init/all.js | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js +index c7c6f0c..3823047 100644 +--- a/modules/libpref/init/all.js ++++ b/modules/libpref/init/all.js +@@ -976,11 +976,20 @@ pref("javascript.options.throw_on_asmjs_validation_failure", false); + // memory, but makes things like Function.prototype.toSource() + // fail. + pref("javascript.options.discardSystemSource", false); ++pref("javascript.options.showInConsole", true); + + // Many of the the following preferences tune the SpiderMonkey GC, if you + // change the defaults here please also consider changing them in + // js/src/jsgc.cpp. They're documented in js/src/jsapi.h. + ++// JSGC_MAX_MALLOC_BYTES ++// How much malloc memory can be allocated before triggering a GC, in MB. ++// This preference limits the memory usage of javascript. ++// If you want to change these values for your device, ++// please find Bug 417052 comment 17 and Bug 456721 ++// Comment 32 and Bug 613551. ++pref("javascript.options.mem.high_water_mark", 128); ++ + // JSGC_MAX_BYTES + // SpiderMonkey defaults to 2^32-1 bytes, but this is measured in MB so that + // cannot be represented directly in order to show it in about:config. diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000000..49f68eef69 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,21 @@ +thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch +debian-hacks/Strip-version-number-from-application-before-installation.patch +debian-hacks/Add-another-preferences-directory-for-applications-p.patch +porting/Disable-optimization-on-alpha-for-the-url-classifier.patch +fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch +fixes/Appdata-Adding-some-German-translations.patch +fixes/Appdata-Fix-up-AppStream-error-by-adding-missing-field.patch +debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch +fixes/Load-dependent-libraries-with-their-real-path.patch +prefs/Set-javascript.options.showInConsole.patch +prefs/Don-t-auto-disable-extensions-in-system-directories.patch +porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch +fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch +debian-hacks/Set-program-name-from-the-remoting-name.patch +fixes/Fix-math_private.h-for-i386-FTBFS.patch +porting-ppc64el/Work-around-GCC-ICE-on-ppc64el.patch +debian-hacks/Relax-minimum-supporter-rust-version-to-1.63.patch +fixes/skia-Cast-SkEndian_SwapBE32-n-to-uint32_t-on-big-endian.patch +porting-ppc64el/skia-Disable-musttail-on-ppc64el.patch +debian-hacks/rnp-Fix-include-for-format-specifiers-for-uint32_t.patch +porting-mips64el/skia-Disable-musttail-on-mips64.patch diff --git a/debian/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch b/debian/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch new file mode 100644 index 0000000000..23792bd48c --- /dev/null +++ b/debian/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch @@ -0,0 +1,22 @@ +From: Christoph Goehre <chris@sigxcpu.org> +Date: Mon, 5 Sep 2011 19:21:25 +0200 +Subject: sl: change Edit (Uredi) to CTRL+E + +Closes: #601331 +--- + thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd b/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd +index e586ac4..6572acf 100644 +--- a/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd ++++ b/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd +@@ -10,7 +10,7 @@ + <!ENTITY newMenu.accesskey "N"> + + <!ENTITY editMenu.label "Uredi"> +-<!ENTITY editMenu.accesskey "U"> ++<!ENTITY editMenu.accesskey "e"> + <!ENTITY undoCmd.label "Razveljavi"> + <!ENTITY undoCmd.accesskey "R"> + <!ENTITY redoCmd.label "Uveljavi"> |