# Maintainer: dr460nf1r3 # Contributor: torvic9 AT mailbox DOT org # Contributor: lsf pkgname=firedragon _pkgname=FireDragon pkgver=99.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 ffmpeg4.4 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 !debug) 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=('76d22279ce99588a728bb2d034064be0d5918b5900631f2148d4565b8a72e00b' '158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d' 'SKIP' 'SKIP') prepare() { if [[ ! -d mozbuild ]]; then mkdir mozbuild fi cd firefox-$pkgver local _patches_dir _patches_dir="${srcdir}/common/patches" # Prepare patches, then return to the source directory cd ${_patches_dir} && sh ${srcdir}/common/rebrand.sh cd $srcdir/firefox-$pkgver # 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/0001-Don-t-use-build-id.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/0009-bmo-1516803-Fix-building-sandbox.patch patch -Np1 -i ${_patches_dir}/gentoo/0019-bmo-1516081-Disable-watchdog-during-PGO-builds.patch patch -Np1 -i ${_patches_dir}/gentoo/0018-Make-PGO-use-toolchain.patch patch -Np1 -i ${_patches_dir}/gentoo/0020-bmo-1516803-force-one-LTO-partition-for-sandbox-when.patch patch -Np1 -i ${_patches_dir}/gentoo/0021-bmo-1196777-Set-GDK_FOCUS_CHANGE_MASK.patch patch -Np1 -i ${_patches_dir}/gentoo/0022-Fix-building-with-PGO-when-using-GCC.patch patch -Np1 -i ${_patches_dir}/gentoo/0023-libaom-Use-NEON_FLAGS-instead-of-VPX_ASFLAGS-for-lib.patch patch -Np1 -i ${_patches_dir}/gentoo/0024-build-Disable-Werror.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/0026-Disable-FFVPX-with-VA-API.patch patch -Np1 -i ${_patches_dir}/gentoo/0027-Enable-FLAC-on-platforms-without-ffvpx-via-ffmpeg.patch patch -Np1 -i ${_patches_dir}/gentoo/0028-bmo-1670333-OpenH264-Fix-decoding-if-it-starts-on-no.patch patch -Np1 -i ${_patches_dir}/gentoo/0029-bmo-1663844-OpenH264-Allow-using-OpenH264-GMP-decode.patch patch -Np1 -i ${_patches_dir}/gentoo/0030-bgo-816975-fix-build-on-x86.patch patch -Np1 -i ${_patches_dir}/gentoo/0031-bgo-831903-pip-dont-fail-with-optional-deps.patch patch -Np1 -i ${_patches_dir}/gentoo/0032-skip-pip-check.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 # somewhat experimental patch to fix bus/dbus/remoting names to io.gitlab.librewolf # should not break things, buuuuuuuuuut we'll see. patch -Np1 -i ${_patches_dir}/librewolf/dbus_name.patch # add custom uBO assets (on first launch only) patch -Np1 -i ${_patches_dir}/librewolf/custom-ubo-assets-bootstrap-location.patch # Debian patch to enable global menubar patch -Np1 -i ${_patches_dir}/librewolf/unity-menubar.patch # custom patch that does not conflict with the unity patch patch -Np1 -i ${_patches_dir}/librewolf/mozilla-kde_after_unity.patch # Remove Mozilla VPN ads patch -Np1 -i ${_patches_dir}/librewolf/mozilla-vpn-ad2.patch # Allow SearchEngines option in non-ESR builds patch -Np1 -i ${_patches_dir}/sed-patches/allow-searchengines-non-esr.patch # remove search extensions (experimental) # patch -Np1 -i ${_patches_dir}/search-config.patch #cp "${srcdir}/common/source_files/search-config.json" services/settings/dumps/main/search-config.json # 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 # Privacy preferences patch -Np1 -i ${_patches_dir}/librewolf-ui/privacy-preferences.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 patch -Np1 -i ${_patches_dir}/librewolf-ui/hide-default-browser.patch # Remap links patch -Np1 -i ${_patches_dir}/librewolf-ui/remap-links.patch # Pref pane - custom FireDragon svg patch -Np1 -i ${_patches_dir}/librewolf/librewolf-pref-pane.patch patch -Np1 -i ${_patches_dir}/misc/add_firedragon_svg.patch # fix telemetry removal, see https://gitlab.com/librewolf-community/browser/linux/-/merge_requests/17, for example patch -Np1 -i ${_patches_dir}/librewolf/disable-data-reporting-at-compile-time.patch echo "---- Fixing build issues" # Needed patch to have build working patch -Np1 -i ${_patches_dir}/misc/fix-wayland.patch cat >../mozconfig <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <