# Maintainer: dr460nf1r3 # Co-Maintainer: FGD # Contributor: Peter Jung # Contributor: vnepogodin # Contributor: torvic9 AT mailbox DOT org # Contributor: lsf pkgname=firedragon _pkgname=FireDragon pkgver=119.0 pkgrel=2 pkgdesc="Librewolf fork build using custom branding & settings" 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/ _arch_git=https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/firefox/trunk _arch_git_blob=https://raw.githubusercontent.com/archlinux/svntogit-packages depends=(gtk3 libxt mime-types dbus-glib nss ttf-font libpulse ffmpeg xdg-desktop-portal) makedepends=(unzip zip diffutils yasm mesa imake inetutils xorg-server-xvfb autoconf2.13 rust clang llvm jack nodejs cbindgen nasm mold gawk python-setuptools python-zstandard git binutils dump_syms lld libxss 'wasi-compiler-rt>15' 'wasi-libc>=1:0+314+a1c7c2c' 'wasi-libc++>15' 'wasi-libc++abi>15' pciutils) # pciutils: only to avoid some PGO warning 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) install=$pkgname.install source=(https://archive.mozilla.org/pub/firefox/releases/"$pkgver"/source/firefox-"$pkgver".source.tar.xz{,.asc} "$pkgname.desktop" "git+https://gitlab.com/dr460nf1r3/common.git" "git+https://gitlab.com/dr460nf1r3/settings.git" "librewolf-source::git+https://codeberg.org/librewolf/source.git" "librewolf-settings::git+https://codeberg.org/librewolf/settings.git" "cachyos-source::git+https://github.com/CachyOS/CachyOS-Browser-Common.git") sha256sums=('f63e44194548f246e1396508800739a24c0517e65e920002a6f67ee099be39dd' 'SKIP' '53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP') # sha256sums_aarch64=() validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases # change this to false if you do not want to run a PGO build for aarch64 or x86_64 _build_profiled_aarch64=true _build_profiled_x86_64=true # Fix some potential Python and a Rust error if [ "${CC}" != "gcc" ] || [ "${CXX}" != "g++" ]; then export CC=gcc export CXX=g++ export LD=ld export AS="" export NM="" export AR="" export RANLIB="" export OBJCOPY="" export LDFLAGS="${LDFLAGS/-static/}" fi prepare() { mkdir -p mozbuild cd firefox-"$pkgver" local _patches_dir _patches_dir="${srcdir}/common/patches" local _librewolf_patches_dir _librewolf_patches_dir="${srcdir}/librewolf-source/patches" local _cachyos_patches_dir _cachyos_patches_dir="${srcdir}/cachyos-source/patches" cat >../mozconfig <>../mozconfig <>../mozconfig < These seem to be DEPRECATED as of 2023-09-29 # patch -Np1 -i "${_patches_dir}"/kde-upstream/firefox-kde.patch # patch -Np1 -i "${_patches_dir}"/kde-upstream/mozilla-kde.patch # Disabling Pocket patch -Np1 -i "${_librewolf_patches_dir}"/sed-patches/disable-pocket.patch # Allow SearchEngines option in non-ESR builds patch -Np1 -i "${_librewolf_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 "${_librewolf_patches_dir}"/sed-patches/stop-undesired-requests.patch # Assorted patches patch -Np1 -i "${_librewolf_patches_dir}"/urlbarprovider-interventions.patch # Allow uBlockOrigin to run in private mode by default, without user intervention. patch -Np1 -i "${_librewolf_patches_dir}"/allow-ubo-private-mode.patch # Add custom uBO assets (on first launch only) patch -Np1 -i "${_librewolf_patches_dir}"/custom-ubo-assets-bootstrap-location.patch # UI patches # 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 "${_librewolf_patches_dir}"/ui-patches/pref-naming.patch # Don't nag to set default browser patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/hide-default-browser.patch # Remove firefox references in the urlbar, when suggesting opened tabs. patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/remove-branding-urlbar.patch # Remove cfr UI elements, as they are disabled and locked already. patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/remove-cfrprefs.patch # Do not display your browser is being managed by your organization in the settings. patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/remove-organization-policy-banner.patch # Hide "snippets" section from the home page settings, as it was already locked. patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/remove-snippets-from-home.patch # Update handler links patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/handlers.patch # Fix telemetry removal, see https://gitlab.com/librewolf-community/browser/linux/-/merge_requests/17, for example patch -Np1 -i "${_librewolf_patches_dir}"/disable-data-reporting-at-compile-time.patch # Hide Firefox view --> Broken as of 2023-10-30 # patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/firefox-view.patch # Allows hiding the password manager (from the lw pref pane) / via a pref patch -Np1 -i "${_librewolf_patches_dir}"/hide-passwordmgr.patch # Pref pane - custom FireDragon svg patch -Np1 -i "${_patches_dir}"/custom/librewolf-pref-pane.patch patch -Np1 -i "${_patches_dir}"/custom/add_firedragon_svg.patch # Update privacy preferences patch -Np1 -i "${_patches_dir}"/custom/privacy-preferences.patch rm -f "${srcdir}"/common/source_files/mozconfig cp -r "${srcdir}"/common/source_files/* ./ } build() { cd firefox-"$pkgver" export MOZ_NOSPAM=1 export MOZBUILD_STATE_PATH="$srcdir/mozbuild" # export MOZ_ENABLE_FULL_SYMBOLS=1 export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=pip export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach # let us hope this is a working _new_ workaround for the pip env issues? # LTO needs more open files ulimit -n 4096 # Do 3-tier PGO echo "Building instrumented browser..." if [[ $CARCH == 'aarch64' ]]; then cat >.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <>.mozconfig <