diff --git a/srcpkgs/firefox/patches/8e71fa07fe00.patch b/srcpkgs/firefox/patches/8e71fa07fe00.patch deleted file mode 100644 index b36b919e86f..00000000000 --- a/srcpkgs/firefox/patches/8e71fa07fe00.patch +++ /dev/null @@ -1,83 +0,0 @@ - -# HG changeset patch -# User Simon Giesecke -# Date 1576592608 0 -# Node ID 8e71fa07fe004c2e4d04db6b9e77cdfbc7810d6a -# Parent 23dbcfafb3b73d6c1c26c5021199b6fa608150c4 -Bug 1601707 - Workaround for compilers that do not extend the lifetime of temporaries resulting from ?: expressions. r=janv, a=RyanVM - -Differential Revision: https://phabricator.services.mozilla.com/D56873 - -diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp ---- dom/indexedDB/ActorsParent.cpp -+++ dom/indexedDB/ActorsParent.cpp -@@ -24578,19 +24578,19 @@ nsresult ObjectStoreAddOrPutRequestOp::D - } - } - - // The "|| keyUnset" here is mostly a debugging tool. If a key isn't - // specified we should never have a collision and so it shouldn't matter - // if we allow overwrite or not. By not allowing overwrite we raise - // detectable errors rather than corrupting data. - DatabaseConnection::CachedStatement stmt; -- const auto& optReplaceDirective = (!mOverwrite || keyUnset) -- ? NS_LITERAL_CSTRING("") -- : NS_LITERAL_CSTRING("OR REPLACE "); -+ const auto optReplaceDirective = (!mOverwrite || keyUnset) -+ ? NS_LITERAL_CSTRING("") -+ : NS_LITERAL_CSTRING("OR REPLACE "); - rv = aConnection->GetCachedStatement( - NS_LITERAL_CSTRING("INSERT ") + optReplaceDirective + - NS_LITERAL_CSTRING("INTO object_data " - "(object_store_id, key, file_ids, data) " - "VALUES (:") + - kStmtParamNameObjectStoreId + NS_LITERAL_CSTRING(", :") + - kStmtParamNameKey + NS_LITERAL_CSTRING(", :") + - kStmtParamNameFileIds + NS_LITERAL_CSTRING(", :") + -@@ -26422,19 +26422,19 @@ nsresult Cursor::OpenOp::DoIndexDatabase - MOZ_ASSERT(mCursor->mType == OpenCursorParams::TIndexOpenCursorParams); - MOZ_ASSERT(mCursor->mObjectStoreId); - MOZ_ASSERT(mCursor->mIndexId); - - AUTO_PROFILER_LABEL("Cursor::OpenOp::DoIndexDatabaseWork", DOM); - - const bool usingKeyRange = mOptionalKeyRange.isSome(); - -- const auto& indexTable = mCursor->mUniqueIndex -- ? NS_LITERAL_CSTRING("unique_index_data") -- : NS_LITERAL_CSTRING("index_data"); -+ const auto indexTable = mCursor->mUniqueIndex -+ ? NS_LITERAL_CSTRING("unique_index_data") -+ : NS_LITERAL_CSTRING("index_data"); - - // The result of MakeColumnPairSelectionList is stored in a local variable, - // since inlining it into the next statement causes a crash on some Mac OS X - // builds (see https://bugzilla.mozilla.org/show_bug.cgi?id=1168606#c110). - const auto columnPairSelectionList = MakeColumnPairSelectionList( - NS_LITERAL_CSTRING("index_table.value"), - NS_LITERAL_CSTRING("index_table.value_locale"), kColumnNameAliasSortKey, - mCursor->IsLocaleAware()); -@@ -26528,19 +26528,19 @@ nsresult Cursor::OpenOp::DoIndexKeyDatab - MOZ_ASSERT(mCursor->mType == OpenCursorParams::TIndexOpenKeyCursorParams); - MOZ_ASSERT(mCursor->mObjectStoreId); - MOZ_ASSERT(mCursor->mIndexId); - - AUTO_PROFILER_LABEL("Cursor::OpenOp::DoIndexKeyDatabaseWork", DOM); - - const bool usingKeyRange = mOptionalKeyRange.isSome(); - -- const auto& table = mCursor->mUniqueIndex -- ? NS_LITERAL_CSTRING("unique_index_data") -- : NS_LITERAL_CSTRING("index_data"); -+ const auto table = mCursor->mUniqueIndex -+ ? NS_LITERAL_CSTRING("unique_index_data") -+ : NS_LITERAL_CSTRING("index_data"); - - // The result of MakeColumnPairSelectionList is stored in a local variable, - // since inlining it into the next statement causes a crash on some Mac OS X - // builds (see https://bugzilla.mozilla.org/show_bug.cgi?id=1168606#c110). - const auto columnPairSelectionList = MakeColumnPairSelectionList( - NS_LITERAL_CSTRING("value"), NS_LITERAL_CSTRING("value_locale"), - kColumnNameAliasSortKey, mCursor->IsLocaleAware()); - const nsCString sortColumnAlias = NS_LITERAL_CSTRING("SELECT ") + - diff --git a/srcpkgs/firefox/patches/fix-audio.patch b/srcpkgs/firefox/patches/fix-audio.patch deleted file mode 100644 index eec02844bf9..00000000000 --- a/srcpkgs/firefox/patches/fix-audio.patch +++ /dev/null @@ -1,108 +0,0 @@ -diff --git a/src/cubeb_sndio.c b/src/cubeb_sndio.c -index 4a05bd84..34b3513d 100644 ---- media/libcubeb/src/cubeb_sndio.c -+++ media/libcubeb/src/cubeb_sndio.c -@@ -32,6 +32,7 @@ - X(sio_eof) \ - X(sio_getpar) \ - X(sio_initpar) \ -+ X(sio_nfds) \ - X(sio_onmove) \ - X(sio_open) \ - X(sio_pollfd) \ -@@ -124,6 +125,23 @@ s16_to_float(void *ptr, long nsamp) - *(--dst) = (1. / 32768) * *(--src); - } - -+static const char * -+sndio_get_device() -+{ -+#ifndef __OpenBSD__ -+ /* -+ * On other platforms default to sndio devices, -+ * so cubebs other backends can be used instead. -+ */ -+ const char *dev = getenv("AUDIODEVICE"); -+ if (dev == NULL || *dev == '\0') -+ return "snd/0"; -+ return dev; -+#else -+ return SIO_DEVANY; -+#endif -+} -+ - static void - sndio_onmove(void *arg, int delta) - { -@@ -135,18 +153,23 @@ sndio_onmove(void *arg, int delta) - static void * - sndio_mainloop(void *arg) - { --#define MAXFDS 8 -- struct pollfd pfds[MAXFDS]; -+ struct pollfd *pfds; - cubeb_stream *s = arg; - int n, eof = 0, prime, nfds, events, revents, state = CUBEB_STATE_STARTED; - size_t pstart = 0, pend = 0, rstart = 0, rend = 0; - long nfr; - -+ nfds = WRAP(sio_nfds)(s->hdl); -+ pfds = calloc(nfds, sizeof (struct pollfd)); -+ if (pfds == NULL) -+ return NULL; -+ - DPR("sndio_mainloop()\n"); - s->state_cb(s, s->arg, CUBEB_STATE_STARTED); - pthread_mutex_lock(&s->mtx); - if (!WRAP(sio_start)(s->hdl)) { - pthread_mutex_unlock(&s->mtx); -+ free(pfds); - return NULL; - } - DPR("sndio_mainloop(), started\n"); -@@ -274,6 +297,7 @@ sndio_mainloop(void *arg) - s->hwpos = s->swpos; - pthread_mutex_unlock(&s->mtx); - s->state_cb(s, s->arg, state); -+ free(pfds); - return NULL; - } - -@@ -281,6 +305,9 @@ sndio_mainloop(void *arg) - sndio_init(cubeb **context, char const *context_name) - { - void * libsndio = NULL; -+ struct sio_hdl *hdl; -+ -+ assert(context); - - #ifndef DISABLE_LIBSNDIO_DLOPEN - libsndio = dlopen("libsndio.so.7.0", RTLD_LAZY); -@@ -305,8 +332,17 @@ sndio_init(cubeb **context, char const *context_name) - #undef LOAD - #endif - -+ /* test if sndio works */ -+ hdl = WRAP(sio_open)(sndio_get_device(), SIO_PLAY, 1); -+ if (hdl == NULL) { -+ return CUBEB_ERROR; -+ } -+ WRAP(sio_close)(hdl); -+ - DPR("sndio_init(%s)\n", context_name); -- *context = malloc(sizeof(*context)); -+ *context = malloc(sizeof(**context)); -+ if (*context == NULL) -+ return CUBEB_ERROR; - (*context)->libsndio = libsndio; - (*context)->ops = &sndio_ops; - (void)context_name; -@@ -377,7 +413,7 @@ sndio_stream_init(cubeb * context, - goto err; - } - s->context = context; -- s->hdl = WRAP(sio_open)(NULL, s->mode, 1); -+ s->hdl = WRAP(sio_open)(sndio_get_device(), s->mode, 1); - if (s->hdl == NULL) { - DPR("sndio_stream_init(), sio_open() failed\n"); - goto err; diff --git a/srcpkgs/firefox/patches/neon.patch b/srcpkgs/firefox/patches/neon.patch new file mode 100644 index 00000000000..b3b66e10654 --- /dev/null +++ b/srcpkgs/firefox/patches/neon.patch @@ -0,0 +1,46 @@ + +# HG changeset patch +# User Andrew Osmond +# Date 1579706360 0 +# Node ID b3d8b08265b800165d684281d19ac845a8ff9a66 +# Parent 50c371b37a9fcd994a5866db73bd0d078e19f95d +Bug 1610814 - Fix NEON compile error with gcc and RGB unpacking. r=lsalzman + +This patch makes us use the correct intrinsic for loading a uint8x16 +register. It is not entirely clear why clang accepts this without +complaint but beyond the types, it should be equivalent. + +Differential Revision: https://phabricator.services.mozilla.com/D60667 + +diff --git a/gfx/2d/SwizzleNEON.cpp b/gfx/2d/SwizzleNEON.cpp +--- gfx/2d/SwizzleNEON.cpp ++++ gfx/2d/SwizzleNEON.cpp +@@ -407,25 +407,25 @@ void UnpackRowRGB24_NEON(const uint8_t* + } + + uint8x16_t alpha = vreinterpretq_u8_u32(vdupq_n_u32(0xFF000000)); + + // Process all 4-pixel chunks as one vector. + src -= 4 * 3; + dst -= 4 * 4; + while (src >= aSrc) { +- uint8x16_t px = vld1q_u16(reinterpret_cast(src)); ++ uint8x16_t px = vld1q_u8(src); + // G2R2B1G1 R1B0G0R0 -> X1R1G1B1 X0R0G0B0 + uint8x8_t pxlo = vtbl1_u8(vget_low_u8(px), masklo); + // B3G3R3B2 G2R2B1G1 -> X3R3G3B3 X2R2G2B2 + uint8x8_t pxhi = + vtbl1_u8(vext_u8(vget_low_u8(px), vget_high_u8(px), 4), maskhi); + px = vcombine_u8(pxlo, pxhi); + px = vorrq_u8(px, alpha); +- vst1q_u16(reinterpret_cast(dst), px); ++ vst1q_u8(dst, px); + src -= 4 * 3; + dst -= 4 * 4; + } + } + + // Force instantiation of swizzle variants here. + template void UnpackRowRGB24_NEON(const uint8_t*, uint8_t*, int32_t); + template void UnpackRowRGB24_NEON(const uint8_t*, uint8_t*, int32_t); + diff --git a/srcpkgs/firefox/patches/rust-has-i128.patch b/srcpkgs/firefox/patches/rust-has-i128.patch new file mode 100644 index 00000000000..4c90cd3d106 --- /dev/null +++ b/srcpkgs/firefox/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/firefox/template b/srcpkgs/firefox/template index 2a927015573..75d00708345 100644 --- a/srcpkgs/firefox/template +++ b/srcpkgs/firefox/template @@ -3,7 +3,7 @@ # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-i18n". # pkgname=firefox -version=72.0.2 +version=73.0 revision=1 build_helper="rust" short_desc="Mozilla Firefox web browser" @@ -11,7 +11,7 @@ maintainer="Johannes " license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://www.mozilla.org/firefox/" distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz" -checksum=77fd224bea885172d757aef587ad443f2171aa84e4297bca55df91a1951be389 +checksum=b57af802aae32d7f4624ce8b373701236b76904abcb893ded9e0cb5805ba6e17 lib32disabled=yes @@ -25,7 +25,7 @@ makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel $(vopt_if startup_notification startup-notification-devel) $(vopt_if xscreensaver libXScrnSaver-devel) $(vopt_if sndio sndio-devel) $(vopt_if jack jack-devel)" -depends="nss>=3.47.1 desktop-file-utils hicolor-icon-theme" +depends="nss>=3.47.1 desktop-file-utils hicolor-icon-theme sqlite>=$(xbps-uhelper version sqlite)" conflicts="firefox-esr>=0" build_options="alsa jack dbus pulseaudio startup_notification xscreensaver sndio wayland" @@ -67,6 +67,7 @@ post_extract() { post_patch() { _clear_vendor_checksums audio_thread_priority _clear_vendor_checksums backtrace-sys + _clear_vendor_checksums num-traits } do_build() {