# Maintainer: dr460nf1r3 # Contributor: torvic9 AT mailbox DOT org # Contributor: lsf pkgname=firedragon _pkgname=FireDragon pkgver=103.0.2 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 nss ttf-font libpulse ffmpeg kfiredragonhelper) makedepends=(unzip zip diffutils yasm mesa imake inetutils xorg-server-xvfb autoconf2.13 rust clang llvm jack nodejs cbindgen nasm python-setuptools python-zstandard git binutils lld dump_syms 'wasi-compiler-rt>13' 'wasi-libc>=1:0+258+30094b6' 'wasi-libc++>13' 'wasi-libc++abi>13' 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://gitlab.com/librewolf-community/browser/source.git" "librewolf-settings::git+https://gitlab.com/librewolf-community/settings.git" "cachyos-source::git+https://github.com/CachyOS/CachyOS-Browser-Common.git") # source_aarch64=() sha256sums=('766183e8e39c17a84305a85da3237919ffaeb018c6c9d97a7324aea51bd453aa' 'SKIP' '158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d' '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 as well _build_profiled_aarch64=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" sed -i 's/lib\/librewolf/lib\/firedragon/g' "${_librewolf_patches_dir}/mozilla_dirs.patch" sed -i 's/lib64\/librewolf/lib64\/firedragon/g' "${_librewolf_patches_dir}/mozilla_dirs.patch" sed -i 's/librewolf/firedragon/g' "${_librewolf_patches_dir}/mozilla_dirs.patch" # Prepare patches, then return to the source directory pushd "${_patches_dir}" && sh "${srcdir}/common/rebrand.sh" popd pushd "${_librewolf_patches_dir}" && sh "${srcdir}/common/rebrand.sh" popd pushd "${_cachyos_patches_dir}" && sh "${srcdir}/common/rebrand.sh" popd cat >../mozconfig <>../mozconfig <>../mozconfig < Clear History when LibreWolf closes > Settings # patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/sanitizing-description.patch # Add patch to hide website appearance settings patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/website-appearance-ui-rfp.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 # Allows hiding the password manager (from the lw pref pane) / via a pref patch -Np1 -i "${_librewolf_patches_dir}"/hide-passwordmgr.patch # Faster multilocate patch -Np1 -i "${_librewolf_patches_dir}"/faster-package-multi-locale.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 # Needed build fix patch -Np1 -i "${_cachyos_patches_dir}"/zstandard-0.18.0.patch patch -Np1 -i "${_patches_dir}"/custom/glibc236.patch patch -Np1 -i "${_patches_dir}"/custom/rust163.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 <