diff --git a/.SRCINFO b/.SRCINFO index 569e259..9717191 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,49 +1,18 @@ pkgbase = firedragon pkgdesc = Floorp fork build using custom branding and settings pkgver = 11.12.2 - pkgrel = 1 + pkgrel = 2.1 epoch = 1 url = https://garudalinux.org install = firedragon.install arch = x86_64 license = MPL2 license = Floorp Shared Source License - makedepends = cbindgen - makedepends = clang - makedepends = diffutils - makedepends = dump_syms - makedepends = imagemagick - makedepends = imake - makedepends = inetutils - makedepends = git - makedepends = jack - makedepends = lld - makedepends = llvm - makedepends = mesa - makedepends = mold - 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 - makedepends = weston - makedepends = xwayland-run 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 @@ -68,19 +37,11 @@ pkgbase = firedragon options = !strip backup = usr/lib/firedragon/firedragon.cfg backup = usr/lib/firedragon/distribution/policies.json - source = https://github.com/Floorp-Projects/Floorp/archive/refs/tags/v11.12.2.tar.gz - source = floorp-core::git+https://github.com/Floorp-Projects/Floorp-core#commit=1ac82bbf62fe656f02aea7c9edb921a8c18b1fe1 - source = floorp-l10n-central::git+https://github.com/Floorp-Projects/Unified-l10n-central#commit=b7a652ebf828e1c695a19903a568505d818463d2 - source = floorp-private::git+https://github.com/floorp-Projects/Floorp-private-components#commit=f81d5691d20a51be32d671fc9d0058de7255f86a - source = common::git+https://gitlab.com/garuda-linux/firedragon/common.git - source = settings::git+https://gitlab.com/garuda-linux/firedragon/settings.git + source = https://gitlab.com/api/v4/projects/55893651/packages/generic/firedragon/11.12.2-2/firedragon-v11.12.2-2.linux-x86_64.tar.bz2 + source = https://gitlab.com/garuda-linux/firedragon/settings/-/raw/master/firedragon.psd source = firedragon.desktop - sha256sums = 6fdd272a75fb04df23706c8b693c46c0400ef072bb3b9a4c1f6dcefb11652e5d - sha256sums = fe330c900317a1a798932dd9d197e38e44ad2a8cd8f19d9a8a20b9e60e60c112 - sha256sums = 5f9a31c9a7166328ac364b9172e3b40bff822f142976fa009de5ada65a7dd938 - sha256sums = dc846923451a747a4d1c4efd9a325db1f4b24e19dfefa277deefc346c6f5788c - sha256sums = SKIP - sha256sums = SKIP + sha256sums = c90102d90af653e1051aee7c064a54c09132a0aba3fe7abee8068c23adae5444 + sha256sums = 61355930cc59813e7e610ffdab8a01e32be980fffe1dfd8f9654b8f8f9f7fdc0 sha256sums = 53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560 pkgname = firedragon diff --git a/PKGBUILD b/PKGBUILD index 2379c55..f5c8323 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,19 +1,13 @@ # Maintainer: dr460nf1r3 # Co-Maintainer: FGD +# Co-Maintainer: stefanwimmer128 -# Three-stage profile-guided optimization -: ${_build_pgo:=true} - -# Profile with xvfb-run, if possible -: ${_build_pgo_xvfb:=false} +_pkgver=11.12.2-2 +_pkgrel=1 pkgname=firedragon -_pkgname=FireDragon -pkgver=11.12.2 -_floorp_core_commit="1ac82bbf62fe656f02aea7c9edb921a8c18b1fe1" -_floorp_l10n_commit="b7a652ebf828e1c695a19903a568505d818463d2" -_floorp_private_commit="f81d5691d20a51be32d671fc9d0058de7255f86a" -pkgrel=1 +pkgver=${_pkgver%-*} +pkgrel=${_pkgver#*-}.${_pkgrel} epoch=1 pkgdesc="Floorp fork build using custom branding and settings" url='https://garudalinux.org' @@ -23,11 +17,7 @@ depends=(dbus dbus-glib ffmpeg gtk3 - libevent - libjpeg libpulse - libvpx - libwebp libxss libxt mime-types @@ -35,31 +25,7 @@ depends=(dbus pipewire ttf-font zlib) -makedepends=(cbindgen - clang - diffutils - dump_syms - imagemagick - imake - inetutils - git - jack - lld - llvm - mesa - mold - nasm - nodejs - python - rust - unzip - wasi-compiler-rt - wasi-libc - wasi-libc++ - wasi-libc++abi - xorg-server-xvfb - yasm - zip) +makedepends=() optdepends=('hunspell-dictionary: Spell checking' 'libnotify: Notification integration' 'networkmanager: Location detection via available WiFi networks' @@ -77,279 +43,22 @@ options=(!debug !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" - "floorp-private::git+https://github.com/floorp-Projects/Floorp-private-components#commit=$_floorp_private_commit" - "common::git+https://gitlab.com/garuda-linux/firedragon/common.git" - "settings::git+https://gitlab.com/garuda-linux/firedragon/settings.git" +source=(https://gitlab.com/api/v4/projects/55893651/packages/generic/firedragon/${_pkgver}/firedragon-v${_pkgver}.linux-x86_64.tar.bz2 + https://gitlab.com/garuda-linux/firedragon/settings/-/raw/master/firedragon.psd "${pkgname}.desktop") -sha256sums=('6fdd272a75fb04df23706c8b693c46c0400ef072bb3b9a4c1f6dcefb11652e5d' - 'fe330c900317a1a798932dd9d197e38e44ad2a8cd8f19d9a8a20b9e60e60c112' - '5f9a31c9a7166328ac364b9172e3b40bff822f142976fa009de5ada65a7dd938' - 'dc846923451a747a4d1c4efd9a325db1f4b24e19dfefa277deefc346c6f5788c' - 'SKIP' - 'SKIP' +sha256sums=('c90102d90af653e1051aee7c064a54c09132a0aba3fe7abee8068c23adae5444' + '61355930cc59813e7e610ffdab8a01e32be980fffe1dfd8f9654b8f8f9f7fdc0' '53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560') install="${pkgname}.install" -# Select the method of profiling -if [[ "${_build_pgo::1}" == "t" ]]; then - if [[ "${_build_pgo_xvfb::1}" == "t" ]]; then - makedepends+=(xorg-server-xvfb) - else - makedepends+=(weston xwayland-run) - fi -fi - -prepare() { - # 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-private/* ./Floorp-"${pkgver}"/floorp/Floorp-private-components - mv -f "${srcdir}"/floorp-l10n-central/* ./Floorp-"${pkgver}"/floorp/browser/locales/l10n-central - - rm -rf "${srcdir}/mozbuild" - mkdir "${srcdir}/mozbuild" - - cd Floorp-"${pkgver}" || exit - cat > ../mozconfig << END -ac_add_options --with-app-basename=${_pkgname} -ac_add_options --with-app-name=${pkgname} -ac_add_options --with-branding=browser/branding/firedragon -ac_add_options --with-l10n-base=${PWD@Q}/floorp/browser/locales/l10n-central -ac_add_options --enable-application=browser -ac_add_options --enable-private-components -mk_add_options MOZ_OBJDIR=${PWD@Q}/obj - -# Build options -ac_add_options --disable-bootstrap -ac_add_options --disable-elf-hack -ac_add_options --enable-default-toolkit=cairo-gtk3-wayland -ac_add_options --enable-hardening -ac_add_options --enable-linker=mold -ac_add_options --enable-release -ac_add_options --enable-rust-simd -ac_add_options --enable-wasm-simd -ac_add_options --prefix=/usr -ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot -export MOZ_INCLUDE_SOURCE_INFO=1 - -# Branding -ac_add_options --allow-addon-sideload -ac_add_options --enable-unverified-updates -ac_add_options --enable-update-channel=release -ac_add_options --with-distribution-id=org.garudalinux -ac_add_options --with-unsigned-addon-scopes=app,system -export MOZILLA_OFFICIAL=1 -export MOZ_APP_REMOTINGNAME=${pkgname} -export MOZ_CRASHREPORTER= -export MOZ_DATA_REPORTING= -export MOZ_REQUIRE_SIGNING= -export MOZ_SERVICES_HEALTHREPORT= -export MOZ_TELEMETRY_REPORTING= - -# System libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-libevent -ac_add_options --with-system-libvpx -ac_add_options --with-system-nspr -ac_add_options --with-system-nss -ac_add_options --with-system-webp -ac_add_options --with-system-zlib - -# Features -ac_add_options --disable-crashreporter # (Minimize telemetry) -ac_add_options --disable-debug -ac_add_options --disable-debug-js-modules -ac_add_options --disable-debug-symbols -ac_add_options --disable-default-browser-agent -ac_add_options --disable-gpsd -ac_add_options --disable-necko-wifi -ac_add_options --disable-parental-controls # (Disable local/OS MTIM) -ac_add_options --disable-rust-tests -ac_add_options --disable-synth-speechd -ac_add_options --disable-tests -ac_add_options --disable-updater -ac_add_options --disable-warnings-as-errors -ac_add_options --disable-webspeech -ac_add_options --disable-webspeechtestbackend -ac_add_options --enable-alsa -ac_add_options --enable-av1 -ac_add_options --enable-eme=widevine -ac_add_options --enable-jack -ac_add_options --enable-jxl -ac_add_options --enable-proxy-bypass-protection -ac_add_options --enable-pulseaudio -ac_add_options --enable-raw -ac_add_options --enable-sandbox -ac_add_options --enable-strip - -# Optimization -ac_add_options --enable-optimize=-O3 -ac_add_options --enable-lto=cross,full -ac_add_options OPT_LEVEL="3" -ac_add_options RUSTC_OPT_LEVEL="3" - -# Other -export AR=llvm-ar -export CC=clang -export CXX=clang++ -export NM=llvm-nm -export RANLIB=llvm-ranlib -END - - local _patches_dir - _patches_dir="${srcdir}/common/patches" - - local _floorp_patches_dir - _floorp_patches_dir="${srcdir}/common/patches/floorp/" - - _patch() { - printf 'Patching %s ...\n' "$1" - patch -Np1 -i "$1" - } - - # Remove some pre-installed addons that might be questionable - _patch "${_floorp_patches_dir}"/remove_addons.patch - - # Stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10) - _patch "${_floorp_patches_dir}"/sed-patches/stop-undesired-requests.patch - - # Assorted patches - _patch "${_floorp_patches_dir}"/urlbarprovider-interventions.patch - - # Allow uBlockOrigin to run in private mode by default, without user intervention - _patch "${_floorp_patches_dir}"/allow-ubo-private-mode.patch - - # Add custom uBO assets (on first launch only) - _patch "${_floorp_patches_dir}"/custom-ubo-assets-bootstrap-location.patch - - # Allows hiding the password manager (from the lw pref pane) / via a pref - _patch "${_floorp_patches_dir}"/hide-passwordmgr.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 - - # Update privacy preferences -- DISABLED to test UI changes and allow user to easily change the setting - # _patch "${_patches_dir}"/custom/privacy-preferences.patch - - rm -f "${srcdir}"/common/source_files/mozconfig - cp -r "${srcdir}"/common/source_files/* ./ -} - -build() { - cd Floorp-"${pkgver}" || exit - - 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. - - # Fix DRI/zink issues during compilation - export LIBGL_ALWAYS_SOFTWARE=true - - # 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}" - - # LTO needs more open files - ulimit -n 4096 - - # Do 3-tier PGO - if [[ "${_build_pgo::1}" == "t" ]]; then - local _old_profdata="${SRCDEST:-$startdir}/merged.profdata" - local _old_jarlog="${SRCDEST:-$startdir}/jarlog" - - # Restore old profile - if [[ "${_build_pgo_reuse::1}" == "t" ]]; then - if [[ -s "$_old_profdata" ]]; then - echo "Restoring old profile data." - cp --reflink=auto -f "$_old_profdata" merged.profdata - fi - - if [[ -s "$_old_jarlog" ]]; then - echo "Restoring old jar log." - cp --reflink=auto -f "$_old_jarlog" jarlog - fi - fi - - # Make new profile - if [[ "${_build_pgo_reuse::1}" != "t" ]] || [[ ! -s merged.profdata ]]; then - echo "Building instrumented browser..." - cat > .mozconfig ../mozconfig - echo >> .mozconfig "ac_add_options --enable-profile-generate=cross" - ./mach build - - echo "Profiling instrumented browser..." - ./mach package - - if [[ "${_build_pgo_xvfb::1}" == "t" ]]; then - local _headless_run=( - xvfb-run - -s "-screen 0 1920x1080x24 -nolisten local" - ) - else - local _headless_run=( - wlheadless-run - -c weston --width=1920 --height=1080 - ) - fi - - LLVM_PROFDATA=llvm-profdata JARLOG_FILE=${PWD@Q}/jarlog \ - "${_headless_run[@]}" -- ./mach python build/pgo/profileserver.py - - echo "Removing instrumented browser..." - ./mach clobber - fi - - echo "Building optimized browser..." - cat > .mozconfig ../mozconfig - - if [[ -s merged.profdata ]]; then - stat -c "Profile data found (%s bytes)" merged.profdata - echo >> .mozconfig "ac_add_options --enable-profile-use=cross" - echo >> .mozconfig "ac_add_options --with-pgo-profile-path='${PWD@Q}/merged.profdata'" - - # save profdata for reuse - cp --reflink=auto -f merged.profdata "$_old_profdata" - else - echo "Profile data not found." - fi - - if [[ -s jarlog ]]; then - stat -c "Jar log found (%s bytes)" jarlog - echo >> .mozconfig "ac_add_options --with-pgo-jarlog='${PWD@Q}/jarlog'" - - # save jarlog for reuse - cp --reflink=auto -f jarlog "$_old_jarlog" - else - echo "Jar log not found." - fi - - ./mach build - else - echo "Building browser..." - cat > .mozconfig ../mozconfig - ./mach build - fi - - echo "Building symbol archive..." - ./mach buildsymbols -} - package() { - cd Floorp-"${pkgver}" || exit + cd "${srcdir}/${pkgname}" - DESTDIR="${pkgdir}" ./mach install + install -Ddvm755 "${pkgdir}/usr/lib/${pkgname}" + cp -rvf "${srcdir}/firedragon/." "${pkgdir}/usr/lib/${pkgname}" - rm "${pkgdir}/usr/lib/${pkgname}/pingsender" + install -Ddvm755 "${pkgdir}/usr/bin" + ln -srfv "$pkgdir/usr/lib/$pkgname/${pkgname%-*}" "$pkgdir/usr/bin/${pkgname%-*}" local vendorjs="${pkgdir}/usr/lib/${pkgname}/browser/defaults/preferences/vendor.js" install -Dvm644 /dev/stdin "${vendorjs}" << END @@ -403,20 +112,14 @@ END # Application icons for i in 16 32 48 64 128; do - install -Dvm644 browser/branding/firedragon/default$i.png \ - "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/${pkgname}.png" + install -Dvm644 browser/chrome/icons/default/default$i.png "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/${pkgname}.png" done - install -Dvm644 browser/branding/firedragon/content/about-logo.png \ - "${pkgdir}/usr/share/icons/hicolor/192x192/apps/${pkgname}.png" # Replace duplicate binary with wrapper # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 ln -srfv "$pkgdir/usr/bin/$pkgname" "$pkgdir/usr/lib/$pkgname/${pkgname%-*}-bin" # All the needed configuration files - install -Dvm644 "../${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop" - install -Dvm644 "${srcdir}/settings/firedragon.cfg" "${pkgdir}/usr/lib/${pkgname}/firedragon.cfg" - install -Dvm644 "${srcdir}/settings/firedragon.psd" "${pkgdir}/usr/share/psd/browsers/firedragon" - install -Dvm644 "${srcdir}/settings/defaults/pref/local-settings.js" "${pkgdir}/usr/lib/${pkgname}/defaults/pref/local-settings.js" - install -Dvm644 "${srcdir}/settings/distribution/policies.json" "${pkgdir}/usr/lib/${pkgname}/distribution/policies.json" + install -Dvm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop" + install -Dvm644 "${srcdir}/${pkgname}.psd" "${pkgdir}/usr/share/psd/browsers/${pkgname}" }