Compare commits
40 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
093cbcc87f | ||
|
|
be9079cd64 | ||
|
|
d12794f6bd | ||
|
|
5178dbc5d9 | ||
|
|
054181fd93 | ||
|
|
d38ea34cd3 | ||
|
|
84650f797c | ||
|
|
78ad184f83 | ||
|
|
4dd2c755af | ||
|
|
e44027c8b4 | ||
|
|
82f3c73da3 | ||
|
|
d7b0c299f6 | ||
|
|
d55ba11efb | ||
|
|
e365d236ed | ||
|
|
113efa17a0 | ||
|
|
f4cd903522 | ||
|
|
a67599f95c | ||
|
|
7c77470312 | ||
|
|
9ac50baa0c | ||
|
|
8a8d59d848 | ||
|
|
538999ce91 | ||
|
|
c6973a68b2 | ||
|
|
f1c002ab45 | ||
|
|
1009b00bdf | ||
|
|
c9712f8c61 | ||
|
|
ed74204de3 | ||
|
|
19e42eccf0 | ||
|
|
8b1e54473d | ||
|
|
19bb04a54e | ||
|
|
1a3e6866b0 | ||
|
|
e8dc44af94 | ||
|
|
3d21c36eea | ||
|
|
49a2687ab6 | ||
|
|
2cfab527d1 | ||
|
|
b53aa7bc9d | ||
|
|
1bc7123ecf | ||
|
|
2278b9fed2 | ||
|
|
9dd8d34354 | ||
|
|
ec8e3a6ad7 | ||
|
|
f1f41a6dcf |
20 changed files with 528 additions and 367 deletions
32
.gitignore
vendored
32
.gitignore
vendored
|
|
@ -496,35 +496,3 @@ thunderbird-langpacks-3.1.2-20100803.tar.bz2
|
|||
/thunderbird-langpacks-128.9.2esr-20250416.tar.xz
|
||||
/thunderbird-128.10.0esr.source.tar.xz
|
||||
/thunderbird-langpacks-128.10.0esr-20250428.tar.xz
|
||||
/thunderbird-128.10.1esr.source.tar.xz
|
||||
/thunderbird-langpacks-128.10.1esr-20250519.tar.xz
|
||||
/thunderbird-128.10.2esr.source.tar.xz
|
||||
/thunderbird-langpacks-128.10.2esr-20250521.tar.xz
|
||||
/thunderbird-128.11.0esr.source.tar.xz
|
||||
/thunderbird-langpacks-128.11.0esr-20250526.tar.xz
|
||||
/thunderbird-128.11.1esr.source.tar.xz
|
||||
/thunderbird-langpacks-128.11.1esr-20250611.tar.xz
|
||||
/thunderbird-128.12.0esr.source.tar.xz
|
||||
/thunderbird-langpacks-128.12.0esr-20250630.tar.xz
|
||||
/thunderbird-128.13.0esr.source.tar.xz
|
||||
/thunderbird-langpacks-128.13.0esr-20250723.tar.xz
|
||||
/thunderbird-140.1.0esr.source.tar.xz
|
||||
/thunderbird-langpacks-140.1.0esr-20250731.tar.xz
|
||||
/thunderbird-140.2.1esr.source.tar.xz
|
||||
/thunderbird-langpacks-140.2.1esr-20250904.tar.xz
|
||||
/thunderbird-langpacks-140.3.0esr-20250924.tar.xz
|
||||
/thunderbird-140.3.0esr.source.tar.xz
|
||||
/thunderbird-143.0.1.source.tar.xz
|
||||
/thunderbird-langpacks-143.0.1-20251002.tar.xz
|
||||
/thunderbird-144.0.source.tar.xz
|
||||
/thunderbird-langpacks-144.0-20251016.tar.xz
|
||||
/thunderbird-144.0.1.source.tar.xz
|
||||
/thunderbird-langpacks-144.0.1-20251021.tar.xz
|
||||
/thunderbird-145.0.source.tar.xz
|
||||
/thunderbird-langpacks-145.0-20251119.tar.xz
|
||||
/thunderbird-146.0.source.tar.xz
|
||||
/thunderbird-langpacks-146.0-20251215.tar.xz
|
||||
/thunderbird-146.0.1.source.tar.xz
|
||||
/thunderbird-langpacks-146.0.1-20251218.tar.xz
|
||||
/thunderbird-147.0.source.tar.xz
|
||||
/thunderbird-langpacks-147.0-20260114.tar.xz
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
diff -up thunderbird-147.0/comm/third_party/openpgp.configure.build-botan thunderbird-147.0/comm/third_party/openpgp.configure
|
||||
--- thunderbird-147.0/comm/third_party/openpgp.configure.build-botan 2026-01-08 22:45:29.000000000 +0100
|
||||
+++ thunderbird-147.0/comm/third_party/openpgp.configure 2026-01-14 15:43:34.946025500 +0100
|
||||
@@ -348,7 +348,7 @@ with only_when(in_tree_librnp):
|
||||
|
||||
botan_flags = [
|
||||
"--cc-bin={}".format(cxx_compiler.compiler),
|
||||
- "--cc-abi-flags={}".format(" ".join(abi_flags)),
|
||||
+ #"--cc-abi-flags={}".format(" ".join(abi_flags)),
|
||||
"--cpu={}".format(target.cpu),
|
||||
"--os={}".format(botan_os),
|
||||
"--with-build-dir={}".format(botan_objdir),
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,11 +0,0 @@
|
|||
diff -up thunderbird-145.0/security/sandbox/chromium/sandbox/linux/system_headers/linux_seccomp.h.seccomp thunderbird-145.0/security/sandbox/chromium/sandbox/linux/system_headers/linux_seccomp.h
|
||||
--- thunderbird-145.0/security/sandbox/chromium/sandbox/linux/system_headers/linux_seccomp.h.seccomp 2025-12-09 13:42:31.378958842 +0100
|
||||
+++ thunderbird-145.0/security/sandbox/chromium/sandbox/linux/system_headers/linux_seccomp.h 2025-12-09 13:42:37.886937626 +0100
|
||||
@@ -6,6 +6,7 @@
|
||||
#define SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SECCOMP_H_
|
||||
|
||||
#include <stdint.h>
|
||||
+#include <signal.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
#include "build/build_config.h"
|
||||
44
build-swgl-gcc15-D221744.diff
Normal file
44
build-swgl-gcc15-D221744.diff
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
diff --git a/gfx/wr/swgl/src/vector_type.h b/gfx/wr/swgl/src/vector_type.h
|
||||
--- a/gfx/wr/swgl/src/vector_type.h
|
||||
+++ b/gfx/wr/swgl/src/vector_type.h
|
||||
@@ -238,27 +238,27 @@
|
||||
VectorType& operator%=(int x) {
|
||||
data %= x;
|
||||
return *this;
|
||||
}
|
||||
|
||||
- VectorType<mask_type, N> operator==(VectorType x) const {
|
||||
- return VectorType<mask_type, N>::wrap(data == x.data);
|
||||
+ VectorType<mask_index, N> operator==(VectorType x) const {
|
||||
+ return VectorType<mask_index, N>::wrap(data == x.data);
|
||||
}
|
||||
- VectorType<mask_type, N> operator!=(VectorType x) const {
|
||||
- return VectorType<mask_type, N>::wrap(data != x.data);
|
||||
+ VectorType<mask_index, N> operator!=(VectorType x) const {
|
||||
+ return VectorType<mask_index, N>::wrap(data != x.data);
|
||||
}
|
||||
- VectorType<mask_type, N> operator<(VectorType x) const {
|
||||
- return VectorType<mask_type, N>::wrap(data < x.data);
|
||||
+ VectorType<mask_index, N> operator<(VectorType x) const {
|
||||
+ return VectorType<mask_index, N>::wrap(data < x.data);
|
||||
}
|
||||
- VectorType<mask_type, N> operator>(VectorType x) const {
|
||||
- return VectorType<mask_type, N>::wrap(data > x.data);
|
||||
+ VectorType<mask_index, N> operator>(VectorType x) const {
|
||||
+ return VectorType<mask_index, N>::wrap(data > x.data);
|
||||
}
|
||||
- VectorType<mask_type, N> operator<=(VectorType x) const {
|
||||
- return VectorType<mask_type, N>::wrap(data <= x.data);
|
||||
+ VectorType<mask_index, N> operator<=(VectorType x) const {
|
||||
+ return VectorType<mask_index, N>::wrap(data <= x.data);
|
||||
}
|
||||
- VectorType<mask_type, N> operator>=(VectorType x) const {
|
||||
- return VectorType<mask_type, N>::wrap(data >= x.data);
|
||||
+ VectorType<mask_index, N> operator>=(VectorType x) const {
|
||||
+ return VectorType<mask_index, N>::wrap(data >= x.data);
|
||||
}
|
||||
|
||||
VectorType operator!() const { return wrap(!data); }
|
||||
VectorType operator&&(VectorType x) const { return wrap(data & x.data); }
|
||||
VectorType operator||(VectorType x) const { return wrap(data | x.data); }
|
||||
|
||||
276
build-swgl-gcc15-D222067.diff
Normal file
276
build-swgl-gcc15-D222067.diff
Normal file
|
|
@ -0,0 +1,276 @@
|
|||
diff --git a/gfx/wr/swgl/src/vector_type.h b/gfx/wr/swgl/src/vector_type.h
|
||||
--- a/gfx/wr/swgl/src/vector_type.h
|
||||
+++ b/gfx/wr/swgl/src/vector_type.h
|
||||
@@ -92,10 +92,19 @@
|
||||
template <>
|
||||
struct VectorMask<float> {
|
||||
typedef int type;
|
||||
};
|
||||
|
||||
+# ifdef __has_builtin
|
||||
+# if __has_builtin(__builtin_convertvector)
|
||||
+# define HAS_BUILTIN_CONVERTVECTOR
|
||||
+# endif
|
||||
+# if __has_builtin(__builtin_shufflevector)
|
||||
+# define HAS_BUILTIN_SHUFFLEVECTOR
|
||||
+# endif
|
||||
+# endif
|
||||
+
|
||||
template <typename T, int N>
|
||||
struct VectorType {
|
||||
enum { SIZE = N };
|
||||
|
||||
typedef T data_type __attribute__((vector_size(sizeof(T) * N)));
|
||||
@@ -134,10 +143,17 @@
|
||||
}
|
||||
|
||||
T& operator[](size_t i) { return elements[i]; }
|
||||
T operator[](size_t i) const { return elements[i]; }
|
||||
|
||||
+# ifdef HAS_BUILTIN_CONVERTVECTOR
|
||||
+ template <typename U, int M>
|
||||
+ operator VectorType<U, M>() const {
|
||||
+ return VectorType<U, M>::wrap(
|
||||
+ __builtin_convertvector(data, typename VectorType<U, M>::data_type));
|
||||
+ }
|
||||
+# else
|
||||
template <typename U>
|
||||
operator VectorType<U, 2>() const {
|
||||
return VectorType<U, 2>::wrap(
|
||||
(typename VectorType<U, N>::data_type){U(x), U(y)});
|
||||
}
|
||||
@@ -171,10 +187,11 @@
|
||||
U(elements[13]),
|
||||
U(elements[14]),
|
||||
U(elements[15]),
|
||||
});
|
||||
}
|
||||
+# endif
|
||||
|
||||
VectorType operator-() const { return wrap(-data); }
|
||||
VectorType operator~() const { return wrap(~data); }
|
||||
|
||||
VectorType operator&(VectorType x) const { return wrap(data & x.data); }
|
||||
@@ -266,46 +283,10 @@
|
||||
VectorType& operator=(VectorType x) {
|
||||
data = x.data;
|
||||
return *this;
|
||||
}
|
||||
|
||||
- VectorType<T, 4> shuffle(VectorType b, mask_index x, mask_index y,
|
||||
- mask_index z, mask_index w) const {
|
||||
- return VectorType<T, 4>::wrap(__builtin_shuffle(
|
||||
- data, b.data, (typename VectorType<T, 4>::mask_type){x, y, z, w}));
|
||||
- }
|
||||
- VectorType<T, 8> shuffle(VectorType b, mask_index x, mask_index y,
|
||||
- mask_index z, mask_index w, mask_index s,
|
||||
- mask_index t, mask_index u, mask_index v) const {
|
||||
- return VectorType<T, 8>::wrap(__builtin_shuffle(
|
||||
- data, b.data,
|
||||
- (typename VectorType<T, 8>::mask_type){x, y, z, w, s, t, u, v}));
|
||||
- }
|
||||
- VectorType<T, 16> shuffle(VectorType b, mask_index x, mask_index y,
|
||||
- mask_index z, mask_index w, mask_index s,
|
||||
- mask_index t, mask_index u, mask_index v,
|
||||
- mask_index i, mask_index j, mask_index k,
|
||||
- mask_index l, mask_index m, mask_index n,
|
||||
- mask_index o, mask_index p) const {
|
||||
- return VectorType<T, 16>::wrap(
|
||||
- __builtin_shuffle(data, b.data,
|
||||
- (typename VectorType<T, 16>::mask_type){
|
||||
- x, y, z, w, s, t, u, v, i, j, k, l, m, n, o, p}));
|
||||
- }
|
||||
-
|
||||
- VectorType<T, 4> swizzle(mask_index x, mask_index y, mask_index z,
|
||||
- mask_index w) const {
|
||||
- return VectorType<T, 4>::wrap(__builtin_shuffle(
|
||||
- data, (typename VectorType<T, 4>::mask_type){x, y, z, w}));
|
||||
- }
|
||||
- VectorType<T, 8> swizzle(mask_index x, mask_index y, mask_index z,
|
||||
- mask_index w, mask_index s, mask_index t,
|
||||
- mask_index u, mask_index v) const {
|
||||
- return VectorType<T, 8>::wrap(__builtin_shuffle(
|
||||
- data, (typename VectorType<T, 8>::mask_type){x, y, z, w, s, t, u, v}));
|
||||
- }
|
||||
-
|
||||
SI VectorType wrap(half_type low, half_type high) {
|
||||
VectorType v;
|
||||
v.low_half = low;
|
||||
v.high_half = high;
|
||||
return v;
|
||||
@@ -313,57 +294,90 @@
|
||||
|
||||
VectorType<T, N * 2> combine(VectorType high) const {
|
||||
return VectorType<T, N * 2>::wrap(data, high.data);
|
||||
}
|
||||
|
||||
-# define xxxx swizzle(0, 0, 0, 0)
|
||||
-# define yyyy swizzle(1, 1, 1, 1)
|
||||
-# define zzzz swizzle(2, 2, 2, 2)
|
||||
-# define wwww swizzle(3, 3, 3, 3)
|
||||
-# define xxyy swizzle(0, 0, 1, 1)
|
||||
-# define xxzz swizzle(0, 0, 2, 2)
|
||||
-# define yyww swizzle(1, 1, 3, 3)
|
||||
-# define zzww swizzle(2, 2, 3, 3)
|
||||
-# define xyxy swizzle(0, 1, 0, 1)
|
||||
-# define xzxz swizzle(0, 2, 0, 2)
|
||||
-# define ywyw swizzle(1, 3, 1, 3)
|
||||
-# define zwzw swizzle(2, 3, 2, 3)
|
||||
-# define zwxy swizzle(2, 3, 0, 1)
|
||||
-# define zyxw swizzle(2, 1, 0, 3)
|
||||
-# define xxyz swizzle(0, 0, 1, 2)
|
||||
-# define xyyz swizzle(0, 1, 1, 2)
|
||||
-# define xyzz swizzle(0, 1, 2, 2)
|
||||
-# define xzyw swizzle(0, 2, 1, 3)
|
||||
-# define yzwx swizzle(1, 2, 3, 0)
|
||||
-# define wxyz swizzle(3, 0, 1, 2)
|
||||
-# define wzyx swizzle(3, 2, 1, 0)
|
||||
-# define xxxxyyyy XXXXYYYY()
|
||||
- VectorType<T, 8> XXXXYYYY() const {
|
||||
- return swizzle(0, 0, 0, 0).combine(swizzle(1, 1, 1, 1));
|
||||
+# ifdef HAS_BUILTIN_SHUFFLEVECTOR
|
||||
+ template <mask_index... INDEXES, int M = sizeof...(INDEXES)>
|
||||
+ VectorType<T, M> shuffle(VectorType b) const {
|
||||
+ return VectorType<T, M>::wrap(
|
||||
+ __builtin_shufflevector(data, b.data, INDEXES...));
|
||||
+ }
|
||||
+
|
||||
+ template <mask_index... INDEXES, int M = sizeof...(INDEXES)>
|
||||
+ VectorType<T, M> swizzle() const {
|
||||
+ return VectorType<T, M>::wrap(
|
||||
+ __builtin_shufflevector(data, data, INDEXES...));
|
||||
+ }
|
||||
+# else
|
||||
+ template <mask_index... INDEXES, int M = sizeof...(INDEXES)>
|
||||
+ VectorType<T, M> shuffle(VectorType<T, M> b) const {
|
||||
+ return VectorType<T, M>::wrap(__builtin_shuffle(
|
||||
+ data, b.data, (typename VectorType<T, M>::mask_type){INDEXES...}));
|
||||
+ }
|
||||
+
|
||||
+ template <mask_index A, mask_index B, mask_index C, mask_index D,
|
||||
+ mask_index E, mask_index F, mask_index G, mask_index H>
|
||||
+ VectorType<T, 8> shuffle(VectorType<T, 4> b) const {
|
||||
+ return shuffle<A, B, C, D>(b).combine(shuffle<E, F, G, H>(b));
|
||||
+ }
|
||||
+
|
||||
+ template <mask_index A, mask_index B, mask_index C, mask_index D,
|
||||
+ mask_index E, mask_index F, mask_index G, mask_index H,
|
||||
+ mask_index I, mask_index J, mask_index K, mask_index L,
|
||||
+ mask_index W, mask_index X, mask_index Y, mask_index Z>
|
||||
+ VectorType<T, 16> shuffle(VectorType<T, 4> b) const {
|
||||
+ return shuffle<A, B, C, D, E, F, G, H>(b).combine(
|
||||
+ shuffle<I, J, K, L, W, X, Y, Z>(b));
|
||||
}
|
||||
-# define zzzzwwww ZZZZWWWW()
|
||||
- VectorType<T, 8> ZZZZWWWW() const {
|
||||
- return swizzle(2, 2, 2, 2).combine(swizzle(3, 3, 3, 3));
|
||||
+
|
||||
+ template <mask_index A, mask_index B, mask_index C, mask_index D,
|
||||
+ mask_index E, mask_index F, mask_index G, mask_index H,
|
||||
+ mask_index I, mask_index J, mask_index K, mask_index L,
|
||||
+ mask_index W, mask_index X, mask_index Y, mask_index Z>
|
||||
+ VectorType<T, 16> shuffle(VectorType<T, 8> b) const {
|
||||
+ return shuffle<A, B, C, D, E, F, G, H>(b).combine(
|
||||
+ shuffle<I, J, K, L, W, X, Y, Z>(b));
|
||||
}
|
||||
-# define xyzwxyzw XYZWXYZW()
|
||||
- VectorType<T, 8> XYZWXYZW() const { return combine(*this); }
|
||||
-# define xyxyxyxy XYXYXYXY()
|
||||
- VectorType<T, 8> XYXYXYXY() const {
|
||||
- return swizzle(0, 1, 0, 1).combine(swizzle(0, 1, 0, 1));
|
||||
+
|
||||
+ template <mask_index... INDEXES, int M = sizeof...(INDEXES)>
|
||||
+ VectorType<T, M> swizzle() const {
|
||||
+ return shuffle<INDEXES...>(*this);
|
||||
}
|
||||
-# define zwzwzwzw ZWZWZWZW()
|
||||
- VectorType<T, 8> ZWZWZWZW() const {
|
||||
- return swizzle(2, 3, 2, 3).combine(swizzle(2, 3, 2, 3));
|
||||
- }
|
||||
-# define xxyyzzww XXYYZZWW()
|
||||
- VectorType<T, 8> XXYYZZWW() const {
|
||||
- return swizzle(0, 0, 1, 1).combine(swizzle(2, 2, 3, 3));
|
||||
- }
|
||||
-# define xxxxyyyyzzzzwwww XXXXYYYYZZZZWWWW()
|
||||
- VectorType<T, 16> XXXXYYYYZZZZWWWW() {
|
||||
- return XXXXYYYY().combine(ZZZZWWWW());
|
||||
- }
|
||||
+# endif
|
||||
+
|
||||
+# define SWIZZLE(...) template swizzle<__VA_ARGS__>()
|
||||
+
|
||||
+# define xxxx SWIZZLE(0, 0, 0, 0)
|
||||
+# define yyyy SWIZZLE(1, 1, 1, 1)
|
||||
+# define zzzz SWIZZLE(2, 2, 2, 2)
|
||||
+# define wwww SWIZZLE(3, 3, 3, 3)
|
||||
+# define xxyy SWIZZLE(0, 0, 1, 1)
|
||||
+# define xxzz SWIZZLE(0, 0, 2, 2)
|
||||
+# define yyww SWIZZLE(1, 1, 3, 3)
|
||||
+# define zzww SWIZZLE(2, 2, 3, 3)
|
||||
+# define xyxy SWIZZLE(0, 1, 0, 1)
|
||||
+# define xzxz SWIZZLE(0, 2, 0, 2)
|
||||
+# define ywyw SWIZZLE(1, 3, 1, 3)
|
||||
+# define zwzw SWIZZLE(2, 3, 2, 3)
|
||||
+# define zwxy SWIZZLE(2, 3, 0, 1)
|
||||
+# define zyxw SWIZZLE(2, 1, 0, 3)
|
||||
+# define xxyz SWIZZLE(0, 0, 1, 2)
|
||||
+# define xyyz SWIZZLE(0, 1, 1, 2)
|
||||
+# define xyzz SWIZZLE(0, 1, 2, 2)
|
||||
+# define xzyw SWIZZLE(0, 2, 1, 3)
|
||||
+# define yzwx SWIZZLE(1, 2, 3, 0)
|
||||
+# define wxyz SWIZZLE(3, 0, 1, 2)
|
||||
+# define wzyx SWIZZLE(3, 2, 1, 0)
|
||||
+# define xxxxyyyy SWIZZLE(0, 0, 0, 0, 1, 1, 1, 1)
|
||||
+# define zzzzwwww SWIZZLE(2, 2, 2, 2, 3, 3, 3, 3)
|
||||
+# define xyzwxyzw SWIZZLE(0, 1, 2, 3, 0, 1, 2, 3)
|
||||
+# define xyxyxyxy SWIZZLE(0, 1, 0, 1, 0, 1, 0, 1)
|
||||
+# define zwzwzwzw SWIZZLE(2, 3, 2, 3, 2, 3, 2, 3)
|
||||
+# define xxyyzzww SWIZZLE(0, 0, 1, 1, 2, 2, 3, 3)
|
||||
+# define xxxxyyyyzzzzwwww \
|
||||
+ SWIZZLE(0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3)
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct VectorType<T, 2> {
|
||||
typedef T data_type __attribute__((vector_size(sizeof(T) * 2)));
|
||||
@@ -386,11 +400,11 @@
|
||||
VectorType operator|(VectorType x) const { return wrap(data | x.data); }
|
||||
VectorType operator|(T x) const { return wrap(data | x); }
|
||||
};
|
||||
|
||||
# define CONVERT(vector, type) ((type)(vector))
|
||||
-# define SHUFFLE(a, b, ...) a.shuffle(b, __VA_ARGS__)
|
||||
+# define SHUFFLE(a, b, ...) ((a).template shuffle<__VA_ARGS__>(b))
|
||||
|
||||
template <typename T, int N>
|
||||
SI VectorType<T, N * 2> combine(VectorType<T, N> a, VectorType<T, N> b) {
|
||||
return VectorType<T, N * 2>::wrap(a.data, b.data);
|
||||
}
|
||||
@@ -476,26 +490,19 @@
|
||||
template <typename T>
|
||||
SI VectorType<T, 8> zip2High(VectorType<T, 8> a, VectorType<T, 8> b) {
|
||||
return SHUFFLE(a, b, 4, 5, 12, 13, 6, 7, 14, 15);
|
||||
}
|
||||
|
||||
-#ifdef __clang__
|
||||
template <typename T>
|
||||
SI VectorType<T, 8> zip(VectorType<T, 4> a, VectorType<T, 4> b) {
|
||||
return SHUFFLE(a, b, 0, 4, 1, 5, 2, 6, 3, 7);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
SI VectorType<T, 16> zip(VectorType<T, 8> a, VectorType<T, 8> b) {
|
||||
return SHUFFLE(a, b, 0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15);
|
||||
}
|
||||
-#else
|
||||
-template <typename T, int N>
|
||||
-SI VectorType<T, N * 2> zip(VectorType<T, N> a, VectorType<T, N> b) {
|
||||
- return combine(zipLow(a, b), zipHigh(a, b));
|
||||
-}
|
||||
-#endif
|
||||
|
||||
template <typename T>
|
||||
struct Unaligned {
|
||||
template <typename P>
|
||||
SI T load(const P* p) {
|
||||
|
||||
49
expat-CVE-2022-25235.patch
Normal file
49
expat-CVE-2022-25235.patch
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
diff -up thunderbird-91.7.0/parser/expat/lib/xmltok.c.expat-CVE-2022-25235 thunderbird-91.7.0/parser/expat/lib/xmltok.c
|
||||
--- thunderbird-91.7.0/parser/expat/lib/xmltok.c.expat-CVE-2022-25235 2022-03-02 17:57:38.364361168 +0100
|
||||
+++ thunderbird-91.7.0/parser/expat/lib/xmltok.c 2022-03-02 17:58:22.235512399 +0100
|
||||
@@ -65,13 +65,6 @@
|
||||
+ ((((byte)[2]) >> 5) & 1)] \
|
||||
& (1u << (((byte)[2]) & 0x1F)))
|
||||
|
||||
-#define UTF8_GET_NAMING(pages, p, n) \
|
||||
- ((n) == 2 \
|
||||
- ? UTF8_GET_NAMING2(pages, (const unsigned char *)(p)) \
|
||||
- : ((n) == 3 \
|
||||
- ? UTF8_GET_NAMING3(pages, (const unsigned char *)(p)) \
|
||||
- : 0))
|
||||
-
|
||||
/* Detection of invalid UTF-8 sequences is based on Table 3.1B
|
||||
of Unicode 3.2: http://www.unicode.org/unicode/reports/tr28/
|
||||
with the additional restriction of not allowing the Unicode
|
||||
diff -up thunderbird-91.7.0/parser/expat/lib/xmltok_impl.c.expat-CVE-2022-25235 thunderbird-91.7.0/parser/expat/lib/xmltok_impl.c
|
||||
--- thunderbird-91.7.0/parser/expat/lib/xmltok_impl.c.expat-CVE-2022-25235 2022-03-02 17:57:38.365361172 +0100
|
||||
+++ thunderbird-91.7.0/parser/expat/lib/xmltok_impl.c 2022-03-02 18:04:51.240853247 +0100
|
||||
@@ -34,7 +34,7 @@
|
||||
case BT_LEAD ## n: \
|
||||
if (end - ptr < n) \
|
||||
return XML_TOK_PARTIAL_CHAR; \
|
||||
- if (!IS_NAME_CHAR(enc, ptr, n)) { \
|
||||
+ if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NAME_CHAR(enc, ptr, n)) { \
|
||||
*nextTokPtr = ptr; \
|
||||
return XML_TOK_INVALID; \
|
||||
} \
|
||||
@@ -62,7 +62,7 @@
|
||||
case BT_LEAD ## n: \
|
||||
if (end - ptr < n) \
|
||||
return XML_TOK_PARTIAL_CHAR; \
|
||||
- if (!IS_NMSTRT_CHAR(enc, ptr, n)) { \
|
||||
+ if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NMSTRT_CHAR(enc, ptr, n)) { \
|
||||
*nextTokPtr = ptr; \
|
||||
return XML_TOK_INVALID; \
|
||||
} \
|
||||
@@ -1090,6 +1090,10 @@ PREFIX(prologTok)(const ENCODING *enc, c
|
||||
case BT_LEAD ## n: \
|
||||
if (end - ptr < n) \
|
||||
return XML_TOK_PARTIAL_CHAR; \
|
||||
+ if (IS_INVALID_CHAR(enc, ptr, n)) { \
|
||||
+ *nextTokPtr = ptr; \
|
||||
+ return XML_TOK_INVALID; \
|
||||
+ } \
|
||||
if (IS_NMSTRT_CHAR(enc, ptr, n)) { \
|
||||
ptr += n; \
|
||||
tok = XML_TOK_NAME; \
|
||||
40
expat-CVE-2022-25236.patch
Normal file
40
expat-CVE-2022-25236.patch
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
diff -up thunderbird-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25236 thunderbird-91.7.0/parser/expat/lib/xmlparse.c
|
||||
--- thunderbird-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25236 2022-03-02 18:08:40.085642028 +0100
|
||||
+++ thunderbird-91.7.0/parser/expat/lib/xmlparse.c 2022-03-02 18:13:31.838667958 +0100
|
||||
@@ -700,8 +700,7 @@ XML_ParserCreate(const XML_Char *encodin
|
||||
XML_Parser XMLCALL
|
||||
XML_ParserCreateNS(const XML_Char *encodingName, XML_Char nsSep)
|
||||
{
|
||||
- XML_Char tmp[2];
|
||||
- *tmp = nsSep;
|
||||
+ XML_Char tmp[2] = {nsSep, 0};
|
||||
return XML_ParserCreate_MM(encodingName, NULL, tmp);
|
||||
}
|
||||
#endif
|
||||
@@ -1276,8 +1275,7 @@ XML_ExternalEntityParserCreate(XML_Parse
|
||||
would be otherwise.
|
||||
*/
|
||||
if (ns) {
|
||||
- XML_Char tmp[2];
|
||||
- *tmp = namespaceSeparator;
|
||||
+ XML_Char tmp[2] = {parser->m_namespaceSeparator, 0};
|
||||
parser = parserCreate(encodingName, &parser->m_mem, tmp, newDtd);
|
||||
}
|
||||
else {
|
||||
@@ -3667,6 +3665,16 @@ addBinding(XML_Parser parser, PREFIX *pr
|
||||
if (!mustBeXML && isXMLNS
|
||||
&& (len > xmlnsLen || uri[len] != xmlnsNamespace[len]))
|
||||
isXMLNS = XML_FALSE;
|
||||
+ // NOTE: While Expat does not validate namespace URIs against RFC 3986,
|
||||
+ // we have to at least make sure that the XML processor on top of
|
||||
+ // Expat (that is splitting tag names by namespace separator into
|
||||
+ // 2- or 3-tuples (uri-local or uri-local-prefix)) cannot be confused
|
||||
+ // by an attacker putting additional namespace separator characters
|
||||
+ // into namespace declarations. That would be ambiguous and not to
|
||||
+ // be expected.
|
||||
+ if (parser->m_ns && (uri[len] == parser->m_namespaceSeparator)) {
|
||||
+ return XML_ERROR_SYNTAX;
|
||||
+ }
|
||||
}
|
||||
isXML = isXML && len == xmlLen;
|
||||
isXMLNS = isXMLNS && len == xmlnsLen;
|
||||
24
expat-CVE-2022-25315.patch
Normal file
24
expat-CVE-2022-25315.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
diff -up thunderbird-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25315 thunderbird-91.7.0/parser/expat/lib/xmlparse.c
|
||||
--- thunderbird-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25315 2022-03-02 18:17:50.966583254 +0100
|
||||
+++ thunderbird-91.7.0/parser/expat/lib/xmlparse.c 2022-03-02 18:19:27.636924735 +0100
|
||||
@@ -2479,6 +2479,7 @@ storeRawNames(XML_Parser parser)
|
||||
while (tag) {
|
||||
int bufSize;
|
||||
int nameLen = sizeof(XML_Char) * (tag->name.strLen + 1);
|
||||
+ size_t rawNameLen;
|
||||
char *rawNameBuf = tag->buf + nameLen;
|
||||
/* Stop if already stored. Since tagStack is a stack, we can stop
|
||||
at the first entry that has already been copied; everything
|
||||
@@ -2490,7 +2491,11 @@ storeRawNames(XML_Parser parser)
|
||||
/* For re-use purposes we need to ensure that the
|
||||
size of tag->buf is a multiple of sizeof(XML_Char).
|
||||
*/
|
||||
- bufSize = nameLen + ROUND_UP(tag->rawNameLength, sizeof(XML_Char));
|
||||
+ rawNameLen = ROUND_UP(tag->rawNameLength, sizeof(XML_Char));
|
||||
+ /* Detect and prevent integer overflow. */
|
||||
+ if (rawNameLen > (size_t)INT_MAX - nameLen)
|
||||
+ return XML_FALSE;
|
||||
+ bufSize = nameLen + (int)rawNameLen;
|
||||
if (bufSize > tag->bufEnd - tag->buf) {
|
||||
char *temp = (char *)REALLOC(tag->buf, bufSize);
|
||||
if (temp == NULL)
|
||||
|
|
@ -12,7 +12,7 @@ to be used with 'cargo vendor' commmand.
|
|||
"""
|
||||
|
||||
[dependencies]
|
||||
cbindgen = "0.29.1"
|
||||
cbindgen = "0.26.0"
|
||||
|
||||
[[bin]]
|
||||
name = "dummy"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
diff -up firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.mozilla-bmo1170092 firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp
|
||||
--- firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.mozilla-bmo1170092 2025-06-02 15:26:44.000000000 +0200
|
||||
+++ firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2025-06-04 13:24:00.344728697 +0200
|
||||
diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp
|
||||
--- firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2023-07-10 21:08:53.000000000 +0200
|
||||
+++ firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp 2023-07-17 10:33:23.443355156 +0200
|
||||
@@ -263,8 +263,20 @@ nsresult nsReadConfig::openAndEvaluateJS
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
|
|
@ -23,10 +23,10 @@ diff -up firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.mozilla-b
|
|||
} else {
|
||||
nsAutoCString location("resource://gre/defaults/autoconfig/");
|
||||
location += aFileName;
|
||||
diff -up firefox-140.0/modules/libpref/Preferences.cpp.mozilla-bmo1170092 firefox-140.0/modules/libpref/Preferences.cpp
|
||||
--- firefox-140.0/modules/libpref/Preferences.cpp.mozilla-bmo1170092 2025-06-02 15:26:51.000000000 +0200
|
||||
+++ firefox-140.0/modules/libpref/Preferences.cpp 2025-06-04 13:24:00.345430064 +0200
|
||||
@@ -4914,6 +4914,9 @@ nsresult Preferences::InitInitialObjects
|
||||
diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2/modules/libpref/Preferences.cpp
|
||||
--- firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 2023-07-10 21:09:00.000000000 +0200
|
||||
+++ firefox-115.0.2/modules/libpref/Preferences.cpp 2023-07-17 10:33:23.444355156 +0200
|
||||
@@ -4825,6 +4825,9 @@ nsresult Preferences::InitInitialObjects
|
||||
//
|
||||
// Thus, in the omni.jar case, we always load app-specific default
|
||||
// preferences from omni.jar, whether or not `$app == $gre`.
|
||||
|
|
@ -36,10 +36,10 @@ diff -up firefox-140.0/modules/libpref/Preferences.cpp.mozilla-bmo1170092 firefo
|
|||
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
UniquePtr<nsZipFind> find;
|
||||
diff -up firefox-140.0/toolkit/xre/nsXREDirProvider.cpp.mozilla-bmo1170092 firefox-140.0/toolkit/xre/nsXREDirProvider.cpp
|
||||
--- firefox-140.0/toolkit/xre/nsXREDirProvider.cpp.mozilla-bmo1170092 2025-06-02 15:27:00.000000000 +0200
|
||||
+++ firefox-140.0/toolkit/xre/nsXREDirProvider.cpp 2025-06-04 15:44:09.413562326 +0200
|
||||
@@ -76,6 +76,7 @@
|
||||
diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp
|
||||
--- firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 2023-07-10 22:57:20.000000000 +0200
|
||||
+++ firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp 2023-07-17 10:56:25.309692121 +0200
|
||||
@@ -72,6 +72,7 @@
|
||||
#endif
|
||||
#ifdef XP_UNIX
|
||||
# include <ctype.h>
|
||||
|
|
@ -47,7 +47,7 @@ diff -up firefox-140.0/toolkit/xre/nsXREDirProvider.cpp.mozilla-bmo1170092 firef
|
|||
#endif
|
||||
#ifdef XP_IOS
|
||||
# include "UIKitDirProvider.h"
|
||||
@@ -462,6 +463,17 @@ nsXREDirProvider::GetFile(const char* aP
|
||||
@@ -478,6 +479,17 @@ nsXREDirProvider::GetFile(const char* aP
|
||||
rv = file->AppendNative(nsLiteralCString(PREF_OVERRIDE_DIRNAME));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = EnsureDirectoryExists(file);
|
||||
|
|
@ -60,12 +60,12 @@ diff -up firefox-140.0/toolkit/xre/nsXREDirProvider.cpp.mozilla-bmo1170092 firef
|
|||
+ appInfo->GetName(appName);
|
||||
+ ToLowerCase(appName);
|
||||
+ sysConfigDir.Append(appName);
|
||||
+ NS_NewNativeLocalFile(sysConfigDir, getter_AddRefs(file));
|
||||
+ NS_NewNativeLocalFile(sysConfigDir, false, getter_AddRefs(file));
|
||||
+ rv = EnsureDirectoryExists(file);
|
||||
} else {
|
||||
// We don't know anything about this property. Fail without warning, because
|
||||
// otherwise we'll get too much warning spam due to
|
||||
@@ -518,6 +530,16 @@ nsXREDirProvider::GetFiles(const char* a
|
||||
@@ -694,6 +706,16 @@ nsXREDirProvider::GetFiles(const char* a
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -82,9 +82,9 @@ diff -up firefox-140.0/toolkit/xre/nsXREDirProvider.cpp.mozilla-bmo1170092 firef
|
|||
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
|
||||
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
|
||||
// NS_APP_CHROME_DIR_LIST is only used to get default (native) icons
|
||||
diff -up firefox-140.0/xpcom/io/nsAppDirectoryServiceDefs.h.mozilla-bmo1170092 firefox-140.0/xpcom/io/nsAppDirectoryServiceDefs.h
|
||||
--- firefox-140.0/xpcom/io/nsAppDirectoryServiceDefs.h.mozilla-bmo1170092 2025-06-02 15:27:01.000000000 +0200
|
||||
+++ firefox-140.0/xpcom/io/nsAppDirectoryServiceDefs.h 2025-06-04 13:24:00.346423861 +0200
|
||||
diff -up firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h
|
||||
--- firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2023-07-10 21:09:13.000000000 +0200
|
||||
+++ firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h 2023-07-17 10:33:23.444355156 +0200
|
||||
@@ -58,6 +58,7 @@
|
||||
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
|
||||
#define NS_APP_PREFS_OVERRIDE_DIR \
|
||||
|
|
|
|||
|
|
@ -1,59 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>net.thunderbird.Thunderbird.appdata.xml</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<name>Thunderbird</name>
|
||||
<summary>Thunderbird is a free and open source email, newsfeed, chat, and calendaring client</summary>
|
||||
<description>
|
||||
<!-- From https://www.thunderbird.net/en-US/about/ -->
|
||||
<p>
|
||||
Thunderbird is a free and open source email, newsfeed, chat, and
|
||||
calendaring client, that’s easy to set up and customize. One of the core
|
||||
principles of Thunderbird is the use and promotion of open standards -
|
||||
this focus is a rejection of our world of closed platforms and services
|
||||
that can’t communicate with each other. We want our users to have freedom
|
||||
and choice in how they communicate.
|
||||
</p>
|
||||
<p>
|
||||
Thunderbird is an open source project, which means anyone can contribute
|
||||
ideas, designs, code, and time helping fellow users.
|
||||
</p>
|
||||
</description>
|
||||
<categories>
|
||||
<category>Calendar</category>
|
||||
<category>Email</category>
|
||||
<category>Office</category>
|
||||
</categories>
|
||||
|
||||
<url type="homepage">https://www.thunderbird.net/</url>
|
||||
<url type="bugtracker">https://bugzilla.mozilla.org/</url>
|
||||
<url type="faq">https://support.mozilla.org/kb/thunderbird-faq/</url>
|
||||
<url type="help">https://support.mozilla.org/products/thunderbird/</url>
|
||||
<url type="donation">https://www.thunderbird.net/donate/</url>
|
||||
<url type="translate">https://www.thunderbird.net/participate/</url>
|
||||
|
||||
<project_group>Mozilla</project_group>
|
||||
<project_license>MPL-2.0</project_license>
|
||||
<developer_name>Thunderbird Project</developer_name>
|
||||
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://raw.githubusercontent.com/thunderbird/flatpak-screenshots/main/image_1.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image>https://raw.githubusercontent.com/thunderbird/flatpak-screenshots/main/image_2.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
|
||||
<mimetypes>
|
||||
<mimetype>message/rfc822</mimetype>
|
||||
<mimetype>x-scheme-handler/mailto</mimetype>
|
||||
<mimetype>text/calendar</mimetype>
|
||||
<mimetype>text/vcard</mimetype>
|
||||
<mimetype>text/x-vcard</mimetype>
|
||||
</mimetypes>
|
||||
<releases>
|
||||
<release version="__VERSION__" date="__DATE__"/>
|
||||
</releases>
|
||||
<update_contact>jhorak@redhat.com</update_contact>
|
||||
</component>
|
||||
|
|
@ -8,7 +8,7 @@ TryExec=thunderbird
|
|||
Icon=thunderbird
|
||||
Terminal=false
|
||||
Type=Application
|
||||
MimeType=message/rfc822;x-scheme-handler/mailto;text/calendar;text/vcard;text/x-vcard;x-scheme-handler/webcal;x-scheme-handler/webcals;x-scheme-handler/mid;
|
||||
MimeType=message/rfc822;x-scheme-handler/mailto;
|
||||
StartupNotify=true
|
||||
Categories=Network;Email;
|
||||
Name[cs]=Poštovní klient Thunderbird
|
||||
|
|
|
|||
6
sources
6
sources
|
|
@ -1,3 +1,3 @@
|
|||
SHA512 (cbindgen-vendor.tar.xz) = 4127d3060577284eea29d697ccc2394742674f6094b7f497a95a0c3b8aa9e0494b720de8858ad31d4a6b0cd1b9586454f3c52c8088163c2709883d882e0136db
|
||||
SHA512 (thunderbird-147.0.source.tar.xz) = d04a135f23572123d5cca41c2611704aa06cb81e0226c89c267dc527f59fb0d9d5d8b8a49cd126626c2fd934624c9d2420ae71dd10a912b3011f3342fbaf7511
|
||||
SHA512 (thunderbird-langpacks-147.0-20260114.tar.xz) = e97f2894c0bbea00c35e5d8f0046d1d7112efb17d3af5d8a6f964c54352f9f6edbcbd4d41cc2595cb63e1116ae78680c9d42e65dc0eb0ff17e4a9d4ad97ec7ab
|
||||
SHA512 (cbindgen-vendor.tar.xz) = 3e7eaff088db918e95f5505e5feeb06e8b7b95cc62042a6d163a708fc76baea43d21bf49cf7e02bc64fdfc61e8d7704057dbb225098de56e110783104d166c54
|
||||
SHA512 (thunderbird-128.10.0esr.source.tar.xz) = b02582ea4fa0297a06d30eda1555bbf3ed79ae7a35a8993f2a70b0ec84af28a4d084cd7ebe1c73676e689ff9366e779cc5ef67a197638949bf232a40b740d1b6
|
||||
SHA512 (thunderbird-langpacks-128.10.0esr-20250428.tar.xz) = 12e5b4a619d9a08e38fb0de77d2a9ba6ca96cb4fd22529e313d09030e8c5498c00cded08b66dd7bc78789912b9e7d5865bbea0297e6703613c99caaf4de0ae06
|
||||
|
|
|
|||
30
thunderbird.desktop
Normal file
30
thunderbird.desktop
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Thunderbird
|
||||
GenericName=Email
|
||||
Comment=Send and Receive Email
|
||||
Exec=thunderbird %u
|
||||
TryExec=thunderbird
|
||||
Icon=thunderbird
|
||||
Terminal=false
|
||||
Type=Application
|
||||
MimeType=message/rfc822;x-scheme-handler/mailto;
|
||||
StartupNotify=true
|
||||
Categories=Network;Email;
|
||||
Name[cs]=Poštovní klient Thunderbird
|
||||
Name[ca]=Client de correu Thunderbird
|
||||
Name[fi]=Thunderbird-sähköposti
|
||||
Name[fr]=Messagerie Thunderbird
|
||||
Name[pl]=Klient poczty Thunderbird
|
||||
Name[pt_BR]=Cliente de E-mail Thunderbird
|
||||
Name[sv]=E-postklienten Thunderbird
|
||||
Comment[ca]=Llegiu i escriviu correu
|
||||
Comment[cs]=Čtení a psaní pošty
|
||||
Comment[de]=Emails lesen und verfassen
|
||||
Comment[fi]=Lue ja kirjoita sähköposteja
|
||||
Comment[fr]=Lire et écrire des courriels
|
||||
Comment[it]=Leggere e scrivere email
|
||||
Comment[ja]=メールの読み書き
|
||||
Comment[pl]=Czytanie i wysyłanie e-maili
|
||||
Comment[pt_BR]=Ler e escrever suas mensagens
|
||||
Comment[sv]=Läs och skriv e-post
|
||||
|
|
@ -59,9 +59,6 @@ export GNOME_DISABLE_CRASH_DIALOG
|
|||
##
|
||||
export G_SLICE=always-malloc
|
||||
|
||||
# Flatpak specific environment variables
|
||||
%FLATPAK_ENV_VARS%
|
||||
|
||||
##
|
||||
## Allow downgrade because during distro upgrade the build time can be
|
||||
## older in newer version than the previous one.
|
||||
|
|
|
|||
161
thunderbird.spec
161
thunderbird.spec
|
|
@ -2,10 +2,6 @@
|
|||
# first f42 https://koji.fedoraproject.org/koji/taskinfo?taskID=124917502
|
||||
# then f40 https://koji.fedoraproject.org/koji/taskinfo?taskID=125295645
|
||||
# then also f41 https://koji.fedoraproject.org/koji/taskinfo?taskID=125632253
|
||||
# Excluded due to https://bugzilla.mozilla.org/show_bug.cgi?id=1792159
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2129720
|
||||
ExcludeArch: i686
|
||||
|
||||
%ifarch ppc64le
|
||||
%global rustflags_debuginfo 1
|
||||
%endif
|
||||
|
|
@ -66,7 +62,7 @@ ExcludeArch: armv7hl
|
|||
%define mozappdir %{_libdir}/thunderbird
|
||||
|
||||
%define official_branding 1
|
||||
#define pre_version
|
||||
%define pre_version esr
|
||||
|
||||
%define enable_mozilla_crashreporter 0
|
||||
|
||||
|
|
@ -91,13 +87,13 @@ ExcludeArch: armv7hl
|
|||
|
||||
Summary: Mozilla Thunderbird mail/newsgroup client
|
||||
Name: thunderbird
|
||||
Version: 147.0
|
||||
Version: 128.10.0
|
||||
Release: 1%{?dist}
|
||||
URL: http://www.mozilla.org/projects/thunderbird/
|
||||
License: MPL-2.0 OR GPL-2.0-or-later OR LGPL-2.0-or-later
|
||||
Source0: https://archive.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/source/thunderbird-%{version}%{?pre_version}.source.tar.xz
|
||||
%if %{build_langpacks}
|
||||
Source1: thunderbird-langpacks-%{version}%{?pre_version}-20260114.tar.xz
|
||||
Source1: thunderbird-langpacks-%{version}%{?pre_version}-20250428.tar.xz
|
||||
%endif
|
||||
Source3: get-calendar-langpacks.sh
|
||||
Source4: cbindgen-vendor.tar.xz
|
||||
|
|
@ -105,13 +101,13 @@ Source4: cbindgen-vendor.tar.xz
|
|||
Source10: thunderbird-mozconfig
|
||||
Source11: thunderbird-mozconfig-branded
|
||||
Source12: thunderbird-redhat-default-prefs.js
|
||||
Source20: thunderbird.desktop
|
||||
Source21: thunderbird.sh.in
|
||||
Source25: thunderbird-symbolic.svg
|
||||
Source28: thunderbird-wayland.sh.in
|
||||
Source29: thunderbird-wayland.desktop
|
||||
Source32: node-stdout-nonblocking-wrapper
|
||||
Source33: net.thunderbird.Thunderbird.desktop
|
||||
Source34: net.thunderbird.Thunderbird.appdata.xml
|
||||
|
||||
#Patch416: firefox-SIOCGSTAMP.patch
|
||||
Patch418: mozilla-1512162.patch
|
||||
|
|
@ -123,8 +119,6 @@ Patch425: build-disable-elfhack.patch
|
|||
# Build patches
|
||||
Patch32: build-rust-ppc64le.patch
|
||||
Patch35: build-ppc-jit.patch
|
||||
Patch36: build-botan-target.patch
|
||||
Patch37: build-c11-threads-avail.patch
|
||||
# Fixing missing cacheFlush when JS_CODEGEN_NONE is used (s390x)
|
||||
Patch40: build-aarch64-skia.patch
|
||||
Patch44: build-arm-libopus.patch
|
||||
|
|
@ -132,13 +126,10 @@ Patch53: firefox-gcc-build.patch
|
|||
Patch71: 0001-GLIBCXX-fix-for-GCC-12.patch
|
||||
Patch78: firefox-i686-build.patch
|
||||
Patch79: firefox-gcc-13-build.patch
|
||||
Patch80: build-swgl-gcc15-D221744.diff
|
||||
Patch81: build-swgl-gcc15-D222067.diff
|
||||
# PROTOBUF_MUSTTAIL return ... error: cannot tail-call: target is not able to optimize the call into a sibling call
|
||||
Patch82: build-s390x-protobuf-musttail.patch
|
||||
# Build failure on rawhide of wrongly defined SYS_SECCOMP
|
||||
Patch83: build-seccomp.patch
|
||||
Patch84: build-minimal-lexical.patch
|
||||
Patch85: build-libcubeb.patch
|
||||
Patch86: build-missing-gitmodules.patch
|
||||
|
||||
# PPC fix
|
||||
|
||||
|
|
@ -147,12 +138,11 @@ Patch86: build-missing-gitmodules.patch
|
|||
# Upstream patches
|
||||
Patch402: mozilla-526293.patch
|
||||
Patch406: mozilla-1170092.patch
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1998188
|
||||
# this is the Firefox patch, manually rediffed against 146.0.1
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=2008377
|
||||
# fix crash on aarch64
|
||||
|
||||
# Bundled expat backported patches
|
||||
Patch501: expat-CVE-2022-25235.patch
|
||||
Patch502: expat-CVE-2022-25236.patch
|
||||
Patch503: expat-CVE-2022-25315.patch
|
||||
|
||||
# Tentative patch for RUSTFLAGS parsing issue,
|
||||
# borrowed from firefox commit 24c9accce19c5cae9394430b24eaf938a9c17882:
|
||||
|
|
@ -177,7 +167,6 @@ BuildRequires: nss-devel >= %{nss_version}
|
|||
Requires: nspr >= %{nspr_build_version}
|
||||
Requires: nss >= %{nss_build_version}
|
||||
%endif
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: libnotify-devel >= %{libnotify_version}
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: libjpeg-devel
|
||||
|
|
@ -193,9 +182,16 @@ BuildRequires: libXt-devel
|
|||
BuildRequires: libXrender-devel
|
||||
BuildRequires: hunspell-devel
|
||||
BuildRequires: llvm
|
||||
BuildRequires: llvm-devel
|
||||
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
|
||||
BuildRequires: clang17
|
||||
BuildRequires: clang17-libs
|
||||
BuildRequires: llvm17-devel
|
||||
%global llvm_suffix -17
|
||||
%else
|
||||
BuildRequires: clang
|
||||
BuildRequires: clang-libs
|
||||
BuildRequires: llvm-devel
|
||||
%endif
|
||||
%if "%toolchain" == "clang"
|
||||
BuildRequires: lld
|
||||
%endif
|
||||
|
|
@ -212,6 +208,7 @@ BuildRequires: pulseaudio-libs-devel
|
|||
BuildRequires: libicu-devel
|
||||
BuildRequires: perl-interpreter
|
||||
Requires: mozilla-filesystem
|
||||
BuildRequires: yasm
|
||||
BuildRequires: dbus-glib-devel
|
||||
Obsoletes: thunderbird-lightning
|
||||
Provides: thunderbird-lightning
|
||||
|
|
@ -304,33 +301,31 @@ debug %{name}, you want to install %{name}-debuginfo instead.
|
|||
%ifarch aarch64
|
||||
#%patch -P 226 -p1 -b .1354671
|
||||
%endif
|
||||
#FIXME %%patch -P 416 -p1 -b .SIOCGSTAMP
|
||||
%patch -P36 -p1 -b .build-botan
|
||||
%if 0%{?fedora} > 43
|
||||
%patch -P37 -p1 -b .build-c11-threads-avail
|
||||
%endif
|
||||
#FIXME %patch -P 416 -p1 -b .SIOCGSTAMP
|
||||
%patch -P 418 -p1 -b .mozbz-1512162
|
||||
# most likely fixed
|
||||
#%%patch -P 419 -p1 -b .bindgen
|
||||
#%patch -P 419 -p1 -b .bindgen
|
||||
|
||||
%patch -P 402 -p1 -b .526293
|
||||
%patch -P 406 -p1 -b .1170092-etc-conf
|
||||
|
||||
%patch -P 422 -p1 -b .0001-GLIBCXX-fix-for-GCC-12
|
||||
|
||||
#patch -P40 -p1 -b .aarch64-skia
|
||||
%patch -P 501 -p1 -b .expat-CVE-2022-25235
|
||||
%patch -P 502 -p1 -b .expat-CVE-2022-25236
|
||||
%patch -P 503 -p1 -b .expat-CVE-2022-25315
|
||||
|
||||
%patch -P40 -p1 -b .aarch64-skia
|
||||
%patch -P44 -p1 -b .build-arm-libopus
|
||||
#patch -P53 -p1 -b .firefox-gcc-build
|
||||
%patch -P71 -p1 -b .0001-GLIBCXX-fix-for-GCC-12
|
||||
%patch -P78 -p1 -b .firefox-i686
|
||||
%patch -P79 -p1 -b .firefox-gcc-13-build
|
||||
%patch -P80 -p1 -b .swgl-gcc15-1
|
||||
%patch -P81 -p1 -b .swgl-gcc15-2
|
||||
%patch -P82 -p1 -b .build-s390x-protobuf-musttail
|
||||
%patch -P83 -p1 -b .build-seccomp
|
||||
%patch -P84 -p1 -b .minimal-lexical
|
||||
%patch -P85 -p1 -b .libcubeb
|
||||
%patch -P86 -p1 -b .missing-gitmodules
|
||||
|
||||
#patch -P 1200 -p1 -b .rustflags-commasplit
|
||||
%patch -P 1200 -p1 -b .rustflags-commasplit
|
||||
|
||||
%if %{official_branding}
|
||||
# Required by Mozilla Corporation
|
||||
|
|
@ -422,6 +417,8 @@ echo "ac_add_options --disable-crashreporter" >> .mozconfig
|
|||
|
||||
# Same as https://bugzilla.redhat.com/show_bug.cgi?id=2239046 for Firefox:
|
||||
# Clang 17 upstream's detection fails, tell it where to look.
|
||||
echo "ac_add_options --with-clang-path=`which clang%{?llvm_suffix}`" >> .mozconfig
|
||||
echo "ac_add_options --with-libclang-path=`llvm-config%{?llvm_suffix} --libdir`" >> .mozconfig
|
||||
|
||||
echo 'export NODEJS="%{nodewrapperdir}/node-stdout-nonblocking-wrapper"' >> .mozconfig
|
||||
|
||||
|
|
@ -430,10 +427,6 @@ echo 'export MOZ_APP_REMOTINGNAME=net.thunderbird.Thunderbird' >> .mozconfig
|
|||
%else
|
||||
echo 'export MOZ_APP_REMOTINGNAME=thunderbird' >> .mozconfig
|
||||
%endif
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2239046
|
||||
# with clang 17 upstream's detection fails, so let's just tell it
|
||||
# where to look
|
||||
echo "ac_add_options --with-libclang-path=`llvm-config --libdir`" >> .mozconfig
|
||||
|
||||
# Remove executable bit to make brp-mangle-shebangs happy.
|
||||
find third_party -type f -iname "*.rs"|xargs chmod a-x
|
||||
|
|
@ -480,13 +473,12 @@ MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive" | \
|
|||
%{__sed} -e 's/-Wall//')
|
||||
# Thunderbird is not supposed to build with exceptions globally enabled
|
||||
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | sed -e 's/-fexceptions//')
|
||||
#rhbz#1037063
|
||||
# -Werror=format-security causes build failures when -Wno-format is explicitly given
|
||||
# for some sources
|
||||
# Explicitly force the hardening flags for Firefox so it passes the checksec test;
|
||||
# See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages
|
||||
%if 0%{?fedora} < 30
|
||||
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
|
||||
%else
|
||||
# Workaround for mozbz#1531309
|
||||
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-Werror=format-security//')
|
||||
%endif
|
||||
%if %{?debug_build}
|
||||
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
|
||||
%endif
|
||||
|
|
@ -608,13 +600,6 @@ rm -f $RPM_BUILD_ROOT/%{_bindir}/thunderbird
|
|||
%{__cat} %{SOURCE21} | %{__sed} -e 's,__PREFIX__,%{_prefix},g' > \
|
||||
$RPM_BUILD_ROOT/%{_bindir}/thunderbird
|
||||
%{__chmod} 755 $RPM_BUILD_ROOT/%{_bindir}/thunderbird
|
||||
|
||||
%if 0%{?flatpak}
|
||||
sed -i -e 's|%FLATPAK_ENV_VARS%|export TMPDIR="$XDG_CACHE_HOME/tmp"|' %{buildroot}%{_bindir}/thunderbird
|
||||
%else
|
||||
sed -i -e 's|%FLATPAK_ENV_VARS%||' %{buildroot}%{_bindir}/thunderbird
|
||||
%endif
|
||||
|
||||
# Enable wayland by default on f40+
|
||||
# Overridable for rhbz#2283993 https://bugzilla.mozilla.org/show_bug.cgi?id=1898476
|
||||
%if 0%{?fedora} >= %{only_wayland}
|
||||
|
|
@ -695,13 +680,8 @@ touch $RPM_BUILD_ROOT%{mozappdir}/components/xpti.dat
|
|||
|
||||
# Register as an application to be visible in the software center
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/metainfo
|
||||
%{__sed} -e "s/__VERSION__/%{version}/" \
|
||||
-e "s/__DATE__/$(date '+%Y-%m-%d')/" \
|
||||
%{SOURCE34} > %{buildroot}%{_datadir}/metainfo/net.thunderbird.Thunderbird.appdata.xml
|
||||
#===============================================================================
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml
|
||||
%{__cp} -p comm/mail/branding/%{name}/net.thunderbird.Thunderbird.appdata.xml $RPM_BUILD_ROOT%{_datadir}/metainfo/net.thunderbird.Thunderbird.appdata.xml
|
||||
sed -i -e 's|<icon .*|<icon type="stock">thunderbird</icon>|' "$RPM_BUILD_ROOT%{_datadir}/metainfo/net.thunderbird.Thunderbird.appdata.xml"
|
||||
|
||||
#===============================================================================
|
||||
|
||||
|
|
@ -724,7 +704,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%defattr(-,root,root,-)
|
||||
%attr(755,root,root) %{_bindir}/thunderbird
|
||||
%{_datadir}/metainfo/*.appdata.xml
|
||||
%if 0%{?fedora} < %{only_wayland}
|
||||
%attr(644,root,root) %{_datadir}/applications/mozilla-thunderbird.desktop
|
||||
%else
|
||||
%attr(644,root,root) %{_datadir}/applications/net.thunderbird.Thunderbird.desktop
|
||||
%endif
|
||||
%dir %{_sysconfdir}/%{name}
|
||||
%dir %{_sysconfdir}/%{name}/*
|
||||
%dir %{_datadir}/mozilla/extensions/%{thunderbird_app_id}
|
||||
|
|
@ -777,65 +761,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
#===============================================================================
|
||||
|
||||
%changelog
|
||||
* Wed Jan 14 2026 Jan Horak <jhorak@redhat.com> - 147.0-1
|
||||
- Update to 147.0
|
||||
|
||||
* Fri Jan 02 2026 Adam Williamson <awilliam@redhat.com> - 146.0.1-3
|
||||
- Port aarch64 crash fix from Firefox (upstream #2005469 / #2008377)
|
||||
|
||||
* Mon Dec 22 2025 Adam Williamson <awilliam@redhat.com> - 146.0.1-2
|
||||
- Backport fix for resize crash bug (RHBZ #2423824 upstream #1998188)
|
||||
|
||||
* Thu Dec 18 2025 Jan Horak <jhorak@redhat.com> - 146.0.1-1
|
||||
- Update to 146.0.1
|
||||
|
||||
* Mon Dec 15 2025 Jan Horak <jhorak@redhat.com> - 146.0-1
|
||||
- Update to 146.0
|
||||
|
||||
* Wed Nov 19 2025 Jan Horak <jhorak@redhat.com> - 145.0-1
|
||||
- Update to 145.0
|
||||
|
||||
* Thu Nov 06 2025 Jan Horak <jhorak@redhat.com> - 144.0.1-2
|
||||
- Fixing sigsegv on rawhide
|
||||
|
||||
* Tue Oct 21 2025 Jan Horak <jhorak@redhat.com> - 144.0.1-1
|
||||
- Update to 144.0.1
|
||||
|
||||
* Thu Oct 16 2025 Jan Horak <jhorak@redhat.com> - 144.0-1
|
||||
- Update to 144.0
|
||||
|
||||
* Thu Oct 2 2025 Jan Horak <jhorak@redhat.com> - 143.0.1-1
|
||||
- Update to 143.0.1
|
||||
|
||||
* Thu Sep 25 2025 Dominik Mierzejewski <dominik@greysector.net> - 140.3.0-2
|
||||
- Drop unused yasm from build dependencies
|
||||
See: https://fedoraproject.org/wiki/Changes/DeprecateYASM
|
||||
Resolves: rhbz#2390538
|
||||
|
||||
* Wed Sep 24 2025 Jan Horak <jhorak@redhat.com> - 140.3.0-1
|
||||
- Update to 140.3.0 ESR
|
||||
|
||||
* Thu Sep 4 2025 Jan Horak <jhorak@redhat.com> - 140.2.1-1
|
||||
- Update to 140.2.1 ESR
|
||||
|
||||
* Wed Jul 23 2025 Eike Rathke <erack@redhat.com> - 128.13.0-1
|
||||
- Update to 128.13.0
|
||||
|
||||
* Mon Jul 07 2025 Eike Rathke <erack@redhat.com> - 128.12.0-1
|
||||
- Update to 128.12.0
|
||||
|
||||
* Wed Jun 11 2025 Eike Rathke <erack@redhat.com> - 128.11.1-1
|
||||
- Update to 128.11.1
|
||||
|
||||
* Mon May 26 2025 Eike Rathke <erack@redhat.com> - 128.11.0-1
|
||||
- Update to 128.11.0
|
||||
|
||||
* Wed May 21 2025 Eike Rathke <erack@redhat.com> - 128.10.2-1
|
||||
- Update to 128.10.2
|
||||
|
||||
* Mon May 19 2025 Eike Rathke <erack@redhat.com> - 128.10.1-1
|
||||
- Update to 128.10.1
|
||||
|
||||
* Tue Apr 29 2025 Eike Rathke <erack@redhat.com> - 128.10.0-1
|
||||
- Update to 128.10.0
|
||||
|
||||
|
|
@ -894,11 +819,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
* Thu Sep 05 2024 Eike Rathke <erack@redhat.com> - 128.2.0-1
|
||||
- Update to 128.2.0
|
||||
|
||||
* Tue Aug 06 2024 Eike Rathke <erack@redhat.com> - 128.1.0-1
|
||||
* Fri Aug 09 2024 Jan Horak <jhorak@redhat.com> - 128.1.0-1
|
||||
- Update to 128.1.0
|
||||
|
||||
* Wed Jul 17 2024 Jan Horak <jhorak@redhat.com> - 128.0-1
|
||||
- Update to 128.0 ESR
|
||||
* Tue Aug 06 2024 Eike Rathke <erack@redhat.com> - 115.14.0-1
|
||||
- Update to 115.14.0
|
||||
|
||||
* Tue Jul 16 2024 Eike Rathke <erack@redhat.com> - 115.13.0-1
|
||||
- Update to 115.13.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue