diff --git a/.SRCINFO b/.SRCINFO index 90eb7ba..5c90efe 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,89 +1,78 @@ pkgbase = firedragon - pkgdesc = Librewolf fork build using custom branding & settings - pkgver = 119.0 - pkgrel = 2 - url = https://gitlab.com/dr460nf1r3/settings/ + pkgdesc = Floorp fork build using custom branding & settings + pkgver = 11.9.0 + pkgrel = 1 + url = http://dr460nf1r3.org install = firedragon.install arch = x86_64 - arch = x86_64_v3 - arch = aarch64 - license = MPL - license = GPL - license = LGPL - makedepends = unzip - makedepends = zip + license = MPL2 + makedepends = cbindgen + makedepends = clang makedepends = diffutils - makedepends = yasm - makedepends = mesa + makedepends = dump_syms + makedepends = imagemagick makedepends = imake makedepends = inetutils - makedepends = xorg-server-xvfb - makedepends = autoconf2.13 - makedepends = rust - makedepends = clang - makedepends = llvm makedepends = jack - makedepends = nodejs - makedepends = cbindgen - makedepends = nasm - makedepends = mold - makedepends = gawk - makedepends = python-setuptools - makedepends = python-zstandard - makedepends = git - makedepends = binutils - makedepends = dump_syms makedepends = lld - makedepends = libxss - makedepends = wasi-compiler-rt>15 - makedepends = wasi-libc>=1:0+314+a1c7c2c - makedepends = wasi-libc++>15 - makedepends = wasi-libc++abi>15 - makedepends = pciutils + makedepends = llvm + makedepends = mesa + makedepends = nasm + makedepends = nodejs + makedepends = python + makedepends = rust + makedepends = unzip + makedepends = wasi-compiler-rt + makedepends = wasi-libc + makedepends = wasi-libc++ + makedepends = wasi-libc++abi + makedepends = xorg-server-xvfb + makedepends = yasm + makedepends = zip + depends = dbus + depends = dbus-glib + depends = ffmpeg depends = gtk3 + depends = libevent + depends = libjpeg + depends = libpulse + depends = libvpx + depends = libwebp + depends = libxss depends = libxt depends = mime-types - depends = dbus-glib depends = nss + depends = pipewire depends = ttf-font - depends = libpulse - depends = ffmpeg - depends = xdg-desktop-portal - 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 - optdepends = searx: Searching the web using a locally running searX instance - optdepends = networkmanager: Location detection via available WiFi networks + depends = zlib + optdepends = hunspell-dictionary: Spell checking optdepends = libnotify: Notification integration + optdepends = networkmanager: Location detection via available WiFi networks + optdepends = profile-sync-daemon: Load the browser profile into RAM optdepends = pulseaudio: Audio support + optdepends = searx: Searching the web using a locally running searX instance optdepends = speech-dispatcher: Text-to-Speech - optdepends = hunspell-en_US: Spell checking, American English - 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 + optdepends = whoogle: Searching the web using a locally running Whoogle instance + optdepends = xdg-desktop-portal: Screensharing with Wayland + replaces = firedragon-next + options = !debug options = !emptydirs + options = !lto 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/119.0/source/firefox-119.0.source.tar.xz - source = https://archive.mozilla.org/pub/firefox/releases/119.0/source/firefox-119.0.source.tar.xz.asc + source = https://github.com/Floorp-Projects/Floorp/archive/refs/tags/v11.9.0.tar.gz + source = floorp-core::git+https://github.com/Floorp-Projects/Floorp-core#commit=cefaa9a0352456c45be6a917e6664f8ef054a68f + source = floorp-l10n-central::git+https://github.com/Floorp-Projects/Unified-l10n-central#commit=6915ae0005fdb1684f3b6b0731bdec1a0596f7e8 + source = common::git+https://gitlab.com/garuda-linux/firedragon/common.git + source = settings::git+https://gitlab.com/garuda-linux/firedragon/settings.git source = firedragon.desktop - source = git+https://gitlab.com/dr460nf1r3/common.git - source = git+https://gitlab.com/dr460nf1r3/settings.git - source = librewolf-source::git+https://codeberg.org/librewolf/source.git - source = librewolf-settings::git+https://codeberg.org/librewolf/settings.git - source = cachyos-source::git+https://github.com/CachyOS/CachyOS-Browser-Common.git - validpgpkeys = 14F26682D0916CDD81E37B6D61B7B526D98F0353 - sha256sums = f63e44194548f246e1396508800739a24c0517e65e920002a6f67ee099be39dd + sha256sums = 11a7b2bfc2582220e0e0f0be90b9575249f52856fe21b55cbce9b72c516d654e + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP sha256sums = SKIP sha256sums = 53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560 - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP pkgname = firedragon diff --git a/PKGBUILD b/PKGBUILD index d19bc55..714e7d7 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,406 +1,349 @@ # 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' +pkgver=11.9.0 +_floorp_core_commit=cefaa9a0352456c45be6a917e6664f8ef054a68f +_floorp_l10n_commit=6915ae0005fdb1684f3b6b0731bdec1a0596f7e8 +pkgrel=1 +pkgdesc="Floorp fork build using custom branding & settings" +url='http://dr460nf1r3.org' +arch=('x86_64') +license=('MPL2') +depends=(dbus + dbus-glib + ffmpeg + gtk3 + libevent + libjpeg + libpulse + libvpx + libwebp + libxss + libxt + mime-types + nss + pipewire + ttf-font + zlib) +makedepends=(cbindgen + clang + diffutils + dump_syms + imagemagick + imake + inetutils + jack + lld + llvm + mesa + nasm + nodejs + python + rust + unzip + wasi-compiler-rt + wasi-libc + wasi-libc++ + wasi-libc++abi + xorg-server-xvfb + yasm + zip) +optdepends=('hunspell-dictionary: Spell checking' + 'libnotify: Notification integration' + 'networkmanager: Location detection via available WiFi networks' + 'profile-sync-daemon: Load the browser profile into RAM' + 'pulseaudio: Audio support' + 'searx: Searching the web using a locally running searX instance' + 'speech-dispatcher: Text-to-Speech' + 'whoogle: Searching the web using a locally running Whoogle instance' + 'xdg-desktop-portal: Screensharing with Wayland') +replaces=(firedragon-next) +options=(!debug + !emptydirs + !lto + !makeflags + !strip) +backup=("usr/lib/${pkgname}/${pkgname}.cfg" + "usr/lib/${pkgname}/distribution/policies.json") +source=(https://github.com/Floorp-Projects/Floorp/archive/refs/tags/v"${pkgver}".tar.gz + "floorp-core::git+https://github.com/Floorp-Projects/Floorp-core#commit=$_floorp_core_commit" + "floorp-l10n-central::git+https://github.com/Floorp-Projects/Unified-l10n-central#commit=$_floorp_l10n_commit" + "common::git+https://gitlab.com/garuda-linux/firedragon/common.git" + "settings::git+https://gitlab.com/garuda-linux/firedragon/settings.git" + "${pkgname}.desktop") +sha256sums=('11a7b2bfc2582220e0e0f0be90b9575249f52856fe21b55cbce9b72c516d654e' '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 + '53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560') +install="${pkgname}.install" prepare() { - mkdir -p mozbuild - cd firefox-"$pkgver" + # Floorp's shenanigan to make the build work without cloning the whole + # git source (puts submodules' content in place) + mv -f "${srcdir}"/floorp-core/* ./Floorp-"${pkgver}"/floorp + mv -f "${srcdir}"/floorp-l10n-central/* ./Floorp-"${pkgver}"/floorp/browser/locales/l10n-central - local _patches_dir - _patches_dir="${srcdir}/common/patches" + rm -rf "${srcdir}/mozbuild" + mkdir "${srcdir}/mozbuild" - 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 <>../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 + # Add Firedragon Preferences Pane + _patch "${_patches_dir}"/pref-pane/pref-pane-small.patch + cp "${_patches_dir}/pref-pane/category-firedragon.svg" browser/themes/shared/preferences/category-firedragon.svg + cp "${_patches_dir}/pref-pane/firedragon.css" browser/themes/shared/preferences/firedragon.css + cp "${_patches_dir}/pref-pane/firedragon.inc.xhtml" browser/components/preferences/firedragon.inc.xhtml + cp "${_patches_dir}/pref-pane/firedragon.js" browser/components/preferences/firedragon.js + cat < "${_patches_dir}/pref-pane/preferences.ftl" >> browser/locales/en-US/browser/preferences/preferences.ftl - # Disabling Pocket - patch -Np1 -i "${_librewolf_patches_dir}"/sed-patches/disable-pocket.patch + # Update privacy preferences -- DISABLED to test UI changes and allow user to easily change the setting + # _patch "${_patches_dir}"/custom/privacy-preferences.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/* ./ + rm -f "${srcdir}"/common/source_files/mozconfig + cp -r "${srcdir}"/common/source_files/* ./ } build() { - cd firefox-"$pkgver" + cd Floorp-"${pkgver}" || exit - 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? + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=pip + export MOZBUILD_STATE_PATH="${srcdir}/mozbuild" + export MOZ_ENABLE_FULL_SYMBOLS=1 + export MOZ_NOSPAM=1 + export MOZ_PROFILER_STARTUP=1 # Starts the profiler is started as early as possible during startup. - # LTO needs more open files - ulimit -n 4096 + # Malloc_usable_size is used in various parts of the codebase + CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" + CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" - # Do 3-tier PGO - echo "Building instrumented browser..." - - if [[ $CARCH == 'aarch64' ]]; then + # LTO needs more open files + ulimit -n 4096 + # Do 3-tier PGO + echo "Building instrumented browser..." cat >.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <.mozconfig ../mozconfig - ./mach build + if [[ -s merged.profdata ]]; then + stat -c "Profile data found (%s bytes)" merged.profdata + echo "ac_add_options --enable-profile-use=cross" >>.mozconfig + echo "ac_add_options --with-pgo-profile-path='${PWD@Q}/merged.profdata'" >>.mozconfig + else + echo "Profile data not found." + fi - echo "Profiling instrumented browser..." + if [[ -s jarlog ]]; then + stat -c "Jar log found (%s bytes)" jarlog + echo "ac_add_options --with-pgo-jarlog='${PWD@Q}/jarlog'" >>.mozconfig + else + echo "Jar log not found." + fi - ./mach package + ./mach build - LLVM_PROFDATA=llvm-profdata \ - JARLOG_FILE="$PWD/jarlog" \ - xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \ - ./mach python build/pgo/profileserver.py - - stat -c "Profile data found (%s bytes)" merged.profdata - test -s merged.profdata - - stat -c "Jar log found (%s bytes)" jarlog - test -s jarlog - - echo "Removing instrumented browser..." - ./mach clobber - - echo "Building optimized browser..." - - if [[ $CARCH == 'aarch64' ]]; then - - cat >.mozconfig ../mozconfig - <.mozconfig ../mozconfig - <>.mozconfig <