From ce9b00c7dd8b24925f727409a57a4f53c4870c2b Mon Sep 17 00:00:00 2001 From: dr460nf1r3 Date: Mon, 23 May 2022 20:11:49 +0200 Subject: [PATCH] Rebase PKGBUILD to Librewolf ones, the Librewolf team is doing a much better job at this than me :) --- .SRCINFO | 39 +++--- PKGBUILD | 399 ++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 267 insertions(+), 171 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 1f6a219..70ed408 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,11 +1,12 @@ pkgbase = firedragon pkgdesc = Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE - pkgver = 100.0.1 - pkgrel = 1 - url = https://gitlab.com/dr460nf1r3/settings/ + pkgver = 100.0.2 + pkgrel = 2 + url = https://librewolf.net/ install = firedragon.install arch = x86_64 arch = x86_64_v3 + arch = aarch64 license = MPL license = GPL license = LGPL @@ -16,11 +17,9 @@ pkgbase = firedragon makedepends = mesa makedepends = imake makedepends = inetutils - makedepends = rust - makedepends = xorg-server-xwayland makedepends = xorg-server-xvfb - makedepends = ccache makedepends = autoconf2.13 + makedepends = rust makedepends = clang makedepends = llvm makedepends = jack @@ -37,23 +36,15 @@ pkgbase = firedragon makedepends = wasi-libc makedepends = wasi-libc++ makedepends = wasi-libc++abi + makedepends = pciutils depends = gtk3 depends = libxt depends = mime-types depends = dbus-glib - depends = ffmpeg depends = nss depends = ttf-font depends = libpulse - depends = aom - depends = harfbuzz - depends = libvpx - depends = libjpeg - depends = zlib - depends = icu - depends = libevent - depends = pipewire - depends = kfiredragonhelper + depends = ffmpeg optdepends = firejail-git: Sandboxing the browser using the included profiles optdepends = profile-sync-daemon: Load the browser profile into RAM optdepends = whoogle: Searching the web using a locally running Whoogle instance @@ -66,21 +57,27 @@ pkgbase = firedragon optdepends = libappindicator-gtk3: Global menu support for GTK apps optdepends = appmenu-gtk-module-git: Appmenu for GTK only optdepends = plasma5-applets-window-appmenu: Appmenu for Plasma only - conflicts = firedragon-hg options = !emptydirs options = !makeflags options = !strip options = !lto options = !debug - backup = usr/lib/firedragon/firedragon.cfg - backup = usr/lib/firedragon/distribution/policies.json - source = https://archive.mozilla.org/pub/firefox/releases/100.0.1/source/firefox-100.0.1.source.tar.xz + backup = usr/lib/librewolf/librewolf.cfg + backup = usr/lib/librewolf/distribution/policies.json + source = https://archive.mozilla.org/pub/firefox/releases/100.0.2/source/firefox-100.0.2.source.tar.xz + source = https://archive.mozilla.org/pub/firefox/releases/100.0.2/source/firefox-100.0.2.source.tar.xz.asc source = firedragon.desktop source = git+https://gitlab.com/dr460nf1r3/common.git source = git+https://gitlab.com/dr460nf1r3/settings.git - sha256sums = 13bc55e1c32a6ad32b4a3b37296a0459f41b0981489fc22da491256773c51c9d + source = librewolf-source::git+https://gitlab.com/librewolf-community/browser/source.git + source = librewolf-settings::git+https://gitlab.com/librewolf-community/settings.git + validpgpkeys = 14F26682D0916CDD81E37B6D61B7B526D98F0353 + sha256sums = dc109861204f6938fd8f147af89a694eb516f3d4bb64ce3f0116452d654a8417 + sha256sums = SKIP sha256sums = 158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d sha256sums = SKIP sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP pkgname = firedragon diff --git a/PKGBUILD b/PKGBUILD index 9d92305..d8b4f4e 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,21 +5,18 @@ pkgname=firedragon _pkgname=FireDragon pkgver=100.0.2 -pkgrel=1 +pkgrel=2 pkgdesc="Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE" -arch=(x86_64 x86_64_v3) +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 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-zstandard git binutils - lld dump_syms wasi-compiler-rt wasi-libc wasi-libc++ wasi-libc++abi) +url="https://librewolf.net/" +depends=(gtk3 libxt mime-types dbus-glib nss ttf-font libpulse ffmpeg) +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 wasi-libc wasi-libc++ wasi-libc++abi 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' @@ -32,182 +29,252 @@ optdepends=('firejail-git: Sandboxing the browser using the included profiles' 'libappindicator-gtk3: Global menu support for GTK apps' 'appmenu-gtk-module-git: Appmenu for GTK only' 'plasma5-applets-window-appmenu: Appmenu for Plasma only') +backup=('usr/lib/librewolf/librewolf.cfg' + 'usr/lib/librewolf/distribution/policies.json') 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 +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") - -sha256sums=('13bc55e1c32a6ad32b4a3b37296a0459f41b0981489fc22da491256773c51c9d' + "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") +# source_aarch64=() +sha256sums=('dc109861204f6938fd8f147af89a694eb516f3d4bb64ce3f0116452d654a8417' + 'SKIP' '158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d' '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 prepare() { - if [[ ! -d mozbuild ]]; then - mkdir mozbuild - fi - cd firefox-$pkgver + 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" + # 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/0018-bmo-1516081-Disable-watchdog-during-PGO-builds.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 - - # 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 - - # Misc - patch -Np1 -i ${_patches_dir}/librewolf-ui/remap-links.patch - patch -Np1 -i ${_patches_dir}/librewolf/native-messaging-registry-path.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 - patch -Np1 -i ${_patches_dir}/librewolf-ui/website-appearance-ui-rfp.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 + pushd "${_patches_dir}" && sh "${srcdir}/common/rebrand.sh" + popd cat >../mozconfig <>../mozconfig <>../mozconfig < breaks profiled builds since 90.0, it seems + + # allow SearchEngines option in non-ESR builds + patch -Np1 -i "${_librewolf_patches_dir}"/sed-patches/allow-searchengines-non-esr.patch + + # remove search extensions (experimental) + # patch -Np1 -i "${_librewolf_patches_dir}"/search-config.patch + cp "${srcdir}/librewolf-source/assets/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 "${_librewolf_patches_dir}"/sed-patches/stop-undesired-requests.patch + + # Assorted patches + patch -Np1 -i "${_librewolf_patches_dir}"/context-menu.patch + patch -Np1 -i "${_librewolf_patches_dir}"/urlbarprovider-interventions.patch + + # change some hardcoded directory strings that could lead to unnecessarily + # created directories + patch -Np1 -i "${_librewolf_patches_dir}"/mozilla_dirs.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 "${_librewolf_patches_dir}"/dbus_name.patch + + # add v100 about dialog + patch -Np1 -i "${_librewolf_patches_dir}"/aboutLogos.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 + + # + patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/remap-links.patch + + # + patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/hide-default-browser.patch + + # Add LibreWolf logo to Debugging Page + patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/lw-logo-devtools.patch + + # + patch -Np1 -i "${_librewolf_patches_dir}"/ui-patches/privacy-preferences.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 + + # add warning that sanitizing exceptions are bypassed by the options in History > 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 + + # + 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 + + # 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 + patch -Np1 -i "${_patches_dir}"/librewolf-ui/website-appearance-ui-rfp.patch + + rm -f "${srcdir}"/common/source_files/mozconfig + cp -r "${srcdir}"/common/source_files/* ./ } build() { - cd firefox-$pkgver + cd firefox-"$pkgver" export MOZ_NOSPAM=1 export MOZBUILD_STATE_PATH="$srcdir/mozbuild" - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system + # 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 @@ -215,6 +282,20 @@ build() { # Do 3-tier PGO echo "Building instrumented browser..." + if [[ $CARCH == 'aarch64' ]]; then + + cat >.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <>.mozconfig <