summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladislav Nepogodin2021-02-26 19:14:16 +0400
committerVladislav Nepogodin2021-02-26 19:14:16 +0400
commite084615ef4bc5bbe5ecc8708c07d5d6262649bd6 (patch)
tree421b210e995b2908cfa973f40de464e15c9bbd41
downloadaur-e084615ef4bc5bbe5ecc8708c07d5d6262649bd6.tar.gz
Add LTO
update librewolf commit
-rw-r--r--.SRCINFO97
-rw-r--r--PKGBUILD362
-rw-r--r--build-arm-libopus.patch12
-rw-r--r--librewolf-nightly.desktop340
-rw-r--r--megabar.patch129
5 files changed, 940 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..f5ed29345e19
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,97 @@
+pkgbase = librewolf-nightly
+ pkgdesc = Community-maintained fork of Firefox, focused on privacy, security and freedom. (nightly edition)
+ pkgver = r635306.b898442a9527
+ pkgrel = 1
+ url = https://librewolf-community.gitlab.io/
+ arch = x86_64
+ arch = aarch64
+ license = MPL
+ license = GPL
+ license = LGPL
+ makedepends = unzip
+ makedepends = zip
+ makedepends = diffutils
+ makedepends = yasm
+ makedepends = mesa
+ makedepends = imake
+ makedepends = inetutils
+ makedepends = rust
+ makedepends = mozilla-common
+ makedepends = xorg-server-xwayland
+ makedepends = autoconf2.13
+ makedepends = mercurial
+ makedepends = clang
+ makedepends = llvm
+ makedepends = jack
+ makedepends = gtk2
+ makedepends = nodejs
+ makedepends = cbindgen
+ makedepends = nasm
+ makedepends = python-setuptools
+ makedepends = python-psutil
+ makedepends = python-zstandard
+ makedepends = git
+ makedepends = binutils
+ makedepends = lld
+ depends = gtk3
+ depends = libxt
+ depends = mime-types
+ depends = dbus-glib
+ depends = ffmpeg
+ depends = nss
+ depends = ttf-font
+ depends = libpulse
+ depends = libvpx
+ depends = libjpeg
+ depends = zlib
+ depends = icu
+ depends = libevent
+ depends = libpipewire02
+ optdepends = networkmanager: Location detection via available WiFi networks
+ optdepends = libnotify: Notification integration
+ optdepends = pulseaudio: Audio support
+ optdepends = speech-dispatcher: Text-to-Speech
+ optdepends = hunspell-en_US: Spell checking, American English
+ optdepends = libappindicator-gtk3: global menu support for gtk app
+ optdepends = appmenu-gtk-module: appmenu for gtk only
+ optdepends = plasma5-applets-window-appmenu: appmenu for plasma only
+ provides = librewolf
+ conflicts = librewolf
+ options = !emptydirs
+ options = !makeflags
+ options = !strip
+ source_x86_64 = hg+https://hg.mozilla.org/mozilla-unified#revision=autoland
+ source_x86_64 = librewolf-nightly.desktop
+ source_x86_64 = git+https://gitlab.com/librewolf-community/browser/common.git
+ source_x86_64 = git+https://gitlab.com/librewolf-community/settings.git#commit=c5c75a39dd91a8772255a78493853be6553262b2
+ source_x86_64 = megabar.patch
+ source_x86_64 = remove_addons.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/e123b80f7df1ad9043435f345c426717ca323579/remove_addons.patch
+ source_x86_64 = context-menu.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/e123b80f7df1ad9043435f345c426717ca323579/context-menu.patch
+ sha512sums_x86_64 = SKIP
+ sha512sums_x86_64 = 7fdfc23fbf637ef036f51b439e56a84fd12d7f50a894b7318d287da1584ed8be1958c1e403735e9edab8888699f3a68df5c69854d4b87187af1c76734644e44e
+ sha512sums_x86_64 = SKIP
+ sha512sums_x86_64 = SKIP
+ sha512sums_x86_64 = d90d0e8d555d32720fd519ec020c8232539cef1f0754cf8c9aa78aa86bbbe3eb1f61748b92e9332d75fb1d933ac543de047e9312740f710b870a64da8caa3eef
+ sha512sums_x86_64 = 8a8ae3276914cd8812feb99acac8c2363f5530656593bebaed5cf67defec19153c30409b6fba418162c7e7f2876554202bbcf5f356d7e785488859879161d921
+ sha512sums_x86_64 = a4274739be161710d90fdb674315ef4b0696ce6e092641a62f7a18c5a773de959a38fe52e0c8683821753a99e4337ea3e448579937d684e22345f7d936161061
+ source_aarch64 = hg+https://hg.mozilla.org/mozilla-unified#revision=autoland
+ source_aarch64 = librewolf-nightly.desktop
+ source_aarch64 = git+https://gitlab.com/librewolf-community/browser/common.git
+ source_aarch64 = git+https://gitlab.com/librewolf-community/settings.git#commit=c5c75a39dd91a8772255a78493853be6553262b2
+ source_aarch64 = megabar.patch
+ source_aarch64 = remove_addons.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/e123b80f7df1ad9043435f345c426717ca323579/remove_addons.patch
+ source_aarch64 = context-menu.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/e123b80f7df1ad9043435f345c426717ca323579/context-menu.patch
+ source_aarch64 = arm.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/e123b80f7df1ad9043435f345c426717ca323579/arm.patch
+ source_aarch64 = build-arm-libopus.patch
+ sha512sums_aarch64 = SKIP
+ sha512sums_aarch64 = 7fdfc23fbf637ef036f51b439e56a84fd12d7f50a894b7318d287da1584ed8be1958c1e403735e9edab8888699f3a68df5c69854d4b87187af1c76734644e44e
+ sha512sums_aarch64 = SKIP
+ sha512sums_aarch64 = SKIP
+ sha512sums_aarch64 = d90d0e8d555d32720fd519ec020c8232539cef1f0754cf8c9aa78aa86bbbe3eb1f61748b92e9332d75fb1d933ac543de047e9312740f710b870a64da8caa3eef
+ sha512sums_aarch64 = 8a8ae3276914cd8812feb99acac8c2363f5530656593bebaed5cf67defec19153c30409b6fba418162c7e7f2876554202bbcf5f356d7e785488859879161d921
+ sha512sums_aarch64 = a4274739be161710d90fdb674315ef4b0696ce6e092641a62f7a18c5a773de959a38fe52e0c8683821753a99e4337ea3e448579937d684e22345f7d936161061
+ sha512sums_aarch64 = 179d922764a959c3eccd1ff98e16c629516d04c9a3a8fe6d199f8de88ad7163a026e4415836728a01a89703f1f31247addcead2da2b341b1849e4627a742c5b9
+ sha512sums_aarch64 = 6d464cce32cb2e440fb137666aeefec1240bcbdfdef0e8633e0fbe22e2214446b2c992ee2c8716c682a42fcd1d66d9fdf1d6d5b40f8ec3b0eeec5ca9e3f1aa35
+
+pkgname = librewolf-nightly
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..41da6c02c21d
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,362 @@
+# Maintainer: vnepogodin
+# Contributor: Kyle De'Vir (QuartzDragon) <kyle[dot]devir[at]mykolab[dot]com>
+# Contributor: Jonas Heinrich <onny@project-insanity.org>
+# Contributor: Maxwell Anselm <silverhammermba+aur@gmail.com>
+# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Jakub Schmidtke <sjakub@gmail.com>
+
+pkgname=librewolf-nightly
+_pkgname="Librewolf Nightly"
+pkgver=r635306.b898442a9527
+pkgrel=1
+pkgdesc="Community-maintained fork of Firefox, focused on privacy, security and freedom. (nightly edition)"
+arch=(x86_64 aarch64)
+license=(MPL GPL LGPL)
+url="https://librewolf-community.gitlab.io/"
+depends=(gtk3 libxt mime-types dbus-glib
+ ffmpeg nss ttf-font libpulse
+ libvpx libjpeg zlib icu libevent libpipewire02)
+makedepends=(unzip zip diffutils yasm mesa imake inetutils
+ rust mozilla-common xorg-server-xwayland
+ autoconf2.13 mercurial clang llvm jack gtk2 nodejs cbindgen nasm
+ python-setuptools python-psutil python-zstandard git binutils lld)
+optdepends=('networkmanager: Location detection via available WiFi networks'
+ 'libnotify: Notification integration'
+ 'pulseaudio: Audio support'
+ 'speech-dispatcher: Text-to-Speech'
+ 'hunspell-en_US: Spell checking, American English'
+ 'libappindicator-gtk3: global menu support for gtk app'
+ 'appmenu-gtk-module: appmenu for gtk only'
+ 'plasma5-applets-window-appmenu: appmenu for plasma only')
+options=(!emptydirs !makeflags !strip)
+_linux_commit=e123b80f7df1ad9043435f345c426717ca323579
+_settings_commit=c5c75a39dd91a8772255a78493853be6553262b2
+_repo=https://hg.mozilla.org/mozilla-unified
+conflicts=('librewolf')
+provides=('librewolf')
+source_x86_64=("hg+$_repo#revision=autoland"
+ $pkgname.desktop
+ "git+https://gitlab.com/librewolf-community/browser/common.git"
+ "git+https://gitlab.com/librewolf-community/settings.git#commit=${_settings_commit}"
+ megabar.patch
+ "remove_addons.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/${_linux_commit}/remove_addons.patch"
+ "context-menu.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/${_linux_commit}/context-menu.patch")
+source_aarch64=("hg+$_repo#revision=autoland"
+ $pkgname.desktop
+ "git+https://gitlab.com/librewolf-community/browser/common.git"
+ "git+https://gitlab.com/librewolf-community/settings.git#commit=${_settings_commit}"
+ megabar.patch
+ "remove_addons.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/${_linux_commit}/remove_addons.patch"
+ "context-menu.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/${_linux_commit}/context-menu.patch"
+ "arm.patch::https://gitlab.com/librewolf-community/browser/linux/-/raw/${_linux_commit}/arm.patch"
+ build-arm-libopus.patch)
+
+sha512sums_x86_64=('SKIP'
+ '7fdfc23fbf637ef036f51b439e56a84fd12d7f50a894b7318d287da1584ed8be1958c1e403735e9edab8888699f3a68df5c69854d4b87187af1c76734644e44e'
+ 'SKIP'
+ 'SKIP'
+ 'd90d0e8d555d32720fd519ec020c8232539cef1f0754cf8c9aa78aa86bbbe3eb1f61748b92e9332d75fb1d933ac543de047e9312740f710b870a64da8caa3eef'
+ '8a8ae3276914cd8812feb99acac8c2363f5530656593bebaed5cf67defec19153c30409b6fba418162c7e7f2876554202bbcf5f356d7e785488859879161d921'
+ 'a4274739be161710d90fdb674315ef4b0696ce6e092641a62f7a18c5a773de959a38fe52e0c8683821753a99e4337ea3e448579937d684e22345f7d936161061')
+sha512sums_aarch64=('SKIP'
+ '7fdfc23fbf637ef036f51b439e56a84fd12d7f50a894b7318d287da1584ed8be1958c1e403735e9edab8888699f3a68df5c69854d4b87187af1c76734644e44e'
+ 'SKIP'
+ 'SKIP'
+ 'd90d0e8d555d32720fd519ec020c8232539cef1f0754cf8c9aa78aa86bbbe3eb1f61748b92e9332d75fb1d933ac543de047e9312740f710b870a64da8caa3eef'
+ '8a8ae3276914cd8812feb99acac8c2363f5530656593bebaed5cf67defec19153c30409b6fba418162c7e7f2876554202bbcf5f356d7e785488859879161d921'
+ 'a4274739be161710d90fdb674315ef4b0696ce6e092641a62f7a18c5a773de959a38fe52e0c8683821753a99e4337ea3e448579937d684e22345f7d936161061'
+ '179d922764a959c3eccd1ff98e16c629516d04c9a3a8fe6d199f8de88ad7163a026e4415836728a01a89703f1f31247addcead2da2b341b1849e4627a742c5b9'
+ '6d464cce32cb2e440fb137666aeefec1240bcbdfdef0e8633e0fbe22e2214446b2c992ee2c8716c682a42fcd1d66d9fdf1d6d5b40f8ec3b0eeec5ca9e3f1aa35')
+pkgver() {
+ cd mozilla-unified
+ printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)"
+}
+
+prepare() {
+ if [[ ! -d mozbuild ]];then
+ mkdir mozbuild
+ fi
+ cd mozilla-unified
+
+ #
+ # If you want to disable LTO/PGO (compile too long), delete the lines below beginning with
+ # `ac_add_options --enable-lto' and ending with 'export RANLIB=llvm-ranlib`
+ #
+
+ cat >../mozconfig <<END
+ac_add_options --enable-application=browser
+mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
+
+# This supposedly speeds up compilation (We test through dogfooding anyway)
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+
+ac_add_options --prefix=/usr
+ac_add_options --enable-release
+ac_add_options --enable-hardening
+ac_add_options --enable-rust-simd
+export CC='clang'
+export CXX='clang++'
+export AR=llvm-ar
+export NM=llvm-nm
+export RANLIB=llvm-ranlib
+
+# Branding
+ac_add_options --enable-update-channel=nightly
+ac_add_options --with-app-name=${pkgname}
+ac_add_options --with-app-basename=${_pkgname}
+ac_add_options --with-branding=browser/branding/librewolf
+ac_add_options --with-distribution-id=org.archlinux
+ac_add_options --with-unsigned-addon-scopes=app,system
+ac_add_options --allow-addon-sideload
+export MOZ_REQUIRE_SIGNING=0
+export MOZ_APP_REMOTINGNAME=${pkgname//-/}
+
+# System libraries
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-libvpx
+ac_add_options --with-system-libevent
+ac_add_options --with-system-icu
+ac_add_options --with-system-zlib
+ac_add_options --with-system-jpeg
+
+# Features
+ac_add_options --enable-pulseaudio
+ac_add_options --enable-alsa
+ac_add_options --enable-jack
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
+
+# Disables crash reporting, telemetry and other data gathering tools
+mk_add_options MOZ_CRASHREPORTER=0
+mk_add_options MOZ_DATA_REPORTING=0
+mk_add_options MOZ_SERVICES_HEALTHREPORT=0
+mk_add_options MOZ_TELEMETRY_REPORTING=0
+
+# options for ci / weaker build systems
+# mk_add_options MOZ_MAKE_FLAGS="-j4"
+# ac_add_options --enable-linker=gold
+END
+
+if [[ $CARCH == 'aarch64' ]]; then
+ cat >>../mozconfig <<END
+# taken from manjaro build:
+ac_add_options --enable-optimize="-g0 -O2"
+# from ALARM
+# ac_add_options --disable-webrtc
+
+END
+
+ export MOZ_DEBUG_FLAGS=" "
+ export CFLAGS+=" -g0"
+ export CXXFLAGS+=" -g0"
+ export RUSTFLAGS="-Cdebuginfo=0"
+
+ # we should have more than enough RAM on the CI spot instances.
+ # ...or maybe not?
+ export LDFLAGS+=" -Wl,--no-keep-memory"
+ patch -p1 -i ../arm.patch
+ patch -p1 -i ../build-arm-libopus.patch
+
+else
+
+ cat >>../mozconfig <<END
+# probably not needed, enabled by default?
+ac_add_options --enable-optimize
+END
+fi
+
+ # Remove some pre-installed addons that might be questionable
+ patch -p1 -i ../remove_addons.patch
+
+ # Disable (some) megabar functionality
+ # Adapted from https://github.com/WesleyBranton/userChrome.css-Customizations
+ patch -p1 -i ../megabar.patch
+
+ # To enable global menubar
+ # Set these to true
+ # browser.proton.enabled
+ # browser.proton.appmenu.enabled
+
+ # Disabling Pocket
+ sed -i "s/'pocket'/#'pocket'/g" browser/components/moz.build
+
+ patch -p1 -i ../context-menu.patch
+
+ # this one only to remove an annoying error message:
+ sed -i 's#SaveToPocket.init();#// SaveToPocket.init();#g' browser/components/BrowserGlue.jsm
+
+ # Remove Internal Plugin Certificates
+ _cert_sed='s#if (aCert.organizationalUnit == "Mozilla [[:alpha:]]\+") {\n'
+ _cert_sed+='[[:blank:]]\+return AddonManager\.SIGNEDSTATE_[[:upper:]]\+;\n'
+ _cert_sed+='[[:blank:]]\+}#'
+ _cert_sed+='// NOTE: removed#g'
+ sed -z "$_cert_sed" -i toolkit/mozapps/extensions/internal/XPIInstall.jsm
+
+ # allow SearchEngines option in non-ESR builds
+ sed -i 's#"enterprise_only": true,#"enterprise_only": false,#g' browser/components/enterprisepolicies/schemas/policies-schema.json
+
+ _settings_services_sed='s#firefox.settings.services.mozilla.com#f.s.s.m.c.qjz9zk#g'
+
+ # stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10)
+ sed "$_settings_services_sed" -i browser/components/newtab/data/content/activity-stream.bundle.js
+ sed "$_settings_services_sed" -i modules/libpref/init/all.js
+ sed "$_settings_services_sed" -i services/settings/Utils.jsm
+ sed "$_settings_services_sed" -i toolkit/components/search/SearchUtils.jsm
+
+ rm -f ${srcdir}/common/source_files/mozconfig
+ cp -r ${srcdir}/common/source_files/* ./
+}
+
+build() {
+ cd mozilla-unified
+
+ export MOZ_SOURCE_REPO="$_repo"
+ export MOZ_NOSPAM=1
+ export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
+ export MACH_USE_SYSTEM_PYTHON=1
+
+ # LTO/PGO needs more open files
+ ulimit -n 4096
+
+ # -fno-plt with cross-LTO causes obscure LLVM errors
+ # LLVM ERROR: Function Import: link error
+ # CFLAGS="${CFLAGS/-fno-plt/}"
+ # CXXFLAGS="${CXXFLAGS/-fno-plt/}"
+
+ # Do 3-tier PGO
+ echo "Building instrumented browser..."
+
+if [[ $CARCH == 'aarch64' ]]; then
+
+ cat >.mozconfig ../mozconfig - <<END
+ac_add_options --enable-profile-generate
+END
+
+else
+
+ cat >.mozconfig ../mozconfig - <<END
+ac_add_options --enable-profile-generate=cross
+END
+
+fi
+
+ ./mach build
+
+ echo "Profiling instrumented browser..."
+ ./mach package
+ LLVM_PROFDATA=llvm-profdata \
+ JARLOG_FILE="$PWD/jarlog" \
+ xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
+ ./mach python build/pgo/profileserver.py
+
+ if [[ ! -s merged.profdata ]]; then
+ echo "No profile data produced."
+ return 1
+ fi
+
+ if [[ ! -s jarlog ]]; then
+ echo "No jar log produced."
+ return 1
+ fi
+
+ echo "Removing instrumented browser..."
+ ./mach clobber
+
+ echo "Building optimized browser..."
+
+if [[ $CARCH == 'aarch64' ]]; then
+
+ cat >.mozconfig ../mozconfig - <<END
+ac_add_options --enable-lto
+ac_add_options --enable-profile-use
+ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
+ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
+ac_add_options --enable-linker=lld
+END
+
+else
+
+ cat >.mozconfig ../mozconfig - <<END
+ac_add_options --enable-lto=cross
+ac_add_options --enable-profile-use=cross
+ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
+ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
+ac_add_options --enable-linker=lld
+ac_add_options --disable-elf-hack
+END
+
+fi
+
+ ./mach build
+
+ echo "Building symbol archive..."
+ ./mach buildsymbols
+}
+
+package() {
+ cd mozilla-unified
+ DESTDIR="$pkgdir" ./mach install
+ mv "$pkgdir"/usr/lib/{librewolf,$pkgname}
+ rm "$pkgdir"/usr/bin/librewolf
+
+ _vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js"
+
+ install -Dm644 /dev/stdin "$_vendorjs" <<END
+// Use LANG environment variable to choose locale
+pref("intl.locale.requested", "");
+
+// Use system-provided dictionaries
+pref("spellchecker.dictionary_path", "/usr/share/hunspell");
+
+// Don't disable extensions in the application directory
+// done in librewolf.cfg
+// pref("extensions.autoDisableScopes", 11);
+END
+
+ # cd ${srcdir}/settings
+ # git checkout ${_settings_commit}
+ cd ${srcdir}/mozilla-unified
+ cp -r ${srcdir}/settings/* ${pkgdir}/usr/lib/${pkgname}/
+
+ _distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
+ install -Dm644 /dev/stdin "$_distini" <<END
+[Global]
+id=archlinux
+version=1.0
+about=$_pkgname for Arch Linux
+
+[Preferences]
+app.distributor=archlinux
+app.distributor.channel=$pkgname
+app.partner.archlinux=archlinux
+END
+
+ for i in 16 32 48 64 128; do
+ install -Dm644 browser/branding/librewolf/default$i.png \
+ "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/librewolf.png"
+ done
+ install -Dm644 browser/branding/official/content/about-logo.png \
+ "$pkgdir/usr/share/icons/hicolor/192x192/apps/librewolf.png"
+
+ # arch upstream provides a separate svg for this. we don't have that, so let's re-use 16.png
+ install -Dm644 browser/branding/librewolf/default16.png \
+ "$pkgdir/usr/share/icons/hicolor/symbolic/apps/librewolf-symbolic.png"
+
+ install -Dm644 ../$pkgname.desktop \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+
+ # Install a wrapper to avoid confusion about binary path
+ install -Dm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
+#!/bin/sh
+exec /usr/lib/$pkgname/librewolf "\$@"
+END
+
+ # Replace duplicate binary with wrapper
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
+ ln -srf "$pkgdir/usr/bin/$pkgname" \
+ "$pkgdir/usr/lib/$pkgname/librewolf-bin"
+}
diff --git a/build-arm-libopus.patch b/build-arm-libopus.patch
new file mode 100644
index 000000000000..27dfec73b46b
--- /dev/null
+++ b/build-arm-libopus.patch
@@ -0,0 +1,12 @@
+diff -up a/media/libopus/silk/arm/arm_silk_map.c b/media/libopus/silk/arm/arm_silk_map.c
+index 18d73db..7911576 100644
+--- a/media/libopus/silk/arm/arm_silk_map.c
++++ b/media/libopus/silk/arm/arm_silk_map.c
+@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
diff --git a/librewolf-nightly.desktop b/librewolf-nightly.desktop
new file mode 100644
index 000000000000..65e6139514d6
--- /dev/null
+++ b/librewolf-nightly.desktop
@@ -0,0 +1,340 @@
+[Desktop Entry]
+Version=1.0
+Name=LibreWolf Nightly
+GenericName=Web Browser
+GenericName[ar]=متصفح ويب
+GenericName[ast]=Restolador Web
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[ca]=Navegador web
+GenericName[cs]=Webový prohlížeč
+GenericName[da]=Webbrowser
+GenericName[de]=Webbrowser
+GenericName[el]=Περιηγητής διαδικτύου
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fa]=مرورگر اینترنتی
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gl]=Navegador Web
+GenericName[he]=דפדפן אינטרנט
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser web
+GenericName[ja]=ウェブ・ブラウザ
+GenericName[ko]=웹 브라우저
+GenericName[ku]=Geroka torê
+GenericName[lt]=Interneto naršyklė
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[no]=Nettleser
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[ro]=Navigator Internet
+GenericName[ru]=Веб-браузер
+GenericName[sk]=Internetový prehliadač
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[tr]=Web Tarayıcı
+GenericName[ug]=توركۆرگۈ
+GenericName[uk]=Веб-браузер
+GenericName[vi]=Trình duyệt Web
+GenericName[zh_CN]=网络浏览器
+GenericName[zh_TW]=網路瀏覽器
+Comment=Browse the World Wide Web
+Comment[ar]=تصفح الشبكة العنكبوتية العالمية
+Comment[ast]=Restola pela Rede
+Comment[bn]=ইন্টারনেট ব্রাউজ করুন
+Comment[ca]=Navegueu per el web
+Comment[cs]=Prohlížení stránek World Wide Webu
+Comment[da]=Surf på internettet
+Comment[de]=Im Internet surfen
+Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
+Comment[es]=Navegue por la web
+Comment[et]=Lehitse veebi
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
+Comment[fi]=Selaa Internetin WWW-sivuja
+Comment[fr]=Naviguer sur le Web
+Comment[gl]=Navegar pola rede
+Comment[he]=גלישה ברחבי האינטרנט
+Comment[hr]=Pretražite web
+Comment[hu]=A világháló böngészése
+Comment[it]=Esplora il web
+Comment[ja]=ウェブを閲覧します
+Comment[ko]=웹을 돌아 다닙니다
+Comment[ku]=Li torê bigere
+Comment[lt]=Naršykite internete
+Comment[nb]=Surf på nettet
+Comment[nl]=Verken het internet
+Comment[nn]=Surf på nettet
+Comment[no]=Surf på nettet
+Comment[pl]=Przeglądanie stron WWW
+Comment[pt]=Navegue na Internet
+Comment[pt_BR]=Navegue na Internet
+Comment[ro]=Navigați pe Internet
+Comment[ru]=Доступ в Интернет
+Comment[sk]=Prehliadanie internetu
+Comment[sl]=Brskajte po spletu
+Comment[sv]=Surfa på webben
+Comment[tr]=İnternet'te Gezinin
+Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
+Comment[uk]=Перегляд сторінок Інтернету
+Comment[vi]=Để duyệt các trang web
+Comment[zh_CN]=浏览互联网
+Comment[zh_TW]=瀏覽網際網路
+Keywords=Internet;WWW;Browser;Web;Explorer
+Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب
+Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
+Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
+Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer
+Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
+Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
+Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;LibreWolf;Φιρεφοχ;Ιντερνετ
+Keywords[es]=Explorador;Internet;WWW
+Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
+Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
+Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
+Keywords[hr]=Internet;WWW;preglednik;Web
+Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
+Keywords[it]=Internet;WWW;Browser;Web;Navigatore
+Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
+Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ
+Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
+Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
+Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
+Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
+Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис
+Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer
+Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
+Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
+Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд
+Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web
+Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;LibreWolf;ff;互联网;网站;
+Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐
+Exec=/usr/lib/librewolf-nightly/librewolf %u
+Icon=librewolf
+Terminal=false
+X-MultipleArgs=false
+Type=Application
+MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
+StartupNotify=true
+StartupWMClass=LibreWolf
+Categories=Network;WebBrowser;
+Actions=new-window;new-private-window;
+
+[Desktop Action new-window]
+Name=New Window
+Name[ach]=Dirica manyen
+Name[af]=Nuwe venster
+Name[an]=Nueva finestra
+Name[ar]=نافذة جديدة
+Name[as]=নতুন উইন্ডো
+Name[ast]=Ventana nueva
+Name[az]=Yeni Pəncərə
+Name[be]=Новае акно
+Name[bg]=Нов прозорец
+Name[bn_BD]=নতুন উইন্ডো (N)
+Name[bn_IN]=নতুন উইন্ডো
+Name[br]=Prenestr nevez
+Name[brx]=गोदान उइन्ड'(N)
+Name[bs]=Novi prozor
+Name[ca]=Finestra nova
+Name[cak]=K'ak'a' tzuwäch
+Name[cs]=Nové okno
+Name[cy]=Ffenestr Newydd
+Name[da]=Nyt vindue
+Name[de]=Neues Fenster
+Name[dsb]=Nowe wokno
+Name[el]=Νέο παράθυρο
+Name[en_GB]=New Window
+Name[en_US]=New Window
+Name[en_ZA]=New Window
+Name[eo]=Nova fenestro
+Name[es_AR]=Nueva ventana
+Name[es_CL]=Nueva ventana
+Name[es_ES]=Nueva ventana
+Name[es_MX]=Nueva ventana
+Name[et]=Uus aken
+Name[eu]=Leiho berria
+Name[fa]=پنجره جدید
+Name[ff]=Henorde Hesere
+Name[fi]=Uusi ikkuna
+Name[fr]=Nouvelle fenêtre
+Name[fy_NL]=Nij finster
+Name[ga_IE]=Fuinneog Nua
+Name[gd]=Uinneag ùr
+Name[gl]=Nova xanela
+Name[gn]=Ovetã pyahu
+Name[gu_IN]=નવી વિન્ડો
+Name[he]=חלון חדש
+Name[hi_IN]=नया विंडो
+Name[hr]=Novi prozor
+Name[hsb]=Nowe wokno
+Name[hu]=Új ablak
+Name[hy_AM]=Նոր Պատուհան
+Name[id]=Jendela Baru
+Name[is]=Nýr gluggi
+Name[it]=Nuova finestra
+Name[ja]=新しいウィンドウ
+Name[ja_JP-mac]=新規ウインドウ
+Name[ka]=ახალი ფანჯარა
+Name[kk]=Жаңа терезе
+Name[km]=បង្អួចថ្មី
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
+Name[ko]=새 창
+Name[kok]=नवें जनेल
+Name[ks]=نئئ وِنڈو
+Name[lij]=Neuvo barcon
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
+Name[lt]=Naujas langas
+Name[ltg]=Jauns lūgs
+Name[lv]=Jauns logs
+Name[mai]=नव विंडो
+Name[mk]=Нов прозорец
+Name[ml]=പുതിയ ജാലകം
+Name[mr]=नवीन पटल
+Name[ms]=Tetingkap Baru
+Name[my]=ဝင်းဒိုးအသစ်
+Name[nb_NO]=Nytt vindu
+Name[ne_NP]=नयाँ सञ्झ्याल
+Name[nl]=Nieuw venster
+Name[nn_NO]=Nytt vindauge
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
+Name[pl]=Nowe okno
+Name[pt_BR]=Nova janela
+Name[pt_PT]=Nova janela
+Name[rm]=Nova fanestra
+Name[ro]=Fereastră nouă
+Name[ru]=Новое окно
+Name[sat]=नावा विंडो (N)
+Name[si]=නව කවුළුවක්
+Name[sk]=Nové okno
+Name[sl]=Novo okno
+Name[son]=Zanfun taaga
+Name[sq]=Dritare e Re
+Name[sr]=Нови прозор
+Name[sv_SE]=Nytt fönster
+Name[ta]=புதிய சாளரம்
+Name[te]=కొత్త విండో
+Name[th]=หน้าต่างใหม่
+Name[tr]=Yeni pencere
+Name[tsz]=Eraatarakua jimpani
+Name[uk]=Нове вікно
+Name[ur]=نیا دریچہ
+Name[uz]=Yangi oyna
+Name[vi]=Cửa sổ mới
+Name[wo]=Palanteer bu bees
+Name[xh]=Ifestile entsha
+Name[zh_CN]=新建窗口
+Name[zh_TW]=開新視窗
+Exec=/usr/lib/librewolf-nightly/librewolf --new-window %u
+
+[Desktop Action new-private-window]
+Name=New Private Window
+Name[ach]=Dirica manyen me mung
+Name[af]=Nuwe privaatvenster
+Name[an]=Nueva finestra privada
+Name[ar]=نافذة خاصة جديدة
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
+Name[ast]=Ventana privada nueva
+Name[az]=Yeni Məxfi Pəncərə
+Name[be]=Новае акно адасаблення
+Name[bg]=Нов прозорец за поверително сърфиране
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
+Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
+Name[br]=Prenestr merdeiñ prevez nevez
+Name[brx]=गोदान प्राइभेट उइन्ड'
+Name[bs]=Novi privatni prozor
+Name[ca]=Finestra privada nova
+Name[cak]=K'ak'a' ichinan tzuwäch
+Name[cs]=Nové anonymní okno
+Name[cy]=Ffenestr Breifat Newydd
+Name[da]=Nyt privat vindue
+Name[de]=Neues privates Fenster
+Name[dsb]=Nowe priwatne wokno
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
+Name[en_GB]=New Private Window
+Name[en_US]=New Private Window
+Name[en_ZA]=New Private Window
+Name[eo]=Nova privata fenestro
+Name[es_AR]=Nueva ventana privada
+Name[es_CL]=Nueva ventana privada
+Name[es_ES]=Nueva ventana privada
+Name[es_MX]=Nueva ventana privada
+Name[et]=Uus privaatne aken
+Name[eu]=Leiho pribatu berria
+Name[fa]=پنجره ناشناس جدید
+Name[ff]=Henorde Suturo Hesere
+Name[fi]=Uusi yksityinen ikkuna
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[fy_NL]=Nij priveefinster
+Name[ga_IE]=Fuinneog Nua Phríobháideach
+Name[gd]=Uinneag phrìobhaideach ùr
+Name[gl]=Nova xanela privada
+Name[gn]=Ovetã ñemi pyahu
+Name[gu_IN]=નવી ખાનગી વિન્ડો
+Name[he]=חלון פרטי חדש
+Name[hi_IN]=नयी निजी विंडो
+Name[hr]=Novi privatni prozor
+Name[hsb]=Nowe priwatne wokno
+Name[hu]=Új privát ablak
+Name[hy_AM]=Սկսել Գաղտնի դիտարկում
+Name[id]=Jendela Mode Pribadi Baru
+Name[is]=Nýr huliðsgluggi
+Name[it]=Nuova finestra anonima
+Name[ja]=新しいプライベートウィンドウ
+Name[ja_JP-mac]=新規プライベートウインドウ
+Name[ka]=ახალი პირადი ფანჯარა
+Name[kk]=Жаңа жекелік терезе
+Name[km]=បង្អួចឯកជនថ្មី
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
+Name[ko]=새 사생활 보호 모드
+Name[kok]=नवो खाजगी विंडो
+Name[ks]=نْو پرایوٹ وینڈو
+Name[lij]=Nêuvo barcón privòu
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
+Name[lt]=Naujas privataus naršymo langas
+Name[ltg]=Jauns privatais lūgs
+Name[lv]=Jauns privātais logs
+Name[mai]=नया निज विंडो (W)
+Name[mk]=Нов приватен прозорец
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
+Name[mr]=नवीन वैयक्तिक पटल
+Name[ms]=Tetingkap Persendirian Baharu
+Name[my]=New Private Window
+Name[nb_NO]=Nytt privat vindu
+Name[ne_NP]=नयाँ निजी सञ्झ्याल
+Name[nl]=Nieuw privévenster
+Name[nn_NO]=Nytt privat vindauge
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
+Name[pl]=Nowe okno prywatne
+Name[pt_BR]=Nova janela privativa
+Name[pt_PT]=Nova janela privada
+Name[rm]=Nova fanestra privata
+Name[ro]=Fereastră privată nouă
+Name[ru]=Новое приватное окно
+Name[sat]=नावा निजेराक् विंडो (W )
+Name[si]=නව පුද්ගලික කවුළුව (W)
+Name[sk]=Nové okno v režime Súkromné prehliadanie
+Name[sl]=Novo zasebno okno
+Name[son]=Sutura zanfun taaga
+Name[sq]=Dritare e Re Private
+Name[sr]=Нови приватан прозор
+Name[sv_SE]=Nytt privat fönster
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
+Name[te]=కొత్త ఆంతరంగిక విండో
+Name[th]=หน้าต่างส่วนตัวใหม่
+Name[tr]=Yeni gizli pencere
+Name[tsz]=Juchiiti eraatarakua jimpani
+Name[uk]=Приватне вікно
+Name[ur]=نیا نجی دریچہ
+Name[uz]=Yangi maxfiy oyna
+Name[vi]=Cửa sổ riêng tư mới
+Name[wo]=Panlanteeru biir bu bees
+Name[xh]=Ifestile yangasese entsha
+Name[zh_CN]=新建隐私浏览窗口
+Name[zh_TW]=新增隱私視窗
+Exec=/usr/lib/librewolf-nightly/librewolf --private-window %u
diff --git a/megabar.patch b/megabar.patch
new file mode 100644
index 000000000000..6c033700aa76
--- /dev/null
+++ b/megabar.patch
@@ -0,0 +1,129 @@
+diff --git a/browser/components/urlbar/UrlbarInput.jsm b/browser/components/urlbar/UrlbarInput.jsm
+index 18d73db..7911576 100644
+--- a/browser/components/urlbar/UrlbarInput.jsm
++++ b/browser/components/urlbar/UrlbarInput.jsm
+@@ -1172,13 +1172,13 @@ class UrlbarInput {
+
+ // Enable the animation only after the first extend call to ensure it
+ // doesn't run when opening a new window.
+- if (!this.hasAttribute("breakout-extend-animate")) {
+- this.window.promiseDocumentFlushed(() => {
+- this.window.requestAnimationFrame(() => {
+- this.setAttribute("breakout-extend-animate", "true");
+- });
+- });
+- }
++ // if (!this.hasAttribute("breakout-extend-animate")) {
++ // this.window.promiseDocumentFlushed(() => {
++ // this.window.requestAnimationFrame(() => {
++ // this.setAttribute("breakout-extend-animate", "true");
++ // });
++ // });
++ // }
+ }
+
+ endLayoutExtend() {
+diff --git a/browser/themes/shared/urlbar-searchbar.inc.css b/browser/themes/shared/urlbar-searchbar.inc.css
+index 0b1f693..7de64a1 100644
+--- a/browser/themes/shared/urlbar-searchbar.inc.css
++++ b/browser/themes/shared/urlbar-searchbar.inc.css
+@@ -6,7 +6,7 @@
+
+ %define fieldBorderColor hsla(240,5%,5%,.25)
+ %define fieldHoverBorderColor hsla(240,5%,5%,.35)
+-%define urlbarMarginInline 5px
++%define urlbarMarginInline 0px
+ %define urlbarSearchButtonWidth calc(16px + 2 * @identityBoxPaddingInline@)
+
+ :root {
+@@ -278,9 +278,9 @@
+ }
+
+ #urlbar[breakout][breakout-extend] {
+- top: -@urlbarBreakoutExtend@;
+- left: calc(-@urlbarMarginInline@ - @urlbarBreakoutExtend@);
+- width: calc(100% + 2 * @urlbarMarginInline@ + 2 * @urlbarBreakoutExtend@);
++ top: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2);
++ left: 0;
++ width: 100%;
+ }
+
+ @supports -moz-bool-pref("browser.proton.urlbar.enabled") {
+@@ -293,7 +293,7 @@
+
+ @supports not -moz-bool-pref("browser.proton.urlbar.enabled") {
+ #urlbar[breakout][breakout-extend] > #urlbar-background {
+- box-shadow: 0 3px 8px 0 rgba(0,0,0,.15)
++ box-shadow: 0 1px 4px rgba(0,0,0,.05);
+ }
+
+ #urlbar[breakout][breakout-extend][open] > #urlbar-background {
+@@ -302,9 +302,9 @@
+ } /*** END !proton ***/
+
+ #urlbar[breakout][breakout-extend] > #urlbar-input-container {
+- height: calc(var(--urlbar-toolbar-height) + 2 * @urlbarBreakoutExtend@);
+- padding-block: calc(@urlbarBreakoutExtend@ + (var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2);
+- padding-inline: calc(@urlbarMarginInline@ + @urlbarBreakoutExtend@);
++ height: var(--urlbar-height);
++ padding-block: 0;
++ padding-inline: 0;
+ }
+
+ @supports -moz-bool-pref("browser.proton.urlbar.enabled") {
+@@ -330,7 +330,7 @@
+ }
+
+ #urlbar[breakout][breakout-extend] > #urlbar-background {
+- animation-name: urlbar-grow;
++ animation-name: none;
+ animation-duration: 0s;
+ animation-timing-function: var(--animation-easing-function);
+ }
+diff --git a/browser/themes/shared/urlbarView.inc.css b/browser/themes/shared/urlbarView.inc.css
+index 6b8cac0..54648c6 100644
+--- a/browser/themes/shared/urlbarView.inc.css
++++ b/browser/themes/shared/urlbarView.inc.css
+@@ -80,8 +80,8 @@
+ display: block;
+ text-shadow: none;
+ overflow: clip;
+- margin-inline: @urlbarViewMarginInline@;
+- width: calc(100% - 2 * @urlbarViewMarginInline@);
++ margin-inline: 0;
++ width: 100%;
+
+ /* Match urlbar-background's border. */
+ border-inline: 1px solid transparent;
+@@ -118,7 +118,7 @@
+ flex-wrap: nowrap;
+ fill: currentColor;
+ fill-opacity: .6;
+- padding-block: 3px;
++ padding-block: 0;
+ }
+
+ .urlbarView-row-inner {
+@@ -264,6 +264,7 @@
+ object-fit: contain;
+ flex-shrink: 0;
+ -moz-context-properties: fill, fill-opacity;
++ margin-inline-start: 20px;
+ }
+
+ .urlbarView-row[type=tip] > .urlbarView-row-inner > .urlbarView-favicon {
+@@ -301,10 +302,10 @@
+
+ .urlbarView-type-icon {
+ position: absolute;
+- width: 12px;
+- height: 12px;
+- margin-bottom: -4px;
+- margin-inline-start: 8px;
++ width: 16px;
++ height: 16px;
++ margin-bottom: 0;
++ margin-inline-start: 0;
+ background-repeat: no-repeat;
+ background-size: contain;
+ -moz-context-properties: fill, stroke;