# Maintainer: dr460nf1r3 # Contributor: torvic9 AT mailbox DOT org # Contributor: lsf pkgname=firedragon _pkgname=FireDragon pkgver=94.0.1 pkgrel=1 pkgdesc="Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE" arch=(x86_64 x86_64_v3 aarch64) backup=('usr/lib/firedragon/firedragon.cfg' 'usr/lib/firedragon/distribution/policies.json') license=(MPL GPL LGPL) url="https://gitlab.com/dr460nf1r3/settings/" depends=(gtk3 libxt mime-types dbus-glib ffmpeg nss nspr ttf-font libpulse libwebp libvpx libjpeg zlib icu libevent pipewire aom harfbuzz graphite dav1d kfiredragonhelper) makedepends=(unzip zip diffutils yasm mesa imake inetutils xorg-server-xvfb rust ccache autoconf2.13 clang llvm jack nodejs cbindgen nasm python-setuptools python-psutil python-zstandard git binutils lld dump_syms) optdepends=('firejail-git: Sandboxing the browser using the included profiles' 'profile-sync-daemon: Load the browser profile into RAM' 'whoogle: Searching the web using a locally running Whoogle instance' 'searx: Searching the web using a locally running searX instance' '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 apps' 'appmenu-gtk-module-git: Appmenu for GTK only' 'plasma5-applets-window-appmenu: Appmenu for Plasma only') options=(!emptydirs !makeflags !strip) conflicts=('firedragon-hg') install=$pkgname.install source=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz $pkgname.desktop "git+https://gitlab.com/dr460nf1r3/common.git" "git+https://gitlab.com/dr460nf1r3/settings.git") sha256sums=('6c09ef337a83a413d5929557043e127598c5c1e02ece3044370e55a3e2eeef70' '158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d' 'SKIP' 'SKIP') prepare() { if [[ ! -d mozbuild ]];then mkdir mozbuild fi cd firefox-$pkgver local _patches_dir="${srcdir}/common/patches" sed -i 's/\"BrowserApplication\"\, \"firefox\"/\"BrowserApplication\"\, \"firedragon\"/g' ${_patches_dir}/kde/firefox-kde.patch sed -i 's/kmozillahelper/kfiredragonhelper/g' ${_patches_dir}/kde/mozilla-kde.patch # Arch patches echo "---- Arch patches" patch -Np1 -i ${_patches_dir}/arch/0001-Use-remoting-name-for-GDK-application-names.patch # KDE patches (W. Rosenauer) echo "---- Patching for KDE" patch -Np1 -i ${_patches_dir}/kde/mozilla-nongnome-proxies.patch patch -Np1 -i ${_patches_dir}/kde/mozilla-kde.patch #patch -Np1 -i ${_patches_dir}/kde/firefox-kde.patch Currently broken with PGO # Ubuntu patches echo "---- Misc patches" patch -Np1 -i ${_patches_dir}/misc/fix-hidden-buttons-with-csd-menubar.patch # Rust patch -Np1 -i ${_patches_dir}/misc/reduce-rust-debuginfo.patch # Gentoo patches echo "---- Gentoo patches" patch -Np1 -i ${_patches_dir}/gentoo/0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch patch -Np1 -i ${_patches_dir}/gentoo/0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch # Use more system libs echo "---- Patching for system libs" patch -Np1 -i ${_patches_dir}/gentoo/0004-bmo-847568-Support-system-harfbuzz.patch patch -Np1 -i ${_patches_dir}/gentoo/0005-bmo-847568-Support-system-graphite2.patch patch -Np1 -i ${_patches_dir}/gentoo/0006-bmo-1559213-Support-system-av1.patch # Remove some pre-installed addons that might be questionable echo "---- Librewolf patches" patch -Np1 -i ${_patches_dir}/librewolf/remove_addons.patch # Disable (some) megabar functionality # Adapted from https://github.com/WesleyBranton/userChrome.css-Customizations patch -Np1 -i ${_patches_dir}/librewolf/megabar.patch # Debian patch to enable global menubar patch -Np1 -i ${_patches_dir}/librewolf/unity-menubar.patch # Disabling Pocket patch -Np1 -i ${_patches_dir}/sed-patches/disable-pocket.patch # Remove Mozilla VPN ads patch -Np1 -i ${_patches_dir}/librewolf/mozilla-vpn-ad.patch # Allow overriding the color scheme light/dark preference with RFP patch -Np1 -i ${_patches_dir}/librewolf/allow_dark_preference_with_rfp.patch # Remove Internal Plugin Certificates # => breaks profiled builds since 90.0, it seems # patch -Np1 -i ${_patches_dir}/sed-patches/remove-internal-plugin-certs.patch # Allow SearchEngines option in non-ESR builds patch -Np1 -i ${_patches_dir}/sed-patches/allow-searchengines-non-esr.patch # Stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10) patch -Np1 -i ${_patches_dir}/sed-patches/stop-undesired-requests.patch echo "---- Librewolf patches - UI" # Show a warning saying that changing language is not allowed through the UI, # and that it requires to visit our FAQ, instead of telling the user to check his connection. patch -Np1 -i ${_patches_dir}/librewolf-ui/add-language-warning.patch # Remove references to Firefox from the settings UI, change text in some of the links, # explain that we force en-US and suggest enabling history near the session restore checkbox. patch -Np1 -i ${_patches_dir}/librewolf-ui/pref-naming.patch # Remove Firefox references in the urlbar, when suggesting opened tabs. patch -Np1 -i ${_patches_dir}/librewolf-ui/remove-branding-urlbar.patch # Remove cfr UI elements, as they are disabled and locked already. patch -Np1 -i ${_patches_dir}/librewolf-ui/remove-cfrprefs.patch # Do not display your browser is being managed by your organization in the settings. patch -Np1 -i ${_patches_dir}/librewolf-ui/remove-organization-policy-banner.patch # Hide "snippets" section from the home page settings, as it was already locked. patch -Np1 -i ${_patches_dir}/librewolf-ui/remove-snippets-from-home.patch # Add warning that sanitizing exceptions are bypassed by the options in History > Clear History when LibreWolf closes > Settings patch -Np1 -i ${_patches_dir}/librewolf-ui/sanitizing-description.patch echo "---- Fixing build with Wayland" # Needed patch to have build working patch -Np1 -i ${_patches_dir}/misc/fix-wayland.patch cat >../mozconfig <>../mozconfig <>../mozconfig <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <