From d73ef25178eb107680388e221ce55fa24b51ce5c Mon Sep 17 00:00:00 2001 From: ohfp <1813007-ohfp@users.noreply.gitlab.com> Date: Thu, 30 Jul 2020 17:51:35 +0200 Subject: [PATCH] v79.0-1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also (re-)adds some debian armhf-patches – not really needed, but making it easier to apply the libstdc++-related patches without having to modify them. --- CHANGELOG.md | 6 +++ PKGBUILD | 27 ++++++++----- .../scripts/2_Download_Source_Code.sh | 2 + .../scripts/3_Configure_Source_Code.sh | 10 ++++- .../scripts/4_Build_Binary_Tarball.sh | 4 +- .../armhf-reduce-linker-memory-use.patch | 27 +++++++++++++ deb_patches/build-with-libstdc++-7.patch | 39 +++++++++---------- deb_patches/fix-armhf-webrtc-build.patch | 4 +- 8 files changed, 85 insertions(+), 34 deletions(-) create mode 100644 deb_patches/armhf-reduce-linker-memory-use.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index a791a9f..58b0416 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). This project follows the official Firefox releases, but also uses [Arch Linux Package Versioning](https://wiki.archlinux.org/index.php/Arch_package_guidelines#Package_versioning) to mark individual releases in between versions. +## [79.0-1] - 2020-07-30 + +### Changed + +- New upstream release 79.0 + ## [78.0.2-1] - 2020-07-10 ### Changed diff --git a/PKGBUILD b/PKGBUILD index 46f428a..2d2354c 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -6,7 +6,7 @@ pkgname=librewolf _pkgname=LibreWolf # how to get ci vars instead? -pkgver=78.0.2 +pkgver=79.0 pkgrel=1 pkgdesc="Community-maintained fork of Firefox, focused on privacy, security and freedom." arch=(x86_64 aarch64) @@ -15,7 +15,7 @@ url="https://librewolf-community.gitlab.io/" depends=(gtk3 libxt mime-types dbus-glib ffmpeg nss ttf-font libpulse) makedepends=(unzip zip diffutils yasm mesa imake inetutils xorg-server-xvfb autoconf2.13 rust clang llvm jack gtk2 nodejs cbindgen nasm - python-setuptools python-psutil git binutils) + python-setuptools python-psutil git binutils lld) optdepends=('networkmanager: Location detection via available WiFi networks' 'libnotify: Notification integration' 'pulseaudio: Audio support' @@ -27,7 +27,8 @@ source_x86_64=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/f "git+https://gitlab.com/${pkgname}-community/browser/common.git" "git+https://gitlab.com/${pkgname}-community/settings.git" "megabar.patch" - "remove_addons.patch") + "remove_addons.patch" + https://raw.githubusercontent.com/archlinux/svntogit-packages/master/firefox/repos/extra-x86_64/bug1654465.diff) source_aarch64=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz $pkgname.desktop "git+https://gitlab.com/${pkgname}-community/browser/common.git" @@ -35,22 +36,25 @@ source_aarch64=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/ "megabar.patch" "remove_addons.patch" arm.patch - https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch) + https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch + https://raw.githubusercontent.com/archlinux/svntogit-packages/master/firefox/repos/extra-x86_64/bug1654465.diff) -sha256sums_x86_64=('1aa00ec6d40a771d525b867b175be28eda096becc745875bcceb133a985750fc' +sha256sums_x86_64=('12a922855914ec6b4d4f06a4ac58bc549aca6bdafd3722d68a3d709a935e5713' '0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2' 'SKIP' 'SKIP' '2bef819c55935f6c72a7aa28273ecddfce0888429a32465feb6c34a16ff1ed9c' - '4425388d62cbb7ec3808926ae5e04021b17af8a0b6ba47c08a253ecfdcc264c0') -sha256sums_aarch64=('1aa00ec6d40a771d525b867b175be28eda096becc745875bcceb133a985750fc' + '4425388d62cbb7ec3808926ae5e04021b17af8a0b6ba47c08a253ecfdcc264c0' + 'e577f7e5636deda0026b0e385186f3ecb2212c9b84b6a2949a1811dab3e410d6') +sha256sums_aarch64=('12a922855914ec6b4d4f06a4ac58bc549aca6bdafd3722d68a3d709a935e5713' '0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2' 'SKIP' 'SKIP' '2bef819c55935f6c72a7aa28273ecddfce0888429a32465feb6c34a16ff1ed9c' '4425388d62cbb7ec3808926ae5e04021b17af8a0b6ba47c08a253ecfdcc264c0' '6ca87d2ac7dc48e6f595ca49ac8151936afced30d268a831c6a064b52037f6b7' - '2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9') + '2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9' + 'e577f7e5636deda0026b0e385186f3ecb2212c9b84b6a2949a1811dab3e410d6') prepare() { mkdir mozbuild @@ -115,7 +119,7 @@ END export CXXFLAGS+=" -g0" export RUSTFLAGS="-Cdebuginfo=0" - export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" + export LDFLAGS+=" -Wl,--no-keep-memory" patch -p1 -i ../arm.patch patch -p1 -i ../build-arm-libopus.patch @@ -127,6 +131,9 @@ ac_add_options --enable-optimize END fi + # https://bugzilla.mozilla.org/show_bug.cgi?id=1654465 + patch -Np1 -i ../bug1654465.diff + # Remove some pre-installed addons that might be questionable patch -p1 -i ../remove_addons.patch @@ -216,6 +223,8 @@ ac_add_options --enable-lto ac_add_options --enable-profile-use ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog +ac_add_options --enable-linker=lld +ac_add_options --disable-elf-hack END else diff --git a/binary_tarball/scripts/2_Download_Source_Code.sh b/binary_tarball/scripts/2_Download_Source_Code.sh index c50149d..6364dd2 100755 --- a/binary_tarball/scripts/2_Download_Source_Code.sh +++ b/binary_tarball/scripts/2_Download_Source_Code.sh @@ -1,6 +1,8 @@ #!/bin/bash printf "\n\n--------------------------------- SOURCE CODE DOWNLOAD --------------------------------------\n"; +set -e + if [[ -z ${pkgver} || -z ${pkgrel} ]]; then echo '$pkgrel and/or $pkgver not provided' exit 1 diff --git a/binary_tarball/scripts/3_Configure_Source_Code.sh b/binary_tarball/scripts/3_Configure_Source_Code.sh index 84b4858..99e3d6a 100755 --- a/binary_tarball/scripts/3_Configure_Source_Code.sh +++ b/binary_tarball/scripts/3_Configure_Source_Code.sh @@ -1,6 +1,8 @@ #!/bin/bash printf "\n\n------------------------------ FINAL PREBUILD CONFIGURATION ---------------------------------\n"; +set -e + # Setup Script Variables srcdir=$1; CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../../)} @@ -87,7 +89,7 @@ END export CXXFLAGS+=" -g0" export RUSTFLAGS="-Cdebuginfo=0" - export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" + export LDFLAGS+=" -Wl,--no-keep-memory -Wl" patch -p1 -i ${CI_PROJECT_DIR}/arm.patch wget https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch -O ${CI_PROJECT_DIR}/build-arm-libopus.patch patch -p1 -i ${CI_PROJECT_DIR}/build-arm-libopus.patch @@ -110,7 +112,13 @@ END fi # hopefully the magic sauce that makes things build on 16.04 and later on work "everywhere": +patch -p1 -i "${CI_PROJECT_DIR}/armhf-reduce-linker-memory-use.patch" patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/build-with-libstdc++-7.patch" +patch -p1 -i "${CI_PROJECT_DIR}/fix-armhf-webrtc-build.patch" +patch -p1 -i "${CI_PROJECT_DIR}/webrtc-fix-compiler-flags-for-armhf.patch" + +# https://bugzilla.mozilla.org/show_bug.cgi?id=1654465 +patch -p1 -i ${CI_PROJECT_DIR}/bug1654465.diff # Remove some pre-installed addons that might be questionable patch -p1 -i ${CI_PROJECT_DIR}/remove_addons.patch diff --git a/binary_tarball/scripts/4_Build_Binary_Tarball.sh b/binary_tarball/scripts/4_Build_Binary_Tarball.sh index ad9cf0f..cad87a0 100755 --- a/binary_tarball/scripts/4_Build_Binary_Tarball.sh +++ b/binary_tarball/scripts/4_Build_Binary_Tarball.sh @@ -1,6 +1,8 @@ #!/bin/bash printf "\n\n--------------------------------------- BUILD -----------------------------------------------\n"; +set -e + # Setup Script Variables srcdir=$1; OUTPUT_TARBALL=$2; @@ -37,7 +39,7 @@ if [[ $CARCH == 'aarch64' ]]; then export CFLAGS+=" -g0" export CXXFLAGS+=" -g0" export RUSTFLAGS="-Cdebuginfo=0" - export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" + export LDFLAGS+=" -Wl,--no-keep-memory -Wl" fi # LTO needs more open files diff --git a/deb_patches/armhf-reduce-linker-memory-use.patch b/deb_patches/armhf-reduce-linker-memory-use.patch new file mode 100644 index 0000000..3f20011 --- /dev/null +++ b/deb_patches/armhf-reduce-linker-memory-use.patch @@ -0,0 +1,27 @@ +Description: starting with firefox 66, armhf builds on Launchpad frequently + fail with "/usr/bin/ld: final link failed: memory exhausted" when linking + libxul.so. This is an attempt to reduce the memory used by ld. +Author: Olivier Tilloy + +--- a/build/moz.configure/toolchain.configure ++++ b/build/moz.configure/toolchain.configure +@@ -2056,15 +2056,16 @@ def select_linker(linker, c_compiler, de + set_config('LINKER_KIND', select_linker.KIND) + + +-@depends_if(select_linker, macos_sdk) +-def linker_ldflags(linker, macos_sdk): ++@depends_if(select_linker, macos_sdk, host) ++def linker_ldflags(linker, macos_sdk, host): + flags = list(linker.LINKER_FLAG or []) + if macos_sdk: + if linker.KIND == 'ld64': + flags.append('-Wl,-syslibroot,%s' % macos_sdk) + else: + flags.append('-Wl,--sysroot=%s' % macos_sdk) +- ++ elif host.cpu == 'arm': ++ flags.append('-Wl,--no-keep-memory') + return flags + + diff --git a/deb_patches/build-with-libstdc++-7.patch b/deb_patches/build-with-libstdc++-7.patch index 55d0036..82cf9cc 100644 --- a/deb_patches/build-with-libstdc++-7.patch +++ b/deb_patches/build-with-libstdc++-7.patch @@ -1,5 +1,7 @@ -diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure -index ce42ab7..b07514f 100755 +Description: point clang to the toolchain provided by the gcc-mozilla package (version 7 required for C++ 17), and statically link against libstdc++ +Author: Olivier Tilloy +Bug-Ubuntu: https://launchpad.net/bugs/1856861 + --- a/build/moz.configure/toolchain.configure +++ b/build/moz.configure/toolchain.configure @@ -1252,6 +1252,7 @@ try_compile(includes=['cstddef'], @@ -10,7 +12,7 @@ index ce42ab7..b07514f 100755 check_msg='for new enough STL headers from libstdc++', when=needs_libstdcxx_newness_check, onerror=die_on_old_libstdcxx) -@@ -1433,6 +1434,10 @@ set_config('_DEPEND_CFLAGS', depend_cflags(c_compiler)) +@@ -1433,6 +1434,10 @@ set_config('_DEPEND_CFLAGS', depend_cfla set_config('_HOST_DEPEND_CFLAGS', depend_cflags(host_c_compiler)) @@ -21,29 +23,14 @@ index ce42ab7..b07514f 100755 @depends(c_compiler) def preprocess_option(compiler): # The uses of PREPROCESS_OPTION depend on the spacing for -o/-Fi. -@@ -2133,7 +2138,7 @@ def linker_ldflags(linker, macos_sdk): - flags.append('-Wl,-syslibroot,%s' % macos_sdk) - else: +@@ -2137,6 +2142,7 @@ def linker_ldflags(linker, macos_sdk, ho flags.append('-Wl,--sysroot=%s' % macos_sdk) -- + elif host.cpu == 'arm': + flags.append('-Wl,--no-keep-memory') + flags.append('-static-libstdc++') return flags -diff --git a/layout/style/test/moz.build b/layout/style/test/moz.build -index 5b77bd8..3b8f869 100644 ---- a/layout/style/test/moz.build -+++ b/layout/style/test/moz.build -@@ -18,6 +18,7 @@ DIRS += ['gtest'] - HostSimplePrograms([ - 'host_ListCSSProperties', - ]) -+HOST_CXXFLAGS += ['--gcc-toolchain=/usr/lib/gcc-mozilla'] - - MOCHITEST_MANIFESTS += [ - 'mochitest.ini', -diff --git a/servo/components/style/build_gecko.rs b/servo/components/style/build_gecko.rs -index dfd2a21..5696e2a 100644 --- a/servo/components/style/build_gecko.rs +++ b/servo/components/style/build_gecko.rs @@ -149,6 +149,8 @@ impl BuilderExt for Builder { @@ -55,3 +42,13 @@ index dfd2a21..5696e2a 100644 for dir in SEARCH_PATHS.iter() { builder = builder.clang_arg("-I").clang_arg(dir.to_str().unwrap()); } +--- a/layout/style/test/moz.build ++++ b/layout/style/test/moz.build +@@ -18,6 +18,7 @@ DIRS += ['gtest'] + HostSimplePrograms([ + 'host_ListCSSProperties', + ]) ++HOST_CXXFLAGS += ['--gcc-toolchain=/usr/lib/gcc-mozilla'] + + MOCHITEST_MANIFESTS += [ + 'mochitest.ini', diff --git a/deb_patches/fix-armhf-webrtc-build.patch b/deb_patches/fix-armhf-webrtc-build.patch index 44e88a6..7f56b3e 100644 --- a/deb_patches/fix-armhf-webrtc-build.patch +++ b/deb_patches/fix-armhf-webrtc-build.patch @@ -37,9 +37,9 @@ diff -r 53fd96ca5aa4 media/webrtc/trunk/webrtc/system_wrappers/cpu_features_linu - "/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c" -] - - if not CONFIG["MOZ_DEBUG"]: + if CONFIG["MOZ_DEBUG"] == "1": - DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0" + DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1" @@ -53,20 +49,36 @@ DEFINES["WEBRTC_ARCH_ARM64"] = True DEFINES["WEBRTC_HAS_NEON"] = True