diff --git a/srcpkgs/thunderbird/files/mozconfig b/srcpkgs/thunderbird/files/mozconfig index 334846e9a64..b30e8fc4886 100644 --- a/srcpkgs/thunderbird/files/mozconfig +++ b/srcpkgs/thunderbird/files/mozconfig @@ -3,7 +3,6 @@ ac_add_options --libdir=/usr/lib ac_add_options --with-system-nspr ac_add_options --with-system-nss -ac_add_options --with-system-bz2 ac_add_options --with-system-jpeg ac_add_options --with-system-zlib ac_add_options --with-system-libevent @@ -12,12 +11,8 @@ ac_add_options --with-system-icu # XXX: the system's libpng doesn't have APNG support ac_add_options --without-system-png ac_add_options --enable-system-pixman -ac_add_options --enable-system-sqlite ac_add_options --enable-system-ffi -ac_add_options --with-nspr-prefix=${XBPS_CROSS_BASE}/usr -ac_add_options --with-nss-prefix=${XBPS_CROSS_BASE}/usr - nspr_config_args=" --libdir=${XBPS_CROSS_BASE}/usr/lib --includedir=${XBPS_CROSS_BASE}/usr/include/nspr" @@ -26,16 +21,17 @@ nss_config_args=" --libdir=${XBPS_CROSS_BASE}/usr/lib --includedir=${XBPS_CROSS_BASE}/usr/include/nss" -ac_add_options --disable-gconf ac_add_options --disable-tests ac_add_options --disable-crashreporter ac_add_options --disable-updater ac_add_options --disable-install-strip ac_add_options --disable-strip ac_add_options --disable-profiling -ac_add_options --disable-gold +ac_add_options --enable-release ac_add_options --enable-optimize="$CFLAGS" ac_add_options --enable-official-branding -ac_add_options --enable-calendar ac_add_options --enable-application=comm/mail +ac_add_options --enable-calendar + +ac_add_options --allow-addon-sideload diff --git a/srcpkgs/thunderbird/patches/big-endian-image-decoders.patch b/srcpkgs/thunderbird/patches/big-endian-image-decoders.patch new file mode 100644 index 00000000000..ccb417b61f1 --- /dev/null +++ b/srcpkgs/thunderbird/patches/big-endian-image-decoders.patch @@ -0,0 +1,88 @@ +https://bugzilla.mozilla.org/show_bug.cgi?id=1626236 +https://bug1626236.bmoattachments.org/attachment.cgi?id=9137096 + +# 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 +--- image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -422,6 +422,9 @@ + MOZ_ASSERT(mSwizzleFn); + uint8_t* data = reinterpret_cast(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 +--- image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ 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 +--- image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ 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() && res.as() == TerminalState::SUCCESS) { ++ NativeEndian::swapToLittleEndianInPlace((uint32_t*)(mImageData), mImageDataLength / 4); ++ } ++#endif ++ ++ return res; + } + + LexerTransition nsPNGDecoder::ReadPNGData( +diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp +--- image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ 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 && diff --git a/srcpkgs/thunderbird/patches/disable-image-format-warning.patch b/srcpkgs/thunderbird/patches/disable-image-format-warning.patch deleted file mode 100644 index bd56e6bc37c..00000000000 --- a/srcpkgs/thunderbird/patches/disable-image-format-warning.patch +++ /dev/null @@ -1,15 +0,0 @@ -Imported from Adélie. Firefox is prone to this warning on BE and -it leads to huge .xsession-errors, and the warning is not very -important or meaningful, so just disable it. - ---- gfx/2d/HelpersCairo.h -+++ gfx/2d/HelpersCairo.h -@@ -147,7 +147,7 @@ - case SurfaceFormat::R5G6B5_UINT16: - return CAIRO_FORMAT_RGB16_565; - default: -- gfxCriticalError() << "Unknown image format " << (int)format; -+ //gfxCriticalError() << "Unknown image format " << (int)format; - return CAIRO_FORMAT_ARGB32; - } - } diff --git a/srcpkgs/thunderbird/patches/fix-cross.patch b/srcpkgs/thunderbird/patches/fix-cross.patch new file mode 100644 index 00000000000..9b8a816d269 --- /dev/null +++ b/srcpkgs/thunderbird/patches/fix-cross.patch @@ -0,0 +1,16 @@ +terrible hack to fix cross builds +overwrite HOST_* flags to get rid of -MF + +note: this patch was used from firefox-77 until 80, dropped with the update to 81 + +--- third_party/rust/glslopt/build.rs ++++ third_party/rust/glslopt/build.rs +@@ -28,6 +28,8 @@ + env::remove_var(format!("CXXFLAGS_{}", &target)); + env::remove_var(format!("CFLAGS_{}", target.replace("-", "_"))); + env::remove_var(format!("CXXFLAGS_{}", target.replace("-", "_"))); ++ env::set_var("HOST_CFLAGS", "-O2"); ++ env::set_var("HOST_CXXFLAGS", "-O2"); + + configure(&mut cc::Build::new()) + .warnings(false) diff --git a/srcpkgs/thunderbird/patches/fix-desktop-icon-path.patch b/srcpkgs/thunderbird/patches/fix-desktop-icon-path.patch new file mode 100644 index 00000000000..60af12e80b1 --- /dev/null +++ b/srcpkgs/thunderbird/patches/fix-desktop-icon-path.patch @@ -0,0 +1,11 @@ +--- taskcluster/docker/firefox-snap/firefox.desktop.orig 2019-01-18 19:31:39.428839442 +0100 ++++ taskcluster/docker/firefox-snap/firefox.desktop 2019-01-18 19:32:20.689063456 +0100 +@@ -154,7 +154,7 @@ + Terminal=false + X-MultipleArgs=false + Type=Application +-Icon=/browser/chrome/icons/default/default128.png ++Icon=firefox + Categories=GNOME;GTK;Network;WebBrowser; + MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall; + StartupNotify=true diff --git a/srcpkgs/thunderbird/patches/fix-i686-ppc-musl.patch b/srcpkgs/thunderbird/patches/fix-i686-ppc-musl.patch index 40aab43ae86..6df609bbf16 100644 --- a/srcpkgs/thunderbird/patches/fix-i686-ppc-musl.patch +++ b/srcpkgs/thunderbird/patches/fix-i686-ppc-musl.patch @@ -1,11 +1,11 @@ --- mozglue/misc/StackWalk.cpp 2017-04-11 04:13:21.000000000 +0200 +++ mozglue/misc/StackWalk.cpp 2017-11-29 15:23:07.218649970 +0100 -@@ -33,7 +33,7 @@ using namespace mozilla; - # define MOZ_STACKWALK_SUPPORTS_MACOSX 0 +@@ -41,7 +41,7 @@ + #define MOZ_STACKWALK_SUPPORTS_MACOSX 0 #endif --#if (defined(linux) && \ +-#if (defined(linux) && \ +#if defined(__GLIBC__) && (defined(linux) && \ ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \ defined(HAVE__UNWIND_BACKTRACE))) - # define MOZ_STACKWALK_SUPPORTS_LINUX 1 + #define MOZ_STACKWALK_SUPPORTS_LINUX 1 diff --git a/srcpkgs/thunderbird/patches/fix-image-format-warning.patch b/srcpkgs/thunderbird/patches/fix-image-format-warning.patch new file mode 100644 index 00000000000..9b3b38d9065 --- /dev/null +++ b/srcpkgs/thunderbird/patches/fix-image-format-warning.patch @@ -0,0 +1,39 @@ +# HG changeset patch +# User Lee Salzman +# Date 1462463631 14400 +# Thu May 05 11:53:51 2016 -0400 +# Node ID 8da374804a09977c8f89af5e6e0cb37cb074595d +# Parent 29662e28a9c93ac67ee0b8ddfb65a9f29bbf73f5 +handle big-endian formats in Cairo format conversions + +--- gfx/2d/HelpersCairo.h ++++ gfx/2d/HelpersCairo.h +@@ -147,7 +147,14 @@ static inline cairo_format_t GfxFormatToCairoFormat(Su + case SurfaceFormat::R5G6B5_UINT16: + return CAIRO_FORMAT_RGB16_565; + default: +- gfxCriticalError() << "Unknown image format " << (int)format; ++ // _UINT32 formats don't match B8G8R8[AX]8 on big-endian platforms, ++ // and Moz2d uses B8G8R8[AX]8 as if it was _UINT32. ++ // See bug 1269654 ++ if (format == SurfaceFormat::B8G8R8X8) { ++ return CAIRO_FORMAT_RGB24; ++ } else if (format != SurfaceFormat::B8G8R8A8) { ++ gfxCriticalError() << "Unknown image format " << (int)format; ++ } + return CAIRO_FORMAT_ARGB32; + } + } +@@ -177,7 +184,11 @@ static inline cairo_content_t GfxFormatToCairoContent( + case SurfaceFormat::A8: + return CAIRO_CONTENT_ALPHA; + default: +- gfxCriticalError() << "Unknown image content format " << (int)format; ++ if (format == SurfaceFormat::B8G8R8X8) { ++ return CAIRO_CONTENT_COLOR; ++ } else if (format != SurfaceFormat::B8G8R8A8) { ++ gfxCriticalError() << "Unknown image content format " << (int)format; ++ } + return CAIRO_CONTENT_COLOR_ALPHA; + } + } diff --git a/srcpkgs/thunderbird/patches/fix-musl.patch b/srcpkgs/thunderbird/patches/fix-musl.patch deleted file mode 100644 index c1cb99bf651..00000000000 --- a/srcpkgs/thunderbird/patches/fix-musl.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- tools/profiler/core/platform-linux-android.cpp.orig 2019-07-09 22:58:30.039475686 +0200 -+++ tools/profiler/core/platform-linux-android.cpp 2019-07-09 22:58:39.331437677 +0200 -@@ -73,7 +73,7 @@ - - int profiler_current_thread_id() { - // glibc doesn't provide a wrapper for gettid(). --#if defined(__GLIBC__) -+#if defined(__linux__) - return static_cast(static_cast(syscall(SYS_gettid))); - #else - return static_cast(gettid()); diff --git a/srcpkgs/thunderbird/patches/fix-sandbox-membarrier.patch b/srcpkgs/thunderbird/patches/fix-sandbox-membarrier.patch deleted file mode 100644 index caffd83cf67..00000000000 --- a/srcpkgs/thunderbird/patches/fix-sandbox-membarrier.patch +++ /dev/null @@ -1,52 +0,0 @@ -allow usage of SYS_membarrier, needed since musl-1.1.22 - ---- security/sandbox/linux/SandboxFilter.cpp -+++ security/sandbox/linux/SandboxFilter.cpp -@@ -283,6 +283,8 @@ - case __NR_set_tid_address: - return Allow(); - #endif -+ case __NR_membarrier: -+ return Allow(); - - // prctl - case __NR_prctl: { - ---- security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h -+++ security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h -@@ -1385,6 +1385,10 @@ - #define __NR_memfd_create (__NR_SYSCALL_BASE+385) - #endif - -+#if !defined(__NR_membarrier) -+#define __NR_membarrier (__NR_SYSCALL_BASE+389) -+#endif -+ - // ARM private syscalls. - #if !defined(__ARM_NR_BASE) - #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) - ---- security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h -+++ security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h -@@ -1290,5 +1290,9 @@ - #define __NR_memfd_create 319 - #endif - -+#if !defined(__NR_membarrier) -+#define __NR_membarrier 324 -+#endif -+ - #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_ - ---- security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h -+++ security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h -@@ -1490,5 +1490,9 @@ - #define __NR_shutdown 373 - #endif - -+#if !defined(__NR_membarrier) -+#define __NR_membarrier 375 -+#endif -+ - #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_ - diff --git a/srcpkgs/thunderbird/patches/fix-seccomp-bpf.patch b/srcpkgs/thunderbird/patches/fix-seccomp-bpf.patch deleted file mode 100644 index ed94fc39ed0..00000000000 --- a/srcpkgs/thunderbird/patches/fix-seccomp-bpf.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc.orig 2015-09-23 09:10:08.812740571 +0200 -+++ security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc 2015-09-23 09:11:38.404746155 +0200 -@@ -23,6 +23,11 @@ - #include "sandbox/linux/services/android_ucontext.h" - #endif - -+// musl libc defines siginfo_t __si_fields instead of _sifields -+#if defined(OS_LINUX) && !defined(__GLIBC__) -+#define _sifields __si_fields -+#endif -+ - namespace { - - struct arch_sigsys { diff --git a/srcpkgs/thunderbird/patches/fix-toolkit.patch b/srcpkgs/thunderbird/patches/fix-toolkit.patch deleted file mode 100644 index 86e8ef47855..00000000000 --- a/srcpkgs/thunderbird/patches/fix-toolkit.patch +++ /dev/null @@ -1,78 +0,0 @@ ---- toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h.orig 2016-07-05 21:00:03.672000517 +0200 -+++ toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2016-07-05 21:05:37.347806230 +0200 -@@ -1134,6 +1134,12 @@ - #ifndef __NR_fallocate - #define __NR_fallocate 285 - #endif -+ -+#undef __NR_pread -+#define __NR_pread __NR_pread64 -+#undef __NR_pwrite -+#define __NR_pwrite __NR_pwrite64 -+ - /* End of x86-64 definitions */ - #elif defined(__mips__) - #if _MIPS_SIM == _MIPS_SIM_ABI32 ---- toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-03-15 05:19:36.000000000 +0000 -+++ toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-04-17 10:24:33.793431933 +0000 -@@ -45,6 +45,7 @@ - #include - #include - #include -+#include - - #include - #include ---- toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-03-15 05:19:36.000000000 +0000 -+++ toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-04-17 10:24:33.793431933 +0000 -@@ -41,6 +41,10 @@ - - #include "common/using_std_string.h" - -+#ifndef N_UNDF -+#define N_UNDF 0 -+#endif -+ - using std::vector; - - namespace google_breakpad { ---- toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-03-15 05:19:36.000000000 +0000 -+++ toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-04-17 10:24:33.793431933 +0000 -@@ -55,7 +55,7 @@ - - #ifdef HAVE_MACH_O_NLIST_H - #include --#elif defined(HAVE_A_OUT_H) -+#elif 0 - #include - #endif - ---- toolkit.orig/mozapps/update/common/updatedefines.h 2019-01-29 11:34:36.416804577 +0100 -+++ toolkit/mozapps/update/common/updatedefines.h 2019-01-29 11:34:59.193583777 +0100 -@@ -102,7 +102,7 @@ - - # ifdef SOLARIS - # include --# else -+# elif !(defined(__linux__)) || defined(__GLIBC__) - # include - # endif - # include ---- toolkit.orig/mozapps/update/updater/updater.cpp 2014-03-15 05:19:37.000000000 +0000 -+++ toolkit/mozapps/update/updater/updater.cpp 2014-04-17 10:24:33.796765327 +0000 -@@ -3978,6 +3978,7 @@ - - int add_dir_entries(const NS_tchar* dirpath, ActionList* list) { - int rv = OK; -+#if !defined(__linux__) || defined(__GLIBC__) - FTS* ftsdir; - FTSENT* ftsdirEntry; - mozilla::UniquePtr searchpath(get_full_path(dirpath)); -@@ -4085,6 +4086,7 @@ - } - - fts_close(ftsdir); -+#endif - - return rv; - } diff --git a/srcpkgs/thunderbird/patches/fix-tools.patch b/srcpkgs/thunderbird/patches/fix-tools.patch index 0ed043fb5b5..1af39bc6118 100644 --- a/srcpkgs/thunderbird/patches/fix-tools.patch +++ b/srcpkgs/thunderbird/patches/fix-tools.patch @@ -1,34 +1,5 @@ ---- tools/profiler/lul/LulElf.cpp.orig 2019-01-29 12:05:34.223834130 +0100 -+++ tools/profiler/lul/LulElf.cpp 2019-01-29 12:08:02.480400845 +0100 -@@ -469,10 +469,10 @@ - // Return the non-directory portion of FILENAME: the portion after the - // last slash, or the whole filename if there are no slashes. - string BaseFileName(const string& filename) { -- // Lots of copies! basename's behavior is less than ideal. -- char* c_filename = strdup(filename.c_str()); -- string base = basename(c_filename); -- free(c_filename); -+ // basename's behavior is less than ideal so avoid it -+ const char *c_filename = filename.c_str(); -+ const char *p = strrchr(c_filename, '/'); -+ string base = p ? p+1 : c_filename; - return base; - } - --- tools/profiler/core/platform-linux-android.cpp.orig 2019-01-29 12:09:40.980448579 +0100 +++ tools/profiler/core/platform-linux-android.cpp 2019-01-29 12:11:09.689590967 +0100 -@@ -253,7 +253,11 @@ - - // Request profiling signals. - struct sigaction sa; -+#if defined(GP_ARCH_arm) -+ sa.sa_sigaction = SigprofHandler; -+#else - sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler); -+#endif - sigemptyset(&sa.sa_mask); - sa.sa_flags = SA_RESTART | SA_SIGINFO; - if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) { @@ -497,8 +501,10 @@ ucontext_t sSyncUContext; diff --git a/srcpkgs/thunderbird/patches/flac-no-ffvpx.patch b/srcpkgs/thunderbird/patches/flac-no-ffvpx.patch new file mode 100644 index 00000000000..e3f60e8ecf6 --- /dev/null +++ b/srcpkgs/thunderbird/patches/flac-no-ffvpx.patch @@ -0,0 +1,26 @@ +Enable FLAC on platforms without ffvpx like powerpc* + +diff --git dom/media/flac/FlacDecoder.cpp dom/media/flac/FlacDecoder.cpp +index 53fc3c9937f7..b23771ab80fa 100644 +--- dom/media/flac/FlacDecoder.cpp ++++ dom/media/flac/FlacDecoder.cpp +@@ -7,6 +7,7 @@ + #include "FlacDecoder.h" + #include "MediaContainerType.h" + #include "mozilla/StaticPrefs_media.h" ++#include "PDMFactory.h" + + namespace mozilla { + +@@ -14,6 +15,11 @@ namespace mozilla { + bool FlacDecoder::IsEnabled() { + #ifdef MOZ_FFVPX + return StaticPrefs::media_flac_enabled(); ++#elif defined(MOZ_FFMPEG) ++ RefPtr platform = new PDMFactory(); ++ return StaticPrefs::media_flac_enabled() && ++ platform->SupportsMimeType("audio/flac"_ns, ++ /* DecoderDoctorDiagnostics* */ nullptr); + #else + // Until bug 1295886 is fixed. + return false; diff --git a/srcpkgs/thunderbird/patches/ppc32-fix-build.patch b/srcpkgs/thunderbird/patches/ppc32-fix-build.patch new file mode 100644 index 00000000000..c1a8f422d0a --- /dev/null +++ b/srcpkgs/thunderbird/patches/ppc32-fix-build.patch @@ -0,0 +1,36 @@ +This is not a complete/correct patch, but it makes firefox build. For now +mostly for tracking, so a real fix can be made, but right now it still +segfaults on start. + +Ref: https://hg.mozilla.org/mozilla-central/rev/08339a56f3ae +Ref: https://hg.mozilla.org/mozilla-central/rev/d16fcad6aa60 +Ref: https://hg.mozilla.org/mozilla-central/rev/ab87611d012e +Ref: https://hg.mozilla.org/mozilla-central/file/tip/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp + +--- xpcom/reflect/xptcall/xptcall.h ++++ xpcom/reflect/xptcall/xptcall.h +@@ -71,6 +71,11 @@ struct nsXPTCVariant { + ExtendedVal ext; + }; + ++#if defined(__powerpc__) && !defined(__powerpc64__) ++ // this field is still necessary on ppc32, as an address ++ // to it is taken certain places in xptcall ++ void *ptr; ++#endif + nsXPTType type; + uint8_t flags; + +@@ -91,7 +96,12 @@ struct nsXPTCVariant { + }; + + void ClearFlags() { flags = 0; } ++#if defined(__powerpc__) && !defined(__powerpc64__) ++ void SetIndirect() { ptr = &val; flags |= IS_INDIRECT; } ++ bool IsPtrData() const { return IsIndirect(); } ++#else + void SetIndirect() { flags |= IS_INDIRECT; } ++#endif + + bool IsIndirect() const { return 0 != (flags & IS_INDIRECT); } + diff --git a/srcpkgs/thunderbird/patches/ppc32-skia-portable.patch b/srcpkgs/thunderbird/patches/ppc32-skia-portable.patch deleted file mode 100644 index 93c625a861e..00000000000 --- a/srcpkgs/thunderbird/patches/ppc32-skia-portable.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- gfx/skia/skia/third_party/skcms/skcms.cc -+++ gfx/skia/skia/third_party/skcms/skcms.cc -@@ -1806,6 +1806,11 @@ typedef enum { - Op_store_ffff, - } Op; - -+// work around ICE on 32-bit ppc -+#if defined(__powerpc__) && !defined(__powerpc64__) -+# define SKCMS_PORTABLE -+#endif -+ - #if defined(__clang__) - template using Vec = T __attribute__((ext_vector_type(N))); - #elif defined(__GNUC__) diff --git a/srcpkgs/thunderbird/patches/rust-configure.patch b/srcpkgs/thunderbird/patches/rust-configure.patch index 09191782b35..887c102bc55 100644 --- a/srcpkgs/thunderbird/patches/rust-configure.patch +++ b/srcpkgs/thunderbird/patches/rust-configure.patch @@ -1,20 +1,23 @@ ---- build/moz.configure/rust.configure 2020-06-06 10:05:25.819337924 +0200 -+++ build/moz.configure/rust.configure 2020-06-06 10:07:11.346031015 +0200 -@@ -79,10 +79,6 @@ +Mozilla rustc check does not support crossbuild: let's remove it +Remove calls to unwrap_rustup, they fail if rustup isn't present + +--- build/moz.configure/rust.configure.orig 2019-10-17 04:19:59.000000000 +0700 ++++ build/moz.configure/rust.configure 2019-10-22 11:48:55.616022140 +0700 +@@ -78,9 +78,6 @@ return unwrap -rustc = unwrap_rustup(rustc, 'rustc') -cargo = unwrap_rustup(cargo, 'cargo') - -- + set_config('CARGO', cargo) set_config('RUSTC', rustc) +@@ -348,26 +345,6 @@ -@@ -366,25 +362,6 @@ os.write(in_fd, source) os.close(in_fd) - +- - cmd = [ - rustc, - '--crate-type', 'staticlib', diff --git a/srcpkgs/thunderbird/patches/rust-has-i128.patch b/srcpkgs/thunderbird/patches/rust-has-i128.patch new file mode 100644 index 00000000000..4c90cd3d106 --- /dev/null +++ b/srcpkgs/thunderbird/patches/rust-has-i128.patch @@ -0,0 +1,21 @@ +The configure check fails for cross builds. +i128 is supported since rust-1.26, so it is safe for us to assume it is always present + +--- third_party/rust/num-traits/build.rs.orig 2020-02-14 23:57:25.985355610 +0100 ++++ third_party/rust/num-traits/build.rs 2020-02-14 23:58:36.255710188 +0100 +@@ -1,14 +1,5 @@ +-extern crate autocfg; +- +-use std::env; +- + fn main() { +- let ac = autocfg::new(); +- if ac.probe_type("i128") { +- println!("cargo:rustc-cfg=has_i128"); +- } else if env::var_os("CARGO_FEATURE_I128").is_some() { +- panic!("i128 support was not detected!"); +- } ++ println!("cargo:rustc-cfg=has_i128"); + + autocfg::rerun_path("build.rs"); + } diff --git a/srcpkgs/thunderbird/patches/sandbox-fork.patch b/srcpkgs/thunderbird/patches/sandbox-fork.patch new file mode 100644 index 00000000000..72640cb7f70 --- /dev/null +++ b/srcpkgs/thunderbird/patches/sandbox-fork.patch @@ -0,0 +1,13 @@ +make SYS_fork non-fatal, musl uses it for fork(2) + +--- security/sandbox/linux/SandboxFilter.cpp ++++ security/sandbox/linux/SandboxFilter.cpp +@@ -1253,6 +1253,8 @@ + // usually do something reasonable on error. + case __NR_clone: + return ClonePolicy(Error(EPERM)); ++ case __NR_fork: ++ return Error(ENOSYS); + + # ifdef __NR_fadvise64 + case __NR_fadvise64: diff --git a/srcpkgs/thunderbird/patches/sandbox-largefile.patch b/srcpkgs/thunderbird/patches/sandbox-largefile.patch new file mode 100644 index 00000000000..494ca82df5a --- /dev/null +++ b/srcpkgs/thunderbird/patches/sandbox-largefile.patch @@ -0,0 +1,17 @@ +--- security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:41:14.556378950 +0100 ++++ security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:40:23.595806444 +0100 +@@ -68,7 +68,13 @@ + + // The headers define O_LARGEFILE as 0 on x86_64, but we need the + // actual value because it shows up in file flags. +-#define O_LARGEFILE_REAL 00100000 ++#if defined(__x86_64__) || defined(__i386__) || defined(__mips__) ++#define O_LARGEFILE_REAL 0100000 ++#elif defined(__powerpc__) ++#define O_LARGEFILE_REAL 0200000 ++#else ++#define O_LARGEFILE_REAL O_LARGEFILE ++#endif + + // Not part of UAPI, but userspace sees it in F_GETFL; see bug 1650751. + #define FMODE_NONOTIFY 0x4000000 diff --git a/srcpkgs/thunderbird/patches/skia-sucks1.patch b/srcpkgs/thunderbird/patches/skia-sucks1.patch index 223c9b14e6b..05ad34a3fc3 100644 --- a/srcpkgs/thunderbird/patches/skia-sucks1.patch +++ b/srcpkgs/thunderbird/patches/skia-sucks1.patch @@ -1,84 +1,77 @@ -# HG changeset patch -# Parent 548d0a2f3a22bfac32ec0c3921c6c969c8bf32a9 +https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c5 +https://bugzilla.mozilla.org/attachment.cgi?id=9028600 -diff -r 548d0a2f3a22 gfx/2d/ConvolutionFilter.cpp ---- gfx/2d/ConvolutionFilter.cpp Mon Jul 22 16:57:54 2019 +0200 -+++ gfx/2d/ConvolutionFilter.cpp Thu Jul 25 14:27:59 2019 +0200 -@@ -35,9 +35,38 @@ - return true; +--- gfx/skia/skia/third_party/skcms/skcms.cc ++++ gfx/skia/skia/third_party/skcms/skcms.cc +@@ -30,6 +30,8 @@ + #include + #include + #endif ++#elif defined(__BIG_ENDIAN__) ++ #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 defined(__BIG_ENDIAN__) ++ return be; + #else ++ #if defined(_MSC_VER) ++ return _byteswap_ushort(be); ++ #else + return __builtin_bswap16(be); ++ #endif + #endif } -+static void ByteSwapArray(uint8_t *u8Array, int32_t size) { -+ uint32_t *array = reinterpret_cast(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) { -+#ifdef 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); -+ -+#ifdef MOZ_BIG_ENDIAN -+ ByteSwapArray((uint8_t*)aSrc, inputSize); -+ ByteSwapArray(aDst, outputSize); -+#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 defined(__BIG_ENDIAN__) ++ return be; + #else ++ #if defined(_MSC_VER) ++ return _byteswap_ulong(be); ++ #else + return __builtin_bswap32(be); ++ #endif + #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); -+ -+#ifdef 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); -+ -+#ifdef 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 +--- gfx/2d/DrawTargetSkia.cpp ++++ gfx/2d/DrawTargetSkia.cpp +@@ -138,8 +138,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& a + return surfaceBounds.Intersect(bounds); } - /* ConvolutionFilter::ComputeResizeFactor is derived from Skia's -diff -r 548d0a2f3a22 gfx/skia/skia/include/core/SkPreConfig.h ---- gfx/skia/skia/include/core/SkPreConfig.h Mon Jul 22 16:57:54 2019 +0200 -+++ gfx/skia/skia/include/core/SkPreConfig.h Thu Jul 25 14:27:59 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 +-static const int kARGBAlphaOffset = +- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0; ++static const int kARGBAlphaOffset = 0; + + static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, + const int32_t aStride, SurfaceFormat aFormat) { +--- gfx/2d/Types.h ++++ gfx/2d/Types.h +@@ -87,15 +87,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 --git a/srcpkgs/thunderbird/patches/skia-sucks3.patch b/srcpkgs/thunderbird/patches/skia-sucks3.patch index d95b81698e9..f4e890f0536 100644 --- a/srcpkgs/thunderbird/patches/skia-sucks3.patch +++ b/srcpkgs/thunderbird/patches/skia-sucks3.patch @@ -1,3 +1,5 @@ +CompositableHost.cpp patch added by @q66, based on patch in issue 1602730. + # HG changeset patch # Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec Problem description: Tab-titles that are too long to fit into a tab get faded out. @@ -17,7 +19,7 @@ diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp SkCanvas::kPreserveLCDText_SaveLayerFlag | (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0)); -+#if MOZ_BIG_ENDIAN ++#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. @@ -28,3 +30,27 @@ diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp mCanvas->saveLayer(saveRec); SetPermitSubpixelAA(aOpaque); +--- gfx/layers/composite/CompositableHost.cpp ++++ gfx/layers/composite/CompositableHost.cpp +@@ -13,6 +13,7 @@ + #include "ImageHost.h" // for ImageHostBuffered, etc + #include "Layers.h" + #include "TiledContentHost.h" // for TiledContentHost ++#include "mozilla/EndianUtils.h" + #include "mozilla/gfx/gfxVars.h" + #include "mozilla/layers/LayersSurfaces.h" // for SurfaceDescriptor + #include "mozilla/layers/TextureHost.h" // for TextureHost, etc +@@ -92,9 +93,13 @@ bool CompositableHost::AddMaskEffect(EffectChain& aEffects, + } + MOZ_ASSERT(source); + ++ // 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() + RefPtr effect = + new EffectMask(source, source->GetSize(), aTransform); + aEffects.mSecondaryEffects[EffectTypes::MASK] = effect; ++#endif + return true; + } + diff --git a/srcpkgs/thunderbird/patches/sndio.patch b/srcpkgs/thunderbird/patches/sndio.patch index 6c72284c19b..c5e5c486dd1 100644 --- a/srcpkgs/thunderbird/patches/sndio.patch +++ b/srcpkgs/thunderbird/patches/sndio.patch @@ -1,8 +1,8 @@ --- old-configure.in.orig +++ old-configure.in -@@ -2839,6 +2839,22 @@ - - AC_SUBST(MOZ_ALSA) +@@ -2818,6 +2818,22 @@ + _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_COOKIES" + fi +dnl ================================== +dnl = Check sndio availability @@ -21,26 +21,11 @@ +AC_SUBST(MOZ_SNDIO) + dnl ======================================================== - dnl = Disable PulseAudio - dnl ======================================================== ---- toolkit/library/moz.build.orig -+++ toolkit/library/moz.build -@@ -235,10 +235,8 @@ - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('cocoa', 'uikit'): - OS_LIBS += CONFIG['TK_LIBS'] - --if CONFIG['OS_ARCH'] == 'OpenBSD': -- OS_LIBS += [ -- 'sndio', -- ] -+if CONFIG['MOZ_SNDIO']: -+ OS_LIBS += CONFIG['MOZ_SNDIO_LIBS'] - - if CONFIG['MOZ_ENABLE_DBUS']: - OS_LIBS += CONFIG['MOZ_DBUS_GLIB_LIBS'] + dnl = + dnl = Maintainer debug option (no --enable equivalent) --- media/libcubeb/src/moz.build.orig +++ media/libcubeb/src/moz.build -@@ -43,7 +43,7 @@ +@@ -44,11 +44,13 @@ ] DEFINES['USE_JACK'] = True @@ -49,49 +34,19 @@ SOURCES += [ 'cubeb_sndio.c', ] ---- build/moz.configure/old.configure.orig -+++ build/moz.configure/old.configure -@@ -169,6 +169,7 @@ + DEFINES['USE_SNDIO'] = True ++ ++if CONFIG['OS_ARCH'] == 'OpenBSD': + DEFINES['DISABLE_LIBSNDIO_DLOPEN'] = True + + if CONFIG['OS_TARGET'] == 'Darwin': +--- build/moz.configure/old.configure 2020-06-30 12:17:04.087609070 +0200 ++++ - 2020-06-30 12:18:26.027756310 +0200 +@@ -210,6 +210,7 @@ @old_configure_options( '--cache-file', '--datadir', + '--enable-sndio', - '--enable-content-sandbox', - '--enable-cookies', - '--enable-cpp-rtti', ---- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig -+++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp -@@ -349,6 +349,21 @@ - } - } - } -+ -+#ifdef MOZ_SNDIO -+ // ~/.aucat_cookie (sndio) -+ rv = homeDir->Clone(getter_AddRefs(confDir)); -+ if (NS_SUCCEEDED(rv)) { -+ rv = confDir->AppendNative(NS_LITERAL_CSTRING(".aucat_cookie")); -+ if (NS_SUCCEEDED(rv)) { -+ nsAutoCString tmpPath; -+ rv = confDir->GetNativePath(tmpPath); -+ if (NS_SUCCEEDED(rv)) { -+ policy->AddPath(rdwrcr, tmpPath.get()); -+ } -+ } -+ } -+#endif - } - - // Firefox binary dir. ---- security/sandbox/linux/moz.build.orig -+++ security/sandbox/linux/moz.build -@@ -81,6 +81,9 @@ - if CONFIG['MOZ_ALSA']: - DEFINES['MOZ_ALSA'] = True - -+if CONFIG['MOZ_SNDIO']: -+ DEFINES['MOZ_SNDIO'] = True -+ - # This copy of SafeSPrintf doesn't need to avoid the Chromium logging - # dependency like the one in libxul does, but this way the behavior is - # consistent. See also the comment in SandboxLogging.h. + '--enable-crashreporter', + '--enable-dbus', + '--enable-debug-js-modules', diff --git a/srcpkgs/thunderbird/template b/srcpkgs/thunderbird/template index 72799736e9b..5ccbe65c264 100644 --- a/srcpkgs/thunderbird/template +++ b/srcpkgs/thunderbird/template @@ -3,7 +3,7 @@ # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/thunderbird-i18n". # pkgname=thunderbird -version=68.12.1 +version=78.6.0 revision=1 build_helper="rust" short_desc="Standalone Mail/News reader" @@ -11,27 +11,26 @@ maintainer="Enno Boland " license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://www.thunderbird.net/" distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz" -checksum=a2044fb611ac6ab1744ef61f5d292d2c81b8103438df02b6dd754968efc9a3af +checksum=1dd6f9a4d88b4c3d0ec47bba60a891243ef95e105a9045b2d32e2b126779844b lib32disabled=yes -hostmakedepends="autoconf213 unzip zip pkg-config perl python python3 yasm rust cargo - llvm clang nodejs cbindgen nasm which tar" +hostmakedepends="autoconf213 unzip zip pkg-config perl python3 yasm rust cargo + llvm clang nodejs-lts-10 cbindgen python nasm which tar" makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel - pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel + pixman-devel libevent-devel libnotify-devel libvpx-devel libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std libXdamage-devel freetype-devel $(vopt_if alsa alsa-lib-devel) $(vopt_if dbus dbus-glib-devel) $(vopt_if pulseaudio pulseaudio-devel) - $(vopt_if startup_notification startup-notification-devel) $(vopt_if xscreensaver libXScrnSaver-devel) - $(vopt_if sndio sndio-devel)" -depends="nss>=3.37.3 desktop-file-utils hicolor-icon-theme" + $(vopt_if sndio sndio-devel) $(vopt_if jack jack-devel)" +depends="nss>=3.47.1 desktop-file-utils hicolor-icon-theme" -build_options="alsa dbus pulseaudio startup_notification xscreensaver sndio wayland" -build_options_default="alsa dbus pulseaudio startup_notification xscreensaver sndio wayland" +build_options="alsa jack dbus pulseaudio xscreensaver sndio wayland" +build_options_default="alsa jack dbus pulseaudio xscreensaver sndio wayland" case $XBPS_TARGET_MACHINE in - armv6*) broken="required NEON extensions are not supported on armv6" ;; + armv[56]*) broken="required NEON extensions are not supported on armv6" ;; ppc64*) ;; ppc*) broken="xptcall bitrot" ;; esac @@ -64,7 +63,9 @@ post_extract() { } post_patch() { - _clear_vendor_checksums cssparser + _clear_vendor_checksums audio_thread_priority + _clear_vendor_checksums num-traits + _clear_vendor_checksums glslopt } do_build() { @@ -73,6 +74,7 @@ do_build() { case "$XBPS_TARGET_MACHINE" in *-musl) echo "ac_add_options --disable-jemalloc" >>.mozconfig + echo "ac_add_options --disable-gold" >>.mozconfig echo "ac_add_options --enable-release" >>.mozconfig ;; esac @@ -93,18 +95,15 @@ do_build() { export LDFLAGS+=" -latomic" fi - case "$XBPS_TARGET_MACHINE" in - x86_64-musl|i686-musl) - echo "ac_add_options --host=${XBPS_TRIPLET}" >>.mozconfig - echo "ac_add_options --target=${XBPS_TRIPLET}" >>.mozconfig - ;; - esac - if [ "$CROSS_BUILD" ]; then BINDGEN_INCLUDE_FLAGS=$( $CPP -x c++ -v /dev/null -o /dev/null 2>&1 | \ sed -n '/#include <...> search starts here:/,/End of search list./p' | \ sed '1,1d;$d' | sed 's/^ /-I/' | paste -s ) + # fix compiler detection for botan: + # https://github.com/randombit/botan/blob/63d51cb1ab08849d8ece329811b61f8c9abebbcf/configure.py#L2888 + export CXX="${XBPS_CROSS_TRIPLET}-g++" + export BINDGEN_CFLAGS="--target=$XBPS_CROSS_TRIPLET \ --sysroot=${XBPS_CROSS_BASE} ${BINDGEN_INCLUDE_FLAGS}" export HOST_CC=cc @@ -128,10 +127,6 @@ do_build() { mkdir -p third_party/rust/libloading/.deps case "$XBPS_TARGET_MACHINE" in - i686*) - export CFLAGS+=" -D_FILE_OFFSET_BITS=64" - export CXXFLAGS+=" -D_FILE_OFFSET_BITS=64" - ;; armv7*) export CFLAGS+=" -mfpu=neon -Wno-psabi" export CXXFLAGS+=" -mfpu=neon -Wno-psabi" @@ -145,9 +140,16 @@ do_build() { export LDFLAGS+=" -Wl,--no-keep-memory" # patch the rust debug level, this is hardcoded sed -i "s/debug_info = '2'/debug_info = '1'/" \ - build/moz.configure/toolchain.configure + build/moz.configure/toolchain.configure fi + # FIXME: incompatible with rust 1.48 in this release + #case "$XBPS_TARGET_MACHINE" in + #aarch64*|i686*|x86_64*) + # echo "ac_add_options --enable-rust-simd" >>.mozconfig ;; + #esac + echo "ac_add_options --disable-rust-simd" >>.mozconfig + export LDFLAGS+=" -Wl,-rpath=/usr/lib/thunderbird" if [ "$SOURCE_DATE_EPOCH" ]; then @@ -157,20 +159,20 @@ do_build() { export MOZ_MAKE_FLAGS="${makejobs}" export MOZ_NOSPAM=1 export MOZBUILD_STATE_PATH="${wrksrc}/mozbuild" - # avoid error: /usr/bin/as: invalid option -- 'N' - unset AS + + export AS=$CC cat <>.mozconfig ac_add_options --with-google-location-service-api-keyfile="${wrksrc}/google-api-key" ac_add_options --with-google-safebrowsing-api-keyfile="${wrksrc}/google-api-key" ac_add_options --with-mozilla-api-keyfile="${wrksrc}/mozilla-api-key" ac_add_options $(vopt_enable alsa) +ac_add_options $(vopt_enable jack) ac_add_options $(vopt_enable sndio) ac_add_options $(vopt_enable dbus) ac_add_options $(vopt_enable dbus necko-wifi) ac_add_options $(vopt_enable pulseaudio) -ac_add_options $(vopt_enable startup_notification startup-notification) -ac_add_options --enable-default-toolkit=$(vopt_if wayland 'cairo-gtk3-wayland' 'cairo-gtk') +ac_add_options --enable-default-toolkit=$(vopt_if wayland 'cairo-gtk3-wayland' 'cairo-gtk3') ! rm -f old-configure @@ -182,9 +184,9 @@ do_install() { vinstall ${FILESDIR}/vendor.js 644 usr/lib/thunderbird/defaults/preferences vinstall ${FILESDIR}/thunderbird.desktop 644 usr/share/applications - for i in 16 22 24 32 48 256; do - vinstall ./comm/mail/branding/thunderbird/default$i.png 644 \ - usr/share/icons/hicolor/${i}x${i}/apps thunderbird.png + for i in 16x16 22x22 24x24 32x32 48x48 128x128 256x256; do + vinstall ${wrksrc}/comm/mail/branding/thunderbird/default${i%x*}.png 644 \ + usr/share/icons/hicolor/${i}/apps thunderbird.png done # Use system-provided dictionaries