# Maintainer: dr460nf1r3 # Contributor: torvic9 AT mailbox DOT org # Contributor: lsf pkgname=firedragon _pkgname=FireDragon pkgver=96.0.1 pkgrel=1 pkgdesc="Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE" arch=(x86_64 x86_64_v3) 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 ttf-font libpulse aom harfbuzz libvpx libjpeg zlib icu libevent pipewire kfiredragonhelper) makedepends=(unzip zip diffutils yasm mesa imake inetutils rust xorg-server-xwayland xorg-server-xvfb ccache autoconf2.13 clang llvm jack nodejs cbindgen nasm python-setuptools python-psutil python-zstandard git binutils lld dump_syms wasi-compiler-rt wasi-libc wasi-libc++ wasi-libc++abi) 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 !lto) 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=('cb86f3cbd31960305dee7d7f3dc254c64fb0462e27ea624ee62f3682e99079ee' '158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d' 'SKIP' 'SKIP') prepare() { if [[ ! -d mozbuild ]];then mkdir mozbuild fi cd firefox-$pkgver local _patches_dir="${srcdir}/common/patches" # Prepare 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 # 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/0019-bmo-1516081-Disable-watchdog-during-PGO-builds.patch patch -Np1 -i ${_patches_dir}/gentoo/0025-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch patch -Np1 -i ${_patches_dir}/gentoo/0002-Fortify-sources-properly.patch patch -Np1 -i ${_patches_dir}/gentoo/0003-Check-additional-plugins-dir.patch patch -Np1 -i ${_patches_dir}/gentoo/0007-Support-sndio-audio-framework.patch patch -Np1 -i ${_patches_dir}/gentoo/0008-bmo-878089-Don-t-fail-when-TERM-is-not-set.patch patch -Np1 -i ${_patches_dir}/gentoo/0021-bmo-1196777-Set-GDK_FOCUS_CHANGE_MASK.patch patch -Np1 -i ${_patches_dir}/gentoo/0026-Make-elfhack-use-toolchain.patch patch -Np1 -i ${_patches_dir}/gentoo/0028-Enable-FLAC-on-platforms-without-ffvpx-via-ffmpeg.patch patch -Np1 -i ${_patches_dir}/gentoo/0029-bmo-1670333-OpenH264-Fix-decoding-if-it-starts-on-no.patch patch -Np1 -i ${_patches_dir}/gentoo/0031-bmo-1663844-OpenH264-Allow-using-OpenH264-GMP-decode.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 # Debian patch to enable global menubar patch -Np1 -i ${_patches_dir}/librewolf/unity-menubar.patch # Remove Mozilla VPN ads patch -Np1 -i ${_patches_dir}/librewolf/mozilla-vpn-ad.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" # 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 # Pref pane patch -Np1 -i ${_patches_dir}/librewolf-ui/pref_pane.patch echo "---- Fixing build issues" # Needed patch to have build working patch -Np1 -i ${_patches_dir}/misc/fix-wayland.patch patch -Np1 -i ${_patches_dir}/misc/fix-psutil.patch cat >../mozconfig <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <