~alpine/aports

2 2

[alpine-aports] [PATCH] testing/firefox: upgrade to 65.0

Bradley Saulteaux
Details
Message ID
<20190219170104.32697-1-~@bradso.to>
Sender timestamp
1550595666
DKIM signature
missing
Download raw message
Patch: +251 -184
https://www.firefox.com/
Firefox web browser
---
 community/ffmpeg/APKBUILD                    |   8 +-
 community/libaom/APKBUILD                    |  26 +++++
 main/icu/10-firefox-65.0.1-fix.patch         |  23 ++++
 main/icu/APKBUILD                            |  10 +-
 main/libvpx/10-find-diff.patch               |  11 ++
 main/libvpx/APKBUILD                         |  17 ++-
 testing/cbindgen/APKBUILD                    |  26 +++++
 testing/firefox/10-debug-fixes.patch         |  25 +++++
 testing/firefox/APKBUILD                     | 106 ++++++++-----------
 testing/firefox/disable-moz-stackwalk.patch  |  10 +-
 testing/firefox/fix-arm-atomics-grsec.patch  |  74 ++++++-------
 testing/firefox/fix-seccomp-bpf.patch        |  26 +++--
 testing/firefox/fix-toolkit.patch            |  26 ++---
 testing/firefox/fix-tools.patch              |  18 ++--
 testing/firefox/fix-webrtc-glibcisms.patch   |  18 ++--
 testing/firefox/rust-unitialized-field.patch |  11 +-
 16 files changed, 251 insertions(+), 184 deletions(-)
 create mode 100644 community/libaom/APKBUILD
 create mode 100644 main/icu/10-firefox-65.0.1-fix.patch
 create mode 100644 main/libvpx/10-find-diff.patch
 create mode 100644 testing/cbindgen/APKBUILD
 create mode 100644 testing/firefox/10-debug-fixes.patch

diff --git a/community/ffmpeg/APKBUILD b/community/ffmpeg/APKBUILD
index 4d2ac5757e..85cb74408a 100644
--- a/community/ffmpeg/APKBUILD
+++ b/community/ffmpeg/APKBUILD
@@ -4,7 +4,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ffmpeg
pkgver=4.1.1
pkgrel=0
pkgrel=1
pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
url="http://ffmpeg.org/"
arch="all"
@@ -12,7 +12,7 @@ license="GPL"
options="!check" # tests/data/hls-lists.append.m3u8 fails
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
makedepends="gnutls-dev lame-dev libvorbis-dev xvidcore-dev zlib-dev libvdpau-dev
	imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev libvpx-dev
	imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev libaom-dev
	libvpx-dev sdl2-dev libxfixes-dev libva-dev alsa-lib-dev
	v4l-utils-dev yasm opus-dev x265-dev libass-dev"
checkdepends="rsync"
@@ -71,13 +71,13 @@ build() {
	x86 | arm*) _asm="--disable-asm" ;;
	esac

	cd "$builddir"
	./configure \
		--prefix=/usr \
		--enable-avresample \
		--enable-avfilter \
		--enable-gnutls \
		--enable-gpl \
		--enable-libaom \
		--enable-libass \
		--enable-libmp3lame \
		--enable-libvorbis \
@@ -106,7 +106,6 @@ build() {

# https://ffmpeg.org/fate.html
check() {
	cd "$builddir"
	./configure \
		--samples=fate-suite/
	make fate-rsync
@@ -115,7 +114,6 @@ check() {
}

package() {
	cd "$builddir"
	make DESTDIR="$pkgdir" install install-man
	install -D -m755 tools/qt-faststart "$pkgdir/usr/bin/qt-faststart"
#	strip --strip-debug "$pkgdir"/usr/lib/*.a
diff --git a/community/libaom/APKBUILD b/community/libaom/APKBUILD
new file mode 100644
index 0000000000..a2948a4e4c
--- /dev/null
+++ b/community/libaom/APKBUILD
@@ -0,0 +1,26 @@
# Maintainer: Bradley Saulteaux <~@bradso.to>
pkgname=libaom
pkgver=1.0.0
pkgrel=0
pkgdesc="Alliance for Open Media"
url="https://aomedia.googlesource.com/aom/"
arch="all"
license="BSD-2-Clause"
depends=""
makedepends="cmake python yasm"
install=""
options="!check" #tests fail at AV1/AV1DecodeMultiThreadedTest.MD5Match
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://aomedia.googlesource.com/aom/+archive/v$pkgver.tar.gz"
builddir="$srcdir/build"
build() {
	cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS=1 ..
	sed -i 's/0.1.0/1.0.0/g' aom.pc
}
check() {
	make runtests
}
package() {
	make DESTDIR="$pkgdir" install
}
sha512sums="f506a9399cfcf2aa3473639210511270c5a44b789eb51ce5616bd61f18a18e64080240a7b1ea2502d27df40ddf290b8f4686282f1eda3ffc57c45c803474f768  libaom-1.0.0.tar.gz"
diff --git a/main/icu/10-firefox-65.0.1-fix.patch b/main/icu/10-firefox-65.0.1-fix.patch
new file mode 100644
index 0000000000..6c47bdde2a
--- /dev/null
+++ b/main/icu/10-firefox-65.0.1-fix.patch
@@ -0,0 +1,23 @@
https://github.com/unicode-org/icu/commit/8baff8f03e07d8e02304d0c888d0bb21ad2eeb01
fixed in 63.2
--- ./common/unicode/urename.h
@@ -110,7 +110,6 @@
 #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
 #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
 #define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
-#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
 #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
 #define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
 #define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
--- ./i18n/uspoof.cpp
@@ -547,7 +547,7 @@
     return uspoof_check2UnicodeString(sc, id, NULL, status);
 }
 
-int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
+static int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
     U_ASSERT(This != NULL);
     U_ASSERT(checkResult != NULL);
     checkResult->clear();
diff --git a/main/icu/APKBUILD b/main/icu/APKBUILD
index 14b6b66a4c..9bc7bc65e3 100644
--- a/main/icu/APKBUILD
+++ b/main/icu/APKBUILD
@@ -6,7 +6,7 @@ pkgver=63.1
# convert x.y.z to x_y_z
_ver=${pkgver//./_}

pkgrel=0
pkgrel=1
pkgdesc="International Components for Unicode library"
url="http://www.icu-project.org/"
arch="all"
@@ -17,6 +17,7 @@ depends_dev="$pkgname=$pkgver-r$pkgrel"
checkdepends="diffutils"
makedepends=
source="http://download.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver-src.tgz
	10-firefox-65.0.1-fix.patch
	"

# secfixes:
@@ -30,7 +31,6 @@ source="http://download.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver
builddir="$srcdir"/icu/source

prepare() {
	cd "$builddir"
	default_prepare
	update_config_sub

@@ -49,7 +49,6 @@ prepare() {
}

build() {
	cd "$builddir"
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
@@ -67,12 +66,10 @@ check() {
	case "$CARCH" in
		arm*|x86) return 0;;
	esac
	cd "$builddir"
	make check
}

package() {
	cd "$builddir"
	make -j1 DESTDIR="$pkgdir" install
	chmod +x "$pkgdir"/usr/bin/icu-config
	install -Dm644 "$srcdir"/icu/license.html \
@@ -90,4 +87,5 @@ libs() {
	replaces="icu"
}

sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c  icu4c-63_1-src.tgz"
sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c  icu4c-63_1-src.tgz
76fc0b69ef5dd78d31ed88e6b2976b3ff8b7715f03a94faef79dc2210fe75b9db1de47f1ccc8a5f783760e41de7da3a32628abc9e1ec44edcca98207c91d952d  10-firefox-65.0.1-fix.patch"
diff --git a/main/libvpx/10-find-diff.patch b/main/libvpx/10-find-diff.patch
new file mode 100644
index 0000000000..c0d9f9955b
--- /dev/null
+++ b/main/libvpx/10-find-diff.patch
@@ -0,0 +1,11 @@
--- ./configure
@@ -166,7 +166,7 @@
     [ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
 done
 
-if ! diff --version >/dev/null; then
+if ! which diff &> /dev/null; then
   die "diff missing: Try installing diffutils via your package manager."
 fi
 
diff --git a/main/libvpx/APKBUILD b/main/libvpx/APKBUILD
index 767b2b21fa..a6a4a4a490 100644
--- a/main/libvpx/APKBUILD
+++ b/main/libvpx/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libvpx
pkgver=1.6.1
pkgrel=1
pkgver=1.7.0
pkgrel=0
pkgdesc="Library for the vp8 codec"
url="https://www.webmproject.org/"
arch="all"
@@ -9,13 +9,12 @@ license="GPL"
depends=""
makedepends="coreutils yasm bash perl"
subpackages="$pkgname-dev $pkgname-utils"
source="https://storage.googleapis.com/downloads.webmproject.org/releases/webm/$pkgname-$pkgver.tar.bz2
source="$pkgname-$pkgver.tar.gz::https://chromium.googlesource.com/webm/$pkgname/+archive/v$pkgver.tar.gz
	fix-arm-float-abi.patch
	10-find-diff.patch
	"

builddir="$srcdir"/$pkgname-$pkgver
builddir="$srcdir"
build() {
	cd "$builddir"
	# build fix for arm
	export CROSS=" "
	bash ./configure \
@@ -31,7 +30,6 @@ build() {
}

package() {
	cd "$builddir"
	make DIST_DIR="$pkgdir"/usr install
	chmod 644 "$pkgdir"/usr/include/vpx/*.h \
		"$pkgdir"/usr/lib/pkgconfig/*
@@ -45,5 +43,6 @@ utils() {
	mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
}

sha512sums="1a4b009fe1737715c6563a79848126a5859394a5074b1e9cca9bc2e213df90890c15e708040d5f2c96c7c21e268f51e1352ac6911514bf891a4bf3eea154159d  libvpx-1.6.1.tar.bz2
4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c  fix-arm-float-abi.patch"
sha512sums="6e114a6e8470b05153a8c41b7f30adb37d8cf99dc1c3d016867e5578b4f69905d7a1fcd902b6855f3f6b3e63ae305eb3fadd53359f2c8f344f3d701c3d4882b5  libvpx-1.7.0.tar.gz
4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c  fix-arm-float-abi.patch
c14015273a2f081ef722f752a7ac17204e7fd5c42fb7a4bb457afdff1fcd2cc276bd34ca80a6e318968e0fa2e6ba49ceee026dd1bd7ee1b2806dbde70fd0a7fb  10-find-diff.patch"
diff --git a/testing/cbindgen/APKBUILD b/testing/cbindgen/APKBUILD
new file mode 100644
index 0000000000..6a58bcb45d
--- /dev/null
+++ b/testing/cbindgen/APKBUILD
@@ -0,0 +1,26 @@
# Maintainer: Bradley Saulteaux <~@bradso.to>
pkgname=cbindgen
pkgver=0.8.0
pkgrel=0
pkgdesc="A tool for generating C bindings to Rust code"
url="https://github.com/eqrion/cbindgen"
# limited by rust and cargo
arch="x86_64"
license="MPL2"
depends=""
subpackages="$pkgname-doc"
makedepends="cargo"
install=""
source="$pkgname-$pkgver.tar.gz::https://github.com/eqrion/$pkgname/archive/v$pkgver.tar.gz"
builddir="${srcdir}/$pkgname-$pkgver"
build() {
	cargo build --release
}
check() {
	cargo test --release
}
package() {
	install -Dt "$pkgdir/usr/bin" target/release/cbindgen
	install -Dt "$pkgdir/usr/share/doc/$pkgname" -m644 README.md
}
sha512sums="634a61556b3ae20bb246d1c34c2869852af1e1003cbf0481a346191eb48f812d19755ae8e895628d53a3ab7792b977255bfb25a50a2dbb9baf18b4f3fc783b18  cbindgen-0.8.0.tar.gz"
diff --git a/testing/firefox/10-debug-fixes.patch b/testing/firefox/10-debug-fixes.patch
new file mode 100644
index 0000000000..968091935e
--- /dev/null
+++ b/testing/firefox/10-debug-fixes.patch
@@ -0,0 +1,25 @@
--- ./intl/locale/LocaleService.cpp
@@ -526,7 +526,6 @@
     GetGREFileContents("update.locale", &locale);
     locale.Trim(" \t\n\r");
     // This should never be empty.
-    MOZ_ASSERT(!locale.IsEmpty());
     if (SanitizeForBCP47(locale, true)) {
       mDefaultLocale.Assign(locale);
     }
--- ./browser/installer/package-manifest.in
@@ -499,12 +499,6 @@
 ; svg
 @RESPATH@/res/svg.css
 
-; [Layout Debugger]
-#ifdef MOZ_DEBUG
-@RESPATH@/chrome/layoutdebug@JAREXT@
-@RESPATH@/chrome/layoutdebug.manifest
-#endif
-
 ; [Personal Security Manager]
 ;
 ; NSS libraries are signed in the staging directory,
diff --git a/testing/firefox/APKBUILD b/testing/firefox/APKBUILD
index b31c1997b7..30ca2dc8fc 100644
--- a/testing/firefox/APKBUILD
+++ b/testing/firefox/APKBUILD
@@ -1,23 +1,26 @@
# Contributor: William Pitcock <nenolod@dereferenced.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=firefox
pkgver=62.0.3
pkgver=65.0.1
_pkgver=$pkgver
_xulver=$pkgver
pkgrel=2
pkgrel=0
pkgdesc="Firefox web browser"
url="https://www.firefox.com/"
# limited by rust and cargo
arch="x86_64"
license="GPL LGPL MPL"
depends=""
options="!check"
makedepends="
	alsa-lib-dev
	autoconf2.13
	autoconf
	automake
	bsd-compat-headers
	bzip2-dev
	cargo
	cbindgen
	clang-dev
	dbus-glib-dev
	ffmpeg-dev
@@ -27,6 +30,7 @@ makedepends="
	hunspell-dev
	icu-dev
	libevent-dev
	libffi-dev
	libidl-dev
	libjpeg-turbo-dev
	libnotify-dev
@@ -39,9 +43,11 @@ makedepends="
	libxcomposite-dev
	llvm5-dev
	mesa-dev
	nasm
	nspr-dev
	nss-dev
	nss-static
	nodejs
	paxmark
	python3-dev
	sqlite-dev
@@ -64,7 +70,6 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
	mallinfo.patch

	fix-arm-atomics-grsec.patch
	fix-arm-version-detect.patch
	mozilla-build-arm.patch
	disable-moz-stackwalk.patch
	fix-rust-target.patch
@@ -73,7 +78,9 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
	fix-webrtc-glibcisms.patch

	firefox.desktop
	firefox-safe.desktop"
	firefox-safe.desktop
	
	10-debug-fixes.patch"

builddir="${srcdir}/firefox-$pkgver"
_mozappdir=/usr/lib/firefox
@@ -83,71 +90,44 @@ ldpath="$_mozappdir"

prepare() {
	default_prepare

	cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
	# https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
	mkdir -p "$builddir"/objdir
	echo "ac_add_options BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'" >>objdir/.mozconfig
	autoreconf old-configure.in
	cd js/src; autoreconf old-configure.in
}

build() {
	cd "$builddir"/objdir

	export SHELL=/bin/sh
	export BUILD_OFFICIAL=1
	export MOZILLA_OFFICIAL=1
	export USE_SHORT_LIBNAME=1
	# gcc 6
	export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2"

	# set rpath so linker finds the libs
	export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}"

	../configure \
		--prefix=/usr \
		\
		--disable-crashreporter \
		--disable-elf-hack \
		--disable-gold \
		--disable-install-strip \
		--disable-jemalloc \
		--disable-profiling \
		--disable-pulseaudio \
		--disable-strip \
		--disable-tests \
		--disable-updater \
		\
		--enable-alsa \
		--enable-default-toolkit=cairo-gtk3 \
		--enable-official-branding \
		--enable-optimize="$CFLAGS" \
		--enable-pie \
		--enable-startup-notification \
		--enable-system-ffi \
		--enable-system-sqlite \
		--enable-ffmpeg \
		\
		--with-system-bz2 \
		--with-system-icu \
		--with-system-jpeg \
		--with-system-libevent \
		--with-system-libvpx \
		--with-system-nspr \
		--with-system-nss \
		--with-system-pixman \
		--with-system-png \
		--with-system-zlib \
		--with-clang-path=/usr/bin/clang \
		--with-libclang-path=/usr/lib
	make

	# paxmark outside fakeroot
	paxmark -msp dist/bin/xpcshell

	ac_add_options() {
		echo "ac_add_options $1" >>"$builddir"/.mozconfig
	}
	mk_add_options() {
		echo "mk_add_options $1" >>"$builddir"/.mozconfig
	}
	ac_add_options "BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'"
	ac_add_options "--prefix=/usr --disable-jemalloc --disable-updater"
	ac_add_options "--disable-pulseaudio --enable-alsa --disable-elf-hack"
	ac_add_options "--enable-default-toolkit=cairo-gtk3 --enable-official-branding"
	ac_add_options "--enable-optimize=\"$CFLAGS\" --enable-startup-notification"
	ac_add_options "--enable-system-ffi --enable-system-pixman --enable-system-sqlite"
	ac_add_options "--enable-av1 --with-system-bz2 --with-system-icu"
	ac_add_options "--with-system-libevent --with-system-libvpx --with-system-nspr"
	ac_add_options "--with-system-nss --with-system-png  --with-system-zlib"
	ac_add_options "--with-clang-path=/usr/bin/clang --with-libclang-path=/usr/lib"
	ac_add_options "--disable-tests --disable-crashreporter"
	
	./mach configure; ./mach build
}

package() {
	cd "$builddir"/objdir
	cd "$builddir"/obj-x86_64-pc-linux-gnu

	# only used for startupcache creation.
	local paxflags="-msp"
@@ -214,21 +194,21 @@ __EOF__
	rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so
}

sha512sums="487bb7791284367158c79cf7918fecf3d598627a6416e679aeb5d22626089aeffe07762fa2389819ba881c90ece1c5a83cf2d85b2def15b8d5ba0ed1c498b527  firefox-62.0.3.source.tar.xz
sha512sums="cc76a83f6430f501c2260c6b35b5e48f045f5b180daf03375e9ab114a9afd67dfc0146ddb81cd29be4617aadb66a332ed5ebc625cb500df9579e412ed4909599  firefox-65.0.1.source.tar.xz
0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127  stab.h
2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71  fix-fortify-system-wrappers.patch
09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5  fix-fortify-inline.patch
2f713a270f7d1588ec4a0b9c21e5a0d20823954e6a64293ee1a391f80d38af6c0a80b3d35c3ada59b605f6032fb2af3040cd8ca7f424b0e620cc53fd12674fd9  fix-seccomp-bpf.patch
a2925045154f4fd34e5fc056656f4f9da100341529e5d4104d249154db0c7863384083f421ce6e47e0f20566a8b20787fa35444c7933c03cd03f96f06dcd4532  fix-toolkit.patch
b46cb90d4fdd1a925a61e2c6c545489cd542f5d82980c529361c02042eed31d5c26972b5e237c1a020f87ffcfd12736d1f4f6e33eaa83ae156d523c808c718cb  fix-tools.patch
6764e7af43f5a066ac0faf4f8d0747c03739f4f14b51f58c524eb0519dfd28540bdd25569b201a8e20919d0096479cf0e7a8e306fb223aba4c0f177c4df55200  fix-seccomp-bpf.patch
e680a23490908e8be256a8dadee3952f29c4069558548c2b79252640471fa29c221abb0634fc9260a8c9ba755f50f417a77ef66ede87eca8e02d69f74f8b0075  fix-toolkit.patch
a9e44759a584d148360405bf75981a6cb8b3ea0c2a553c13da7c559dc0193b35b2dca32571044cdca7ebd6ecc8c475da126d48a0c6ed19316857e2e88d28b49f  fix-tools.patch
bdcd1b402d2ec94957ba5d08cbad7b1a7f59c251c311be9095208491a05abb05a956c79f27908e1f26b54a3679387b2f33a51e945b650671ad85c0a2d59a5a29  mallinfo.patch
ed0d344c66fc8e1cc83a11e9858b32c42e841cbeedd9eb9438811e9fcc3593dc824a8336d00058d55836cedc970aeadd6a82c6dcd7bc0fb746e564d8b478cc6c  fix-arm-atomics-grsec.patch
015e1ff6dbf920033982b5df95d869a0b7bf56c6964e45e50649ddf46d1ce09563458e45240c3ecb92808662b1300b67507f7af272ba184835d91068a9e7d5b0  fix-arm-version-detect.patch
9a07f214877c8e4f919311b35ceb8b8ea990fb5811c89d060c0dc5f87a864ac678649fa2c0f1c1459e949e5abb81a894996e2f82b0f94d44e21cc94273fc6d5b  fix-arm-atomics-grsec.patch
e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18  mozilla-build-arm.patch
4797d2d89ac63a57abb826b8ea9f751314ce66946194033deb9d78c2ff377b88106fd2c7bc5034dc13ad03dd5085b1893c3ccae1a9e63fde35655bb0921f7188  disable-moz-stackwalk.patch
61b3c2ab34f43ada0b8c1c9c26fc70f82719b7f344a503325a350749fd6921255134d414c1eba3919e5c3bc133f7e0a164400d3c8af5ec6298afb8c7a146a4da  disable-moz-stackwalk.patch
42cc44fda4b05259b38f055d6f51461746aa89a474cedc5e92fb9d20879da0d12b1b515b273a549e7302cda9c7eddde20d5fdba09853e5c658784ad6d0b20078  fix-rust-target.patch
a50b412edf9573a0bd04a43578b1c927967a616b73a5995eefb15bfa78fd2bd14e36ec05315a0703f6370ecd524e6bcb012e7285beb1245e9add9b8553acb79e  fix-bug-1261392.patch
01b48a708cc6bc6e3cd7cc7b16f5137ec344566ac891d699b65e322bc992726072fa14a54cef1a7775799fcbbcf90a6c170107c8524caba3bc311b42d93b7581  rust-unitialized-field.patch
75b97d59e81e5f1debe6a459b535da704d5a2ac4a57c446d16058fd18db81e22317fcc3ec11b89f569f4de87e8e80ced027c0e72e7f1dd16f6fd0feb6b263919  fix-webrtc-glibcisms.patch
7bc98f6370e2ca170b7bbfbddd8bd684df6c11530f38152f37031809f2b6b0bffde70a998939d97ed460d807fa7decc94b85a1bb6bf6464a63733e0f9d0f7ac6  rust-unitialized-field.patch
44c95a862b04747658b666ab6e2efb77e57e63e78b1a81e489410bec4ef4c81956548131b922a50f9c069a3340c2b6f60a055cebf3f889f4d7d8a6e94eead11f  fix-webrtc-glibcisms.patch
f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454  firefox.desktop
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop"
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop
8ade2c0c767b5097f25b06bf5f5543141131e302390ea86a89becec598f039a72cbda6722bedfd773ff946b592a2f92a5c442d024de47d220c41dcb2af80219f  10-debug-fixes.patch"
diff --git a/testing/firefox/disable-moz-stackwalk.patch b/testing/firefox/disable-moz-stackwalk.patch
index c83ae7eae9..8f4924bac1 100644
--- a/testing/firefox/disable-moz-stackwalk.patch
+++ b/testing/firefox/disable-moz-stackwalk.patch
@@ -1,12 +1,10 @@
diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
index a208bad..14e1f0d 100644
---- a/mozglue/misc/StackWalk.cpp
+++ b/mozglue/misc/StackWalk.cpp
@@ -41,13 +41,7 @@ static CriticalAddress gCriticalAddress;
--- /mozglue/misc/StackWalk.cpp
@@ -32,13 +32,7 @@
 #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
 #endif
 
-#if (defined(linux) && \
-#if (defined(linux) &&                                            \
-     ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
-      defined(HAVE__UNWIND_BACKTRACE)))
-#define MOZ_STACKWALK_SUPPORTS_LINUX 1
diff --git a/testing/firefox/fix-arm-atomics-grsec.patch b/testing/firefox/fix-arm-atomics-grsec.patch
index 0eb58f093f..c7e12ca0f0 100644
--- a/testing/firefox/fix-arm-atomics-grsec.patch
+++ b/testing/firefox/fix-arm-atomics-grsec.patch
@@ -1,8 +1,8 @@
---- mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig
+++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h
@@ -12,43 +35,194 @@
 namespace base {
 namespace subtle {
--- ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h
@@ -39,43 +39,194 @@
 namespace protobuf {
 namespace internal {
 
-// 0xffff0fc0 is the hard coded address of a function provided by
-// the kernel which implements an atomic compare-exchange. On older
@@ -217,7 +217,7 @@
   return old_value;
 }
 
@@ -63,36 +237,57 @@
@@ -90,8 +241,7 @@
     // Atomic exchange the old value with an incremented one.
     Atomic32 old_value = *ptr;
     Atomic32 new_value = old_value + increment;
@@ -227,23 +227,19 @@
       // The exchange took place as expected.
       return new_value;
     }
     // Otherwise, *ptr changed mid-loop and we need to retry.
   }
--
 }
 
@@ -102,23 +252,45 @@
 inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
                                        Atomic32 old_value,
                                        Atomic32 new_value) {
-  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
+  Atomic32 prev_value;
+  for (;;) {
+    prev_value = *ptr;
+Atomic32 prev_value;                                     
+  for (;;) {                  
+    prev_value = *ptr;                                               
+    if (prev_value != old_value) {
+      // Always ensure acquire semantics.
+      // Always ensure acquire semantics.                          
+      MemoryBarrier();
+      return prev_value;
+    }
+      return prev_value;     
+    }                         
+    if (!LinuxKernelCmpxchg(old_value, new_value, ptr))
+      return old_value;
+  }
@@ -253,38 +249,37 @@
                                        Atomic32 old_value,
                                        Atomic32 new_value) {
-  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
+  // This could be implemented as:
+  //    MemoryBarrier();
+  //    return NoBarrier_CompareAndSwap();
+  //
+  // This could be implemented as:                            
+  //    MemoryBarrier();                                             
+  //    return NoBarrier_CompareAndSwap();                    
+  //                                                               
+  // But would use 3 barriers per succesful CAS. To save performance,
+  // use Acquire_CompareAndSwap(). Its implementation guarantees that:
+  // - A succesful swap uses only 2 barriers (in the kernel helper).
+  // - An early return due to (prev_value != old_value) performs
+  //   a memory barrier with no store, which is equivalent to the
+  //   generic implementation above.
+  // - A succesful swap uses only 2 barriers (in the kernel helper).  
+  // - An early return due to (prev_value != old_value) performs      
+  //   a memory barrier with no store, which is equivalent to the     
+  //   generic implementation above.                                  
+  return Acquire_CompareAndSwap(ptr, old_value, new_value);
 }
 
+#else
+#  error "Your CPU's ARM architecture is not supported yet"
+#endif
+
+// NOTE: Atomicity of the following load and store operations is only
+#else                                                                 
+#  error "Your CPU's ARM architecture is not supported yet"           
+#endif                                                                
+                                                                      
+// NOTE: Atomicity of the following load and store operations is only 
+// guaranteed in case of 32-bit alignement of |ptr| values.
+
 
 inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
   *ptr = value;
 }
 
-inline void MemoryBarrier() {
-inline void MemoryBarrierInternal() {
-  pLinuxKernelMemoryBarrier();
-}
-
 inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
   *ptr = value;
   MemoryBarrier();
@@ -103,9 +298,7 @@
   MemoryBarrierInternal();
@@ -129,9 +301,7 @@
   *ptr = value;
 }
 
@@ -295,12 +290,3 @@
 
 inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
   Atomic32 value = *ptr;
@@ -118,7 +311,6 @@
   return *ptr;
 }
 
-} // namespace base::subtle
-} // namespace base
+} }  // namespace base::subtle
 
 #endif  // BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
diff --git a/testing/firefox/fix-seccomp-bpf.patch b/testing/firefox/fix-seccomp-bpf.patch
index ee6d666400..7f9fbae3a7 100644
--- a/testing/firefox/fix-seccomp-bpf.patch
+++ b/testing/firefox/fix-seccomp-bpf.patch
@@ -1,6 +1,5 @@
diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
---- firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:53:46.083976137 +0000
+++ firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:51:22.084596411 +0000
--- ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:53:46.083976137 +0000
@@ -25,6 +25,11 @@
 #include "sandbox/linux/system_headers/linux_seccomp.h"
 #include "sandbox/linux/system_headers/linux_signal.h"
@@ -13,14 +12,13 @@ diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf
 namespace {
 
 struct arch_sigsys {
diff -ru firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp
---- firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp	2018-10-01 18:35:28.000000000 +0000
+++ firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp	2018-12-14 08:57:50.645264590 +0000
@@ -1005,6 +1005,7 @@
         // ffmpeg, and anything else that calls isatty(), will be told
         // that nothing is a typewriter:
         .ElseIf(request == TCGETS, Error(ENOTTY))
+        .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
         // Allow anything that isn't a tty ioctl, for now; bug 1302711
         // will cover changing this to a default-deny policy.
         .ElseIf(shifted_type != kTtyIoctls, Allow())
--- ./security/sandbox/linux/SandboxFilter.cpp	2018-10-01 18:35:28.000000000 +0000
@@ -997,6 +997,7 @@
             // ffmpeg, and anything else that calls isatty(), will be told
             // that nothing is a typewriter:
             .ElseIf(request == TCGETS, Error(ENOTTY))
+            .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
             // Allow anything that isn't a tty ioctl, for now; bug 1302711
             // will cover changing this to a default-deny policy.
             .ElseIf(shifted_type != kTtyIoctls, Allow())
diff --git a/testing/firefox/fix-toolkit.patch b/testing/firefox/fix-toolkit.patch
index 58fe5a3a9a..c79b9a15d4 100644
--- a/testing/firefox/fix-toolkit.patch
+++ b/testing/firefox/fix-toolkit.patch
@@ -55,21 +55,6 @@ index 93fdad7..f34e5e0 100644
 /* End of x86-64 definitions                                                 */
 #elif defined(__mips__)
 #if _MIPS_SIM == _MIPS_SIM_ABI32
diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h
index 026e7ed..0801f14 100644
---- a/toolkit/mozapps/update/common/updatedefines.h
+++ b/toolkit/mozapps/update/common/updatedefines.h
@@ -117,7 +117,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt, ...)
 
 #ifdef SOLARIS
 # include <sys/stat.h>
-#else
+#elif !defined(__linux__) || defined(__GLIBC__)
 # include <fts.h>
 #endif
 # include <dirent.h>
diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
index 257ccb4..01314e4 100644
--- a/toolkit/mozapps/update/updater/updater.cpp
+++ b/toolkit/mozapps/update/updater/updater.cpp
@@ -3737,6 +3737,7 @@ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
@@ -88,3 +73,14 @@ index 257ccb4..01314e4 100644
 
   return rv;
 }
--- ./toolkit/mozapps/update/common/updatedefines.h
@@ -102,7 +102,7 @@
 
 #ifdef SOLARIS
 #include <sys/stat.h>
-#else
+#elif !defined(__linux__) || defined(__GLIBC__)
 #include <fts.h>
 #endif
 #include <dirent.h>
diff --git a/testing/firefox/fix-tools.patch b/testing/firefox/fix-tools.patch
index 84f7fa9cb8..ed2c7f2bca 100644
--- a/testing/firefox/fix-tools.patch
+++ b/testing/firefox/fix-tools.patch
@@ -11,12 +11,12 @@
 #include "MainThreadUtils.h"
--- a/tools/profiler/lul/LulElf.cpp
+++ b/tools/profiler/lul/LulElf.cpp
@@ -579,10 +579,10 @@
@@ -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) {
 string BaseFileName(const string& filename) {
-  // Lots of copies!  basename's behavior is less than ideal.
-  char *c_filename = strdup(filename.c_str());
-  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
@@ -25,13 +25,13 @@
+  string base = p ? p+1 : c_filename;
   return base;
 }

 
--- a/tools/profiler/core/platform-linux-android.cpp.orig
+++ b/tools/profiler/core/platform-linux-android.cpp
@@ -534,9 +534,11 @@
 void
 Registers::SyncPopulate()
 {
@@ -497,8 +497,10 @@
 ucontext_t sSyncUContext;
 
 void Registers::SyncPopulate() {
+#if defined(__GLIBC__)
   if (!getcontext(&sSyncUContext)) {
     PopulateRegsFromContext(*this, &sSyncUContext);
@@ -39,4 +39,4 @@
+#endif
 }
 #endif
 

diff --git a/testing/firefox/fix-webrtc-glibcisms.patch b/testing/firefox/fix-webrtc-glibcisms.patch
index dc9206b50e..95b3a55eeb 100644
--- a/testing/firefox/fix-webrtc-glibcisms.patch
+++ b/testing/firefox/fix-webrtc-glibcisms.patch
@@ -1,13 +1,13 @@
---- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2018-05-09 23:48:44.677389171 +0200
+++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2018-05-09 23:48:56.254373557 +0200
@@ -11,7 +11,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <features.h>
--- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c
@@ -14,7 +14,9 @@
 #ifndef __GLIBC_PREREQ
 #define __GLIBC_PREREQ(a, b) 0
 #endif
-#if __GLIBC_PREREQ(2, 16)
+#if !defined(__GLIBC__)
+#include <sys/auxv.h>
+#elif __GLIBC_PREREQ(2, 16)
+#if !defined(__GLIBC__)                                                                                                                                       
+#include <sys/auxv.h>                                                                                                                                         
+#elif __GLIBC_PREREQ(2, 16) 
 #include <sys/auxv.h>
 #else
 #include <fcntl.h>
diff --git a/testing/firefox/rust-unitialized-field.patch b/testing/firefox/rust-unitialized-field.patch
index 67ef3a02ab..3ef7f055ca 100644
--- a/testing/firefox/rust-unitialized-field.patch
+++ b/testing/firefox/rust-unitialized-field.patch
@@ -1,11 +1,14 @@
---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
--- ./media/audioipc/audioipc/src/cmsg.rs
@@ -105,14 +105,12 @@
             if cmsg.remaining_mut() < cmsg_len {
                 return Err(Error::NoSpace);
             }
 

-            let cmsghdr = cmsghdr {
-                cmsg_len: cmsg_len as _,
-                #[cfg(target_env = "musl")]
-                __pad1: 0,
-                cmsg_level: level,
-                cmsg_type: kind,
-            };
-- 
2.20.1



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] Re: [PATCH] testing/firefox: upgrade to 65.0

Bradley Saulteaux
Details
Message ID
<CAJNatn9q_7iNPc9FQONUsHpa2jFpsGhrvYsG0-A6pmi6ZiCsAw@mail.gmail.com>
In-Reply-To
<20190219170104.32697-1-~@bradso.to> (view parent)
Sender timestamp
1550596088
DKIM signature
missing
Download raw message
*upgrade to 65.0.1*

On Tue, 19 Feb 2019 at 10:01, Bradley Saulteaux <bradsoto@gmail.com> wrote:

> https://www.firefox.com/
> Firefox web browser
> ---
>  community/ffmpeg/APKBUILD                    |   8 +-
>  community/libaom/APKBUILD                    |  26 +++++
>  main/icu/10-firefox-65.0.1-fix.patch         |  23 ++++
>  main/icu/APKBUILD                            |  10 +-
>  main/libvpx/10-find-diff.patch               |  11 ++
>  main/libvpx/APKBUILD                         |  17 ++-
>  testing/cbindgen/APKBUILD                    |  26 +++++
>  testing/firefox/10-debug-fixes.patch         |  25 +++++
>  testing/firefox/APKBUILD                     | 106 ++++++++-----------
>  testing/firefox/disable-moz-stackwalk.patch  |  10 +-
>  testing/firefox/fix-arm-atomics-grsec.patch  |  74 ++++++-------
>  testing/firefox/fix-seccomp-bpf.patch        |  26 +++--
>  testing/firefox/fix-toolkit.patch            |  26 ++---
>  testing/firefox/fix-tools.patch              |  18 ++--
>  testing/firefox/fix-webrtc-glibcisms.patch   |  18 ++--
>  testing/firefox/rust-unitialized-field.patch |  11 +-
>  16 files changed, 251 insertions(+), 184 deletions(-)
>  create mode 100644 community/libaom/APKBUILD
>  create mode 100644 main/icu/10-firefox-65.0.1-fix.patch
>  create mode 100644 main/libvpx/10-find-diff.patch
>  create mode 100644 testing/cbindgen/APKBUILD
>  create mode 100644 testing/firefox/10-debug-fixes.patch
>
> diff --git a/community/ffmpeg/APKBUILD b/community/ffmpeg/APKBUILD
> index 4d2ac5757e..85cb74408a 100644
> --- a/community/ffmpeg/APKBUILD
> +++ b/community/ffmpeg/APKBUILD
> @@ -4,7 +4,7 @@
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=ffmpeg
>  pkgver=4.1.1
> -pkgrel=0
> +pkgrel=1
>  pkgdesc="Complete and free Internet live audio and video broadcasting
> solution for Linux/Unix"
>  url="http://ffmpeg.org/"
>  arch="all"
> @@ -12,7 +12,7 @@ license="GPL"
>  options="!check" # tests/data/hls-lists.append.m3u8 fails
>  subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
>  makedepends="gnutls-dev lame-dev libvorbis-dev xvidcore-dev zlib-dev
> libvdpau-dev
> -       imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev
> libvpx-dev
> +       imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev
> libaom-dev
>         libvpx-dev sdl2-dev libxfixes-dev libva-dev alsa-lib-dev
>         v4l-utils-dev yasm opus-dev x265-dev libass-dev"
>  checkdepends="rsync"
> @@ -71,13 +71,13 @@ build() {
>         x86 | arm*) _asm="--disable-asm" ;;
>         esac
>
> -       cd "$builddir"
>         ./configure \
>                 --prefix=/usr \
>                 --enable-avresample \
>                 --enable-avfilter \
>                 --enable-gnutls \
>                 --enable-gpl \
> +               --enable-libaom \
>                 --enable-libass \
>                 --enable-libmp3lame \
>                 --enable-libvorbis \
> @@ -106,7 +106,6 @@ build() {
>
>  # https://ffmpeg.org/fate.html
>  check() {
> -       cd "$builddir"
>         ./configure \
>                 --samples=fate-suite/
>         make fate-rsync
> @@ -115,7 +114,6 @@ check() {
>  }
>
>  package() {
> -       cd "$builddir"
>         make DESTDIR="$pkgdir" install install-man
>         install -D -m755 tools/qt-faststart "$pkgdir/usr/bin/qt-faststart"
>  #      strip --strip-debug "$pkgdir"/usr/lib/*.a
> diff --git a/community/libaom/APKBUILD b/community/libaom/APKBUILD
> new file mode 100644
> index 0000000000..a2948a4e4c
> --- /dev/null
> +++ b/community/libaom/APKBUILD
> @@ -0,0 +1,26 @@
> +# Maintainer: Bradley Saulteaux <~@bradso.to>
> +pkgname=libaom
> +pkgver=1.0.0
> +pkgrel=0
> +pkgdesc="Alliance for Open Media"
> +url="https://aomedia.googlesource.com/aom/"
> +arch="all"
> +license="BSD-2-Clause"
> +depends=""
> +makedepends="cmake python yasm"
> +install=""
> +options="!check" #tests fail at AV1/AV1DecodeMultiThreadedTest.MD5Match
> +subpackages="$pkgname-dev"
> +source="$pkgname-$pkgver.tar.gz::
> https://aomedia.googlesource.com/aom/+archive/v$pkgver.tar.gz"
> +builddir="$srcdir/build"
> +build() {
> +       cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS=1 ..
> +       sed -i 's/0.1.0/1.0.0/g' aom.pc
> +}
> +check() {
> +       make runtests
> +}
> +package() {
> +       make DESTDIR="$pkgdir" install
> +}
> +sha512sums="f506a9399cfcf2aa3473639210511270c5a44b789eb51ce5616bd61f18a18e64080240a7b1ea2502d27df40ddf290b8f4686282f1eda3ffc57c45c803474f768
> libaom-1.0.0.tar.gz"
> diff --git a/main/icu/10-firefox-65.0.1-fix.patch
> b/main/icu/10-firefox-65.0.1-fix.patch
> new file mode 100644
> index 0000000000..6c47bdde2a
> --- /dev/null
> +++ b/main/icu/10-firefox-65.0.1-fix.patch
> @@ -0,0 +1,23 @@
> +
> https://github.com/unicode-org/icu/commit/8baff8f03e07d8e02304d0c888d0bb21ad2eeb01
> +fixed in 63.2
> +--- ./common/unicode/urename.h
> ++++ ./common/unicode/urename.h.
> +@@ -110,7 +110,6 @@
> + #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
> + #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
> + #define allowedHourFormatsCleanup
> U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
> +-#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
> + #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
> + #define dayPeriodRulesCleanup
> U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
> + #define deleteAllowedHourFormats
> U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
> +--- ./i18n/uspoof.cpp
> ++++ ./i18n/uspoof.cpp.
> +@@ -547,7 +547,7 @@
> +     return uspoof_check2UnicodeString(sc, id, NULL, status);
> + }
> +
> +-int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id,
> CheckResult* checkResult, UErrorCode* status) {
> ++static int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id,
> CheckResult* checkResult, UErrorCode* status) {
> +     U_ASSERT(This != NULL);
> +     U_ASSERT(checkResult != NULL);
> +     checkResult->clear();
> diff --git a/main/icu/APKBUILD b/main/icu/APKBUILD
> index 14b6b66a4c..9bc7bc65e3 100644
> --- a/main/icu/APKBUILD
> +++ b/main/icu/APKBUILD
> @@ -6,7 +6,7 @@ pkgver=63.1
>  # convert x.y.z to x_y_z
>  _ver=${pkgver//./_}
>
> -pkgrel=0
> +pkgrel=1
>  pkgdesc="International Components for Unicode library"
>  url="http://www.icu-project.org/"
>  arch="all"
> @@ -17,6 +17,7 @@ depends_dev="$pkgname=$pkgver-r$pkgrel"
>  checkdepends="diffutils"
>  makedepends=
>  source="
> http://download.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver-src.tgz
> +       10-firefox-65.0.1-fix.patch
>         "
>
>  # secfixes:
> @@ -30,7 +31,6 @@ source="
> http://download.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver
>  builddir="$srcdir"/icu/source
>
>  prepare() {
> -       cd "$builddir"
>         default_prepare
>         update_config_sub
>
> @@ -49,7 +49,6 @@ prepare() {
>  }
>
>  build() {
> -       cd "$builddir"
>         ./configure \
>                 --build=$CBUILD \
>                 --host=$CHOST \
> @@ -67,12 +66,10 @@ check() {
>         case "$CARCH" in
>                 arm*|x86) return 0;;
>         esac
> -       cd "$builddir"
>         make check
>  }
>
>  package() {
> -       cd "$builddir"
>         make -j1 DESTDIR="$pkgdir" install
>         chmod +x "$pkgdir"/usr/bin/icu-config
>         install -Dm644 "$srcdir"/icu/license.html \
> @@ -90,4 +87,5 @@ libs() {
>         replaces="icu"
>  }
>
> -sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c
> icu4c-63_1-src.tgz"
> +sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c
> icu4c-63_1-src.tgz
> +76fc0b69ef5dd78d31ed88e6b2976b3ff8b7715f03a94faef79dc2210fe75b9db1de47f1ccc8a5f783760e41de7da3a32628abc9e1ec44edcca98207c91d952d
> 10-firefox-65.0.1-fix.patch"
> diff --git a/main/libvpx/10-find-diff.patch
> b/main/libvpx/10-find-diff.patch
> new file mode 100644
> index 0000000000..c0d9f9955b
> --- /dev/null
> +++ b/main/libvpx/10-find-diff.patch
> @@ -0,0 +1,11 @@
> +--- ./configure
> ++++ ./configure.
> +@@ -166,7 +166,7 @@
> +     [ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
> + done
> +
> +-if ! diff --version >/dev/null; then
> ++if ! which diff &> /dev/null; then
> +   die "diff missing: Try installing diffutils via your package manager."
> + fi
> +
> diff --git a/main/libvpx/APKBUILD b/main/libvpx/APKBUILD
> index 767b2b21fa..a6a4a4a490 100644
> --- a/main/libvpx/APKBUILD
> +++ b/main/libvpx/APKBUILD
> @@ -1,7 +1,7 @@
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=libvpx
> -pkgver=1.6.1
> -pkgrel=1
> +pkgver=1.7.0
> +pkgrel=0
>  pkgdesc="Library for the vp8 codec"
>  url="https://www.webmproject.org/"
>  arch="all"
> @@ -9,13 +9,12 @@ license="GPL"
>  depends=""
>  makedepends="coreutils yasm bash perl"
>  subpackages="$pkgname-dev $pkgname-utils"
> -source="
> https://storage.googleapis.com/downloads.webmproject.org/releases/webm/$pkgname-$pkgver.tar.bz2
> +source="$pkgname-$pkgver.tar.gz::
> https://chromium.googlesource.com/webm/$pkgname/+archive/v$pkgver.tar.gz
>         fix-arm-float-abi.patch
> +       10-find-diff.patch
>         "
> -
> -builddir="$srcdir"/$pkgname-$pkgver
> +builddir="$srcdir"
>  build() {
> -       cd "$builddir"
>         # build fix for arm
>         export CROSS=" "
>         bash ./configure \
> @@ -31,7 +30,6 @@ build() {
>  }
>
>  package() {
> -       cd "$builddir"
>         make DIST_DIR="$pkgdir"/usr install
>         chmod 644 "$pkgdir"/usr/include/vpx/*.h \
>                 "$pkgdir"/usr/lib/pkgconfig/*
> @@ -45,5 +43,6 @@ utils() {
>         mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
>  }
>
> -sha512sums="1a4b009fe1737715c6563a79848126a5859394a5074b1e9cca9bc2e213df90890c15e708040d5f2c96c7c21e268f51e1352ac6911514bf891a4bf3eea154159d
> libvpx-1.6.1.tar.bz2
> -4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c
> fix-arm-float-abi.patch"
> +sha512sums="6e114a6e8470b05153a8c41b7f30adb37d8cf99dc1c3d016867e5578b4f69905d7a1fcd902b6855f3f6b3e63ae305eb3fadd53359f2c8f344f3d701c3d4882b5
> libvpx-1.7.0.tar.gz
> +4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c
> fix-arm-float-abi.patch
> +c14015273a2f081ef722f752a7ac17204e7fd5c42fb7a4bb457afdff1fcd2cc276bd34ca80a6e318968e0fa2e6ba49ceee026dd1bd7ee1b2806dbde70fd0a7fb
> 10-find-diff.patch"
> diff --git a/testing/cbindgen/APKBUILD b/testing/cbindgen/APKBUILD
> new file mode 100644
> index 0000000000..6a58bcb45d
> --- /dev/null
> +++ b/testing/cbindgen/APKBUILD
> @@ -0,0 +1,26 @@
> +# Maintainer: Bradley Saulteaux <~@bradso.to>
> +pkgname=cbindgen
> +pkgver=0.8.0
> +pkgrel=0
> +pkgdesc="A tool for generating C bindings to Rust code"
> +url="https://github.com/eqrion/cbindgen"
> +# limited by rust and cargo
> +arch="x86_64"
> +license="MPL2"
> +depends=""
> +subpackages="$pkgname-doc"
> +makedepends="cargo"
> +install=""
> +source="$pkgname-$pkgver.tar.gz::
> https://github.com/eqrion/$pkgname/archive/v$pkgver.tar.gz"
> +builddir="${srcdir}/$pkgname-$pkgver"
> +build() {
> +       cargo build --release
> +}
> +check() {
> +       cargo test --release
> +}
> +package() {
> +       install -Dt "$pkgdir/usr/bin" target/release/cbindgen
> +       install -Dt "$pkgdir/usr/share/doc/$pkgname" -m644 README.md
> +}
> +sha512sums="634a61556b3ae20bb246d1c34c2869852af1e1003cbf0481a346191eb48f812d19755ae8e895628d53a3ab7792b977255bfb25a50a2dbb9baf18b4f3fc783b18
> cbindgen-0.8.0.tar.gz"
> diff --git a/testing/firefox/10-debug-fixes.patch
> b/testing/firefox/10-debug-fixes.patch
> new file mode 100644
> index 0000000000..968091935e
> --- /dev/null
> +++ b/testing/firefox/10-debug-fixes.patch
> @@ -0,0 +1,25 @@
> +--- ./intl/locale/LocaleService.cpp
> ++++ ./intl/locale/LocaleService.cpp.
> +@@ -526,7 +526,6 @@
> +     GetGREFileContents("update.locale", &locale);
> +     locale.Trim(" \t\n\r");
> +     // This should never be empty.
> +-    MOZ_ASSERT(!locale.IsEmpty());
> +     if (SanitizeForBCP47(locale, true)) {
> +       mDefaultLocale.Assign(locale);
> +     }
> +--- ./browser/installer/package-manifest.in
> ++++ ./browser/installer/package-manifest.in.
> +@@ -499,12 +499,6 @@
> + ; svg
> + @RESPATH@/res/svg.css
> +
> +-; [Layout Debugger]
> +-#ifdef MOZ_DEBUG
> +-@RESPATH@/chrome/layoutdebug@JAREXT@
> +-@RESPATH@/chrome/layoutdebug.manifest
> +-#endif
> +-
> + ; [Personal Security Manager]
> + ;
> + ; NSS libraries are signed in the staging directory,
> diff --git a/testing/firefox/APKBUILD b/testing/firefox/APKBUILD
> index b31c1997b7..30ca2dc8fc 100644
> --- a/testing/firefox/APKBUILD
> +++ b/testing/firefox/APKBUILD
> @@ -1,23 +1,26 @@
>  # Contributor: William Pitcock <nenolod@dereferenced.org>
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=firefox
> -pkgver=62.0.3
> +pkgver=65.0.1
>  _pkgver=$pkgver
>  _xulver=$pkgver
> -pkgrel=2
> +pkgrel=0
>  pkgdesc="Firefox web browser"
>  url="https://www.firefox.com/"
>  # limited by rust and cargo
>  arch="x86_64"
>  license="GPL LGPL MPL"
>  depends=""
> +options="!check"
>  makedepends="
>         alsa-lib-dev
>         autoconf2.13
> +       autoconf
>         automake
>         bsd-compat-headers
>         bzip2-dev
>         cargo
> +       cbindgen
>         clang-dev
>         dbus-glib-dev
>         ffmpeg-dev
> @@ -27,6 +30,7 @@ makedepends="
>         hunspell-dev
>         icu-dev
>         libevent-dev
> +       libffi-dev
>         libidl-dev
>         libjpeg-turbo-dev
>         libnotify-dev
> @@ -39,9 +43,11 @@ makedepends="
>         libxcomposite-dev
>         llvm5-dev
>         mesa-dev
> +       nasm
>         nspr-dev
>         nss-dev
>         nss-static
> +       nodejs
>         paxmark
>         python3-dev
>         sqlite-dev
> @@ -64,7 +70,6 @@ source="
> https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
>         mallinfo.patch
>
>         fix-arm-atomics-grsec.patch
> -       fix-arm-version-detect.patch
>         mozilla-build-arm.patch
>         disable-moz-stackwalk.patch
>         fix-rust-target.patch
> @@ -73,7 +78,9 @@ source="
> https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
>         fix-webrtc-glibcisms.patch
>
>         firefox.desktop
> -       firefox-safe.desktop"
> +       firefox-safe.desktop
> +
> +       10-debug-fixes.patch"
>
>  builddir="${srcdir}/firefox-$pkgver"
>  _mozappdir=/usr/lib/firefox
> @@ -83,71 +90,44 @@ ldpath="$_mozappdir"
>
>  prepare() {
>         default_prepare
> -
>         cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
>         # https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
> -       mkdir -p "$builddir"/objdir
> -       echo "ac_add_options BINDGEN_CFLAGS='-I/usr/include/nspr
> -I/usr/include/pixman-1'" >>objdir/.mozconfig
> +       autoreconf old-configure.in
> +       cd js/src; autoreconf old-configure.in
>  }
>
>  build() {
> -       cd "$builddir"/objdir
> -
>         export SHELL=/bin/sh
>         export BUILD_OFFICIAL=1
>         export MOZILLA_OFFICIAL=1
>         export USE_SHORT_LIBNAME=1
>         # gcc 6
>         export CXXFLAGS="-fno-delete-null-pointer-checks
> -fno-schedule-insns2"
> -
>         # set rpath so linker finds the libs
>         export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}"
> -
> -       ../configure \
> -               --prefix=/usr \
> -               \
> -               --disable-crashreporter \
> -               --disable-elf-hack \
> -               --disable-gold \
> -               --disable-install-strip \
> -               --disable-jemalloc \
> -               --disable-profiling \
> -               --disable-pulseaudio \
> -               --disable-strip \
> -               --disable-tests \
> -               --disable-updater \
> -               \
> -               --enable-alsa \
> -               --enable-default-toolkit=cairo-gtk3 \
> -               --enable-official-branding \
> -               --enable-optimize="$CFLAGS" \
> -               --enable-pie \
> -               --enable-startup-notification \
> -               --enable-system-ffi \
> -               --enable-system-sqlite \
> -               --enable-ffmpeg \
> -               \
> -               --with-system-bz2 \
> -               --with-system-icu \
> -               --with-system-jpeg \
> -               --with-system-libevent \
> -               --with-system-libvpx \
> -               --with-system-nspr \
> -               --with-system-nss \
> -               --with-system-pixman \
> -               --with-system-png \
> -               --with-system-zlib \
> -               --with-clang-path=/usr/bin/clang \
> -               --with-libclang-path=/usr/lib
> -       make
> -
> -       # paxmark outside fakeroot
> -       paxmark -msp dist/bin/xpcshell
> -
> +       ac_add_options() {
> +               echo "ac_add_options $1" >>"$builddir"/.mozconfig
> +       }
> +       mk_add_options() {
> +               echo "mk_add_options $1" >>"$builddir"/.mozconfig
> +       }
> +       ac_add_options "BINDGEN_CFLAGS='-I/usr/include/nspr
> -I/usr/include/pixman-1'"
> +       ac_add_options "--prefix=/usr --disable-jemalloc --disable-updater"
> +       ac_add_options "--disable-pulseaudio --enable-alsa
> --disable-elf-hack"
> +       ac_add_options "--enable-default-toolkit=cairo-gtk3
> --enable-official-branding"
> +       ac_add_options "--enable-optimize=\"$CFLAGS\"
> --enable-startup-notification"
> +       ac_add_options "--enable-system-ffi --enable-system-pixman
> --enable-system-sqlite"
> +       ac_add_options "--enable-av1 --with-system-bz2 --with-system-icu"
> +       ac_add_options "--with-system-libevent --with-system-libvpx
> --with-system-nspr"
> +       ac_add_options "--with-system-nss --with-system-png
> --with-system-zlib"
> +       ac_add_options "--with-clang-path=/usr/bin/clang
> --with-libclang-path=/usr/lib"
> +       ac_add_options "--disable-tests --disable-crashreporter"
> +
> +       ./mach configure; ./mach build
>  }
>
>  package() {
> -       cd "$builddir"/objdir
> +       cd "$builddir"/obj-x86_64-pc-linux-gnu
>
>         # only used for startupcache creation.
>         local paxflags="-msp"
> @@ -214,21 +194,21 @@ __EOF__
>         rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so
>  }
>
> -sha512sums="487bb7791284367158c79cf7918fecf3d598627a6416e679aeb5d22626089aeffe07762fa2389819ba881c90ece1c5a83cf2d85b2def15b8d5ba0ed1c498b527
> firefox-62.0.3.source.tar.xz
> +sha512sums="cc76a83f6430f501c2260c6b35b5e48f045f5b180daf03375e9ab114a9afd67dfc0146ddb81cd29be4617aadb66a332ed5ebc625cb500df9579e412ed4909599
> firefox-65.0.1.source.tar.xz
>  0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127
> stab.h
>  2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71
> fix-fortify-system-wrappers.patch
>  09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5
> fix-fortify-inline.patch
> -2f713a270f7d1588ec4a0b9c21e5a0d20823954e6a64293ee1a391f80d38af6c0a80b3d35c3ada59b605f6032fb2af3040cd8ca7f424b0e620cc53fd12674fd9
> fix-seccomp-bpf.patch
> -a2925045154f4fd34e5fc056656f4f9da100341529e5d4104d249154db0c7863384083f421ce6e47e0f20566a8b20787fa35444c7933c03cd03f96f06dcd4532
> fix-toolkit.patch
> -b46cb90d4fdd1a925a61e2c6c545489cd542f5d82980c529361c02042eed31d5c26972b5e237c1a020f87ffcfd12736d1f4f6e33eaa83ae156d523c808c718cb
> fix-tools.patch
> +6764e7af43f5a066ac0faf4f8d0747c03739f4f14b51f58c524eb0519dfd28540bdd25569b201a8e20919d0096479cf0e7a8e306fb223aba4c0f177c4df55200
> fix-seccomp-bpf.patch
> +e680a23490908e8be256a8dadee3952f29c4069558548c2b79252640471fa29c221abb0634fc9260a8c9ba755f50f417a77ef66ede87eca8e02d69f74f8b0075
> fix-toolkit.patch
> +a9e44759a584d148360405bf75981a6cb8b3ea0c2a553c13da7c559dc0193b35b2dca32571044cdca7ebd6ecc8c475da126d48a0c6ed19316857e2e88d28b49f
> fix-tools.patch
>  bdcd1b402d2ec94957ba5d08cbad7b1a7f59c251c311be9095208491a05abb05a956c79f27908e1f26b54a3679387b2f33a51e945b650671ad85c0a2d59a5a29
> mallinfo.patch
> -ed0d344c66fc8e1cc83a11e9858b32c42e841cbeedd9eb9438811e9fcc3593dc824a8336d00058d55836cedc970aeadd6a82c6dcd7bc0fb746e564d8b478cc6c
> fix-arm-atomics-grsec.patch
> -015e1ff6dbf920033982b5df95d869a0b7bf56c6964e45e50649ddf46d1ce09563458e45240c3ecb92808662b1300b67507f7af272ba184835d91068a9e7d5b0
> fix-arm-version-detect.patch
> +9a07f214877c8e4f919311b35ceb8b8ea990fb5811c89d060c0dc5f87a864ac678649fa2c0f1c1459e949e5abb81a894996e2f82b0f94d44e21cc94273fc6d5b
> fix-arm-atomics-grsec.patch
>  e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18
> mozilla-build-arm.patch
> -4797d2d89ac63a57abb826b8ea9f751314ce66946194033deb9d78c2ff377b88106fd2c7bc5034dc13ad03dd5085b1893c3ccae1a9e63fde35655bb0921f7188
> disable-moz-stackwalk.patch
> +61b3c2ab34f43ada0b8c1c9c26fc70f82719b7f344a503325a350749fd6921255134d414c1eba3919e5c3bc133f7e0a164400d3c8af5ec6298afb8c7a146a4da
> disable-moz-stackwalk.patch
>  42cc44fda4b05259b38f055d6f51461746aa89a474cedc5e92fb9d20879da0d12b1b515b273a549e7302cda9c7eddde20d5fdba09853e5c658784ad6d0b20078
> fix-rust-target.patch
>  a50b412edf9573a0bd04a43578b1c927967a616b73a5995eefb15bfa78fd2bd14e36ec05315a0703f6370ecd524e6bcb012e7285beb1245e9add9b8553acb79e
> fix-bug-1261392.patch
> -01b48a708cc6bc6e3cd7cc7b16f5137ec344566ac891d699b65e322bc992726072fa14a54cef1a7775799fcbbcf90a6c170107c8524caba3bc311b42d93b7581
> rust-unitialized-field.patch
> -75b97d59e81e5f1debe6a459b535da704d5a2ac4a57c446d16058fd18db81e22317fcc3ec11b89f569f4de87e8e80ced027c0e72e7f1dd16f6fd0feb6b263919
> fix-webrtc-glibcisms.patch
> +7bc98f6370e2ca170b7bbfbddd8bd684df6c11530f38152f37031809f2b6b0bffde70a998939d97ed460d807fa7decc94b85a1bb6bf6464a63733e0f9d0f7ac6
> rust-unitialized-field.patch
> +44c95a862b04747658b666ab6e2efb77e57e63e78b1a81e489410bec4ef4c81956548131b922a50f9c069a3340c2b6f60a055cebf3f889f4d7d8a6e94eead11f
> fix-webrtc-glibcisms.patch
>  f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454
> firefox.desktop
> -5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed
> firefox-safe.desktop"
> +5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed
> firefox-safe.desktop
> +8ade2c0c767b5097f25b06bf5f5543141131e302390ea86a89becec598f039a72cbda6722bedfd773ff946b592a2f92a5c442d024de47d220c41dcb2af80219f
> 10-debug-fixes.patch"
> diff --git a/testing/firefox/disable-moz-stackwalk.patch
> b/testing/firefox/disable-moz-stackwalk.patch
> index c83ae7eae9..8f4924bac1 100644
> --- a/testing/firefox/disable-moz-stackwalk.patch
> +++ b/testing/firefox/disable-moz-stackwalk.patch
> @@ -1,12 +1,10 @@
> -diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
> -index a208bad..14e1f0d 100644
> ---- a/mozglue/misc/StackWalk.cpp
> -+++ b/mozglue/misc/StackWalk.cpp
> -@@ -41,13 +41,7 @@ static CriticalAddress gCriticalAddress;
> +--- /mozglue/misc/StackWalk.cpp
> ++++ /mozglue/misc/StackWalk.cpp.
> +@@ -32,13 +32,7 @@
>   #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
>   #endif
>
> --#if (defined(linux) && \
> +-#if (defined(linux) &&                                            \
>  -     ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
>  -      defined(HAVE__UNWIND_BACKTRACE)))
>  -#define MOZ_STACKWALK_SUPPORTS_LINUX 1
> diff --git a/testing/firefox/fix-arm-atomics-grsec.patch
> b/testing/firefox/fix-arm-atomics-grsec.patch
> index 0eb58f093f..c7e12ca0f0 100644
> --- a/testing/firefox/fix-arm-atomics-grsec.patch
> +++ b/testing/firefox/fix-arm-atomics-grsec.patch
> @@ -1,8 +1,8 @@
> ----
> mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig
> -+++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h
> -@@ -12,43 +35,194 @@
> - namespace base {
> - namespace subtle {
> +---
> ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h
> ++++
> ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h.
> +@@ -39,43 +39,194 @@
> + namespace protobuf {
> + namespace internal {
>
>  -// 0xffff0fc0 is the hard coded address of a function provided by
>  -// the kernel which implements an atomic compare-exchange. On older
> @@ -217,7 +217,7 @@
>     return old_value;
>   }
>
> -@@ -63,36 +237,57 @@
> +@@ -90,8 +241,7 @@
>       // Atomic exchange the old value with an incremented one.
>       Atomic32 old_value = *ptr;
>       Atomic32 new_value = old_value + increment;
> @@ -227,23 +227,19 @@
>         // The exchange took place as expected.
>         return new_value;
>       }
> -     // Otherwise, *ptr changed mid-loop and we need to retry.
> -   }
> --
> - }
> -
> +@@ -102,23 +252,45 @@
>   inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
>                                          Atomic32 old_value,
>                                          Atomic32 new_value) {
>  -  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
> -+  Atomic32 prev_value;
> -+  for (;;) {
> -+    prev_value = *ptr;
> ++Atomic32 prev_value;
> ++  for (;;) {
> ++    prev_value = *ptr;
>  +    if (prev_value != old_value) {
> -+      // Always ensure acquire semantics.
> ++      // Always ensure acquire semantics.
>  +      MemoryBarrier();
> -+      return prev_value;
> -+    }
> ++      return prev_value;
> ++    }
>  +    if (!LinuxKernelCmpxchg(old_value, new_value, ptr))
>  +      return old_value;
>  +  }
> @@ -253,38 +249,37 @@
>                                          Atomic32 old_value,
>                                          Atomic32 new_value) {
>  -  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
> -+  // This could be implemented as:
> -+  //    MemoryBarrier();
> -+  //    return NoBarrier_CompareAndSwap();
> -+  //
> ++  // This could be implemented as:
> ++  //    MemoryBarrier();
> ++  //    return NoBarrier_CompareAndSwap();
> ++  //
>  +  // But would use 3 barriers per succesful CAS. To save performance,
>  +  // use Acquire_CompareAndSwap(). Its implementation guarantees that:
> -+  // - A succesful swap uses only 2 barriers (in the kernel helper).
> -+  // - An early return due to (prev_value != old_value) performs
> -+  //   a memory barrier with no store, which is equivalent to the
> -+  //   generic implementation above.
> ++  // - A succesful swap uses only 2 barriers (in the kernel helper).
> ++  // - An early return due to (prev_value != old_value) performs
> ++  //   a memory barrier with no store, which is equivalent to the
> ++  //   generic implementation above.
>  +  return Acquire_CompareAndSwap(ptr, old_value, new_value);
>   }
> -
> -+#else
> -+#  error "Your CPU's ARM architecture is not supported yet"
> -+#endif
> -+
> -+// NOTE: Atomicity of the following load and store operations is only
> ++#else
> ++#  error "Your CPU's ARM architecture is not supported yet"
> ++#endif
> ++
> ++// NOTE: Atomicity of the following load and store operations is only
>  +// guaranteed in case of 32-bit alignement of |ptr| values.
> -+
> +
>   inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
>     *ptr = value;
>   }
>
> --inline void MemoryBarrier() {
> +-inline void MemoryBarrierInternal() {
>  -  pLinuxKernelMemoryBarrier();
>  -}
>  -
>   inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
>     *ptr = value;
> -   MemoryBarrier();
> -@@ -103,9 +298,7 @@
> +   MemoryBarrierInternal();
> +@@ -129,9 +301,7 @@
>     *ptr = value;
>   }
>
> @@ -295,12 +290,3 @@
>
>   inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
>     Atomic32 value = *ptr;
> -@@ -118,7 +311,6 @@
> -   return *ptr;
> - }
> -
> --} // namespace base::subtle
> --} // namespace base
> -+} }  // namespace base::subtle
> -
> - #endif  // BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
> diff --git a/testing/firefox/fix-seccomp-bpf.patch
> b/testing/firefox/fix-seccomp-bpf.patch
> index ee6d666400..7f9fbae3a7 100644
> --- a/testing/firefox/fix-seccomp-bpf.patch
> +++ b/testing/firefox/fix-seccomp-bpf.patch
> @@ -1,6 +1,5 @@
> -diff -ru
> firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
> firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
> ----
> firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
>   2018-12-14 08:53:46.083976137 +0000
> -+++
> firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
> 2018-12-14 08:51:22.084596411 +0000
> +--- ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
> 2018-12-14 08:53:46.083976137 +0000
> ++++ ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
> 2018-12-14 08:51:22.084596411 +0000
>  @@ -25,6 +25,11 @@
>   #include "sandbox/linux/system_headers/linux_seccomp.h"
>   #include "sandbox/linux/system_headers/linux_signal.h"
> @@ -13,14 +12,13 @@ diff -ru
> firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf
>   namespace {
>
>   struct arch_sigsys {
> -diff -ru firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp
> firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp
> ---- firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp
>  2018-10-01 18:35:28.000000000 +0000
> -+++ firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp    2018-12-14
> 08:57:50.645264590 +0000
> -@@ -1005,6 +1005,7 @@
> -         // ffmpeg, and anything else that calls isatty(), will be told
> -         // that nothing is a typewriter:
> -         .ElseIf(request == TCGETS, Error(ENOTTY))
> -+        .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
> -         // Allow anything that isn't a tty ioctl, for now; bug 1302711
> -         // will cover changing this to a default-deny policy.
> -         .ElseIf(shifted_type != kTtyIoctls, Allow())
> +--- ./security/sandbox/linux/SandboxFilter.cpp 2018-10-01
> 18:35:28.000000000 +0000
> ++++ ./security/sandbox/linux/SandboxFilter.cpp 2018-12-14
> 08:57:50.645264590 +0000
> +@@ -997,6 +997,7 @@
> +             // ffmpeg, and anything else that calls isatty(), will be
> told
> +             // that nothing is a typewriter:
> +             .ElseIf(request == TCGETS, Error(ENOTTY))
> ++            .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
> +             // Allow anything that isn't a tty ioctl, for now; bug
> 1302711
> +             // will cover changing this to a default-deny policy.
> +             .ElseIf(shifted_type != kTtyIoctls, Allow())
> diff --git a/testing/firefox/fix-toolkit.patch
> b/testing/firefox/fix-toolkit.patch
> index 58fe5a3a9a..c79b9a15d4 100644
> --- a/testing/firefox/fix-toolkit.patch
> +++ b/testing/firefox/fix-toolkit.patch
> @@ -55,21 +55,6 @@ index 93fdad7..f34e5e0 100644
>   /* End of x86-64 definitions
>      */
>   #elif defined(__mips__)
>   #if _MIPS_SIM == _MIPS_SIM_ABI32
> -diff --git a/toolkit/mozapps/update/common/updatedefines.h
> b/toolkit/mozapps/update/common/updatedefines.h
> -index 026e7ed..0801f14 100644
> ---- a/toolkit/mozapps/update/common/updatedefines.h
> -+++ b/toolkit/mozapps/update/common/updatedefines.h
> -@@ -117,7 +117,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t
> count, const WCHAR* fmt, ...)
> -
> - #ifdef SOLARIS
> - # include <sys/stat.h>
> --#else
> -+#elif !defined(__linux__) || defined(__GLIBC__)
> - # include <fts.h>
> - #endif
> - # include <dirent.h>
> -diff --git a/toolkit/mozapps/update/updater/updater.cpp
> b/toolkit/mozapps/update/updater/updater.cpp
> -index 257ccb4..01314e4 100644
>  --- a/toolkit/mozapps/update/updater/updater.cpp
>  +++ b/toolkit/mozapps/update/updater/updater.cpp
>  @@ -3737,6 +3737,7 @@ int add_dir_entries(const NS_tchar *dirpath,
> ActionList *list)
> @@ -88,3 +73,14 @@ index 257ccb4..01314e4 100644
>
>     return rv;
>   }
> +--- ./toolkit/mozapps/update/common/updatedefines.h
> ++++ ./toolkit/mozapps/update/common/updatedefines.h.
> +@@ -102,7 +102,7 @@
> +
> + #ifdef SOLARIS
> + #include <sys/stat.h>
> +-#else
> ++#elif !defined(__linux__) || defined(__GLIBC__)
> + #include <fts.h>
> + #endif
> + #include <dirent.h>
> diff --git a/testing/firefox/fix-tools.patch
> b/testing/firefox/fix-tools.patch
> index 84f7fa9cb8..ed2c7f2bca 100644
> --- a/testing/firefox/fix-tools.patch
> +++ b/testing/firefox/fix-tools.patch
> @@ -11,12 +11,12 @@
>   #include "MainThreadUtils.h"
>  --- a/tools/profiler/lul/LulElf.cpp
>  +++ b/tools/profiler/lul/LulElf.cpp
> -@@ -579,10 +579,10 @@
> +@@ -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) {
> + string BaseFileName(const string& filename) {
>  -  // Lots of copies!  basename's behavior is less than ideal.
> --  char *c_filename = strdup(filename.c_str());
> +-  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
> @@ -25,13 +25,13 @@
>  +  string base = p ? p+1 : c_filename;
>     return base;
>   }
> -
> +
>  --- a/tools/profiler/core/platform-linux-android.cpp.orig
>  +++ b/tools/profiler/core/platform-linux-android.cpp
> -@@ -534,9 +534,11 @@
> - void
> - Registers::SyncPopulate()
> - {
> +@@ -497,8 +497,10 @@
> + ucontext_t sSyncUContext;
> +
> + void Registers::SyncPopulate() {
>  +#if defined(__GLIBC__)
>     if (!getcontext(&sSyncUContext)) {
>       PopulateRegsFromContext(*this, &sSyncUContext);
> @@ -39,4 +39,4 @@
>  +#endif
>   }
>   #endif
> -
> +
> diff --git a/testing/firefox/fix-webrtc-glibcisms.patch
> b/testing/firefox/fix-webrtc-glibcisms.patch
> index dc9206b50e..95b3a55eeb 100644
> --- a/testing/firefox/fix-webrtc-glibcisms.patch
> +++ b/testing/firefox/fix-webrtc-glibcisms.patch
> @@ -1,13 +1,13 @@
> ----
> ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig
>      2018-05-09 23:48:44.677389171 +0200
> -+++
> ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c
> 2018-05-09 23:48:56.254373557 +0200
> -@@ -11,7 +11,9 @@
> - #include <stdlib.h>
> - #include <string.h>
> - #include <features.h>
> +---
> ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c
> ++++
> ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.
> +@@ -14,7 +14,9 @@
> + #ifndef __GLIBC_PREREQ
> + #define __GLIBC_PREREQ(a, b) 0
> + #endif
>  -#if __GLIBC_PREREQ(2, 16)
> -+#if !defined(__GLIBC__)
> -+#include <sys/auxv.h>
> -+#elif __GLIBC_PREREQ(2, 16)
> ++#if !defined(__GLIBC__)
>
>
> ++#include <sys/auxv.h>
>
>
> ++#elif __GLIBC_PREREQ(2, 16)
>   #include <sys/auxv.h>
>   #else
>   #include <fcntl.h>
> diff --git a/testing/firefox/rust-unitialized-field.patch
> b/testing/firefox/rust-unitialized-field.patch
> index 67ef3a02ab..3ef7f055ca 100644
> --- a/testing/firefox/rust-unitialized-field.patch
> +++ b/testing/firefox/rust-unitialized-field.patch
> @@ -1,11 +1,14 @@
> ---- ./media/audioipc/audioipc/src/cmsg.rs.orig 2018-05-09
> 22:19:14.748631939 +0200
> -+++ ./media/audioipc/audioipc/src/cmsg.rs      2018-05-09
> 22:19:22.961620862 +0200
> -@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
> +--- ./media/audioipc/audioipc/src/cmsg.rs
> ++++ ./media/audioipc/audioipc/src/cmsg.rs.
> +@@ -105,14 +105,12 @@
> +             if cmsg.remaining_mut() < cmsg_len {
>                   return Err(Error::NoSpace);
>               }
> -
> +
>  -            let cmsghdr = cmsghdr {
>  -                cmsg_len: cmsg_len as _,
> +-                #[cfg(target_env = "musl")]
> +-                __pad1: 0,
>  -                cmsg_level: level,
>  -                cmsg_type: kind,
>  -            };
> --
> 2.20.1
>
>
Natanael Copa
Details
Message ID
<20190219184431.4064f6e0@ncopa-desktop.copa.dup.pw>
In-Reply-To
<20190219170104.32697-1-~@bradso.to> (view parent)
Sender timestamp
1550598271
DKIM signature
missing
Download raw message
Hi!

Thank you for submitting this. I have a few questions/wishes. Please
see below:

On Tue, 19 Feb 2019 10:01:06 -0700
Bradley Saulteaux <bradsoto@gmail.com> wrote:

> https://www.firefox.com/
> Firefox web browser
> ---
>  community/ffmpeg/APKBUILD                    |   8 +-
>  community/libaom/APKBUILD                    |  26 +++++
>  main/icu/10-firefox-65.0.1-fix.patch         |  23 ++++
>  main/icu/APKBUILD                            |  10 +-
>  main/libvpx/10-find-diff.patch               |  11 ++
>  main/libvpx/APKBUILD                         |  17 ++-
>  testing/cbindgen/APKBUILD                    |  26 +++++
>  testing/firefox/10-debug-fixes.patch         |  25 +++++
>  testing/firefox/APKBUILD                     | 106 ++++++++-----------
>  testing/firefox/disable-moz-stackwalk.patch  |  10 +-
>  testing/firefox/fix-arm-atomics-grsec.patch  |  74 ++++++-------
>  testing/firefox/fix-seccomp-bpf.patch        |  26 +++--
>  testing/firefox/fix-toolkit.patch            |  26 ++---
>  testing/firefox/fix-tools.patch              |  18 ++--
>  testing/firefox/fix-webrtc-glibcisms.patch   |  18 ++--
>  testing/firefox/rust-unitialized-field.patch |  11 +-
>  16 files changed, 251 insertions(+), 184 deletions(-)
>  create mode 100644 community/libaom/APKBUILD
>  create mode 100644 main/icu/10-firefox-65.0.1-fix.patch
>  create mode 100644 main/libvpx/10-find-diff.patch
>  create mode 100644 testing/cbindgen/APKBUILD
>  create mode 100644 testing/firefox/10-debug-fixes.patch
> 
> diff --git a/community/ffmpeg/APKBUILD b/community/ffmpeg/APKBUILD
> index 4d2ac5757e..85cb74408a 100644
> --- a/community/ffmpeg/APKBUILD
> +++ b/community/ffmpeg/APKBUILD
> @@ -4,7 +4,7 @@
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=ffmpeg
>  pkgver=4.1.1
> -pkgrel=0
> +pkgrel=1
>  pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
>  url="http://ffmpeg.org/"
>  arch="all"
> @@ -12,7 +12,7 @@ license="GPL"
>  options="!check" # tests/data/hls-lists.append.m3u8 fails
>  subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
>  makedepends="gnutls-dev lame-dev libvorbis-dev xvidcore-dev zlib-dev libvdpau-dev
> -	imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev libvpx-dev
> +	imlib2-dev x264-dev libtheora-dev coreutils bzip2-dev perl-dev libaom-dev
>  	libvpx-dev sdl2-dev libxfixes-dev libva-dev alsa-lib-dev
>  	v4l-utils-dev yasm opus-dev x265-dev libass-dev"
>  checkdepends="rsync"
> @@ -71,13 +71,13 @@ build() {
>  	x86 | arm*) _asm="--disable-asm" ;;
>  	esac
>  
> -	cd "$builddir"

Is the removal of cd "$builddir" documented? I mean, yes, the cd
"$builddir" is not needed anymore, but is this documented any place? I
think we need update documentation before we can remove them.

That said, I would prefer keep the "$builddir" for a while unless there
is a good reason to remove them. Removing it makes it harder to
backport things to stable branches. This makes backporting security
fixes a more time consuming.


>  	./configure \
>  		--prefix=/usr \
>  		--enable-avresample \
>  		--enable-avfilter \
>  		--enable-gnutls \
>  		--enable-gpl \
> +		--enable-libaom \
>  		--enable-libass \
>  		--enable-libmp3lame \
>  		--enable-libvorbis \
> @@ -106,7 +106,6 @@ build() {
>  
>  # https://ffmpeg.org/fate.html
>  check() {
> -	cd "$builddir"
>  	./configure \
>  		--samples=fate-suite/
>  	make fate-rsync
> @@ -115,7 +114,6 @@ check() {
>  }
>  
>  package() {
> -	cd "$builddir"
>  	make DESTDIR="$pkgdir" install install-man
>  	install -D -m755 tools/qt-faststart "$pkgdir/usr/bin/qt-faststart"
>  #	strip --strip-debug "$pkgdir"/usr/lib/*.a
> diff --git a/community/libaom/APKBUILD b/community/libaom/APKBUILD
> new file mode 100644
> index 0000000000..a2948a4e4c
> --- /dev/null
> +++ b/community/libaom/APKBUILD
> @@ -0,0 +1,26 @@
> +# Maintainer: Bradley Saulteaux <~@bradso.to>
> +pkgname=libaom
> +pkgver=1.0.0
> +pkgrel=0
> +pkgdesc="Alliance for Open Media"
> +url="https://aomedia.googlesource.com/aom/"
> +arch="all"
> +license="BSD-2-Clause"
> +depends=""
> +makedepends="cmake python yasm"
> +install=""
> +options="!check" #tests fail at AV1/AV1DecodeMultiThreadedTest.MD5Match
> +subpackages="$pkgname-dev"
> +source="$pkgname-$pkgver.tar.gz::https://aomedia.googlesource.com/aom/+archive/v$pkgver.tar.gz"
> +builddir="$srcdir/build"
> +build() {
> +	cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS=1 ..
> +	sed -i 's/0.1.0/1.0.0/g' aom.pc

is this change reported or fixed upstream?

I would prefer use a patch from upstream over running sed from
APKBUILD. The reason is that if we use a patch , we will discover when
they fix this upstream. Otherwise the sed line may say long after its
no longer needed.

> +}
> +check() {
> +	make runtests
> +}
> +package() {
> +	make DESTDIR="$pkgdir" install
> +}
> +sha512sums="f506a9399cfcf2aa3473639210511270c5a44b789eb51ce5616bd61f18a18e64080240a7b1ea2502d27df40ddf290b8f4686282f1eda3ffc57c45c803474f768  libaom-1.0.0.tar.gz"
> diff --git a/main/icu/10-firefox-65.0.1-fix.patch b/main/icu/10-firefox-65.0.1-fix.patch
> new file mode 100644
> index 0000000000..6c47bdde2a
> --- /dev/null
> +++ b/main/icu/10-firefox-65.0.1-fix.patch
> @@ -0,0 +1,23 @@
> +https://github.com/unicode-org/icu/commit/8baff8f03e07d8e02304d0c888d0bb21ad2eeb01
> +fixed in 63.2
> +--- ./common/unicode/urename.h
> ++++ ./common/unicode/urename.h.
> +@@ -110,7 +110,6 @@
> + #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
> + #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
> + #define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
> +-#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
> + #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
> + #define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
> + #define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
> +--- ./i18n/uspoof.cpp
> ++++ ./i18n/uspoof.cpp.
> +@@ -547,7 +547,7 @@
> +     return uspoof_check2UnicodeString(sc, id, NULL, status);
> + }
> + 
> +-int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
> ++static int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* checkResult, UErrorCode* status) {
> +     U_ASSERT(This != NULL);
> +     U_ASSERT(checkResult != NULL);
> +     checkResult->clear();
> diff --git a/main/icu/APKBUILD b/main/icu/APKBUILD
> index 14b6b66a4c..9bc7bc65e3 100644
> --- a/main/icu/APKBUILD
> +++ b/main/icu/APKBUILD
> @@ -6,7 +6,7 @@ pkgver=63.1
>  # convert x.y.z to x_y_z
>  _ver=${pkgver//./_}
>  
> -pkgrel=0
> +pkgrel=1
>  pkgdesc="International Components for Unicode library"
>  url="http://www.icu-project.org/"
>  arch="all"
> @@ -17,6 +17,7 @@ depends_dev="$pkgname=$pkgver-r$pkgrel"
>  checkdepends="diffutils"
>  makedepends=
>  source="http://download.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver-src.tgz
> +	10-firefox-65.0.1-fix.patch
>  	"
>  
>  # secfixes:
> @@ -30,7 +31,6 @@ source="http://download.icu-project.org/files/icu4c/${pkgver}/${pkgname}4c-$_ver
>  builddir="$srcdir"/icu/source
>  
>  prepare() {
> -	cd "$builddir"
>  	default_prepare
>  	update_config_sub
>  
> @@ -49,7 +49,6 @@ prepare() {
>  }
>  
>  build() {
> -	cd "$builddir"
>  	./configure \
>  		--build=$CBUILD \
>  		--host=$CHOST \
> @@ -67,12 +66,10 @@ check() {
>  	case "$CARCH" in
>  		arm*|x86) return 0;;
>  	esac
> -	cd "$builddir"
>  	make check
>  }
>  
>  package() {
> -	cd "$builddir"
>  	make -j1 DESTDIR="$pkgdir" install
>  	chmod +x "$pkgdir"/usr/bin/icu-config
>  	install -Dm644 "$srcdir"/icu/license.html \
> @@ -90,4 +87,5 @@ libs() {
>  	replaces="icu"
>  }
>  
> -sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c  icu4c-63_1-src.tgz"
> +sha512sums="9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c  icu4c-63_1-src.tgz
> +76fc0b69ef5dd78d31ed88e6b2976b3ff8b7715f03a94faef79dc2210fe75b9db1de47f1ccc8a5f783760e41de7da3a32628abc9e1ec44edcca98207c91d952d  10-firefox-65.0.1-fix.patch"
> diff --git a/main/libvpx/10-find-diff.patch b/main/libvpx/10-find-diff.patch
> new file mode 100644
> index 0000000000..c0d9f9955b
> --- /dev/null
> +++ b/main/libvpx/10-find-diff.patch
> @@ -0,0 +1,11 @@
> +--- ./configure
> ++++ ./configure.
> +@@ -166,7 +166,7 @@
> +     [ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
> + done
> + 
> +-if ! diff --version >/dev/null; then
> ++if ! which diff &> /dev/null; then
> +   die "diff missing: Try installing diffutils via your package manager."
> + fi
> + 
> diff --git a/main/libvpx/APKBUILD b/main/libvpx/APKBUILD
> index 767b2b21fa..a6a4a4a490 100644
> --- a/main/libvpx/APKBUILD
> +++ b/main/libvpx/APKBUILD
> @@ -1,7 +1,7 @@
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=libvpx
> -pkgver=1.6.1
> -pkgrel=1
> +pkgver=1.7.0
> +pkgrel=0
>  pkgdesc="Library for the vp8 codec"
>  url="https://www.webmproject.org/"
>  arch="all"
> @@ -9,13 +9,12 @@ license="GPL"
>  depends=""
>  makedepends="coreutils yasm bash perl"
>  subpackages="$pkgname-dev $pkgname-utils"
> -source="https://storage.googleapis.com/downloads.webmproject.org/releases/webm/$pkgname-$pkgver.tar.bz2
> +source="$pkgname-$pkgver.tar.gz::https://chromium.googlesource.com/webm/$pkgname/+archive/v$pkgver.tar.gz
>  	fix-arm-float-abi.patch
> +	10-find-diff.patch
>  	"
> -
> -builddir="$srcdir"/$pkgname-$pkgver
> +builddir="$srcdir"
>  build() {
> -	cd "$builddir"
>  	# build fix for arm
>  	export CROSS=" "
>  	bash ./configure \
> @@ -31,7 +30,6 @@ build() {
>  }
>  
>  package() {
> -	cd "$builddir"
>  	make DIST_DIR="$pkgdir"/usr install
>  	chmod 644 "$pkgdir"/usr/include/vpx/*.h \
>  		"$pkgdir"/usr/lib/pkgconfig/*
> @@ -45,5 +43,6 @@ utils() {
>  	mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
>  }
>  
> -sha512sums="1a4b009fe1737715c6563a79848126a5859394a5074b1e9cca9bc2e213df90890c15e708040d5f2c96c7c21e268f51e1352ac6911514bf891a4bf3eea154159d  libvpx-1.6.1.tar.bz2
> -4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c  fix-arm-float-abi.patch"
> +sha512sums="6e114a6e8470b05153a8c41b7f30adb37d8cf99dc1c3d016867e5578b4f69905d7a1fcd902b6855f3f6b3e63ae305eb3fadd53359f2c8f344f3d701c3d4882b5  libvpx-1.7.0.tar.gz
> +4eadbc2f4eb68eaff35cf85515aef271d6fd47293a53cba7b7a6e9e0fb71106dfb5ded45b9e9ba83264a91846e4a5fa4db42e39fc3eaff6ac37769e622f90f6c  fix-arm-float-abi.patch
> +c14015273a2f081ef722f752a7ac17204e7fd5c42fb7a4bb457afdff1fcd2cc276bd34ca80a6e318968e0fa2e6ba49ceee026dd1bd7ee1b2806dbde70fd0a7fb  10-find-diff.patch"
> diff --git a/testing/cbindgen/APKBUILD b/testing/cbindgen/APKBUILD
> new file mode 100644
> index 0000000000..6a58bcb45d
> --- /dev/null
> +++ b/testing/cbindgen/APKBUILD
> @@ -0,0 +1,26 @@
> +# Maintainer: Bradley Saulteaux <~@bradso.to>
> +pkgname=cbindgen
> +pkgver=0.8.0
> +pkgrel=0
> +pkgdesc="A tool for generating C bindings to Rust code"
> +url="https://github.com/eqrion/cbindgen"
> +# limited by rust and cargo
> +arch="x86_64"
> +license="MPL2"
> +depends=""
> +subpackages="$pkgname-doc"
> +makedepends="cargo"
> +install=""
> +source="$pkgname-$pkgver.tar.gz::https://github.com/eqrion/$pkgname/archive/v$pkgver.tar.gz"
> +builddir="${srcdir}/$pkgname-$pkgver"
> +build() {
> +	cargo build --release
> +}
> +check() {
> +	cargo test --release
> +}
> +package() {
> +	install -Dt "$pkgdir/usr/bin" target/release/cbindgen
> +	install -Dt "$pkgdir/usr/share/doc/$pkgname" -m644 README.md
> +}
> +sha512sums="634a61556b3ae20bb246d1c34c2869852af1e1003cbf0481a346191eb48f812d19755ae8e895628d53a3ab7792b977255bfb25a50a2dbb9baf18b4f3fc783b18  cbindgen-0.8.0.tar.gz"
> diff --git a/testing/firefox/10-debug-fixes.patch b/testing/firefox/10-debug-fixes.patch
> new file mode 100644
> index 0000000000..968091935e
> --- /dev/null
> +++ b/testing/firefox/10-debug-fixes.patch
> @@ -0,0 +1,25 @@
> +--- ./intl/locale/LocaleService.cpp
> ++++ ./intl/locale/LocaleService.cpp.
> +@@ -526,7 +526,6 @@
> +     GetGREFileContents("update.locale", &locale);
> +     locale.Trim(" \t\n\r");
> +     // This should never be empty.
> +-    MOZ_ASSERT(!locale.IsEmpty());
> +     if (SanitizeForBCP47(locale, true)) {
> +       mDefaultLocale.Assign(locale);
> +     }
> +--- ./browser/installer/package-manifest.in
> ++++ ./browser/installer/package-manifest.in.
> +@@ -499,12 +499,6 @@
> + ; svg
> + @RESPATH@/res/svg.css
> + 
> +-; [Layout Debugger]
> +-#ifdef MOZ_DEBUG
> +-@RESPATH@/chrome/layoutdebug@JAREXT@
> +-@RESPATH@/chrome/layoutdebug.manifest
> +-#endif
> +-
> + ; [Personal Security Manager]
> + ;
> + ; NSS libraries are signed in the staging directory,
> diff --git a/testing/firefox/APKBUILD b/testing/firefox/APKBUILD
> index b31c1997b7..30ca2dc8fc 100644
> --- a/testing/firefox/APKBUILD
> +++ b/testing/firefox/APKBUILD
> @@ -1,23 +1,26 @@
>  # Contributor: William Pitcock <nenolod@dereferenced.org>
>  # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
>  pkgname=firefox
> -pkgver=62.0.3
> +pkgver=65.0.1
>  _pkgver=$pkgver
>  _xulver=$pkgver
> -pkgrel=2
> +pkgrel=0
>  pkgdesc="Firefox web browser"
>  url="https://www.firefox.com/"
>  # limited by rust and cargo
>  arch="x86_64"
>  license="GPL LGPL MPL"
>  depends=""
> +options="!check"
>  makedepends="
>  	alsa-lib-dev
>  	autoconf2.13
> +	autoconf
>  	automake
>  	bsd-compat-headers
>  	bzip2-dev
>  	cargo
> +	cbindgen
>  	clang-dev
>  	dbus-glib-dev
>  	ffmpeg-dev
> @@ -27,6 +30,7 @@ makedepends="
>  	hunspell-dev
>  	icu-dev
>  	libevent-dev
> +	libffi-dev
>  	libidl-dev
>  	libjpeg-turbo-dev
>  	libnotify-dev
> @@ -39,9 +43,11 @@ makedepends="
>  	libxcomposite-dev
>  	llvm5-dev
>  	mesa-dev
> +	nasm
>  	nspr-dev
>  	nss-dev
>  	nss-static
> +	nodejs
>  	paxmark
>  	python3-dev
>  	sqlite-dev
> @@ -64,7 +70,6 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
>  	mallinfo.patch
>  
>  	fix-arm-atomics-grsec.patch
> -	fix-arm-version-detect.patch
>  	mozilla-build-arm.patch
>  	disable-moz-stackwalk.patch
>  	fix-rust-target.patch
> @@ -73,7 +78,9 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkg
>  	fix-webrtc-glibcisms.patch
>  
>  	firefox.desktop
> -	firefox-safe.desktop"
> +	firefox-safe.desktop
> +	
> +	10-debug-fixes.patch"
>  
>  builddir="${srcdir}/firefox-$pkgver"
>  _mozappdir=/usr/lib/firefox
> @@ -83,71 +90,44 @@ ldpath="$_mozappdir"
>  
>  prepare() {
>  	default_prepare
> -
>  	cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
>  	# https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
> -	mkdir -p "$builddir"/objdir
> -	echo "ac_add_options BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'" >>objdir/.mozconfig
> +	autoreconf old-configure.in
> +	cd js/src; autoreconf old-configure.in
>  }
>  
>  build() {
> -	cd "$builddir"/objdir
> -
>  	export SHELL=/bin/sh
>  	export BUILD_OFFICIAL=1
>  	export MOZILLA_OFFICIAL=1
>  	export USE_SHORT_LIBNAME=1
>  	# gcc 6
>  	export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2"
> -
>  	# set rpath so linker finds the libs
>  	export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}"
> -
> -	../configure \
> -		--prefix=/usr \
> -		\
> -		--disable-crashreporter \
> -		--disable-elf-hack \
> -		--disable-gold \
> -		--disable-install-strip \
> -		--disable-jemalloc \
> -		--disable-profiling \
> -		--disable-pulseaudio \
> -		--disable-strip \
> -		--disable-tests \
> -		--disable-updater \
> -		\
> -		--enable-alsa \
> -		--enable-default-toolkit=cairo-gtk3 \
> -		--enable-official-branding \
> -		--enable-optimize="$CFLAGS" \
> -		--enable-pie \
> -		--enable-startup-notification \
> -		--enable-system-ffi \
> -		--enable-system-sqlite \
> -		--enable-ffmpeg \
> -		\
> -		--with-system-bz2 \
> -		--with-system-icu \
> -		--with-system-jpeg \
> -		--with-system-libevent \
> -		--with-system-libvpx \
> -		--with-system-nspr \
> -		--with-system-nss \
> -		--with-system-pixman \
> -		--with-system-png \
> -		--with-system-zlib \
> -		--with-clang-path=/usr/bin/clang \
> -		--with-libclang-path=/usr/lib
> -	make
> -
> -	# paxmark outside fakeroot
> -	paxmark -msp dist/bin/xpcshell
> -
> +	ac_add_options() {
> +		echo "ac_add_options $1" >>"$builddir"/.mozconfig
> +	}
> +	mk_add_options() {
> +		echo "mk_add_options $1" >>"$builddir"/.mozconfig
> +	}
> +	ac_add_options "BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'"
> +	ac_add_options "--prefix=/usr --disable-jemalloc --disable-updater"
> +	ac_add_options "--disable-pulseaudio --enable-alsa --disable-elf-hack"
> +	ac_add_options "--enable-default-toolkit=cairo-gtk3 --enable-official-branding"
> +	ac_add_options "--enable-optimize=\"$CFLAGS\" --enable-startup-notification"
> +	ac_add_options "--enable-system-ffi --enable-system-pixman --enable-system-sqlite"
> +	ac_add_options "--enable-av1 --with-system-bz2 --with-system-icu"
> +	ac_add_options "--with-system-libevent --with-system-libvpx --with-system-nspr"
> +	ac_add_options "--with-system-nss --with-system-png  --with-system-zlib"
> +	ac_add_options "--with-clang-path=/usr/bin/clang --with-libclang-path=/usr/lib"
> +	ac_add_options "--disable-tests --disable-crashreporter"
> +	
> +	./mach configure; ./mach build
>  }
>  
>  package() {
> -	cd "$builddir"/objdir
> +	cd "$builddir"/obj-x86_64-pc-linux-gnu

Will this work on all architectures? I belive it will not.

>  
>  	# only used for startupcache creation.
>  	local paxflags="-msp"
> @@ -214,21 +194,21 @@ __EOF__
>  	rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so
>  }
>  
> -sha512sums="487bb7791284367158c79cf7918fecf3d598627a6416e679aeb5d22626089aeffe07762fa2389819ba881c90ece1c5a83cf2d85b2def15b8d5ba0ed1c498b527  firefox-62.0.3.source.tar.xz
> +sha512sums="cc76a83f6430f501c2260c6b35b5e48f045f5b180daf03375e9ab114a9afd67dfc0146ddb81cd29be4617aadb66a332ed5ebc625cb500df9579e412ed4909599  firefox-65.0.1.source.tar.xz
>  0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127  stab.h
>  2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71  fix-fortify-system-wrappers.patch
>  09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5  fix-fortify-inline.patch
> -2f713a270f7d1588ec4a0b9c21e5a0d20823954e6a64293ee1a391f80d38af6c0a80b3d35c3ada59b605f6032fb2af3040cd8ca7f424b0e620cc53fd12674fd9  fix-seccomp-bpf.patch
> -a2925045154f4fd34e5fc056656f4f9da100341529e5d4104d249154db0c7863384083f421ce6e47e0f20566a8b20787fa35444c7933c03cd03f96f06dcd4532  fix-toolkit.patch
> -b46cb90d4fdd1a925a61e2c6c545489cd542f5d82980c529361c02042eed31d5c26972b5e237c1a020f87ffcfd12736d1f4f6e33eaa83ae156d523c808c718cb  fix-tools.patch
> +6764e7af43f5a066ac0faf4f8d0747c03739f4f14b51f58c524eb0519dfd28540bdd25569b201a8e20919d0096479cf0e7a8e306fb223aba4c0f177c4df55200  fix-seccomp-bpf.patch
> +e680a23490908e8be256a8dadee3952f29c4069558548c2b79252640471fa29c221abb0634fc9260a8c9ba755f50f417a77ef66ede87eca8e02d69f74f8b0075  fix-toolkit.patch
> +a9e44759a584d148360405bf75981a6cb8b3ea0c2a553c13da7c559dc0193b35b2dca32571044cdca7ebd6ecc8c475da126d48a0c6ed19316857e2e88d28b49f  fix-tools.patch
>  bdcd1b402d2ec94957ba5d08cbad7b1a7f59c251c311be9095208491a05abb05a956c79f27908e1f26b54a3679387b2f33a51e945b650671ad85c0a2d59a5a29  mallinfo.patch
> -ed0d344c66fc8e1cc83a11e9858b32c42e841cbeedd9eb9438811e9fcc3593dc824a8336d00058d55836cedc970aeadd6a82c6dcd7bc0fb746e564d8b478cc6c  fix-arm-atomics-grsec.patch
> -015e1ff6dbf920033982b5df95d869a0b7bf56c6964e45e50649ddf46d1ce09563458e45240c3ecb92808662b1300b67507f7af272ba184835d91068a9e7d5b0  fix-arm-version-detect.patch
> +9a07f214877c8e4f919311b35ceb8b8ea990fb5811c89d060c0dc5f87a864ac678649fa2c0f1c1459e949e5abb81a894996e2f82b0f94d44e21cc94273fc6d5b  fix-arm-atomics-grsec.patch
>  e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18  mozilla-build-arm.patch
> -4797d2d89ac63a57abb826b8ea9f751314ce66946194033deb9d78c2ff377b88106fd2c7bc5034dc13ad03dd5085b1893c3ccae1a9e63fde35655bb0921f7188  disable-moz-stackwalk.patch
> +61b3c2ab34f43ada0b8c1c9c26fc70f82719b7f344a503325a350749fd6921255134d414c1eba3919e5c3bc133f7e0a164400d3c8af5ec6298afb8c7a146a4da  disable-moz-stackwalk.patch
>  42cc44fda4b05259b38f055d6f51461746aa89a474cedc5e92fb9d20879da0d12b1b515b273a549e7302cda9c7eddde20d5fdba09853e5c658784ad6d0b20078  fix-rust-target.patch
>  a50b412edf9573a0bd04a43578b1c927967a616b73a5995eefb15bfa78fd2bd14e36ec05315a0703f6370ecd524e6bcb012e7285beb1245e9add9b8553acb79e  fix-bug-1261392.patch
> -01b48a708cc6bc6e3cd7cc7b16f5137ec344566ac891d699b65e322bc992726072fa14a54cef1a7775799fcbbcf90a6c170107c8524caba3bc311b42d93b7581  rust-unitialized-field.patch
> -75b97d59e81e5f1debe6a459b535da704d5a2ac4a57c446d16058fd18db81e22317fcc3ec11b89f569f4de87e8e80ced027c0e72e7f1dd16f6fd0feb6b263919  fix-webrtc-glibcisms.patch
> +7bc98f6370e2ca170b7bbfbddd8bd684df6c11530f38152f37031809f2b6b0bffde70a998939d97ed460d807fa7decc94b85a1bb6bf6464a63733e0f9d0f7ac6  rust-unitialized-field.patch
> +44c95a862b04747658b666ab6e2efb77e57e63e78b1a81e489410bec4ef4c81956548131b922a50f9c069a3340c2b6f60a055cebf3f889f4d7d8a6e94eead11f  fix-webrtc-glibcisms.patch
>  f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454  firefox.desktop
> -5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop"
> +5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop
> +8ade2c0c767b5097f25b06bf5f5543141131e302390ea86a89becec598f039a72cbda6722bedfd773ff946b592a2f92a5c442d024de47d220c41dcb2af80219f  10-debug-fixes.patch"
> diff --git a/testing/firefox/disable-moz-stackwalk.patch b/testing/firefox/disable-moz-stackwalk.patch
> index c83ae7eae9..8f4924bac1 100644
> --- a/testing/firefox/disable-moz-stackwalk.patch
> +++ b/testing/firefox/disable-moz-stackwalk.patch
> @@ -1,12 +1,10 @@
> -diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
> -index a208bad..14e1f0d 100644
> ---- a/mozglue/misc/StackWalk.cpp
> -+++ b/mozglue/misc/StackWalk.cpp
> -@@ -41,13 +41,7 @@ static CriticalAddress gCriticalAddress;
> +--- /mozglue/misc/StackWalk.cpp
> ++++ /mozglue/misc/StackWalk.cpp.
> +@@ -32,13 +32,7 @@
>   #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
>   #endif
>   
> --#if (defined(linux) && \
> +-#if (defined(linux) &&                                            \
>  -     ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
>  -      defined(HAVE__UNWIND_BACKTRACE)))
>  -#define MOZ_STACKWALK_SUPPORTS_LINUX 1
> diff --git a/testing/firefox/fix-arm-atomics-grsec.patch b/testing/firefox/fix-arm-atomics-grsec.patch
> index 0eb58f093f..c7e12ca0f0 100644
> --- a/testing/firefox/fix-arm-atomics-grsec.patch
> +++ b/testing/firefox/fix-arm-atomics-grsec.patch
> @@ -1,8 +1,8 @@
> ---- mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig
> -+++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h
> -@@ -12,43 +35,194 @@
> - namespace base {
> - namespace subtle {
> +--- ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h
> ++++ ./toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h.
> +@@ -39,43 +39,194 @@
> + namespace protobuf {
> + namespace internal {
>   
>  -// 0xffff0fc0 is the hard coded address of a function provided by
>  -// the kernel which implements an atomic compare-exchange. On older
> @@ -217,7 +217,7 @@
>     return old_value;
>   }
>   
> -@@ -63,36 +237,57 @@
> +@@ -90,8 +241,7 @@
>       // Atomic exchange the old value with an incremented one.
>       Atomic32 old_value = *ptr;
>       Atomic32 new_value = old_value + increment;
> @@ -227,23 +227,19 @@
>         // The exchange took place as expected.
>         return new_value;
>       }
> -     // Otherwise, *ptr changed mid-loop and we need to retry.
> -   }
> --
> - }
> - 
> +@@ -102,23 +252,45 @@
>   inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
>                                          Atomic32 old_value,
>                                          Atomic32 new_value) {
>  -  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
> -+  Atomic32 prev_value;
> -+  for (;;) {
> -+    prev_value = *ptr;
> ++Atomic32 prev_value;                                     
> ++  for (;;) {                  
> ++    prev_value = *ptr;                                               
>  +    if (prev_value != old_value) {
> -+      // Always ensure acquire semantics.
> ++      // Always ensure acquire semantics.                          
>  +      MemoryBarrier();
> -+      return prev_value;
> -+    }
> ++      return prev_value;     
> ++    }                         
>  +    if (!LinuxKernelCmpxchg(old_value, new_value, ptr))
>  +      return old_value;
>  +  }
> @@ -253,38 +249,37 @@
>                                          Atomic32 old_value,
>                                          Atomic32 new_value) {
>  -  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
> -+  // This could be implemented as:
> -+  //    MemoryBarrier();
> -+  //    return NoBarrier_CompareAndSwap();
> -+  //
> ++  // This could be implemented as:                            
> ++  //    MemoryBarrier();                                             
> ++  //    return NoBarrier_CompareAndSwap();                    
> ++  //                                                               
>  +  // But would use 3 barriers per succesful CAS. To save performance,
>  +  // use Acquire_CompareAndSwap(). Its implementation guarantees that:
> -+  // - A succesful swap uses only 2 barriers (in the kernel helper).
> -+  // - An early return due to (prev_value != old_value) performs
> -+  //   a memory barrier with no store, which is equivalent to the
> -+  //   generic implementation above.
> ++  // - A succesful swap uses only 2 barriers (in the kernel helper).  
> ++  // - An early return due to (prev_value != old_value) performs      
> ++  //   a memory barrier with no store, which is equivalent to the     
> ++  //   generic implementation above.                                  
>  +  return Acquire_CompareAndSwap(ptr, old_value, new_value);
>   }
> - 
> -+#else
> -+#  error "Your CPU's ARM architecture is not supported yet"
> -+#endif
> -+
> -+// NOTE: Atomicity of the following load and store operations is only
> ++#else                                                                 
> ++#  error "Your CPU's ARM architecture is not supported yet"           
> ++#endif                                                                
> ++                                                                      
> ++// NOTE: Atomicity of the following load and store operations is only 
>  +// guaranteed in case of 32-bit alignement of |ptr| values.
> -+
> + 
>   inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
>     *ptr = value;
>   }
>   
> --inline void MemoryBarrier() {
> +-inline void MemoryBarrierInternal() {
>  -  pLinuxKernelMemoryBarrier();
>  -}
>  -
>   inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
>     *ptr = value;
> -   MemoryBarrier();
> -@@ -103,9 +298,7 @@
> +   MemoryBarrierInternal();
> +@@ -129,9 +301,7 @@
>     *ptr = value;
>   }
>   
> @@ -295,12 +290,3 @@
>   
>   inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
>     Atomic32 value = *ptr;
> -@@ -118,7 +311,6 @@
> -   return *ptr;
> - }
> - 
> --} // namespace base::subtle
> --} // namespace base
> -+} }  // namespace base::subtle
> - 
> - #endif  // BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
> diff --git a/testing/firefox/fix-seccomp-bpf.patch b/testing/firefox/fix-seccomp-bpf.patch
> index ee6d666400..7f9fbae3a7 100644
> --- a/testing/firefox/fix-seccomp-bpf.patch
> +++ b/testing/firefox/fix-seccomp-bpf.patch
> @@ -1,6 +1,5 @@
> -diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
> ---- firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:53:46.083976137 +0000
> -+++ firefox-62.0.3/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:51:22.084596411 +0000
> +--- ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:53:46.083976137 +0000
> ++++ ./security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2018-12-14 08:51:22.084596411 +0000
>  @@ -25,6 +25,11 @@
>   #include "sandbox/linux/system_headers/linux_seccomp.h"
>   #include "sandbox/linux/system_headers/linux_signal.h"
> @@ -13,14 +12,13 @@ diff -ru firefox-62.0.3.orig/security/sandbox/chromium/sandbox/linux/seccomp-bpf
>   namespace {
>   
>   struct arch_sigsys {
> -diff -ru firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp
> ---- firefox-62.0.3.orig/security/sandbox/linux/SandboxFilter.cpp	2018-10-01 18:35:28.000000000 +0000
> -+++ firefox-62.0.3/security/sandbox/linux/SandboxFilter.cpp	2018-12-14 08:57:50.645264590 +0000
> -@@ -1005,6 +1005,7 @@
> -         // ffmpeg, and anything else that calls isatty(), will be told
> -         // that nothing is a typewriter:
> -         .ElseIf(request == TCGETS, Error(ENOTTY))
> -+        .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
> -         // Allow anything that isn't a tty ioctl, for now; bug 1302711
> -         // will cover changing this to a default-deny policy.
> -         .ElseIf(shifted_type != kTtyIoctls, Allow())
> +--- ./security/sandbox/linux/SandboxFilter.cpp	2018-10-01 18:35:28.000000000 +0000
> ++++ ./security/sandbox/linux/SandboxFilter.cpp	2018-12-14 08:57:50.645264590 +0000
> +@@ -997,6 +997,7 @@
> +             // ffmpeg, and anything else that calls isatty(), will be told
> +             // that nothing is a typewriter:
> +             .ElseIf(request == TCGETS, Error(ENOTTY))
> ++            .ElseIf(request == TIOCGWINSZ, Error(ENOTTY))
> +             // Allow anything that isn't a tty ioctl, for now; bug 1302711
> +             // will cover changing this to a default-deny policy.
> +             .ElseIf(shifted_type != kTtyIoctls, Allow())
> diff --git a/testing/firefox/fix-toolkit.patch b/testing/firefox/fix-toolkit.patch
> index 58fe5a3a9a..c79b9a15d4 100644
> --- a/testing/firefox/fix-toolkit.patch
> +++ b/testing/firefox/fix-toolkit.patch
> @@ -55,21 +55,6 @@ index 93fdad7..f34e5e0 100644
>   /* End of x86-64 definitions                                                 */
>   #elif defined(__mips__)
>   #if _MIPS_SIM == _MIPS_SIM_ABI32
> -diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h
> -index 026e7ed..0801f14 100644
> ---- a/toolkit/mozapps/update/common/updatedefines.h
> -+++ b/toolkit/mozapps/update/common/updatedefines.h
> -@@ -117,7 +117,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt, ...)
> - 
> - #ifdef SOLARIS
> - # include <sys/stat.h>
> --#else
> -+#elif !defined(__linux__) || defined(__GLIBC__)
> - # include <fts.h>
> - #endif
> - # include <dirent.h>
> -diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
> -index 257ccb4..01314e4 100644
>  --- a/toolkit/mozapps/update/updater/updater.cpp
>  +++ b/toolkit/mozapps/update/updater/updater.cpp
>  @@ -3737,6 +3737,7 @@ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
> @@ -88,3 +73,14 @@ index 257ccb4..01314e4 100644
>   
>     return rv;
>   }
> +--- ./toolkit/mozapps/update/common/updatedefines.h
> ++++ ./toolkit/mozapps/update/common/updatedefines.h.
> +@@ -102,7 +102,7 @@
> + 
> + #ifdef SOLARIS
> + #include <sys/stat.h>
> +-#else
> ++#elif !defined(__linux__) || defined(__GLIBC__)
> + #include <fts.h>
> + #endif
> + #include <dirent.h>
> diff --git a/testing/firefox/fix-tools.patch b/testing/firefox/fix-tools.patch
> index 84f7fa9cb8..ed2c7f2bca 100644
> --- a/testing/firefox/fix-tools.patch
> +++ b/testing/firefox/fix-tools.patch
> @@ -11,12 +11,12 @@
>   #include "MainThreadUtils.h"
>  --- a/tools/profiler/lul/LulElf.cpp
>  +++ b/tools/profiler/lul/LulElf.cpp
> -@@ -579,10 +579,10 @@
> +@@ -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) {
> + string BaseFileName(const string& filename) {
>  -  // Lots of copies!  basename's behavior is less than ideal.
> --  char *c_filename = strdup(filename.c_str());
> +-  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
> @@ -25,13 +25,13 @@
>  +  string base = p ? p+1 : c_filename;
>     return base;
>   }
> -
> + 
>  --- a/tools/profiler/core/platform-linux-android.cpp.orig
>  +++ b/tools/profiler/core/platform-linux-android.cpp
> -@@ -534,9 +534,11 @@
> - void
> - Registers::SyncPopulate()
> - {
> +@@ -497,8 +497,10 @@
> + ucontext_t sSyncUContext;
> + 
> + void Registers::SyncPopulate() {
>  +#if defined(__GLIBC__)
>     if (!getcontext(&sSyncUContext)) {
>       PopulateRegsFromContext(*this, &sSyncUContext);
> @@ -39,4 +39,4 @@
>  +#endif
>   }
>   #endif
> - 
> +
> diff --git a/testing/firefox/fix-webrtc-glibcisms.patch b/testing/firefox/fix-webrtc-glibcisms.patch
> index dc9206b50e..95b3a55eeb 100644
> --- a/testing/firefox/fix-webrtc-glibcisms.patch
> +++ b/testing/firefox/fix-webrtc-glibcisms.patch
> @@ -1,13 +1,13 @@
> ---- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2018-05-09 23:48:44.677389171 +0200
> -+++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2018-05-09 23:48:56.254373557 +0200
> -@@ -11,7 +11,9 @@
> - #include <stdlib.h>
> - #include <string.h>
> - #include <features.h>
> +--- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c
> ++++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.
> +@@ -14,7 +14,9 @@
> + #ifndef __GLIBC_PREREQ
> + #define __GLIBC_PREREQ(a, b) 0
> + #endif
>  -#if __GLIBC_PREREQ(2, 16)
> -+#if !defined(__GLIBC__)
> -+#include <sys/auxv.h>
> -+#elif __GLIBC_PREREQ(2, 16)
> ++#if !defined(__GLIBC__)                                                                                                                                       
> ++#include <sys/auxv.h>                                                                                                                                         
> ++#elif __GLIBC_PREREQ(2, 16) 
>   #include <sys/auxv.h>
>   #else
>   #include <fcntl.h>
> diff --git a/testing/firefox/rust-unitialized-field.patch b/testing/firefox/rust-unitialized-field.patch
> index 67ef3a02ab..3ef7f055ca 100644
> --- a/testing/firefox/rust-unitialized-field.patch
> +++ b/testing/firefox/rust-unitialized-field.patch
> @@ -1,11 +1,14 @@
> ---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
> -+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
> -@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
> +--- ./media/audioipc/audioipc/src/cmsg.rs
> ++++ ./media/audioipc/audioipc/src/cmsg.rs.
> +@@ -105,14 +105,12 @@
> +             if cmsg.remaining_mut() < cmsg_len {
>                   return Err(Error::NoSpace);
>               }
> - 
> +
>  -            let cmsghdr = cmsghdr {
>  -                cmsg_len: cmsg_len as _,
> +-                #[cfg(target_env = "musl")]
> +-                __pad1: 0,
>  -                cmsg_level: level,
>  -                cmsg_type: kind,
>  -            };



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---