Compare commits
43 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17a3f9ddd6 | ||
|
|
6e08ceaf21 | ||
|
|
82201594c7 | ||
|
|
42d5557980 | ||
|
|
f421132d2a | ||
|
|
f72fec623d | ||
|
|
07a6fa1a22 | ||
|
|
50a950eaf6 | ||
|
|
aba9f2af8f | ||
|
|
9194c44975 | ||
|
|
403614c19b | ||
|
|
2a4a746d7c | ||
|
|
82f401f357 | ||
|
|
132ca7bc53 | ||
|
|
9c41551f62 | ||
|
|
a82adef269 | ||
|
|
9b664632be | ||
|
|
eb6ca2939d | ||
|
|
b4b41186fb | ||
|
|
43e0d5b6f7 | ||
|
|
09b2af7944 | ||
|
|
4de5aed60c | ||
|
|
3b4cf8bcd7 | ||
|
|
aae14bc19f | ||
|
|
fc296252ef | ||
|
|
7c21fbc626 | ||
|
|
9e16b9a27b | ||
|
|
d43d615661 | ||
|
|
d4f1a7851f | ||
|
|
92f6afb27e | ||
|
|
a94bbf1860 | ||
|
|
e1f7e6527a | ||
|
|
29e48b88ad | ||
|
|
cac713e3da | ||
|
|
91753d1657 | ||
|
|
5a48dd5544 | ||
|
|
a11ae8fff7 | ||
|
|
d6cce38d9e | ||
|
|
ac1df656bc | ||
|
|
5faef5904a | ||
|
|
aa025803cc | ||
|
|
3d3c2c437e | ||
|
|
1fd77237f4 |
20 changed files with 364 additions and 525 deletions
32
.gitignore
vendored
32
.gitignore
vendored
|
|
@ -496,3 +496,35 @@ 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
|
||||
|
|
|
|||
12
build-botan-target.patch
Normal file
12
build-botan-target.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
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),
|
||||
62
build-c11-threads-avail.patch
Normal file
62
build-c11-threads-avail.patch
Normal file
File diff suppressed because one or more lines are too long
8
build-libcubeb.patch
Normal file
8
build-libcubeb.patch
Normal file
File diff suppressed because one or more lines are too long
8
build-minimal-lexical.patch
Normal file
8
build-minimal-lexical.patch
Normal file
File diff suppressed because one or more lines are too long
32
build-missing-gitmodules.patch
Normal file
32
build-missing-gitmodules.patch
Normal file
File diff suppressed because one or more lines are too long
11
build-seccomp.patch
Normal file
11
build-seccomp.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
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"
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
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); }
|
||||
|
||||
|
|
@ -1,276 +0,0 @@
|
|||
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) {
|
||||
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
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; \
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
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;
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
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.26.0"
|
||||
cbindgen = "0.29.1"
|
||||
|
||||
[[bin]]
|
||||
name = "dummy"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
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
|
||||
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
|
||||
@@ -263,8 +263,20 @@ nsresult nsReadConfig::openAndEvaluateJS
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
|
|
@ -23,10 +23,10 @@ diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092
|
|||
} else {
|
||||
nsAutoCString location("resource://gre/defaults/autoconfig/");
|
||||
location += aFileName;
|
||||
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
|
||||
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
|
||||
//
|
||||
// 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-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2
|
|||
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
UniquePtr<nsZipFind> find;
|
||||
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 @@
|
||||
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 @@
|
||||
#endif
|
||||
#ifdef XP_UNIX
|
||||
# include <ctype.h>
|
||||
|
|
@ -47,7 +47,7 @@ diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.
|
|||
#endif
|
||||
#ifdef XP_IOS
|
||||
# include "UIKitDirProvider.h"
|
||||
@@ -478,6 +479,17 @@ nsXREDirProvider::GetFile(const char* aP
|
||||
@@ -462,6 +463,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-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.
|
|||
+ appInfo->GetName(appName);
|
||||
+ ToLowerCase(appName);
|
||||
+ sysConfigDir.Append(appName);
|
||||
+ NS_NewNativeLocalFile(sysConfigDir, false, getter_AddRefs(file));
|
||||
+ NS_NewNativeLocalFile(sysConfigDir, 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
|
||||
@@ -694,6 +706,16 @@ nsXREDirProvider::GetFiles(const char* a
|
||||
@@ -518,6 +530,16 @@ nsXREDirProvider::GetFiles(const char* a
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -82,9 +82,9 @@ diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.
|
|||
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-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
|
||||
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
|
||||
@@ -58,6 +58,7 @@
|
||||
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
|
||||
#define NS_APP_PREFS_OVERRIDE_DIR \
|
||||
|
|
|
|||
59
net.thunderbird.Thunderbird.appdata.xml
Normal file
59
net.thunderbird.Thunderbird.appdata.xml
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<?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;
|
||||
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;
|
||||
StartupNotify=true
|
||||
Categories=Network;Email;
|
||||
Name[cs]=Poštovní klient Thunderbird
|
||||
|
|
|
|||
6
sources
6
sources
|
|
@ -1,3 +1,3 @@
|
|||
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
|
||||
SHA512 (cbindgen-vendor.tar.xz) = 4127d3060577284eea29d697ccc2394742674f6094b7f497a95a0c3b8aa9e0494b720de8858ad31d4a6b0cd1b9586454f3c52c8088163c2709883d882e0136db
|
||||
SHA512 (thunderbird-147.0.source.tar.xz) = d04a135f23572123d5cca41c2611704aa06cb81e0226c89c267dc527f59fb0d9d5d8b8a49cd126626c2fd934624c9d2420ae71dd10a912b3011f3342fbaf7511
|
||||
SHA512 (thunderbird-langpacks-147.0-20260114.tar.xz) = e97f2894c0bbea00c35e5d8f0046d1d7112efb17d3af5d8a6f964c54352f9f6edbcbd4d41cc2595cb63e1116ae78680c9d42e65dc0eb0ff17e4a9d4ad97ec7ab
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
[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,6 +59,9 @@ 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.
|
||||
|
|
|
|||
155
thunderbird.spec
155
thunderbird.spec
|
|
@ -2,6 +2,10 @@
|
|||
# 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
|
||||
|
|
@ -62,7 +66,7 @@ ExcludeArch: armv7hl
|
|||
%define mozappdir %{_libdir}/thunderbird
|
||||
|
||||
%define official_branding 1
|
||||
%define pre_version esr
|
||||
#define pre_version
|
||||
|
||||
%define enable_mozilla_crashreporter 0
|
||||
|
||||
|
|
@ -87,13 +91,13 @@ ExcludeArch: armv7hl
|
|||
|
||||
Summary: Mozilla Thunderbird mail/newsgroup client
|
||||
Name: thunderbird
|
||||
Version: 128.10.0
|
||||
Version: 147.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}-20250428.tar.xz
|
||||
Source1: thunderbird-langpacks-%{version}%{?pre_version}-20260114.tar.xz
|
||||
%endif
|
||||
Source3: get-calendar-langpacks.sh
|
||||
Source4: cbindgen-vendor.tar.xz
|
||||
|
|
@ -101,13 +105,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
|
||||
|
|
@ -119,6 +123,8 @@ 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
|
||||
|
|
@ -126,10 +132,13 @@ 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
|
||||
|
||||
|
|
@ -138,11 +147,12 @@ Patch82: build-s390x-protobuf-musttail.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:
|
||||
|
|
@ -167,6 +177,7 @@ 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
|
||||
|
|
@ -182,16 +193,9 @@ BuildRequires: libXt-devel
|
|||
BuildRequires: libXrender-devel
|
||||
BuildRequires: hunspell-devel
|
||||
BuildRequires: llvm
|
||||
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
|
||||
BuildRequires: clang17
|
||||
BuildRequires: clang17-libs
|
||||
BuildRequires: llvm17-devel
|
||||
%global llvm_suffix -17
|
||||
%else
|
||||
BuildRequires: llvm-devel
|
||||
BuildRequires: clang
|
||||
BuildRequires: clang-libs
|
||||
BuildRequires: llvm-devel
|
||||
%endif
|
||||
%if "%toolchain" == "clang"
|
||||
BuildRequires: lld
|
||||
%endif
|
||||
|
|
@ -208,7 +212,6 @@ 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
|
||||
|
|
@ -301,31 +304,33 @@ 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
|
||||
#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
|
||||
%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 -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 -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
|
||||
|
|
@ -417,8 +422,6 @@ 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
|
||||
|
||||
|
|
@ -427,6 +430,10 @@ 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
|
||||
|
|
@ -473,12 +480,13 @@ 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//')
|
||||
%if 0%{?fedora} < 30
|
||||
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
|
||||
%else
|
||||
#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
|
||||
# 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
|
||||
|
|
@ -600,6 +608,13 @@ 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}
|
||||
|
|
@ -680,8 +695,13 @@ 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
|
||||
%{__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"
|
||||
%{__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
|
||||
|
||||
#===============================================================================
|
||||
|
||||
|
|
@ -704,11 +724,7 @@ 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}
|
||||
|
|
@ -761,6 +777,65 @@ 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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue