parent
fc749c3a95
commit
8e86987d56
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
exec env MOZ_ENABLE_WAYLAND= /usr/lib/firefox/firefox "$@"
|
|
@ -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,13 +21,13 @@ 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 --enable-release
|
||||
ac_add_options --enable-optimize="$CFLAGS"
|
||||
|
||||
ac_add_options --enable-official-branding
|
||||
|
|
|
@ -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<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
|
||||
--- 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<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
|
||||
--- 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 &&
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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)
|
|
@ -0,0 +1,39 @@
|
|||
# HG changeset patch
|
||||
# User Lee Salzman <lsalzman@mozilla.com>
|
||||
# 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;
|
||||
}
|
||||
}
|
|
@ -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_
|
||||
|
|
@ -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 {
|
|
@ -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 <sys/mman.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
+#include <libgen.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <set>
|
||||
--- 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 <mach-o/nlist.h>
|
||||
-#elif defined(HAVE_A_OUT_H)
|
||||
+#elif 0
|
||||
#include <a.out.h>
|
||||
#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 <sys/stat.h>
|
||||
-# else
|
||||
+# elif !(defined(__linux__)) || defined(__GLIBC__)
|
||||
# include <fts.h>
|
||||
# endif
|
||||
# include <dirent.h>
|
||||
--- 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<NS_tchar[]> searchpath(get_full_path(dirpath));
|
||||
@@ -4085,6 +4086,7 @@
|
||||
}
|
||||
|
||||
fts_close(ftsdir);
|
||||
+#endif
|
||||
|
||||
return rv;
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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<PDMFactory> platform = new PDMFactory();
|
||||
+ return StaticPrefs::media_flac_enabled() &&
|
||||
+ platform->SupportsMimeType("audio/flac"_ns,
|
||||
+ /* DecoderDoctorDiagnostics* */ nullptr);
|
||||
#else
|
||||
// Until bug 1295886 is fixed.
|
||||
return false;
|
|
@ -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<int>(static_cast<pid_t>(syscall(SYS_gettid)));
|
||||
#else
|
||||
return static_cast<int>(gettid());
|
|
@ -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); }
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
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 2019-07-06 03:48:30.000000000 +0200
|
||||
+++ build/moz.configure/rust.configure 2019-07-09 22:35:23.326851798 +0200
|
||||
@@ -79,9 +79,6 @@
|
||||
--- 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
|
||||
|
||||
|
@ -13,7 +13,7 @@ Remove calls to unwrap_rustup, they fail if rustup isn't present
|
|||
|
||||
set_config('CARGO', cargo)
|
||||
set_config('RUSTC', rustc)
|
||||
@@ -365,26 +362,6 @@
|
||||
@@ -348,26 +345,6 @@
|
||||
|
||||
os.write(in_fd, source)
|
||||
os.close(in_fd)
|
|
@ -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");
|
||||
}
|
|
@ -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:
|
|
@ -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 <avx512fintrin.h>
|
||||
#include <avx512dqintrin.h>
|
||||
#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<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) {
|
||||
+#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.
|
||||
//
|
||||
|
|
|
@ -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<EffectMask> effect =
|
||||
new EffectMask(source, source->GetSize(), aTransform);
|
||||
aEffects.mSecondaryEffects[EffectTypes::MASK] = effect;
|
||||
+#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -3,57 +3,59 @@
|
|||
# THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
|
||||
#
|
||||
pkgname=firefox-esr
|
||||
version=68.11.0
|
||||
version=78.4.0
|
||||
revision=1
|
||||
wrksrc="firefox-${version}"
|
||||
build_helper="rust"
|
||||
short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
|
||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||
build_helper="rust qemu"
|
||||
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 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 xscreensaver libXScrnSaver-devel)
|
||||
$(vopt_if sndio sndio-devel) $(vopt_if jack jack-devel)"
|
||||
depends="nss>=3.53 desktop-file-utils hicolor-icon-theme"
|
||||
short_desc="Firefox browser - Extended Support Release"
|
||||
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
|
||||
license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
|
||||
homepage="https://www.mozilla.org/firefox/organizations/"
|
||||
distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
|
||||
checksum=91c1f7caaf1ba785b74799865227456bf784ba614d17cf5f0f41a5f25d6d2160
|
||||
|
||||
checksum=8e3cf0bbf1062768134db2eb10ab774731ca5ec6694b65def82234bb0a9170fc
|
||||
lib32disabled=yes
|
||||
hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
|
||||
python3 cargo llvm clang rust cbindgen nasm nodejs-lts-10 tar which"
|
||||
makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
|
||||
pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
|
||||
libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std
|
||||
libXdamage-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.44.3 desktop-file-utils hicolor-icon-theme"
|
||||
conflicts="firefox>=0"
|
||||
|
||||
build_options="alsa dbus gtk3 pulseaudio startup_notification xscreensaver sndio"
|
||||
build_options_default="alsa dbus gtk3 pulseaudio startup_notification xscreensaver sndio"
|
||||
build_options="alsa jack dbus pulseaudio xscreensaver sndio wayland"
|
||||
build_options_default="alsa jack dbus pulseaudio xscreensaver sndio wayland"
|
||||
|
||||
case $XBPS_TARGET_MACHINE in
|
||||
armv[56]*) broken="required NEON extensions are not supported on armv6" ;;
|
||||
armv[56]*) broken="required NEON extensions are not supported on armv[56]" ;;
|
||||
ppc64*) ;;
|
||||
ppc*) broken="xptcall bitrot" ;;
|
||||
esac
|
||||
|
||||
if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then
|
||||
broken="rendering is busted, dunno why"
|
||||
fi
|
||||
|
||||
CXXFLAGS="-Wno-class-memaccess -Wno-unused-function"
|
||||
|
||||
if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
|
||||
makedepends+=" libatomic-devel"
|
||||
fi
|
||||
|
||||
# we need this because cargo verifies checksums of all files in vendor
|
||||
# crates when it builds and gives us no way to override or update the
|
||||
# file sanely... so just clear out the file list
|
||||
# We need this because cargo verifies checksums of all files
|
||||
# in vendor crates when it builds and gives us no way to
|
||||
# override or update the file sanely... so just clear out the file list
|
||||
_clear_vendor_checksums() {
|
||||
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
|
||||
}
|
||||
|
||||
post_extract() {
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl)
|
||||
if [ "$XBPS_TARGET_LIBC" = musl ]; then
|
||||
cp "${FILESDIR}/stab.h" toolkit/crashreporter/google-breakpad/src/
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
# Google API key (see http://www.chromium.org/developers/how-tos/api-keys)
|
||||
# Note: This is for Void Linux use ONLY.
|
||||
echo -n "AIzaSyCIFdBA7eQP43R6kXRwTq7j6Mvj1ITze90" > google-api-key
|
||||
|
@ -64,19 +66,18 @@ post_extract() {
|
|||
}
|
||||
|
||||
post_patch() {
|
||||
_clear_vendor_checksums cssparser
|
||||
_clear_vendor_checksums num-traits
|
||||
_clear_vendor_checksums glslopt
|
||||
}
|
||||
|
||||
do_build() {
|
||||
cp "${FILESDIR}/mozconfig" "${wrksrc}/.mozconfig"
|
||||
cp ${FILESDIR}/mozconfig .mozconfig
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl)
|
||||
if [ "$XBPS_TARGET_LIBC" = musl ]; then
|
||||
echo "ac_add_options --disable-jemalloc" >>.mozconfig
|
||||
echo "ac_add_options --disable-gold" >>.mozconfig
|
||||
echo "ac_add_options --enable-release" >>.mozconfig
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
arm*|x86_64*|i686*)
|
||||
|
@ -101,17 +102,16 @@ do_build() {
|
|||
|
||||
export BINDGEN_CFLAGS="--target=$XBPS_CROSS_TRIPLET \
|
||||
--sysroot=${XBPS_CROSS_BASE} ${BINDGEN_INCLUDE_FLAGS}"
|
||||
export HOST_CC=cc
|
||||
export HOST_CC="${CC_host}"
|
||||
export TARGET_CC="${CC}"
|
||||
export HOST_CFLAGS="${XBPS_CFLAGS}"
|
||||
export HOST_CXXFLAGS="${XBPS_CXXFLAGS}"
|
||||
export ac_cv_sqlite_secure_delete=yes \
|
||||
ac_cv_sqlite_threadsafe=yes \
|
||||
ac_cv_sqlite_enable_fts3=yes \
|
||||
ac_cv_sqlite_dbstat_vtab=yes \
|
||||
ac_cv_sqlite_enable_unlock_notify=yes \
|
||||
ac_cv_prog_hostcxx_works=1
|
||||
|
||||
echo "ac_cv_sqlite_secure_delete=yes" >> .mozconfig
|
||||
echo "ac_cv_sqlite_threadsafe=yes" >> .mozconfig
|
||||
echo "ac_cv_sqlite_enable_fts3=yes" >> .mozconfig
|
||||
echo "ac_cv_sqlite_dbstat_vtab=yes" >> .mozconfig
|
||||
echo "ac_cv_sqlite_enable_unlock_notify=yes" >> .mozconfig
|
||||
echo "ac_cv_prog_hostcxx_works=1" >> .mozconfig
|
||||
echo "ac_add_options --target=$XBPS_CROSS_TRIPLET" >>.mozconfig
|
||||
echo "ac_add_options --host=$XBPS_TRIPLET" >>.mozconfig
|
||||
else
|
||||
|
@ -138,6 +138,11 @@ do_build() {
|
|||
build/moz.configure/toolchain.configure
|
||||
fi
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
aarch64*|i686*|x86_64*)
|
||||
echo "ac_add_options --enable-rust-simd" >>.mozconfig ;;
|
||||
esac
|
||||
|
||||
export LDFLAGS+=" -Wl,-rpath=/usr/lib/firefox"
|
||||
|
||||
if [ "$SOURCE_DATE_EPOCH" ]; then
|
||||
|
@ -147,38 +152,57 @@ do_build() {
|
|||
export MOZ_MAKE_FLAGS="${makejobs}"
|
||||
export MOZ_NOSPAM=1
|
||||
export MOZBUILD_STATE_PATH="${wrksrc}/mozbuild"
|
||||
export MACH_USE_SYSTEM_PYTHON=1
|
||||
|
||||
export AS=$CC
|
||||
|
||||
cat <<! >>.mozconfig
|
||||
cat >>.mozconfig <<EOF
|
||||
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-gtk3')
|
||||
EOF
|
||||
rm -f old-configure
|
||||
./mach build
|
||||
|
||||
# Make langpacks for all languages
|
||||
dir=$(ls -d obj-*/browser/locales)
|
||||
cd ${wrksrc}/${dir}
|
||||
for lang in ${languages[*]}; do
|
||||
msg_normal "Making langpack for ${lang} ...\n"
|
||||
make ${makejobs} langpack-${lang} LOCALE_MERGEDIR=.
|
||||
done
|
||||
}
|
||||
|
||||
do_install() {
|
||||
export MACH_USE_SYSTEM_PYTHON=1
|
||||
DESTDIR="$DESTDIR" ./mach install
|
||||
|
||||
vbin ${FILESDIR}/firefox-wayland
|
||||
vinstall ${FILESDIR}/vendor.js 644 usr/lib/firefox/browser/defaults/preferences
|
||||
vinstall taskcluster/docker/firefox-snap/firefox.desktop 644 usr/share/applications
|
||||
|
||||
for i in 16x16 22x22 24x24 32x32 48x48 128x128 256x256; do
|
||||
for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
|
||||
vinstall ${wrksrc}/browser/branding/official/default${i%x*}.png 644 \
|
||||
usr/share/icons/hicolor/${i}/apps firefox.png
|
||||
done
|
||||
vinstall ${wrksrc}/browser/branding/official/default256.png 644 \
|
||||
usr/share/pixmaps firefox.png
|
||||
|
||||
# We don't want the development stuff
|
||||
rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
|
||||
# Use system-provided dictionaries
|
||||
rm -rf ${DESTDIR}/usr/lib/firefox/{dictionaries,hyphenation}
|
||||
ln -s /usr/share/hunspell ${DESTDIR}/usr/lib/firefox/dictionaries
|
||||
ln -s /usr/share/hyphen ${DESTDIR}/usr/lib/firefox/hyphenation
|
||||
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
|
||||
ln -sf firefox ${DESTDIR}/usr/lib/firefox/firefox-bin
|
||||
|
||||
# Remove the development files - noone uses them
|
||||
rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue