From 9ab3f8666db846efb4517db6175f34e94dd0e910 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 3 Sep 2019 23:53:57 +0200 Subject: [PATCH] firefox: update to 69.0. [ci skip] --- srcpkgs/firefox/patches/fix-musl.patch | 11 ---- .../patches/initialize_sched_param.patch | 22 ++++++++ .../firefox/patches/ppc64le-bug-1512162.patch | 50 ------------------- srcpkgs/firefox/template | 32 ++++++++---- 4 files changed, 44 insertions(+), 71 deletions(-) delete mode 100644 srcpkgs/firefox/patches/fix-musl.patch create mode 100644 srcpkgs/firefox/patches/initialize_sched_param.patch delete mode 100644 srcpkgs/firefox/patches/ppc64le-bug-1512162.patch diff --git a/srcpkgs/firefox/patches/fix-musl.patch b/srcpkgs/firefox/patches/fix-musl.patch deleted file mode 100644 index c1cb99bf651..00000000000 --- a/srcpkgs/firefox/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/firefox/patches/initialize_sched_param.patch b/srcpkgs/firefox/patches/initialize_sched_param.patch new file mode 100644 index 00000000000..ee593c3c217 --- /dev/null +++ b/srcpkgs/firefox/patches/initialize_sched_param.patch @@ -0,0 +1,22 @@ +source: https://github.com/padenot/audio_thread_priority/commit/a1443a02667c649cb72873a45b98fffbd2eac5a8 + +commit a1443a02667c649cb72873a45b98fffbd2eac5a8 +Author: Paul Adenot +Date: Mon Aug 19 15:00:39 2019 +0200 + + initialize sched_param using std::mem::zeroed to fix compilation against other libc than glibc + +diff --git a/src/rt_linux.rs b/src/rt_linux.rs +index d8c0114..fbb4fde 100644 +--- third_party/rust/audio_thread_priority/src/rt_linux.rs.orig 2019-09-03 22:57:00.197152845 +0200 ++++ third_party/rust/audio_thread_priority/src/rt_linux.rs 2019-09-03 23:05:42.219159018 +0200 +@@ -93,8 +93,8 @@ pub fn promote_current_thread_to_real_time_internal(audio_buffer_frames: u32, + { + let thread_id = unsafe { libc::syscall(libc::SYS_gettid) }; + let pthread_id = unsafe { libc::pthread_self() }; ++ let mut param = unsafe { std::mem::zeroed::() }; + let mut policy = 0; +- let mut param = libc::sched_param { sched_priority: 0 }; + + if unsafe { libc::pthread_getschedparam(pthread_id, &mut policy, &mut param) } < 0 { + error!("pthread_getschedparam error {}", pthread_id); diff --git a/srcpkgs/firefox/patches/ppc64le-bug-1512162.patch b/srcpkgs/firefox/patches/ppc64le-bug-1512162.patch deleted file mode 100644 index ec38f2262be..00000000000 --- a/srcpkgs/firefox/patches/ppc64le-bug-1512162.patch +++ /dev/null @@ -1,50 +0,0 @@ - -diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp ---- js/xpconnect/src/XPCWrappedNative.cpp -+++ js/xpconnect/src/XPCWrappedNative.cpp -@@ -1152,16 +1152,20 @@ bool XPCWrappedNative::CallMethod(XPCCal - if (NS_FAILED(rv)) { - return Throw(rv, ccx); - } - - JS::Rooted helper(ccx, /* init = */ ccx); - return helper.get().Call(); - } - -+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) -+// Work around a compiler bug on ppc64le (bug 1512162). -+__attribute__ ((noinline,noclone)) -+#endif - bool CallMethodHelper::Call() { - mCallContext.SetRetVal(JS::UndefinedValue()); - - mCallContext.GetContext()->SetPendingException(nullptr); - - if (mVTableIndex == 0) { - return QueryInterfaceFastPath(); - } -@@ -1310,16 +1314,20 @@ bool CallMethodHelper::GetOutParamSource - return false; - } - } - } - - return true; - } - -+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) -+// Work around a compiler bug on ppc64le (bug 1512162). -+__attribute__ ((noinline,noclone)) -+#endif - bool CallMethodHelper::GatherAndConvertResults() { - // now we iterate through the native params to gather and convert results - uint8_t paramCount = mMethodInfo->GetParamCount(); - for (uint8_t i = 0; i < paramCount; i++) { - const nsXPTParamInfo& paramInfo = mMethodInfo->GetParam(i); - if (!paramInfo.IsOut()) { - continue; - } - - - - diff --git a/srcpkgs/firefox/template b/srcpkgs/firefox/template index 82d454d0f68..50562e2eb01 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=68.0.2 +version=69.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=9b3e6d8f99819f9eda9ebba403b644a2b96d19450b42cae422bbf4386902a840 +checksum=413c3febdfeb69eade818824eecbdb11eaeda71de229573810afd641ba741ec5 lib32disabled=yes @@ -31,11 +31,6 @@ conflicts="firefox-esr>=0" build_options="alsa dbus pulseaudio startup_notification xscreensaver sndio wayland" build_options_default="alsa dbus pulseaudio startup_notification xscreensaver sndio wayland" -# 19:55.85 /usr/bin/ld: failed to set dynamic section sizes: memory exhausted -if [ "$XBPS_WORDSIZE" -eq 32 ]; then - nodebug=yes -fi - case $XBPS_TARGET_MACHINE in armv6*) broken="required NEON extensions are not supported on armv6" @@ -44,6 +39,13 @@ case $XBPS_TARGET_MACHINE in ppc*) broken="ftbfs in several places" ;; esac +# 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) @@ -59,6 +61,11 @@ post_extract() { # Note: This is for Void Linux use ONLY. echo -n "cd894504-7a2a-4263-abff-ff73ee89ffca" > mozilla-api-key } + +post_patch() { + _clear_vendor_checksums audio_thread_priority +} + do_build() { cp "${FILESDIR}/mozconfig" "${wrksrc}/.mozconfig" @@ -114,9 +121,14 @@ do_build() { ;; esac - if [ "$XBPS_WORDSIZE" -eq 32 ]; then - # ENOMEM - echo "ac_add_options --disable-debug-symbols" >>.mozconfig + # work around large debug symbols on 32-bit hosts + if [ "$XBPS_WORDSIZE" = "32" ]; then + export CFLAGS="${CFLAGS/-g/-g1}" + export CXXFLAGS="${CXXFLAGS/-g/-g1}" + 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 fi export LDFLAGS+=" -Wl,-rpath=/usr/lib/firefox"