Auto sync2gitlab import of thunderbird-91.8.0-1.el8.src.rpm
This commit is contained in:
parent
b2206aa0e1
commit
f19e3b075d
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
/cbindgen-vendor.tar.xz
|
||||||
|
/nspr-4.32.0-1.el8_1.src.rpm
|
||||||
|
/nss-3.67.0-7.el8_1.src.rpm
|
||||||
|
/thunderbird-91.8.0.processed-source.tar.xz
|
||||||
|
/thunderbird-langpacks-91.8.0-20220405.tar.xz
|
24
build-debuginfo-fix.patch
Normal file
24
build-debuginfo-fix.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff -up firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc.debuginfo-fix firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc
|
||||||
|
--- firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc.debuginfo-fix 2021-09-01 11:11:46.738285751 +0200
|
||||||
|
+++ firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc 2021-09-01 11:11:56.127319530 +0200
|
||||||
|
@@ -21,7 +21,7 @@
|
||||||
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#include "modules/audio_processing//utility/ooura_fft.h"
|
||||||
|
+#include "modules/audio_processing/utility/ooura_fft.h"
|
||||||
|
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
diff -up firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.debuginfo-fix firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc
|
||||||
|
--- firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.debuginfo-fix 2021-09-01 11:12:26.513428847 +0200
|
||||||
|
+++ firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc 2021-09-01 11:12:32.117449009 +0200
|
||||||
|
@@ -8,7 +8,7 @@
|
||||||
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#include "modules/audio_processing//utility/ooura_fft.h"
|
||||||
|
+#include "modules/audio_processing/utility/ooura_fft.h"
|
||||||
|
|
||||||
|
#include <emmintrin.h>
|
||||||
|
|
12
build-mozconfig-fix.patch
Normal file
12
build-mozconfig-fix.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py.mozconfig-fix mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py
|
||||||
|
--- mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py.mozconfig-fix 2018-03-13 17:22:19.018466884 +0100
|
||||||
|
+++ mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py 2018-03-13 17:23:57.379559640 +0100
|
||||||
|
@@ -446,7 +446,7 @@ class MozconfigLoader(object):
|
||||||
|
value = value[1:]
|
||||||
|
|
||||||
|
# Lines with a quote not ending in a quote are multi-line.
|
||||||
|
- if has_quote and not value.endswith("'"):
|
||||||
|
+ if has_quote and not value.endswith(("'", ";")):
|
||||||
|
in_variable = name
|
||||||
|
current.append(value)
|
||||||
|
continue
|
24
build-nss-version.patch
Normal file
24
build-nss-version.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff -up firefox-91.0.1/build/moz.configure/nspr.configure.nss-nspr-downgrade firefox-91.0.1/build/moz.configure/nspr.configure
|
||||||
|
--- firefox-91.0.1/build/moz.configure/nspr.configure.nss-nspr-downgrade 2021-08-25 13:17:26.265307060 +0200
|
||||||
|
+++ firefox-91.0.1/build/moz.configure/nspr.configure 2021-08-25 13:17:28.161313632 +0200
|
||||||
|
@@ -50,7 +50,7 @@ set_define("JS_WITHOUT_NSPR", True, when
|
||||||
|
def nspr_minver(js_standalone):
|
||||||
|
if js_standalone:
|
||||||
|
return "nspr >= 4.10"
|
||||||
|
- return "nspr >= 4.32"
|
||||||
|
+ return "nspr >= 4.31"
|
||||||
|
|
||||||
|
|
||||||
|
nspr_pkg = pkg_check_modules("NSPR", nspr_minver, when="--with-system-nspr")
|
||||||
|
diff -up firefox-91.0.1/build/moz.configure/nss.configure.nss-nspr-downgrade firefox-91.0.1/build/moz.configure/nss.configure
|
||||||
|
--- firefox-91.0.1/build/moz.configure/nss.configure.nss-nspr-downgrade 2021-08-25 13:17:45.049372175 +0200
|
||||||
|
+++ firefox-91.0.1/build/moz.configure/nss.configure 2021-08-25 13:17:37.763346918 +0200
|
||||||
|
@@ -9,7 +9,7 @@ option("--with-system-nss", help="Use sy
|
||||||
|
imply_option("--with-system-nspr", True, when="--with-system-nss")
|
||||||
|
|
||||||
|
nss_pkg = pkg_check_modules(
|
||||||
|
- "NSS", "nss >= 3.68", when="--with-system-nss", config=False
|
||||||
|
+ "NSS", "nss >= 3.67", when="--with-system-nss", config=False
|
||||||
|
)
|
||||||
|
|
||||||
|
set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss")
|
27
build-ppc64le-inline.patch
Normal file
27
build-ppc64le-inline.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
diff -up firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.ppc64le-inline firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp
|
||||||
|
--- firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.ppc64le-inline 2019-08-26 18:52:28.000000000 +0200
|
||||||
|
+++ firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp 2019-08-29 08:49:57.695687874 +0200
|
||||||
|
@@ -1092,7 +1092,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
||||||
|
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
|
||||||
|
MutableHandleValue srcp) const;
|
||||||
|
|
||||||
|
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||||
|
+ bool GatherAndConvertResults();
|
||||||
|
+#else
|
||||||
|
MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
|
||||||
|
|
||||||
|
@@ -1139,7 +1143,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
||||||
|
|
||||||
|
~CallMethodHelper();
|
||||||
|
|
||||||
|
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||||
|
+ bool Call();
|
||||||
|
+#else
|
||||||
|
MOZ_ALWAYS_INLINE bool Call();
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
|
||||||
|
void trace(JSTracer* aTrc);
|
12
build-rhel7-nasm-dwarf.patch
Normal file
12
build-rhel7-nasm-dwarf.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py
|
||||||
|
--- firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm 2021-08-31 08:02:10.814740774 +0200
|
||||||
|
+++ firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py 2021-08-31 08:04:03.967146994 +0200
|
||||||
|
@@ -420,7 +420,7 @@ class AsmFlags(BaseCompileFlags):
|
||||||
|
if self._context.config.substs.get("OS_ARCH") == "WINNT":
|
||||||
|
debug_flags += ["-F", "cv8"]
|
||||||
|
elif self._context.config.substs.get("OS_ARCH") != "Darwin":
|
||||||
|
- debug_flags += ["-F", "dwarf"]
|
||||||
|
+ debug_flags += ["-f", "elf32"]
|
||||||
|
elif (
|
||||||
|
self._context.config.substs.get("OS_ARCH") == "WINNT"
|
||||||
|
and self._context.config.substs.get("CPU_ARCH") == "aarch64"
|
28
disable-openpgp-in-thunderbird.patch
Normal file
28
disable-openpgp-in-thunderbird.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
diff --git a/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm b/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm
|
||||||
|
--- a/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm
|
||||||
|
+++ b/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm
|
||||||
|
@@ -53,20 +53,23 @@ var BondOpenPGP = {
|
||||||
|
|
||||||
|
// if null, we haven't yet read the pref
|
||||||
|
// if true, pref was enabled and we already triggered init
|
||||||
|
_isEnabled: null,
|
||||||
|
|
||||||
|
_alreadyTriedInit: false, // if already true, we will not try again
|
||||||
|
|
||||||
|
setIsEnabledFromPref() {
|
||||||
|
- this._isEnabled = Services.prefs.getBoolPref("mail.openpgp.enable");
|
||||||
|
+ return false;
|
||||||
|
+ //this._isEnabled = Services.prefs.getBoolPref("mail.openpgp.enable");
|
||||||
|
},
|
||||||
|
|
||||||
|
async init() {
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
if (!MailConstants.MOZ_OPENPGP) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We never shut off after pref change, disabling requires restart.
|
||||||
|
// If null, it means we're here for the first time, read the pref.
|
||||||
|
// If false, it could mean the pref was now turned on at runtime.
|
||||||
|
// In both scenarios, null and false, we reread the pref to check
|
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)
|
13
firefox-enable-addons.patch
Normal file
13
firefox-enable-addons.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff -up firefox-55.0/browser/app/profile/firefox.js.addons firefox-55.0/browser/app/profile/firefox.js
|
||||||
|
--- firefox-55.0/browser/app/profile/firefox.js.addons 2017-08-02 10:58:30.566363833 +0200
|
||||||
|
+++ firefox-55.0/browser/app/profile/firefox.js 2017-08-02 10:59:15.377216959 +0200
|
||||||
|
@@ -65,7 +65,8 @@ pref("extensions.systemAddon.update.url"
|
||||||
|
|
||||||
|
// Disable add-ons that are not installed by the user in all scopes by default.
|
||||||
|
// See the SCOPE constants in AddonManager.jsm for values to use here.
|
||||||
|
-pref("extensions.autoDisableScopes", 15);
|
||||||
|
+pref("extensions.autoDisableScopes", 0);
|
||||||
|
+pref("extensions.showMismatchUI", false);
|
||||||
|
// Scopes to scan for changes at startup.
|
||||||
|
pref("extensions.startupScanScopes", 0);
|
||||||
|
|
126
get-calendar-langpacks.sh
Executable file
126
get-calendar-langpacks.sh
Executable file
@ -0,0 +1,126 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#set -x
|
||||||
|
set -e
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
cat << EOF
|
||||||
|
usage: $0 options
|
||||||
|
|
||||||
|
This script downloads calendar langpacks for Thunderbird.
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
-h Show this message
|
||||||
|
-v Version string (7.0.1)
|
||||||
|
-b Build number (1, 2, 3)
|
||||||
|
-r Reuse downloaded files (when you don't want to redownload)
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
VER=
|
||||||
|
BUILDNUM=
|
||||||
|
LANG_DATE=`date "+%Y%m%d"`
|
||||||
|
while getopts “hv:b:r” OPTION
|
||||||
|
do
|
||||||
|
case $OPTION in
|
||||||
|
h)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
VER=$OPTARG
|
||||||
|
;;
|
||||||
|
b)
|
||||||
|
BUILDNUM=$OPTARG
|
||||||
|
;;
|
||||||
|
?)
|
||||||
|
usage
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$VER" -o -z "$BUILDNUM" ]
|
||||||
|
then
|
||||||
|
echo "Missing version or build number."
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
WHITE='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
LOCALES=`curl -f https://archive.mozilla.org/pub/thunderbird/candidates/$VER-candidates/build$BUILDNUM/linux-i686/ | grep "a href"|sed -e "s|.*/\([^/]*\)/\".*|\1|"|tail -n+2 |grep -v xpi`
|
||||||
|
#echo $LOCALES
|
||||||
|
rm -rf lightning-langpacks
|
||||||
|
mkdir -p lightning-langpacks
|
||||||
|
cd lightning-langpacks
|
||||||
|
LOCALE_COUNT=`echo $LOCALES| tr ' ' '\n' | wc -l`
|
||||||
|
LOCALE_NUM=0
|
||||||
|
for lang in $LOCALES; do
|
||||||
|
LOCALE_NUM=$((LOCALE_NUM+1))
|
||||||
|
echo -e "${WHITE}Processing calendar locale: $lang ($LOCALE_NUM/$LOCALE_COUNT)${NC}"
|
||||||
|
mkdir -p extracted_lightning
|
||||||
|
mkdir -p calendar-locales
|
||||||
|
#echo Downloading TB binary for locale: $lang
|
||||||
|
wget --quiet https://archive.mozilla.org/pub/thunderbird/candidates/$VER-candidates/build$BUILDNUM/linux-i686/$lang/thunderbird-$VER.tar.bz2
|
||||||
|
|
||||||
|
cd extracted_lightning
|
||||||
|
tar -xf ../thunderbird-$VER.tar.bz2 thunderbird/distribution/extensions/\{e2fda1a4-762b-4020-b5ad-a41df1933103\}.xpi
|
||||||
|
set +e
|
||||||
|
unzip -qq thunderbird/distribution/extensions/\{e2fda1a4-762b-4020-b5ad-a41df1933103\}.xpi
|
||||||
|
set -e
|
||||||
|
LIGHTNING_VERSION=`cat app.ini |grep "^Version="|sed -e 's/Version=//'`
|
||||||
|
BUILD_ID=`cat app.ini |grep "^BuildID="|sed -e 's/BuildID=//'`
|
||||||
|
MAX_VERSION=`cat app.ini |grep MaxVersion|sed -e s/MaxVersion=//`
|
||||||
|
MIN_VERSION=`cat app.ini |grep MinVersion|sed -e s/MinVersion=//`
|
||||||
|
rm -rf thunderbird
|
||||||
|
mkdir -p ../calendar-locales/chrome
|
||||||
|
cp -r chrome/calendar-$lang ../calendar-locales/chrome
|
||||||
|
cp -r chrome/lightning-$lang ../calendar-locales/chrome
|
||||||
|
cd -
|
||||||
|
|
||||||
|
cd calendar-locales
|
||||||
|
# create manifest
|
||||||
|
cat > manifest.json <<EOL
|
||||||
|
{
|
||||||
|
"languages": {
|
||||||
|
"$lang": {
|
||||||
|
"chrome_resources": {
|
||||||
|
"calendar": "chrome/calendar-$lang/locale/$lang/calendar/",
|
||||||
|
"lightning": "chrome/lightning-$lang/locale/$lang/lightning/"
|
||||||
|
},
|
||||||
|
"version": "$LIGHTNING_VERSION"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"applications": {
|
||||||
|
"gecko": {
|
||||||
|
"strict_min_version": "$MIN_VERSION",
|
||||||
|
"id": "langpack-cal-$lang@lightning.mozilla.org",
|
||||||
|
"strict_max_version": "$MAX_VERSION"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"langpack_id": "$lang",
|
||||||
|
"version": "7.$LIGHTNING_VERSION.$BUILD_ID",
|
||||||
|
"name": "$lang Language Pack Calendar",
|
||||||
|
"manifest_version": 2,
|
||||||
|
"sources": {
|
||||||
|
"browser": {
|
||||||
|
"base_path": "browser/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"author": "Mozilla.cz (contributors: Pavel Cvrček, Pavel Franc, Michal Stanke, Michal Vašíček)",
|
||||||
|
"description": "Language pack for Thunderbird for $lang, this was repacked by Fedora/RHEL package maintainer from original binaries."
|
||||||
|
}
|
||||||
|
|
||||||
|
EOL
|
||||||
|
zip --quiet -r ../langpack-cal-$lang@lightning.mozilla.org.xpi *
|
||||||
|
cd -
|
||||||
|
rm -rf calendar-locales
|
||||||
|
rm -rf extracted_lightning
|
||||||
|
|
||||||
|
rm -f thunderbird-$VER.tar.bz2
|
||||||
|
done
|
||||||
|
echo "Creating lightning-langpacks-$VER.tar.xz..."
|
||||||
|
tar cJf ../lightning-langpacks-$VER.tar.xz *.xpi
|
||||||
|
cd ..
|
||||||
|
rm -rf lightning-langpacks
|
1
google-api-key
Normal file
1
google-api-key
Normal file
@ -0,0 +1 @@
|
|||||||
|
AIzaSyBPGXa4AYD4FC3HJK7LnIKxm4fDusVuuco
|
98
mozilla-1170092.patch
Normal file
98
mozilla-1170092.patch
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
diff -up firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp
|
||||||
|
--- firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2021-07-27 23:29:57.000000000 +0200
|
||||||
|
+++ firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2021-07-29 16:20:44.164513998 +0200
|
||||||
|
@@ -249,8 +249,20 @@ nsresult nsReadConfig::openAndEvaluateJS
|
||||||
|
if (NS_FAILED(rv)) return rv;
|
||||||
|
|
||||||
|
rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
|
||||||
|
- if (NS_FAILED(rv)) return rv;
|
||||||
|
+ if (NS_FAILED(rv)) {
|
||||||
|
+ // Look for cfg file in /etc/<application>/pref
|
||||||
|
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
|
||||||
|
+ getter_AddRefs(jsFile));
|
||||||
|
+ NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
+
|
||||||
|
+ rv = jsFile->AppendNative(nsLiteralCString("pref"));
|
||||||
|
+ NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
+ rv = jsFile->AppendNative(nsDependentCString(aFileName));
|
||||||
|
+ NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
+ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
|
||||||
|
+ NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
+ }
|
||||||
|
} else {
|
||||||
|
nsAutoCString location("resource://gre/defaults/autoconfig/");
|
||||||
|
location += aFileName;
|
||||||
|
diff -up firefox-91.0/modules/libpref/Preferences.cpp.1170092 firefox-91.0/modules/libpref/Preferences.cpp
|
||||||
|
--- firefox-91.0/modules/libpref/Preferences.cpp.1170092 2021-07-27 23:30:34.000000000 +0200
|
||||||
|
+++ firefox-91.0/modules/libpref/Preferences.cpp 2021-07-29 16:20:44.166514005 +0200
|
||||||
|
@@ -4553,6 +4553,8 @@ nsresult Preferences::InitInitialObjects
|
||||||
|
//
|
||||||
|
// Thus, in the omni.jar case, we always load app-specific default
|
||||||
|
// preferences from omni.jar, whether or not `$app == $gre`.
|
||||||
|
+ // At very end load configuration from system config location:
|
||||||
|
+ // - /etc/firefox/pref/*.js
|
||||||
|
|
||||||
|
nsresult rv = NS_ERROR_FAILURE;
|
||||||
|
UniquePtr<nsZipFind> find;
|
||||||
|
diff -up firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-91.0/toolkit/xre/nsXREDirProvider.cpp
|
||||||
|
--- firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2021-07-27 23:30:56.000000000 +0200
|
||||||
|
+++ firefox-91.0/toolkit/xre/nsXREDirProvider.cpp 2021-07-29 16:26:20.071628932 +0200
|
||||||
|
@@ -71,6 +71,7 @@
|
||||||
|
#endif
|
||||||
|
#ifdef XP_UNIX
|
||||||
|
# include <ctype.h>
|
||||||
|
+# include "nsIXULAppInfo.h"
|
||||||
|
#endif
|
||||||
|
#ifdef XP_IOS
|
||||||
|
# include "UIKitDirProvider.h"
|
||||||
|
@@ -550,6 +551,21 @@ nsXREDirProvider::GetFile(const char* aP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+#if defined(XP_UNIX)
|
||||||
|
+ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) {
|
||||||
|
+ nsCString sysConfigDir = nsLiteralCString("/etc/");
|
||||||
|
+ nsCOMPtr<nsIXULAppInfo> appInfo = do_GetService("@mozilla.org/xre/app-info;1");
|
||||||
|
+ if (!appInfo)
|
||||||
|
+ return NS_ERROR_NOT_AVAILABLE;
|
||||||
|
+ nsCString appName;
|
||||||
|
+ appInfo->GetName(appName);
|
||||||
|
+ ToLowerCase(appName);
|
||||||
|
+ sysConfigDir.Append(appName);
|
||||||
|
+ return NS_NewNativeLocalFile(sysConfigDir, false, aFile);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
if (ensureFilePermissions) {
|
||||||
|
@@ -827,6 +843,16 @@ nsresult nsXREDirProvider::GetFilesInter
|
||||||
|
LoadDirIntoArray(mXULAppDir, kAppendBackgroundTasksPrefDir, directories);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
+ // Add /etc/<application>/pref/ directory if it exists
|
||||||
|
+ nsCOMPtr<nsIFile> systemPrefDir;
|
||||||
|
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
|
||||||
|
+ getter_AddRefs(systemPrefDir));
|
||||||
|
+ if (NS_SUCCEEDED(rv)) {
|
||||||
|
+ rv = systemPrefDir->AppendNative(nsLiteralCString("pref"));
|
||||||
|
+ if (NS_SUCCEEDED(rv)) {
|
||||||
|
+ directories.AppendObject(systemPrefDir);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
|
||||||
|
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
|
||||||
|
diff -up firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h
|
||||||
|
--- firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2021-07-27 23:31:38.000000000 +0200
|
||||||
|
+++ firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h 2021-07-29 16:20:44.168514012 +0200
|
||||||
|
@@ -59,6 +59,7 @@
|
||||||
|
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
|
||||||
|
#define NS_APP_PREFS_OVERRIDE_DIR \
|
||||||
|
"PrefDOverride" // Directory for per-profile defaults
|
||||||
|
+#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration
|
||||||
|
|
||||||
|
#define NS_APP_USER_PROFILE_50_DIR "ProfD"
|
||||||
|
#define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD"
|
1
mozilla-api-key
Normal file
1
mozilla-api-key
Normal file
@ -0,0 +1 @@
|
|||||||
|
9008bb7e-1e22-4038-94fe-047dd48ccc0b
|
12
mozilla-bmo1005535.patch
Normal file
12
mozilla-bmo1005535.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h
|
||||||
|
--- firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 2020-06-25 16:16:34.459083304 +0200
|
||||||
|
+++ firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h 2020-06-25 16:17:00.968174743 +0200
|
||||||
|
@@ -64,7 +64,7 @@ static inline GrColor GrColorPackRGBA(un
|
||||||
|
* Since premultiplied means that alpha >= color, we construct a color with
|
||||||
|
* each component==255 and alpha == 0 to be "illegal"
|
||||||
|
*/
|
||||||
|
-#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A))
|
||||||
|
+#define GrColor_ILLEGAL ((uint32_t)(~(0xFF << GrColor_SHIFT_A)))
|
||||||
|
|
||||||
|
/** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */
|
||||||
|
static inline float GrNormalizeByteToFloat(uint8_t value) {
|
77
mozilla-bmo1504834-part1.patch
Normal file
77
mozilla-bmo1504834-part1.patch
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
diff -up firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-78.0/gfx/2d/DrawTargetSkia.cpp
|
||||||
|
--- firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2020-06-17 04:18:58.000000000 +0200
|
||||||
|
+++ firefox-78.0/gfx/2d/DrawTargetSkia.cpp 2020-06-25 16:52:29.824532769 +0200
|
||||||
|
@@ -135,8 +135,7 @@ static IntRect CalculateSurfaceBounds(co
|
||||||
|
return surfaceBounds.Intersect(bounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static const int kARGBAlphaOffset =
|
||||||
|
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
|
||||||
|
+static const int kARGBAlphaOffset = 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
|
||||||
|
|
||||||
|
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
|
||||||
|
const int32_t aStride, SurfaceFormat aFormat) {
|
||||||
|
diff -up firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-78.0/gfx/2d/Types.h
|
||||||
|
--- firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2020-06-25 16:52:29.826532776 +0200
|
||||||
|
+++ firefox-78.0/gfx/2d/Types.h 2020-06-25 16:55:02.942063616 +0200
|
||||||
|
@@ -90,15 +90,8 @@ enum class SurfaceFormat : int8_t {
|
||||||
|
// The following values are endian-independent synonyms. The _UINT32 suffix
|
||||||
|
// indicates that the name reflects the layout when viewed as a uint32_t
|
||||||
|
// value.
|
||||||
|
-#if MOZ_LITTLE_ENDIAN()
|
||||||
|
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
|
||||||
|
X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB
|
||||||
|
-#elif MOZ_BIG_ENDIAN()
|
||||||
|
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
|
||||||
|
- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB
|
||||||
|
-#else
|
||||||
|
-# error "bad endianness"
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
// The following values are OS and endian-independent synonyms.
|
||||||
|
//
|
||||||
|
diff -up firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo1504834-part1 firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc
|
||||||
|
--- firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo1504834-part1 2020-06-17 04:18:58.000000000 +0200
|
||||||
|
+++ firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc 2020-06-25 16:54:02.993855444 +0200
|
||||||
|
@@ -30,6 +30,8 @@
|
||||||
|
#include <avx512fintrin.h>
|
||||||
|
#include <avx512dqintrin.h>
|
||||||
|
#endif
|
||||||
|
+#else
|
||||||
|
+ #define SKCMS_PORTABLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
|
||||||
|
@@ -280,20 +282,28 @@ enum {
|
||||||
|
static uint16_t read_big_u16(const uint8_t* ptr) {
|
||||||
|
uint16_t be;
|
||||||
|
memcpy(&be, ptr, sizeof(be));
|
||||||
|
-#if defined(_MSC_VER)
|
||||||
|
- return _byteswap_ushort(be);
|
||||||
|
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||||
|
+ return be;
|
||||||
|
#else
|
||||||
|
+ #if defined(_MSC_VER)
|
||||||
|
+ return _byteswap_ushort(be);
|
||||||
|
+ #else
|
||||||
|
return __builtin_bswap16(be);
|
||||||
|
+ #endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t read_big_u32(const uint8_t* ptr) {
|
||||||
|
uint32_t be;
|
||||||
|
memcpy(&be, ptr, sizeof(be));
|
||||||
|
-#if defined(_MSC_VER)
|
||||||
|
- return _byteswap_ulong(be);
|
||||||
|
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__
|
||||||
|
+ return be;
|
||||||
|
#else
|
||||||
|
+ #if defined(_MSC_VER)
|
||||||
|
+ return _byteswap_ulong(be);
|
||||||
|
+ #else
|
||||||
|
return __builtin_bswap32(be);
|
||||||
|
+ #endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
88
mozilla-bmo1504834-part2.patch
Normal file
88
mozilla-bmo1504834-part2.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# Parent 36563351309ddbc6c29559ba50a41d005f925abb
|
||||||
|
Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla)
|
||||||
|
has no interest in maintaining big endian.
|
||||||
|
So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes
|
||||||
|
out again, we transform back to BE.
|
||||||
|
|
||||||
|
diff -r 36563351309d gfx/2d/ConvolutionFilter.cpp
|
||||||
|
--- a/gfx/2d/ConvolutionFilter.cpp Mon Sep 09 17:59:28 2019 +0200
|
||||||
|
+++ b/gfx/2d/ConvolutionFilter.cpp Tue Sep 10 08:25:13 2019 +0200
|
||||||
|
@@ -35,9 +35,38 @@
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
|
||||||
|
+ uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
|
||||||
|
+ for (int pxl = 0; pxl < size; ++pxl) {
|
||||||
|
+ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
|
||||||
|
+ uint32_t rgba = array[pxl];
|
||||||
|
+ array[pxl] = NativeEndian::swapToLittleEndian(rgba);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
|
||||||
|
bool aHasAlpha) {
|
||||||
|
+#if MOZ_BIG_ENDIAN
|
||||||
|
+ int outputSize = mFilter->numValues();
|
||||||
|
+
|
||||||
|
+ // Input size isn't handed in, so we have to calculate it quickly
|
||||||
|
+ int inputSize = 0;
|
||||||
|
+ for (int xx = 0; xx < outputSize; ++xx) {
|
||||||
|
+ // Get the filter that determines the current output pixel.
|
||||||
|
+ int filterOffset, filterLength;
|
||||||
|
+ mFilter->FilterForValue(xx, &filterOffset, &filterLength);
|
||||||
|
+ inputSize = std::max(inputSize, filterOffset + filterLength);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
|
||||||
|
+
|
||||||
|
+#if MOZ_BIG_ENDIAN
|
||||||
|
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
||||||
|
+ ByteSwapArray(aDst, outputSize);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst,
|
||||||
|
@@ -49,8 +78,26 @@
|
||||||
|
int32_t filterLength;
|
||||||
|
auto filterValues =
|
||||||
|
mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
|
||||||
|
+
|
||||||
|
+#if MOZ_BIG_ENDIAN
|
||||||
|
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
||||||
|
+ // Skia only knows LE, so we have to swizzle the input
|
||||||
|
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
|
||||||
|
aHasAlpha);
|
||||||
|
+
|
||||||
|
+#if MOZ_BIG_ENDIAN
|
||||||
|
+ // After skia is finished, we swizzle back to BE, in case
|
||||||
|
+ // the input is used again somewhere else
|
||||||
|
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
||||||
|
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
||||||
|
+ }
|
||||||
|
+ // The destination array as well
|
||||||
|
+ ByteSwapArray(aDst, aRowSize);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ConvolutionFilter::ComputeResizeFactor is derived from Skia's
|
||||||
|
diff -r 36563351309d gfx/skia/skia/include/core/SkPreConfig.h
|
||||||
|
--- a/gfx/skia/skia/include/core/SkPreConfig.h Mon Sep 09 17:59:28 2019 +0200
|
||||||
|
+++ b/gfx/skia/skia/include/core/SkPreConfig.h Tue Sep 10 08:25:13 2019 +0200
|
||||||
|
@@ -73,7 +73,7 @@
|
||||||
|
defined(__ppc__) || defined(__hppa) || \
|
||||||
|
defined(__PPC__) || defined(__PPC64__) || \
|
||||||
|
defined(_MIPSEB) || defined(__ARMEB__) || \
|
||||||
|
- defined(__s390__) || \
|
||||||
|
+ defined(__s390__) || defined(__s390x__) || \
|
||||||
|
(defined(__sh__) && defined(__BIG_ENDIAN__)) || \
|
||||||
|
(defined(__ia64) && defined(__BIG_ENDIAN__))
|
||||||
|
#define SK_CPU_BENDIAN
|
44
mozilla-bmo1504834-part3.patch
Normal file
44
mozilla-bmo1504834-part3.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# Parent aecb4600e5da17443b224c79eee178c1d8e155e3
|
||||||
|
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
|
||||||
|
right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
|
||||||
|
|
||||||
|
diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
|
||||||
|
--- a/gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200
|
||||||
|
+++ b/gfx/skia/skia/include/private/SkNx.h Mon Sep 09 10:04:06 2019 +0200
|
||||||
|
@@ -238,7 +238,18 @@
|
||||||
|
AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
|
||||||
|
AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
|
||||||
|
|
||||||
|
+ // On Big endian the commented out variant doesn't work,
|
||||||
|
+ // and honestly, I have no idea why it exists in the first place.
|
||||||
|
+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
|
||||||
|
+ // which gets a 64-bit integer, and FromBits returns 32-bit,
|
||||||
|
+ // cutting off the wrong half again.
|
||||||
|
+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
|
||||||
|
+ // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system)
|
||||||
|
+#ifdef SK_CPU_BENDIAN
|
||||||
|
+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
|
||||||
|
+#else
|
||||||
|
AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
|
||||||
|
+#endif
|
||||||
|
AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
|
||||||
|
AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
|
||||||
|
|
||||||
|
diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h
|
||||||
|
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200
|
||||||
|
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h Mon Sep 09 10:04:06 2019 +0200
|
||||||
|
@@ -203,7 +203,13 @@
|
||||||
|
// ~~~>
|
||||||
|
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
|
||||||
|
// c = 0*aa + d(1-1*aa) = d(1-aa)
|
||||||
|
+
|
||||||
|
+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
|
||||||
|
+#ifdef SK_CPU_BENDIAN
|
||||||
|
+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
|
||||||
|
+#else
|
||||||
|
return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
|
||||||
|
+#endif
|
||||||
|
+ d.approxMulDiv255(aa.inv());
|
||||||
|
};
|
||||||
|
while (h --> 0) {
|
30
mozilla-bmo1504834-part4.patch
Normal file
30
mozilla-bmo1504834-part4.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec
|
||||||
|
Problem description: Tab-titles that are too long to fit into a tab get faded out.
|
||||||
|
On big endian this is broken and instead of fading out, the
|
||||||
|
tab gets white and the font transparent, leading to an unreadable
|
||||||
|
tab-title
|
||||||
|
Solution: This is not a real solution, but a hack. The real solution would have been
|
||||||
|
to byte-swap the correct buffer, but I could not find it.
|
||||||
|
So the next best thing is to deactivate the fading-effect. Now all tab-titles
|
||||||
|
are readable, albeit not as pretty to look at as they could be.
|
||||||
|
Side-effects: I have not yet found an unwanted side-effect.
|
||||||
|
|
||||||
|
diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
|
||||||
|
--- a/gfx/2d/DrawTargetSkia.cpp Tue Oct 22 12:27:22 2019 +0200
|
||||||
|
+++ b/gfx/2d/DrawTargetSkia.cpp Thu Oct 31 09:11:56 2019 +0100
|
||||||
|
@@ -1861,6 +1861,14 @@
|
||||||
|
SkCanvas::kPreserveLCDText_SaveLayerFlag |
|
||||||
|
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
|
||||||
|
|
||||||
|
+#if MOZ_BIG_ENDIAN
|
||||||
|
+ // Pushing a layer where an aMask is defined produces wrong output.
|
||||||
|
+ // We _should_ endian swap the data, but I couldn't find a workable way to do so
|
||||||
|
+ // Therefore I deactivate those layers in the meantime.
|
||||||
|
+ // The result is: Tab-titles that are longer than the available space should be faded out.
|
||||||
|
+ // The fading doesn't work, so we deactivate the fading-effect here.
|
||||||
|
+ if (!aMask)
|
||||||
|
+#endif
|
||||||
|
mCanvas->saveLayer(saveRec);
|
||||||
|
|
||||||
|
SetPermitSubpixelAA(aOpaque);
|
12
mozilla-bmo1554971.patch
Normal file
12
mozilla-bmo1554971.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up firefox-91.0/toolkit/components/extensions/schemas/runtime.json.mozilla-bmo1554971 firefox-91.0/toolkit/components/extensions/schemas/runtime.json
|
||||||
|
--- firefox-91.0/toolkit/components/extensions/schemas/runtime.json.mozilla-bmo1554971 2021-07-29 17:20:08.523253193 +0200
|
||||||
|
+++ firefox-91.0/toolkit/components/extensions/schemas/runtime.json 2021-07-29 17:21:23.517498581 +0200
|
||||||
|
@@ -64,7 +64,7 @@
|
||||||
|
{
|
||||||
|
"id": "PlatformArch",
|
||||||
|
"type": "string",
|
||||||
|
- "enum": ["aarch64", "arm", "ppc64", "s390x", "sparc64", "x86-32", "x86-64"],
|
||||||
|
+ "enum": ["aarch64", "arm", "ppc64", "ppc64le", "s390x", "sparc64", "x86-32", "x86-64"],
|
||||||
|
"allowedContexts": ["content", "devtools"],
|
||||||
|
"description": "The machine's processor architecture."
|
||||||
|
},
|
28
mozilla-bmo1602730.patch
Normal file
28
mozilla-bmo1602730.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
diff -r 6ef20eee3f8f gfx/layers/basic/BasicCompositor.cpp
|
||||||
|
--- a/gfx/layers/basic/BasicCompositor.cpp Thu Oct 31 09:11:56 2019 +0100
|
||||||
|
+++ b/gfx/layers/basic/BasicCompositor.cpp Wed Dec 11 16:16:09 2019 +0100
|
||||||
|
@@ -693,9 +693,13 @@
|
||||||
|
|
||||||
|
RefPtr<SourceSurface> sourceMask;
|
||||||
|
Matrix maskTransform;
|
||||||
|
+ // Setting an alpha-mask here breaks the URL-bar on big endian (s390x)
|
||||||
|
+ // if the typed URL is too long for the textbox (automatic scrolling needed)
|
||||||
|
+#if MOZ_LITTLE_ENDIAN
|
||||||
|
if (aTransform.Is2D()) {
|
||||||
|
SetupMask(aEffectChain, dest, offset, sourceMask, maskTransform);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
CompositionOp blendMode = CompositionOp::OP_OVER;
|
||||||
|
if (Effect* effect =
|
||||||
|
diff -r 6ef20eee3f8f gfx/layers/composite/CompositableHost.cpp
|
||||||
|
--- a/gfx/layers/composite/CompositableHost.cpp Thu Oct 31 09:11:56 2019 +0100
|
||||||
|
+++ b/gfx/layers/composite/CompositableHost.cpp Wed Dec 11 16:16:09 2019 +0100
|
||||||
|
@@ -91,6 +91,7 @@
|
||||||
|
}
|
||||||
|
MOZ_ASSERT(source);
|
||||||
|
|
||||||
|
+ // Alternatively: Comment out these lines where the alpha-mask is set
|
||||||
|
RefPtr<EffectMask> effect =
|
||||||
|
new EffectMask(source, source->GetSize(), aTransform);
|
||||||
|
aEffects.mSecondaryEffects[EffectTypes::MASK] = effect;
|
86
mozilla-bmo1626236.patch
Normal file
86
mozilla-bmo1626236.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User msirringhaus@suse.de
|
||||||
|
# Date 1582805876 -3600
|
||||||
|
# Thu Feb 27 13:17:56 2020 +0100
|
||||||
|
# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158
|
||||||
|
# Parent 9cd90914846f667f18babc491a74c164ae5d6e9f
|
||||||
|
imported patch decoder_workaround.patch
|
||||||
|
|
||||||
|
diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp
|
||||||
|
--- a/image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ b/image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -422,6 +422,9 @@
|
||||||
|
MOZ_ASSERT(mSwizzleFn);
|
||||||
|
uint8_t* data = reinterpret_cast<uint8_t*>(aColormap);
|
||||||
|
mSwizzleFn(data, data, aColors);
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator,
|
||||||
|
diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp
|
||||||
|
--- a/image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ b/image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -263,6 +263,9 @@
|
||||||
|
case JCS_YCbCr:
|
||||||
|
// By default, we will output directly to BGRA. If we need to apply
|
||||||
|
// special color transforms, this may change.
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
|
||||||
|
+#else
|
||||||
|
switch (SurfaceFormat::OS_RGBX) {
|
||||||
|
case SurfaceFormat::B8G8R8X8:
|
||||||
|
mInfo.out_color_space = JCS_EXT_BGRX;
|
||||||
|
@@ -277,6 +280,7 @@
|
||||||
|
mState = JPEG_ERROR;
|
||||||
|
return Transition::TerminateFailure();
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
break;
|
||||||
|
case JCS_CMYK:
|
||||||
|
case JCS_YCCK:
|
||||||
|
diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp
|
||||||
|
--- a/image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ b/image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -361,7 +361,7 @@
|
||||||
|
IResumable* aOnResume) {
|
||||||
|
MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!");
|
||||||
|
|
||||||
|
- return mLexer.Lex(aIterator, aOnResume,
|
||||||
|
+ LexerResult res = mLexer.Lex(aIterator, aOnResume,
|
||||||
|
[=](State aState, const char* aData, size_t aLength) {
|
||||||
|
switch (aState) {
|
||||||
|
case State::PNG_DATA:
|
||||||
|
@@ -371,6 +371,14 @@
|
||||||
|
}
|
||||||
|
MOZ_CRASH("Unknown State");
|
||||||
|
});
|
||||||
|
+
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
|
||||||
|
+ NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData(
|
||||||
|
diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp
|
||||||
|
--- a/image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ b/image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -237,7 +237,12 @@
|
||||||
|
// WebP doesn't guarantee that the alpha generated matches the hint in the
|
||||||
|
// header, so we always need to claim the input is BGRA. If the output is
|
||||||
|
// BGRX, swizzling will mask off the alpha channel.
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ mBuffer.colorspace = MODE_ARGB;
|
||||||
|
+ SurfaceFormat inFormat = mFormat;
|
||||||
|
+#else
|
||||||
|
SurfaceFormat inFormat = SurfaceFormat::OS_RGBA;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
SurfacePipeFlags pipeFlags = SurfacePipeFlags();
|
||||||
|
if (mFormat == SurfaceFormat::OS_RGBA &&
|
||||||
|
|
23
mozilla-bmo849632.patch
Normal file
23
mozilla-bmo849632.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
Problem: webGL sites are displayed in the wrong color (usually blue-ish)
|
||||||
|
Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only
|
||||||
|
knows how to deal with little endian.
|
||||||
|
So we swizzle the output of webgl after reading it from readpixels()
|
||||||
|
Note: This does not fix all webGL sites, but is a step in the right direction
|
||||||
|
diff -r 6b017d3e9733 gfx/gl/GLContext.h
|
||||||
|
--- a/gfx/gl/GLContext.h Mon Sep 09 10:04:05 2019 +0200
|
||||||
|
+++ b/gfx/gl/GLContext.h Wed Nov 13 17:13:04 2019 +0100
|
||||||
|
@@ -1551,6 +1551,13 @@
|
||||||
|
BEFORE_GL_CALL;
|
||||||
|
mSymbols.fReadPixels(x, y, width, height, format, type, pixels);
|
||||||
|
OnSyncCall();
|
||||||
|
+#if MOZ_BIG_ENDIAN
|
||||||
|
+ uint8_t* itr = (uint8_t*)pixels;
|
||||||
|
+ for (GLsizei i = 0; i < width * height; i++) {
|
||||||
|
+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
|
||||||
|
+ itr += 4;
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
AFTER_GL_CALL;
|
||||||
|
mHeavyGLCallsSinceLastFlush = true;
|
||||||
|
}
|
||||||
|
|
30
mozilla-bmo998749.patch
Normal file
30
mozilla-bmo998749.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User msirringhaus@suse.de
|
||||||
|
# Date 1583738770 -3600
|
||||||
|
# Mon Mar 09 08:26:10 2020 +0100
|
||||||
|
# Node ID 34676feac1a542e409e22acf5b98735f8313b1ce
|
||||||
|
# Parent 506857dace0a08d1c9685e3ac264646590b3e27f
|
||||||
|
[mq]: mozilla-bmo998749.patch
|
||||||
|
|
||||||
|
diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h
|
||||||
|
--- a/gfx/2d/FilterProcessing.h Fri Feb 28 12:31:51 2020 +0100
|
||||||
|
+++ b/gfx/2d/FilterProcessing.h Mon Mar 09 08:26:10 2020 +0100
|
||||||
|
@@ -13,10 +13,17 @@
|
||||||
|
namespace mozilla {
|
||||||
|
namespace gfx {
|
||||||
|
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 3;
|
||||||
|
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 2;
|
||||||
|
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 1;
|
||||||
|
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 0;
|
||||||
|
+#else
|
||||||
|
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 0;
|
||||||
|
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 1;
|
||||||
|
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 2;
|
||||||
|
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 3;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
class FilterProcessing {
|
||||||
|
public:
|
||||||
|
|
36
mozilla-s390-context.patch
Normal file
36
mozilla-s390-context.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User msirringhaus@suse.de
|
||||||
|
# Date 1558452408 -7200
|
||||||
|
# Tue May 21 17:26:48 2019 +0200
|
||||||
|
# Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4
|
||||||
|
# Parent a3cc550d25e3a04d906f516928cbcbe50efd585e
|
||||||
|
[mq]: mozilla-s390-context.patch
|
||||||
|
|
||||||
|
diff -r a3cc550d25e3 -r 602e92722e76 js/src/wasm/WasmSignalHandlers.cpp
|
||||||
|
--- a/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:22:06 2019 +0200
|
||||||
|
+++ b/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:26:48 2019 +0200
|
||||||
|
@@ -154,6 +154,10 @@
|
||||||
|
# define R01_sig(p) ((p)->uc_mcontext.gp_regs[1])
|
||||||
|
# define R32_sig(p) ((p)->uc_mcontext.gp_regs[32])
|
||||||
|
# endif
|
||||||
|
+# if defined(__linux__) && defined(__s390x__)
|
||||||
|
+# define GR_sig(p,x) ((p)->uc_mcontext.gregs[x])
|
||||||
|
+# define PSWa_sig(p) ((p)->uc_mcontext.psw.addr)
|
||||||
|
+# endif
|
||||||
|
#elif defined(__NetBSD__)
|
||||||
|
# define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP])
|
||||||
|
# define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP])
|
||||||
|
@@ -385,8 +389,13 @@
|
||||||
|
# define PC_sig(p) R32_sig(p)
|
||||||
|
# define SP_sig(p) R01_sig(p)
|
||||||
|
# define FP_sig(p) R01_sig(p)
|
||||||
|
+#elif defined(__s390x__)
|
||||||
|
+# define PC_sig(p) PSWa_sig(p)
|
||||||
|
+# define SP_sig(p) GR_sig(p, 15)
|
||||||
|
+# define FP_sig(p) GR_sig(p, 11)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+
|
||||||
|
static void SetContextPC(CONTEXT* context, uint8_t* pc) {
|
||||||
|
#ifdef PC_sig
|
||||||
|
*reinterpret_cast<uint8_t**>(&PC_sig(context)) = pc;
|
52
mozilla-s390x-skia-gradient.patch
Normal file
52
mozilla-s390x-skia-gradient.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# Parent acf59ea86dd1d878b43920832093f082dcfc61c0
|
||||||
|
|
||||||
|
diff -r acf59ea86dd1 gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp
|
||||||
|
--- a/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp Mon Mar 09 08:26:10 2020 +0100
|
||||||
|
+++ b/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp Fri Mar 27 13:30:28 2020 +0100
|
||||||
|
@@ -7,7 +7,7 @@
|
||||||
|
|
||||||
|
#include "include/core/SkPaint.h"
|
||||||
|
#include "src/shaders/gradients/Sk4fLinearGradient.h"
|
||||||
|
-
|
||||||
|
+#include "src/core/SkEndian.h"
|
||||||
|
#include <cmath>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
|
@@ -28,6 +28,9 @@
|
||||||
|
|
||||||
|
while (n >= 4) {
|
||||||
|
DstTraits<premul>::store4x(c0, c1, c2, c3, dst, bias0, bias1);
|
||||||
|
+#ifdef SK_CPU_BENDIAN
|
||||||
|
+ SkEndianSwap32s(dst, 4);
|
||||||
|
+#endif
|
||||||
|
dst += 4;
|
||||||
|
|
||||||
|
c0 = c0 + dc4;
|
||||||
|
@@ -37,12 +40,23 @@
|
||||||
|
n -= 4;
|
||||||
|
}
|
||||||
|
if (n & 2) {
|
||||||
|
- DstTraits<premul>::store(c0, dst++, bias0);
|
||||||
|
- DstTraits<premul>::store(c1, dst++, bias1);
|
||||||
|
+ DstTraits<premul>::store(c0, dst, bias0);
|
||||||
|
+#ifdef SK_CPU_BENDIAN
|
||||||
|
+ *dst = SkEndianSwap32(*dst);
|
||||||
|
+#endif
|
||||||
|
+ ++dst;
|
||||||
|
+ DstTraits<premul>::store(c1, dst, bias1);
|
||||||
|
+#ifdef SK_CPU_BENDIAN
|
||||||
|
+ *dst = SkEndianSwap32(*dst);
|
||||||
|
+#endif
|
||||||
|
+ ++dst;
|
||||||
|
c0 = c0 + dc2;
|
||||||
|
}
|
||||||
|
if (n & 1) {
|
||||||
|
DstTraits<premul>::store(c0, dst, bias0);
|
||||||
|
+#ifdef SK_CPU_BENDIAN
|
||||||
|
+ *dst = SkEndianSwap32(*dst);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
3
node-stdout-nonblocking-wrapper
Executable file
3
node-stdout-nonblocking-wrapper
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#exec /usr/bin/node "$@" 2>&1 | cat -
|
||||||
|
exec $MOZ_NODEJS "$@" 2>&1 | cat -
|
7
nss-setup-flags-env.inc
Normal file
7
nss-setup-flags-env.inc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nss*.pc
|
||||||
|
|
||||||
|
export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
|
||||||
|
export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS"
|
||||||
|
export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
|
||||||
|
export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig
|
||||||
|
export PATH="{_buildrootdir}%{bundled_install_path}/bin:$PATH"
|
23
process-official-tarball
Executable file
23
process-official-tarball
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
rm -rf ./process-tarball-dir
|
||||||
|
mkdir ./process-tarball-dir
|
||||||
|
tar -xJf $1 --directory process-tarball-dir
|
||||||
|
|
||||||
|
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0030-isvalid.html
|
||||||
|
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0008-isvalid.html
|
||||||
|
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfalite/0030-isvalid.html
|
||||||
|
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cursors/woolly-64.svg
|
||||||
|
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cursors/woolly.svg
|
||||||
|
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html
|
||||||
|
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html
|
||||||
|
rm -vf ./process-tarball-dir/*/layout/inspector/tests/chrome/test_fontVariationsAPI.css
|
||||||
|
|
||||||
|
processed_tarball=${1/source/processed-source}
|
||||||
|
|
||||||
|
cd ./process-tarball-dir
|
||||||
|
tar -cf - ./* | xz -9 -T 0 -f > $processed_tarball
|
||||||
|
mv $processed_tarball ..
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
rm -rf ./process-tarball-dir
|
12
python-missing-utimensat.patch
Normal file
12
python-missing-utimensat.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up python3/Python-3.6.8/configure.old python3/Python-3.6.8/configure
|
||||||
|
--- Python-3.6.8/configure.old 2019-10-01 12:56:35.074551835 +0200
|
||||||
|
+++ Python-3.6.8/configure 2019-10-01 12:56:44.240517798 +0200
|
||||||
|
@@ -11438,7 +11438,7 @@ for ac_func in alarm accept4 setitimer g
|
||||||
|
sigaction sigaltstack siginterrupt sigpending sigrelse \
|
||||||
|
sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy symlinkat sync \
|
||||||
|
sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
|
||||||
|
- truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \
|
||||||
|
+ truncate uname unlinkat unsetenv utimes waitid waitpid wait3 wait4 \
|
||||||
|
wcscoll wcsftime wcsxfrm wmemcmp writev _getpty
|
||||||
|
do :
|
||||||
|
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
12
rhbz-1173156.patch
Normal file
12
rhbz-1173156.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up firefox-60.5.0/extensions/auth/nsAuthSambaNTLM.cpp.rhbz-1173156 firefox-60.5.0/extensions/auth/nsAuthSambaNTLM.cpp
|
||||||
|
--- firefox-60.5.0/extensions/auth/nsAuthSambaNTLM.cpp.rhbz-1173156 2019-01-22 10:36:09.284069020 +0100
|
||||||
|
+++ firefox-60.5.0/extensions/auth/nsAuthSambaNTLM.cpp 2019-01-22 10:37:12.669757744 +0100
|
||||||
|
@@ -161,7 +161,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
|
||||||
|
const char* username = PR_GetEnv("USER");
|
||||||
|
if (!username) return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
- const char* const args[] = {"ntlm_auth",
|
||||||
|
+ const char* const args[] = {"/usr/bin/ntlm_auth",
|
||||||
|
"--helper-protocol",
|
||||||
|
"ntlmssp-client-1",
|
||||||
|
"--use-cached-creds",
|
5
sources
Normal file
5
sources
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
SHA512 (cbindgen-vendor.tar.xz) = 9cb4a590584c53386a14deb1f1faf7b67ff8f312eff4a8dccab710738183c504387d69fa660021b495ed61603f4df1db689f35234c61e2e886962e40aab20c95
|
||||||
|
SHA512 (nspr-4.32.0-1.el8_1.src.rpm) = c181a19bc24aeb62aed1745a6a43ae8aa2ee0d903aa16cb6ec7d385286e60f6426049cc9669459434377a215f329502ffe6fc48a1edc52d5b3283ebc259e9dca
|
||||||
|
SHA512 (nss-3.67.0-7.el8_1.src.rpm) = 15361c596fc4f2e4afc7d40d48c37886cad93849821d2bcad8213f34035a6951be127b436b6799083f2b4adb18a68870dbe273177d2d670eda9cc9680e6d6f63
|
||||||
|
SHA512 (thunderbird-91.8.0.processed-source.tar.xz) = 4f469bb13f23d1170bbd9b52dd1323896b8da02a74c9085072fdc475054dcf2f5e69be08259edc0d466dc482974290ddb3270615e78487e6aa5aef95bd029867
|
||||||
|
SHA512 (thunderbird-langpacks-91.8.0-20220405.tar.xz) = 9d194379c25afb2d4e26dabd16a94b30b26f386dbe2970a9e1d32a5e9cf923f4e430f275f7f1bb185e34f1170344dbea86dbe8c80411c6c898e4a848fbfd922d
|
31
thunderbird-mozconfig
Normal file
31
thunderbird-mozconfig
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
ac_add_options --enable-application=comm/mail
|
||||||
|
|
||||||
|
ac_add_options --prefix="$PREFIX"
|
||||||
|
ac_add_options --libdir="$LIBDIR"
|
||||||
|
ac_add_options --with-system-zlib
|
||||||
|
ac_add_options --disable-strip
|
||||||
|
ac_add_options --disable-tests
|
||||||
|
#ac_add_options --enable-libnotify
|
||||||
|
ac_add_options --enable-necko-wifi
|
||||||
|
ac_add_options --disable-updater
|
||||||
|
ac_add_options --enable-chrome-format=omni
|
||||||
|
ac_add_options --enable-pulseaudio
|
||||||
|
ac_add_options --without-system-icu
|
||||||
|
ac_add_options --enable-release
|
||||||
|
ac_add_options --update-channel=release
|
||||||
|
ac_add_options --allow-addon-sideload
|
||||||
|
ac_add_options --with-system-jpeg
|
||||||
|
ac_add_options --enable-js-shell
|
||||||
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
|
||||||
|
ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key
|
||||||
|
ac_add_options --with-google-location-service-api-keyfile=../google-api-key
|
||||||
|
ac_add_options --with-google-safebrowsing-api-keyfile=../google-api-key
|
||||||
|
ac_add_options --disable-crashreporter
|
||||||
|
|
||||||
|
export BUILD_OFFICIAL=1
|
||||||
|
export MOZILLA_OFFICIAL=1
|
||||||
|
mk_add_options BUILD_OFFICIAL=1
|
||||||
|
mk_add_options MOZ_CO_PROJECT=mail
|
||||||
|
mk_add_options MOZILLA_OFFICIAL=1
|
||||||
|
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
|
36
thunderbird-redhat-default-prefs.js.rhel7
Normal file
36
thunderbird-redhat-default-prefs.js.rhel7
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
pref("app.update.enabled", false);
|
||||||
|
pref("app.update.autoInstallEnabled", false);
|
||||||
|
/* Allow users to set custom colors*/
|
||||||
|
/* pref("browser.display.use_system_colors", true);*/
|
||||||
|
pref("general.useragent.vendor", "Red Hat");
|
||||||
|
pref("general.useragent.vendorSub", "THUNDERBIRD_RPM_VR");
|
||||||
|
pref("intl.locale.matchOS", true);
|
||||||
|
pref("mail.shell.checkDefaultClient", false);
|
||||||
|
pref("toolkit.networkmanager.disable", false);
|
||||||
|
pref("offline.autoDetect", true);
|
||||||
|
|
||||||
|
/* Disable global indexing by default*/
|
||||||
|
pref("mailnews.database.global.indexer.enabled", false);
|
||||||
|
|
||||||
|
/* Do not switch to Smart Folders after upgrade to 3.0b4 */
|
||||||
|
pref("mail.folder.views.version", "1");
|
||||||
|
pref("extensions.shownSelectionUI", true);
|
||||||
|
pref("extensions.autoDisableScopes", 0);
|
||||||
|
|
||||||
|
/* For rhbz#1024232 */
|
||||||
|
pref("ui.SpellCheckerUnderlineStyle", 1);
|
||||||
|
|
||||||
|
/* Workaround for rhbz#1753011 */
|
||||||
|
pref("spellchecker.dictionary_path", "/usr/share/myspell");
|
||||||
|
/* Workaround for rhbz#1134876 */
|
||||||
|
pref("javascript.options.baselinejit", false);
|
||||||
|
/* Workaround for rhbz#1110291 */
|
||||||
|
pref("network.negotiate-auth.allow-insecure-ntlm-v1", true);
|
||||||
|
/* Workaround for mozbz#1063315 */
|
||||||
|
pref("security.use_mozillapkix_verification", false);
|
||||||
|
/* Use OS settings for UI language */
|
||||||
|
pref("intl.locale.requested", "");
|
||||||
|
/* Disable telemetry */
|
||||||
|
pref("datareporting.healthreport.uploadEnabled", false);
|
||||||
|
pref("datareporting.policy.dataSubmissionEnabled", false);
|
||||||
|
pref("toolkit.telemetry.archive.enabled", false);
|
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
|
145
thunderbird.sh.in
Normal file
145
thunderbird.sh.in
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Startup script for the fedora.us Thunderbird RPM
|
||||||
|
# (based on the Mozilla RPM launch script)
|
||||||
|
#
|
||||||
|
|
||||||
|
##
|
||||||
|
## Variables
|
||||||
|
##
|
||||||
|
MOZ_ARCH=$(uname -m)
|
||||||
|
case $MOZ_ARCH in
|
||||||
|
x86_64 | s390x | sparc64 )
|
||||||
|
MOZ_LIB_DIR="%PREFIX%/lib64"
|
||||||
|
SECONDARY_LIB_DIR="%PREFIX%/lib"
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
MOZ_LIB_DIR="%PREFIX%/lib"
|
||||||
|
SECONDARY_LIB_DIR="%PREFIX%/lib64"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ ! -x $MOZ_LIB_DIR/thunderbird/thunderbird ]; then
|
||||||
|
if [ ! -x $SECONDARY_LIB_DIR/thunderbird/thunderbird ]; then
|
||||||
|
echo "Error: $MOZ_LIB_DIR/thunderbird/thunderbird not found"
|
||||||
|
if [ -d $SECONDARY_LIB_DIR ]; then
|
||||||
|
echo " $SECONDARY_LIB_DIR/thunderbird/thunderbird not found"
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
MOZ_LIB_DIR="$SECONDARY_LIB_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
MOZ_DIST_BIN="$MOZ_LIB_DIR/thunderbird"
|
||||||
|
MOZ_PROGRAM="$MOZ_DIST_BIN/thunderbird"
|
||||||
|
MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
|
||||||
|
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}"
|
||||||
|
|
||||||
|
##
|
||||||
|
## Set MOZ_ENABLE_PANGO is no longer used because Pango is enabled by default
|
||||||
|
## you may use MOZ_DISABLE_PANGO=1 to force disabling of pango
|
||||||
|
##
|
||||||
|
#MOZ_DISABLE_PANGO=1
|
||||||
|
#export MOZ_DISABLE_PANGO
|
||||||
|
|
||||||
|
##
|
||||||
|
## Set MOZ_APP_LAUNCHER for gnome-session
|
||||||
|
##
|
||||||
|
export MOZ_APP_LAUNCHER="%PREFIX%/bin/thunderbird"
|
||||||
|
|
||||||
|
##
|
||||||
|
## Disable the GNOME crash dialog, Moz has it's own
|
||||||
|
##
|
||||||
|
GNOME_DISABLE_CRASH_DIALOG=1
|
||||||
|
export GNOME_DISABLE_CRASH_DIALOG
|
||||||
|
|
||||||
|
##
|
||||||
|
## Disable the SLICE allocator (rhbz#1014858)
|
||||||
|
##
|
||||||
|
export G_SLICE=always-malloc
|
||||||
|
|
||||||
|
##
|
||||||
|
## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1
|
||||||
|
## in your environment before launching Firefox.
|
||||||
|
##
|
||||||
|
#
|
||||||
|
# MOZ_DISABLE_LANGPACKS=1
|
||||||
|
# export MOZ_DISABLE_LANGPACKS
|
||||||
|
#
|
||||||
|
|
||||||
|
##
|
||||||
|
## Automatically installed langpacks are tracked by .fedora-langpack-install
|
||||||
|
## config file.
|
||||||
|
##
|
||||||
|
FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install"
|
||||||
|
|
||||||
|
# MOZ_DISABLE_LANGPACKS disables language packs completelly
|
||||||
|
MOZILLA_DOWN=0
|
||||||
|
if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
|
||||||
|
pidof thunderbird > /dev/null 2>&1
|
||||||
|
MOZILLA_DOWN=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Modify language pack configuration only when thunderbird is not running
|
||||||
|
# and language packs are not disabled
|
||||||
|
if [ $MOZILLA_DOWN -ne 0 ]; then
|
||||||
|
|
||||||
|
# Clear already installed langpacks
|
||||||
|
mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR
|
||||||
|
if [ -f $FEDORA_LANGPACK_CONFIG ]; then
|
||||||
|
rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1
|
||||||
|
rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1
|
||||||
|
# remove all empty langpacks dirs while they block installation of langpacks
|
||||||
|
rmdir $MOZ_EXTENSIONS_PROFILE_DIR/lang* > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get locale from system
|
||||||
|
CURRENT_LOCALE=$LC_ALL
|
||||||
|
CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES}
|
||||||
|
CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
|
||||||
|
|
||||||
|
# Try without a local variant first, then with a local variant
|
||||||
|
# So that pt-BR doesn't try to use pt for example
|
||||||
|
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"`
|
||||||
|
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"`
|
||||||
|
|
||||||
|
function create_langpack_link() {
|
||||||
|
local language=$*
|
||||||
|
local langpack=langpack-${language}@thunderbird.mozilla.org.xpi
|
||||||
|
if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then
|
||||||
|
rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
|
||||||
|
ln -s $MOZ_LANGPACKS_DIR/$langpack \
|
||||||
|
$MOZ_EXTENSIONS_PROFILE_DIR/$langpack
|
||||||
|
echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
create_langpack_link $SHORTMOZLOCALE || create_langpack_link $MOZLOCALE || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# BEAST fix (rhbz#1005611)
|
||||||
|
NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1}
|
||||||
|
export NSS_SSL_CBC_RANDOM_IV
|
||||||
|
|
||||||
|
# Linux version specific environment variables
|
||||||
|
%RHEL_ENV_VARS%
|
||||||
|
|
||||||
|
# Make sure at-spi-bus is running
|
||||||
|
if ! dbus-send --session \
|
||||||
|
--dest=org.freedesktop.DBus \
|
||||||
|
--type=method_call \
|
||||||
|
--print-reply \
|
||||||
|
/org/freedesktop/DBus \
|
||||||
|
org.freedesktop.DBus.ListNames \
|
||||||
|
| grep org.a11y.Bus > /dev/null; then
|
||||||
|
if [ -f "$MOZ_LIB_DIR/firefox/bundled/libexec/at-spi-bus-launcher" ]; then
|
||||||
|
echo "Starting a11y dbus service..."
|
||||||
|
$MOZ_LIB_DIR/firefox/bundled/libexec/at-spi-bus-launcher &
|
||||||
|
else
|
||||||
|
echo "Running without a11y support!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec $MOZ_PROGRAM "$@"
|
2421
thunderbird.spec
Normal file
2421
thunderbird.spec
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user