aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md7
-rw-r--r--PKGBUILD11
-rwxr-xr-xbinary_tarball/scripts/3_Configure_Source_Code.sh1
-rwxr-xr-xbinary_tarball/scripts/5_Configure_Binary_Tarball.sh2
-rw-r--r--deb_patches/fix-armhf-webrtc-build.patch70
-rw-r--r--deb_patches/python3-remove-fstrings.patch104
-rw-r--r--deb_patches/sandbox-update-arm-syscall-numbers.patch144
-rw-r--r--deb_patches/silence-gtk-style-assertions.patch10
-rw-r--r--deb_patches/webrtc-fix-compiler-flags-for-armhf.patch4
9 files changed, 258 insertions, 95 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0fdaaad..2ddb1b1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
This project follows the official Firefox releases, but also uses
[Arch Linux Package Versioning](https://wiki.archlinux.org/index.php/Arch_package_guidelines#Package_versioning) to mark individual releases in between versions.
+## [83.0-1] - 2020-11-21
+
+### Changed
+
+- New upstream release 83.0
+- New upstream release of included uBlock Origin (1.31.0)
+
## [82.0.3-1] - 2020-11-10
### Changed
diff --git a/PKGBUILD b/PKGBUILD
index 3de4a46..cc1f8d7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
pkgname=librewolf
_pkgname=LibreWolf
# how to get ci vars instead?
-pkgver=82.0.3
+pkgver=83.0
pkgrel=1
pkgdesc="Community-maintained fork of Firefox, focused on privacy, security and freedom."
arch=(x86_64 aarch64)
@@ -23,7 +23,7 @@ optdepends=('networkmanager: Location detection via available WiFi networks'
'hunspell-en_US: Spell checking, American English')
options=(!emptydirs !makeflags !strip)
_arch_svn=https://git.archlinux.org/svntogit/packages.git/plain/trunk
-_settings_commit=8697f589a1499598b8af5df11d82b60e8c97d981
+_settings_commit=2f76ae07f7016034273f1887b7f1bedab997909c
source_x86_64=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
$pkgname.desktop
"git+https://gitlab.com/${pkgname}-community/browser/common.git"
@@ -39,13 +39,13 @@ source_aarch64=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/
arm.patch
https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch)
-sha256sums_x86_64=('4df40aecf4b71107c4816db585bcd425f093123f29d8563bc2443a8659058691'
+sha256sums_x86_64=('d69e84e8b8449f828683d274c24e03095858362bfed21b08bdd7fe715eea5398'
'0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2'
'SKIP'
'SKIP'
'682bf4bf5d79db0080aa132235a95b25745c8ef944d2a2e1fed985489d894df5'
'41719289b309912c4b6bc86b41594f671427979481a90c32a9d3d0bf1cdd6d44')
-sha256sums_aarch64=('4df40aecf4b71107c4816db585bcd425f093123f29d8563bc2443a8659058691'
+sha256sums_aarch64=('d69e84e8b8449f828683d274c24e03095858362bfed21b08bdd7fe715eea5398'
'0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2'
'SKIP'
'SKIP'
@@ -257,6 +257,9 @@ pref("spellchecker.dictionary_path", "/usr/share/hunspell");
// pref("extensions.autoDisableScopes", 11);
END
+ cd ${srcdir}/settings
+ git checkout ${_settings_commit}
+ cd ${srcdir}/firefox-$pkgver
cp -r ${srcdir}/settings/* ${pkgdir}/usr/lib/${pkgname}/
local distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
diff --git a/binary_tarball/scripts/3_Configure_Source_Code.sh b/binary_tarball/scripts/3_Configure_Source_Code.sh
index 1afc5c1..37a6ae5 100755
--- a/binary_tarball/scripts/3_Configure_Source_Code.sh
+++ b/binary_tarball/scripts/3_Configure_Source_Code.sh
@@ -121,6 +121,7 @@ patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/python3-remove-variable-annotations.
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/python3-remove-fstrings.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/python3-remove-pep487.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/silence-gtk-style-assertions.patch"
+patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/sandbox-update-arm-syscall-numbers.patch"
# Remove some pre-installed addons that might be questionable
patch -p1 -i ${CI_PROJECT_DIR}/remove_addons.patch
diff --git a/binary_tarball/scripts/5_Configure_Binary_Tarball.sh b/binary_tarball/scripts/5_Configure_Binary_Tarball.sh
index d4826d4..04bc086 100755
--- a/binary_tarball/scripts/5_Configure_Binary_Tarball.sh
+++ b/binary_tarball/scripts/5_Configure_Binary_Tarball.sh
@@ -11,7 +11,7 @@ LAUNCHER_SCRIPT=$3;
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../../)}
_SCRIPT_FOLDER=$(realpath $(dirname $0));
_EXTRACTED_TARBALL_FOLDER=$_SCRIPT_FOLDER/librewolf;
-_SETTINGS_COMMIT=8697f589a1499598b8af5df11d82b60e8c97d981
+_SETTINGS_COMMIT=2f76ae07f7016034273f1887b7f1bedab997909c
_SETTINGS_REPO='https://gitlab.com/librewolf-community/settings.git';
# Extracts the binary tarball
diff --git a/deb_patches/fix-armhf-webrtc-build.patch b/deb_patches/fix-armhf-webrtc-build.patch
index 44e88a6..9f45a78 100644
--- a/deb_patches/fix-armhf-webrtc-build.patch
+++ b/deb_patches/fix-armhf-webrtc-build.patch
@@ -1,59 +1,30 @@
-diff -r 53fd96ca5aa4 media/webrtc/gn-configs/arm_False_arm_linux.json
---- a/media/webrtc/gn-configs/arm_False_arm_linux.json Sun Dec 09 23:42:51 2018 +0200
-+++ b/media/webrtc/gn-configs/arm_False_arm_linux.json Mon Dec 10 10:40:13 2018 +0100
-@@ -15969,9 +15969,7 @@
- "/home/jenkins/workspace/Firefox-default/label/armv7/firefox/obj-armv7l-unknown-linux-gnueabihf/media/webrtc/trunk/webrtc/gn-output/gen/"
- ],
- "libs": [],
-- "sources": [
-- "//system_wrappers/source/cpu_features_linux.c"
-- ],
-+ "sources": [],
- "type": "static_library"
- },
- "//system_wrappers:field_trial_api": {
-diff -r 53fd96ca5aa4 media/webrtc/gn-configs/arm_True_arm_linux.json
---- a/media/webrtc/gn-configs/arm_True_arm_linux.json Sun Dec 09 23:42:51 2018 +0200
-+++ b/media/webrtc/gn-configs/arm_True_arm_linux.json Mon Dec 10 10:40:13 2018 +0100
-@@ -15558,9 +15558,7 @@
- "/home/jenkins/workspace/Firefox-default/label/armv7/firefox/obj-armv7l-unknown-linux-gnueabihf/media/webrtc/trunk/webrtc/gn-output/gen/"
- ],
- "libs": [],
-- "sources": [
-- "//system_wrappers/source/cpu_features_linux.c"
-- ],
-+ "sources": [],
- "type": "static_library"
- },
- "//system_wrappers:field_trial_api": {
-diff -r 53fd96ca5aa4 media/webrtc/trunk/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
---- a/media/webrtc/trunk/webrtc/system_wrappers/cpu_features_linux_gn/moz.build Sun Dec 09 23:42:51 2018 +0200
-+++ b/media/webrtc/trunk/webrtc/system_wrappers/cpu_features_linux_gn/moz.build Mon Dec 10 10:40:13 2018 +0100
-@@ -31,10 +31,6 @@
- "/media/webrtc/trunk/webrtc/"
+--- a/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
++++ b/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
+@@ -31,10 +31,6 @@ LOCAL_INCLUDES += [
+ "/third_party/libwebrtc/webrtc/"
]
-UNIFIED_SOURCES += [
-- "/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c"
+- "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
-]
-
if not CONFIG["MOZ_DEBUG"]:
DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0"
-@@ -53,20 +49,36 @@
+@@ -53,20 +49,36 @@ if CONFIG["CPU_ARCH"] == "aarch64":
DEFINES["WEBRTC_ARCH_ARM64"] = True
DEFINES["WEBRTC_HAS_NEON"] = True
-if CONFIG["CPU_ARCH"] == "arm":
-+ UNIFIED_SOURCES += [
-+ "/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c"
-+ ]
-
+-
- CFLAGS += [
- "-mfpu=neon"
-- ]
-+if CONFIG["CPU_ARCH"] == "arm":
++ UNIFIED_SOURCES += [
++ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
+ ]
++if CONFIG["CPU_ARCH"] == "arm":
++
DEFINES["WEBRTC_ARCH_ARM"] = True
DEFINES["WEBRTC_ARCH_ARM_V7"] = True
DEFINES["WEBRTC_HAS_NEON"] = True
@@ -61,7 +32,7 @@ diff -r 53fd96ca5aa4 media/webrtc/trunk/webrtc/system_wrappers/cpu_features_linu
+if CONFIG["CPU_ARCH"] == "ppc64":
+
+ UNIFIED_SOURCES += [
-+ "/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c"
++ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
+ ]
+
if CONFIG["CPU_ARCH"] == "x86":
@@ -71,13 +42,24 @@ diff -r 53fd96ca5aa4 media/webrtc/trunk/webrtc/system_wrappers/cpu_features_linu
]
+ UNIFIED_SOURCES += [
-+ "/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c"
++ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
+ ]
+
+if CONFIG["CPU_ARCH"] == "x86_64":
+
+ UNIFIED_SOURCES += [
-+ "/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c"
++ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
+ ]
+
Library("cpu_features_linux_gn")
+--- a/third_party/libwebrtc/webrtc/system_wrappers/BUILD.gn
++++ b/third_party/libwebrtc/webrtc/system_wrappers/BUILD.gn
+@@ -187,7 +187,7 @@ if (is_android && !build_with_mozilla) {
+ }
+ }
+
+-if (is_linux) {
++if (is_linux && target_cpu != "arm") {
+ rtc_static_library("cpu_features_linux") {
+ sources = [
+ "source/cpu_features_linux.c",
diff --git a/deb_patches/python3-remove-fstrings.patch b/deb_patches/python3-remove-fstrings.patch
index 93da547..f121f06 100644
--- a/deb_patches/python3-remove-fstrings.patch
+++ b/deb_patches/python3-remove-fstrings.patch
@@ -123,7 +123,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
def check_user_lifetime_expiration(
-@@ -263,8 +271,9 @@ class GlinterNit:
+@@ -281,8 +289,9 @@ class GlinterNit:
def format(self):
return (
@@ -135,18 +135,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
)
-@@ -324,8 +333,9 @@ def lint_metrics(
- "SUPERFLUOUS_NO_LINT",
- ".".join([metric.category, metric.name]),
- (
-- f"Superfluous no_lint entry '{check_name}'. "
-+ "Superfluous no_lint entry '{}'. "
- "Please remove it."
-+ .format(check_name)
- ),
- CheckType.warning,
- )
-@@ -372,7 +382,7 @@ def lint_yaml_files(input_filepaths: Ite
+@@ -374,7 +383,7 @@ def lint_yaml_files(input_filepaths: Ite
if len(nits):
print("Sorry, Glean found some glinter nits:", file=file)
for (path, p) in nits:
@@ -157,7 +146,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/third_party/python/glean_parser/glean_parser/markdown.py
+++ b/third_party/python/glean_parser/glean_parser/markdown.py
-@@ -70,7 +70,7 @@ def metrics_docs(obj_name: str) -> str:
+@@ -73,7 +73,7 @@ def metrics_docs(obj_name: str) -> str:
if obj_name.startswith("labeled_"):
fixedup_name += "s"
@@ -166,7 +155,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
def ping_docs(ping_name: str) -> str:
-@@ -81,7 +81,7 @@ def ping_docs(ping_name: str) -> str:
+@@ -84,7 +84,7 @@ def ping_docs(ping_name: str) -> str:
if ping_name not in pings.RESERVED_PING_NAMES:
return ""
@@ -205,16 +194,16 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
filetype = FILE_TYPES.get(schema_key)
-@@ -115,7 +116,7 @@ def _get_schema(
- if schema_id not in schemas:
- raise ValueError(
+@@ -117,7 +118,7 @@ def _get_schema(
util.format_error(
-- filepath, "", f"$schema key must be one of {', '.join(schemas.keys())}",
-+ filepath, "", "$schema key must be one of {}".format(', '.join(schemas.keys())),
+ filepath,
+ "",
+- f"$schema key must be one of {', '.join(schemas.keys())}",
++ "$schema key must be one of {}".format(', '.join(schemas.keys())),
)
)
return schemas[schema_id]
-@@ -187,7 +188,7 @@ def _instantiate_metrics(
+@@ -189,7 +190,7 @@ def _instantiate_metrics(
if not config.get("allow_reserved") and category_key.split(".")[0] == "glean":
yield util.format_error(
filepath,
@@ -223,7 +212,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
"Categories beginning with 'glean' are reserved for "
"Glean internal use.",
)
-@@ -195,7 +196,7 @@ def _instantiate_metrics(
+@@ -197,7 +198,7 @@ def _instantiate_metrics(
all_objects.setdefault(category_key, OrderedDict())
if not isinstance(category_val, dict):
@@ -232,16 +221,16 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
for metric_key, metric_val in category_val.items():
try:
-@@ -204,7 +205,7 @@ def _instantiate_metrics(
- )
+@@ -207,7 +208,7 @@ def _instantiate_metrics(
except Exception as e:
yield util.format_error(
-- filepath, f"On instance {category_key}.{metric_key}", str(e),
-+ filepath, "On instance {}.{}".format(category_key, metric_key), str(e),
+ filepath,
+- f"On instance {category_key}.{metric_key}",
++ "On instance {}.{}".format(category_key, metric_key),
+ str(e),
)
metric_obj = None
- else:
-@@ -214,7 +215,7 @@ def _instantiate_metrics(
+@@ -218,7 +219,7 @@ def _instantiate_metrics(
):
yield util.format_error(
filepath,
@@ -250,7 +239,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
'Only internal metrics may specify "all-pings" '
'in "send_in_pings"',
)
-@@ -230,8 +231,9 @@ def _instantiate_metrics(
+@@ -234,8 +235,9 @@ def _instantiate_metrics(
filepath,
"",
(
@@ -262,7 +251,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
),
)
else:
-@@ -257,17 +259,17 @@ def _instantiate_pings(
+@@ -261,17 +263,17 @@ def _instantiate_pings(
if ping_key in RESERVED_PING_NAMES:
yield util.format_error(
filepath,
@@ -284,7 +273,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
continue
already_seen = sources.get(ping_key)
-@@ -276,8 +278,9 @@ def _instantiate_pings(
+@@ -280,8 +282,9 @@ def _instantiate_pings(
yield util.format_error(
filepath,
"",
@@ -318,18 +307,27 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
+ return "{}:\n{}".format(filepath, _utils.indent(content))
- def is_expired(expires: str) -> bool:
-@@ -353,8 +353,8 @@ def is_expired(expires: str) -> bool:
- date = datetime.date.fromisoformat(expires)
- except ValueError:
- raise ValueError(
-- f"Invalid expiration date '{expires}'. "
-- "Must be of the form yyyy-mm-dd in UTC."
-+ "Invalid expiration date '{}'. "
-+ "Must be of the form yyyy-mm-dd in UTC.".format(expires)
- )
- return date <= datetime.datetime.utcnow().date()
+ def parse_expires(expires: str) -> datetime.date:
+@@ -351,8 +351,8 @@ def parse_expires(expires: str) -> datet
+ return datetime.date.fromisoformat(expires)
+ except ValueError:
+ raise ValueError(
+- f"Invalid expiration date '{expires}'. "
+- "Must be of the form yyyy-mm-dd in UTC."
++ "Invalid expiration date '{}'. "
++ "Must be of the form yyyy-mm-dd in UTC.".format(expires)
+ )
+
+@@ -382,7 +382,7 @@ def validate_expires(expires: str) -> No
+ max_date = datetime.datetime.now() + datetime.timedelta(days=730)
+ if date > max_date.date():
+ raise ValueError(
+- f"'{expires}' is more than 730 days (~2 years) in the future.",
++ "'{}' is more than 730 days (~2 years) in the future.".format(expires),
+ "Please make sure this is intentional.",
+ "You can supress this warning by adding EXPIRATION_DATE_TOO_FAR to no_lint",
+ "See: https://mozilla.github.io/glean_parser/metrics-yaml.html#no_lint",
--- a/third_party/python/glean_parser/tools/extract_data_categories.py
+++ b/third_party/python/glean_parser/tools/extract_data_categories.py
@@ -62,7 +62,7 @@ def fetch_url(url: str) -> str:
@@ -381,7 +379,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
else:
--- a/third_party/python/glean_parser/glean_parser/metrics.py
+++ b/third_party/python/glean_parser/glean_parser/metrics.py
-@@ -133,7 +133,7 @@ class Metric:
+@@ -138,7 +138,7 @@ class Metric:
"""
metric_type = metric_info["type"]
if not isinstance(metric_type, str):
@@ -390,3 +388,23 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
return cls.metric_types[metric_type](
category=category,
name=name,
+--- a/third_party/python/glean_parser/glean_parser/translate.py
++++ b/third_party/python/glean_parser/glean_parser/translate.py
+@@ -112,7 +112,7 @@ def translate_metrics(
+ for filepath in output_dir.glob(clear_pattern):
+ filepath.unlink()
+ if len(list(output_dir.iterdir())):
+- print(f"Extra contents found in '{output_dir}'.")
++ print("Extra contents found in '{}'.".format(output_dir))
+
+ # We can't use shutil.copytree alone if the directory already exists.
+ # However, if it doesn't exist, make sure to create one otherwise
+@@ -146,7 +146,7 @@ def translate(
+ format_desc = OUTPUTTERS.get(output_format, None)
+
+ if format_desc is None:
+- raise ValueError(f"Unknown output format '{output_format}'")
++ raise ValueError("Unknown output format '{}'".format(output_format))
+
+ return translate_metrics(
+ input_filepaths,
diff --git a/deb_patches/sandbox-update-arm-syscall-numbers.patch b/deb_patches/sandbox-update-arm-syscall-numbers.patch
new file mode 100644
index 0000000..b6cf3bb
--- /dev/null
+++ b/deb_patches/sandbox-update-arm-syscall-numbers.patch
@@ -0,0 +1,144 @@
+From 05971bd227dc6c359657d1501711e6865e9430f9 Mon Sep 17 00:00:00 2001
+From: Matthew Denton <mpdenton@chromium.org>
+Date: Tue, 28 Jul 2020 00:29:01 +0000
+Subject: [PATCH] Linux sandbox: update arm syscall numbers
+
+Change-Id: Ia2c39a86fb3516040a74de963115e73b7b1a1e0c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2318316
+Reviewed-by: Robert Sesek <rsesek@chromium.org>
+Commit-Queue: Matthew Denton <mpdenton@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#792090}
+---
+
+diff --git a/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h b/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
+index 59d0eab8..a242c18c 100644
+--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
++++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
+@@ -1063,4 +1063,60 @@
+ #define __NR_memfd_create 279
+ #endif
+
++#if !defined(__NR_bpf)
++#define __NR_bpf 280
++#endif
++
++#if !defined(__NR_execveat)
++#define __NR_execveat 281
++#endif
++
++#if !defined(__NR_userfaultfd)
++#define __NR_userfaultfd 282
++#endif
++
++#if !defined(__NR_membarrier)
++#define __NR_membarrier 283
++#endif
++
++#if !defined(__NR_mlock2)
++#define __NR_mlock2 284
++#endif
++
++#if !defined(__NR_copy_file_range)
++#define __NR_copy_file_range 285
++#endif
++
++#if !defined(__NR_preadv2)
++#define __NR_preadv2 286
++#endif
++
++#if !defined(__NR_pwritev2)
++#define __NR_pwritev2 287
++#endif
++
++#if !defined(__NR_pkey_mprotect)
++#define __NR_pkey_mprotect 288
++#endif
++
++#if !defined(__NR_pkey_alloc)
++#define __NR_pkey_alloc 289
++#endif
++
++#if !defined(__NR_pkey_free)
++#define __NR_pkey_free 290
++#endif
++
++#if !defined(__NR_statx)
++#define __NR_statx 291
++#endif
++
++#if !defined(__NR_io_pgetevents)
++#define __NR_io_pgetevents 292
++#endif
++
++#if !defined(__NR_rseq)
++#define __NR_rseq 293
++#endif
++
+ #endif // SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
+diff --git a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
+index 1addd53..85e2110b 100644
+--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
++++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
+@@ -1385,6 +1385,62 @@
+ #define __NR_memfd_create (__NR_SYSCALL_BASE+385)
+ #endif
+
++#if !defined(__NR_bpf)
++#define __NR_bpf (__NR_SYSCALL_BASE+386)
++#endif
++
++#if !defined(__NR_execveat)
++#define __NR_execveat (__NR_SYSCALL_BASE+387)
++#endif
++
++#if !defined(__NR_userfaultfd)
++#define __NR_userfaultfd (__NR_SYSCALL_BASE+388)
++#endif
++
++#if !defined(__NR_membarrier)
++#define __NR_membarrier (__NR_SYSCALL_BASE+389)
++#endif
++
++#if !defined(__NR_mlock2)
++#define __NR_mlock2 (__NR_SYSCALL_BASE+390)
++#endif
++
++#if !defined(__NR_copy_file_range)
++#define __NR_copy_file_range (__NR_SYSCALL_BASE+391)
++#endif
++
++#if !defined(__NR_preadv2)
++#define __NR_preadv2 (__NR_SYSCALL_BASE+392)
++#endif
++
++#if !defined(__NR_pwritev2)
++#define __NR_pwritev2 (__NR_SYSCALL_BASE+393)
++#endif
++
++#if !defined(__NR_pkey_mprotect)
++#define __NR_pkey_mprotect (__NR_SYSCALL_BASE+394)
++#endif
++
++#if !defined(__NR_pkey_alloc)
++#define __NR_pkey_alloc (__NR_SYSCALL_BASE+395)
++#endif
++
++#if !defined(__NR_pkey_free)
++#define __NR_pkey_free (__NR_SYSCALL_BASE+396)
++#endif
++
++#if !defined(__NR_statx)
++#define __NR_statx (__NR_SYSCALL_BASE+397)
++#endif
++
++#if !defined(__NR_rseq)
++#define __NR_rseq (__NR_SYSCALL_BASE+398)
++#endif
++
++#if !defined(__NR_io_pgetevents)
++#define __NR_io_pgetevents (__NR_SYSCALL_BASE+399)
++#endif
++
+ // ARM private syscalls.
+ #if !defined(__ARM_NR_BASE)
+ #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
diff --git a/deb_patches/silence-gtk-style-assertions.patch b/deb_patches/silence-gtk-style-assertions.patch
index bfad1cc..b63a658 100644
--- a/deb_patches/silence-gtk-style-assertions.patch
+++ b/deb_patches/silence-gtk-style-assertions.patch
@@ -4,7 +4,7 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/widget/gtk/nsLookAndFeel.cpp
+++ b/widget/gtk/nsLookAndFeel.cpp
-@@ -1142,7 +1142,7 @@ void nsLookAndFeel::EnsureInit() {
+@@ -1216,7 +1216,7 @@ void nsLookAndFeel::EnsureInit() {
&color);
mTextSelectedText = GDK_RGBA_TO_NS_RGBA(color);
};
@@ -13,6 +13,14 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
if (mTextSelectedBackground == mTextSelectedText) {
// Some old distros/themes don't properly use the .selection style, so
// fall back to the regular text view style.
+@@ -1413,6 +1413,7 @@ bool nsLookAndFeel::WidgetUsesImage(Widg
+ };
+
+ GtkStyleContext* style = GetStyleContext(aNodeType);
++ if (!style) return false;
+
+ GValue value = G_VALUE_INIT;
+ for (GtkStateFlags state : sFlagsToCheck) {
--- a/widget/gtk/WidgetStyleCache.cpp
+++ b/widget/gtk/WidgetStyleCache.cpp
@@ -933,7 +933,7 @@ static GtkStyleContext* GetWidgetRootSty
diff --git a/deb_patches/webrtc-fix-compiler-flags-for-armhf.patch b/deb_patches/webrtc-fix-compiler-flags-for-armhf.patch
index 5846b21..5cd6658 100644
--- a/deb_patches/webrtc-fix-compiler-flags-for-armhf.patch
+++ b/deb_patches/webrtc-fix-compiler-flags-for-armhf.patch
@@ -23,8 +23,8 @@
# For libyuv
gyp_vars['arm_version'] = int(CONFIG['ARM_ARCH'])
---- a/media/webrtc/trunk/webrtc/build/config/compiler/BUILD.gn
-+++ b/media/webrtc/trunk/webrtc/build/config/compiler/BUILD.gn
+--- a/third_party/libwebrtc/webrtc/build/config/compiler/BUILD.gn
++++ b/third_party/libwebrtc/webrtc/build/config/compiler/BUILD.gn
@@ -590,7 +590,6 @@ config("compiler_cpu_abi") {
if (!is_nacl) {
cflags += [
bgstack15