summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2021-01-29 08:33:56 -0500
committerbill-auger <mr.j.spam.me@gmail.com>2021-02-09 11:11:43 -0500
commitbc32081b3ac386463ab6f726828be3ec51fb376e (patch)
treef1fde95c372b1ba9503348f832ca8557d9693de8
parent0a529546e860fbed937f44f45eb919e137eccc5d (diff)
[icecat]: upgrade to v78.7.0
-rw-r--r--libre/icecat/PKGBUILD75
-rw-r--r--libre/icecat/rust-static-disable-network-test-on-static-libraries.patch27
2 files changed, 67 insertions, 35 deletions
diff --git a/libre/icecat/PKGBUILD b/libre/icecat/PKGBUILD
index bdbe9d576..87a28e744 100644
--- a/libre/icecat/PKGBUILD
+++ b/libre/icecat/PKGBUILD
@@ -15,14 +15,14 @@
# Contributor: grizzlyuser <grizzlyuser@protonmail.com>
-# NOTE: icecat (60.7 < V <= 78.6) are not upstream releases
+# NOTE: icecat (60.7 < V <= 78.7) are not upstream releases
# upstream releases would normally have '-gnu' appended to $_upstream_ver
# this build is based on gnuzilla VCS developement sources
-# rev: a43514623e93d4f3fe6d61f5b2f82c5ef29bf518
+# rev: abfe5eebaca3c2787f1a9505669393674493c177
pkgname=icecat
-_upstream_ver=78.6.0 # -gnu
+_upstream_ver=78.7.0-pre # -gnu
pkgver=${_upstream_ver//-/_}
pkgrel=1
pkgdesc="GNU IceCat - a libre standalone web browser based on Mozilla Firefox ESR"
@@ -34,28 +34,29 @@ 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)
makedepends+=(mozilla-searchplugins jq)
-makedepends[15]='cbindgen=0.15.0' # FIXME: FTBS against cbindgen v0.16.0
- # dom/webgpu/ipc/WebGPUParent.cpp:426:29: error: no member named '_0' in 'mozilla::webgpu::ffi::WGPUBufferBinding'
- # dom/webgpu/ipc/WebGPUParent.cpp:432:34: error: member reference base type 'mozilla::webgpu::ffi::WGPUTextureViewId' (aka 'unsigned long') is not a structure or union
+[[ "${CARCH}" == 'i686' ]] && makedepends=(${makedepends[*]/llvm/llvm10}) # FIXME: i686 configure fails with LLVM11
+ # rustup: error while loading shared libraries: libLLVM-10.so
optdepends=('networkmanager: Location detection via available WiFi networks'
'libnotify: Notification integration'
'pulseaudio: Audio support'
'speech-dispatcher: Text-to-Speech'
'hunspell-en_US: Spell checking, American English')
options=(!emptydirs !makeflags !strip)
-source=(https://repo.parabola.nu/other/${pkgname}/${pkgname}-${_upstream_ver}-pre.tar.bz2{,.sig}
+source=(https://repo.parabola.nu/other/${pkgname}/${pkgname}-${_upstream_ver}.tar.bz2{,.sig}
0001-Use-remoting-name-for-GDK-application-names.patch
rust-1.48_icecat-78.6.0.patch
${pkgname}.desktop)
source+=(searchplugins_list.json
libre.patch)
-sha256sums=('edcbdf85d74408420427d2959e1709327fbe7a2ce6810045df4aeb3a70f14555'
+source_i686=('rust-static-disable-network-test-on-static-libraries.patch')
+sha256sums=('e62ed45c31c62a67609313cb3eb03f809130a691f884962b010cce164782b129'
'SKIP'
'3bb7463471fb43b2163a705a79a13a3003d70fff4bbe44f467807ca056de9a75'
'd90faa59dc59f457c5770b3cc1ee4caa5b255e754ab9ab3993af894992c007e4'
'f9f954fd06739e70a72ccf4774cfa71f349a4b133ec8f5dea0a3bcca2cf7321d'
'3edb4add450f94c579f2df7c16ac4d9bd9f5c6acf3fbd8a05ce24c21c317257d'
'28029afa3201e1be8138be06f741c59d64869edf0c9e90dbb05cfa6b5fff4ecd')
+sha256sums_i686=('068efe37a99561490e6ec7b70a3cd4dd84e89e6bdf19f04a475d06c78fd28920')
validpgpkeys=('318C679D94F17700CC847DE646A70073E4E50D4E' # Ruben Rodriguez
'3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40') # bill-auger
@@ -63,7 +64,7 @@ validpgpkeys=('318C679D94F17700CC847DE646A70073E4E50D4E' # Ruben Rodriguez
# PGO requires networking
_should_skip_pgo_armv7h=1 # disable for armv7h - always
_should_skip_pgo_i686=1 # disable for i686 - always
-_should_skip_pgo_x86_64=1 # disable for x86_64 - libremakepkg
+_should_skip_pgo_x86_64=0 # disable for x86_64 - libremakepkg
eval "_should_skip_pgo=\$_should_skip_pgo_${CARCH}"
@@ -90,7 +91,7 @@ _check_build_config() {
if (( ${#antifeatures[@]} ))
then echo "Some anti-features are not disabled in build configuration files, aborting:"
for key in ${antifeatures[@]} ; do echo " - ${key} is enabled" ; done ;
- # FIXME: - .datareporting is enabled
+# FIXME: - .datareporting is enabled
# return 1
fi
@@ -149,16 +150,16 @@ END
## [ARCH-SPECIFIC CONFIG] ##
- # TODO: this per-arch handling is yet to be re-worked for armv7h and i686
case "${CARCH}" in
armv*)
-# sed -i '/--enable-linker=gold/d' .mozconfig
-# sed -i '/--enable-rust-simd/d' .mozconfig
+# TODO: re-work for armv7h
+# sed -i '/--enable-linker=gold/d' ../mozconfig
+# sed -i '/--enable-rust-simd/d' ../mozconfig
#
# # https://bugzilla.mozilla.org/show_bug.cgi?id=1463035
# patch -Np1 -i "$srcdir"/mozilla-1463035.patch
#
-# cat >> .mozconfig <<END
+# cat >> ../mozconfig <<END
#ac_add_options --enable-optimize="-g -O2 -fno-schedule-insns"
#ac_add_options --disable-elf-hack
#ac_add_options --disable-webrtc
@@ -166,7 +167,14 @@ END
#END
;;
i686)
-# sed -i '/--enable-linker=gold/d' .mozconfig
+# sed -i '/--enable-linker=gold/d' ../mozconfig
+ sed -i '/--enable-rust-simd/d' ../mozconfig
+
+ # test failure in rust code (complaining about network functions) when PGO is used,
+ # TEST-UNEXPECTED-FAIL | check_networking | libgkrust.a | Identified 7 networking function(s) being imported in the rust static library (accept,connect,getsockname,getsockopt,listen,recv,send)
+ # see https://bugzilla.mozilla.org/show_bug.cgi?id=1565757
+ echo "applying rust-static-disable-network-test-on-static-libraries.patch"
+ patch -Np0 -i ../rust-static-disable-network-test-on-static-libraries.patch
;;
x86_64)
;;
@@ -223,6 +231,8 @@ END
build() {
cd "$srcdir/$pkgname-${pkgver%_*}"
+ ## build env ##
+
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
export MACH_USE_SYSTEM_PYTHON=1
@@ -230,48 +240,40 @@ build() {
# LTO needs more open files
ulimit -n 4096
+ # clang-{9,10,11} -> error: unknown argument: '-fvar-tracking-assignments'
+ CFLAGS="${CFLAGS/-fvar-tracking-assignments/}"
+ CXXFLAGS="${CXXFLAGS/-fvar-tracking-assignments/}"
+
## [ARCH-SPECIFIC BUILD ENV] ##
- # TODO: this per-arch handling is yet to be re-worked for armv7h and i686
case "${CARCH}" in
armv*)
- # clang-{9,10,11} -> error: unknown argument: '-fvar-tracking-assignments'
-# CFLAGS="${CFLAGS/-fvar-tracking-assignments/}"
-# CXXFLAGS="${CXXFLAGS/-fvar-tracking-assignments/}"
-#
+# TODO: re-work for armv7h
# export RUSTFLAGS+=" -Cdebuginfo=0 -Clto=off"
# export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
-# export CFLAGS
-# export CXXFLAGS
;;
i686)
# -fno-plt with cross-LTO -> LLVM ERROR: Function Import: link error
-# CFLAGS="${CFLAGS/-fno-plt/}"
-# CXXFLAGS="${CXXFLAGS/-fno-plt/}"
+ CFLAGS="${CFLAGS/-fno-plt/}"
+ CXXFLAGS="${CXXFLAGS/-fno-plt/}"
-# export RUSTFLAGS+=" -Cdebuginfo=0 -Clto=off"
-# export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
-# export CFLAGS
-# export CXXFLAGS
+ export RUSTFLAGS+=" -Cdebuginfo=0 -Clto=off"
+ export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
;;
x86_64)
- # clang-{9,10,11} -> error: unknown argument: '-fvar-tracking-assignments'
- CFLAGS="${CFLAGS/-fvar-tracking-assignments/}"
- CXXFLAGS="${CXXFLAGS/-fvar-tracking-assignments/}"
-
# TODO: this may only be needed for v78
# -fno-plt with cross-LTO causes obscure LLVM errors
# LLVM ERROR: Function Import: link error
CFLAGS="${CFLAGS/-fno-plt/}"
CXXFLAGS="${CXXFLAGS/-fno-plt/}"
- export CFLAGS
- export CXXFLAGS
;;
*) echo "no [ARCH-SPECIFIC BUILD ENV] for arch: ${CARCH}" ; return 1 ;
;;
esac
+ export CFLAGS
+ export CXXFLAGS
## [ARCH-SPECIFIC BUILD CONFIG] ##
@@ -282,7 +284,7 @@ build() {
;;
i686)
# avoid excessive debug symbols in rust leading to out-of-memory situations
-# sed -i "s/debug_info = '\''2'\''/debug_info = '\''0'\''/" build/moz.configure/toolchain.configure
+ sed -i "s/debug_info = '\''2'\''/debug_info = '\''0'\''/" build/moz.configure/toolchain.configure
;;
x86_64)
;;
@@ -290,6 +292,9 @@ build() {
;;
esac
+
+ ## PGO build ##
+
if (( $_should_skip_pgo ))
then
# skipping "3-tier PGO" "instrumented browser", to avoid OOM problems;
diff --git a/libre/icecat/rust-static-disable-network-test-on-static-libraries.patch b/libre/icecat/rust-static-disable-network-test-on-static-libraries.patch
new file mode 100644
index 000000000..08915653a
--- /dev/null
+++ b/libre/icecat/rust-static-disable-network-test-on-static-libraries.patch
@@ -0,0 +1,27 @@
+--- config/makefiles/rust.mk
++++ config/makefiles/rust.mk
+@@ -304,15 +304,15 @@
+ # the chance of proxy bypasses originating from rust code.
+ # The check only works when rust code is built with -Clto.
+ # Sanitizers and sancov also fail because compiler-rt hooks network functions.
+-ifndef MOZ_PROFILE_GENERATE
+-ifeq ($(OS_ARCH), Linux)
+-ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
+-ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
+- $(call py_action,check_binary,--target --networking $@)
+-endif
+-endif
+-endif
+-endif
++#ifndef MOZ_PROFILE_GENERATE
++#ifeq ($(OS_ARCH), Linux)
++#ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
++#ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
++# $(call py_action,check_binary,--target --networking $@)
++#endif
++#endif
++#endif
++#endif
+
+ force-cargo-library-check:
+ $(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag)