mirror of
				https://aur.archlinux.org/firedragon.git
				synced 2025-11-04 07:56:59 +00:00 
			
		
		
		
	Major version update - Floorp-based PKGBUILD 11.9.0
This commit is contained in:
		
							
								
								
									
										115
									
								
								.SRCINFO
									
									
									
									
									
								
							
							
						
						
									
										115
									
								
								.SRCINFO
									
									
									
									
									
								
							@@ -1,89 +1,78 @@
 | 
				
			|||||||
pkgbase = firedragon
 | 
					pkgbase = firedragon
 | 
				
			||||||
	pkgdesc = Librewolf fork build using custom branding & settings
 | 
						pkgdesc = Floorp fork build using custom branding & settings
 | 
				
			||||||
	pkgver = 119.0
 | 
						pkgver = 11.9.0
 | 
				
			||||||
	pkgrel = 2
 | 
						pkgrel = 1
 | 
				
			||||||
	url = https://gitlab.com/dr460nf1r3/settings/
 | 
						url = http://dr460nf1r3.org
 | 
				
			||||||
	install = firedragon.install
 | 
						install = firedragon.install
 | 
				
			||||||
	arch = x86_64
 | 
						arch = x86_64
 | 
				
			||||||
	arch = x86_64_v3
 | 
						license = MPL2
 | 
				
			||||||
	arch = aarch64
 | 
						makedepends = cbindgen
 | 
				
			||||||
	license = MPL
 | 
						makedepends = clang
 | 
				
			||||||
	license = GPL
 | 
					 | 
				
			||||||
	license = LGPL
 | 
					 | 
				
			||||||
	makedepends = unzip
 | 
					 | 
				
			||||||
	makedepends = zip
 | 
					 | 
				
			||||||
	makedepends = diffutils
 | 
						makedepends = diffutils
 | 
				
			||||||
	makedepends = yasm
 | 
						makedepends = dump_syms
 | 
				
			||||||
	makedepends = mesa
 | 
						makedepends = imagemagick
 | 
				
			||||||
	makedepends = imake
 | 
						makedepends = imake
 | 
				
			||||||
	makedepends = inetutils
 | 
						makedepends = inetutils
 | 
				
			||||||
	makedepends = xorg-server-xvfb
 | 
					 | 
				
			||||||
	makedepends = autoconf2.13
 | 
					 | 
				
			||||||
	makedepends = rust
 | 
					 | 
				
			||||||
	makedepends = clang
 | 
					 | 
				
			||||||
	makedepends = llvm
 | 
					 | 
				
			||||||
	makedepends = jack
 | 
						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 = lld
 | 
				
			||||||
	makedepends = libxss
 | 
						makedepends = llvm
 | 
				
			||||||
	makedepends = wasi-compiler-rt>15
 | 
						makedepends = mesa
 | 
				
			||||||
	makedepends = wasi-libc>=1:0+314+a1c7c2c
 | 
						makedepends = nasm
 | 
				
			||||||
	makedepends = wasi-libc++>15
 | 
						makedepends = nodejs
 | 
				
			||||||
	makedepends = wasi-libc++abi>15
 | 
						makedepends = python
 | 
				
			||||||
	makedepends = pciutils
 | 
						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 = gtk3
 | 
				
			||||||
 | 
						depends = libevent
 | 
				
			||||||
 | 
						depends = libjpeg
 | 
				
			||||||
 | 
						depends = libpulse
 | 
				
			||||||
 | 
						depends = libvpx
 | 
				
			||||||
 | 
						depends = libwebp
 | 
				
			||||||
 | 
						depends = libxss
 | 
				
			||||||
	depends = libxt
 | 
						depends = libxt
 | 
				
			||||||
	depends = mime-types
 | 
						depends = mime-types
 | 
				
			||||||
	depends = dbus-glib
 | 
					 | 
				
			||||||
	depends = nss
 | 
						depends = nss
 | 
				
			||||||
 | 
						depends = pipewire
 | 
				
			||||||
	depends = ttf-font
 | 
						depends = ttf-font
 | 
				
			||||||
	depends = libpulse
 | 
						depends = zlib
 | 
				
			||||||
	depends = ffmpeg
 | 
						optdepends = hunspell-dictionary: Spell checking
 | 
				
			||||||
	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
 | 
					 | 
				
			||||||
	optdepends = libnotify: Notification integration
 | 
						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 = pulseaudio: Audio support
 | 
				
			||||||
 | 
						optdepends = searx: Searching the web using a locally running searX instance
 | 
				
			||||||
	optdepends = speech-dispatcher: Text-to-Speech
 | 
						optdepends = speech-dispatcher: Text-to-Speech
 | 
				
			||||||
	optdepends = hunspell-en_US: Spell checking, American English
 | 
						optdepends = whoogle: Searching the web using a locally running Whoogle instance
 | 
				
			||||||
	optdepends = libappindicator-gtk3: Global menu support for GTK apps
 | 
						optdepends = xdg-desktop-portal: Screensharing with Wayland
 | 
				
			||||||
	optdepends = appmenu-gtk-module-git: Appmenu for GTK only
 | 
						replaces = firedragon-next
 | 
				
			||||||
	optdepends = plasma5-applets-window-appmenu: Appmenu for Plasma only
 | 
						options = !debug
 | 
				
			||||||
	options = !emptydirs
 | 
						options = !emptydirs
 | 
				
			||||||
 | 
						options = !lto
 | 
				
			||||||
	options = !makeflags
 | 
						options = !makeflags
 | 
				
			||||||
	options = !strip
 | 
						options = !strip
 | 
				
			||||||
	options = !lto
 | 
					 | 
				
			||||||
	options = !debug
 | 
					 | 
				
			||||||
	backup = usr/lib/firedragon/firedragon.cfg
 | 
						backup = usr/lib/firedragon/firedragon.cfg
 | 
				
			||||||
	backup = usr/lib/firedragon/distribution/policies.json
 | 
						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://github.com/Floorp-Projects/Floorp/archive/refs/tags/v11.9.0.tar.gz
 | 
				
			||||||
	source = https://archive.mozilla.org/pub/firefox/releases/119.0/source/firefox-119.0.source.tar.xz.asc
 | 
						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 = firedragon.desktop
 | 
				
			||||||
	source = git+https://gitlab.com/dr460nf1r3/common.git
 | 
						sha256sums = 11a7b2bfc2582220e0e0f0be90b9575249f52856fe21b55cbce9b72c516d654e
 | 
				
			||||||
	source = git+https://gitlab.com/dr460nf1r3/settings.git
 | 
						sha256sums = SKIP
 | 
				
			||||||
	source = librewolf-source::git+https://codeberg.org/librewolf/source.git
 | 
						sha256sums = SKIP
 | 
				
			||||||
	source = librewolf-settings::git+https://codeberg.org/librewolf/settings.git
 | 
						sha256sums = SKIP
 | 
				
			||||||
	source = cachyos-source::git+https://github.com/CachyOS/CachyOS-Browser-Common.git
 | 
					 | 
				
			||||||
	validpgpkeys = 14F26682D0916CDD81E37B6D61B7B526D98F0353
 | 
					 | 
				
			||||||
	sha256sums = f63e44194548f246e1396508800739a24c0517e65e920002a6f67ee099be39dd
 | 
					 | 
				
			||||||
	sha256sums = SKIP
 | 
						sha256sums = SKIP
 | 
				
			||||||
	sha256sums = 53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560
 | 
						sha256sums = 53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560
 | 
				
			||||||
	sha256sums = SKIP
 | 
					 | 
				
			||||||
	sha256sums = SKIP
 | 
					 | 
				
			||||||
	sha256sums = SKIP
 | 
					 | 
				
			||||||
	sha256sums = SKIP
 | 
					 | 
				
			||||||
	sha256sums = SKIP
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
pkgname = firedragon
 | 
					pkgname = firedragon
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										569
									
								
								PKGBUILD
									
									
									
									
									
								
							
							
						
						
									
										569
									
								
								PKGBUILD
									
									
									
									
									
								
							@@ -1,406 +1,349 @@
 | 
				
			|||||||
# Maintainer: dr460nf1r3 <dr460nf1r3 at garudalinux dot org>
 | 
					# Maintainer: dr460nf1r3 <dr460nf1r3 at garudalinux dot org>
 | 
				
			||||||
# Co-Maintainer: FGD
 | 
					# Co-Maintainer: FGD
 | 
				
			||||||
# Contributor: Peter Jung <admin@ptr1337.dev>
 | 
					 | 
				
			||||||
# Contributor: vnepogodin
 | 
					 | 
				
			||||||
# Contributor: torvic9 AT mailbox DOT org
 | 
					 | 
				
			||||||
# Contributor: lsf
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
pkgname=firedragon
 | 
					pkgname=firedragon
 | 
				
			||||||
_pkgname=FireDragon
 | 
					_pkgname=FireDragon
 | 
				
			||||||
pkgver=119.0
 | 
					pkgver=11.9.0
 | 
				
			||||||
pkgrel=2
 | 
					_floorp_core_commit=cefaa9a0352456c45be6a917e6664f8ef054a68f
 | 
				
			||||||
pkgdesc="Librewolf fork build using custom branding & settings"
 | 
					_floorp_l10n_commit=6915ae0005fdb1684f3b6b0731bdec1a0596f7e8
 | 
				
			||||||
arch=(x86_64 x86_64_v3 aarch64)
 | 
					pkgrel=1
 | 
				
			||||||
backup=('usr/lib/firedragon/firedragon.cfg'
 | 
					pkgdesc="Floorp fork build using custom branding & settings"
 | 
				
			||||||
  'usr/lib/firedragon/distribution/policies.json')
 | 
					url='http://dr460nf1r3.org'
 | 
				
			||||||
license=(MPL GPL LGPL)
 | 
					arch=('x86_64')
 | 
				
			||||||
url=https://gitlab.com/dr460nf1r3/settings/
 | 
					license=('MPL2')
 | 
				
			||||||
_arch_git=https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/firefox/trunk
 | 
					depends=(dbus
 | 
				
			||||||
_arch_git_blob=https://raw.githubusercontent.com/archlinux/svntogit-packages
 | 
					    dbus-glib
 | 
				
			||||||
depends=(gtk3 libxt mime-types dbus-glib nss ttf-font libpulse ffmpeg xdg-desktop-portal)
 | 
					    ffmpeg
 | 
				
			||||||
makedepends=(unzip zip diffutils yasm mesa imake inetutils xorg-server-xvfb
 | 
					    gtk3
 | 
				
			||||||
  autoconf2.13 rust clang llvm jack nodejs cbindgen nasm mold gawk
 | 
					    libevent
 | 
				
			||||||
  python-setuptools python-zstandard git binutils dump_syms lld libxss
 | 
					    libjpeg
 | 
				
			||||||
  '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
 | 
					    libpulse
 | 
				
			||||||
optdepends=('firejail-git: Sandboxing the browser using the included profiles'
 | 
					    libvpx
 | 
				
			||||||
  'profile-sync-daemon: Load the browser profile into RAM'
 | 
					    libwebp
 | 
				
			||||||
  'whoogle: Searching the web using a locally running Whoogle instance'
 | 
					    libxss
 | 
				
			||||||
  'searx: Searching the web using a locally running searX instance'
 | 
					    libxt
 | 
				
			||||||
  'networkmanager: Location detection via available WiFi networks'
 | 
					    mime-types
 | 
				
			||||||
  'libnotify: Notification integration'
 | 
					    nss
 | 
				
			||||||
  'pulseaudio: Audio support'
 | 
					    pipewire
 | 
				
			||||||
  'speech-dispatcher: Text-to-Speech'
 | 
					    ttf-font
 | 
				
			||||||
  'hunspell-en_US: Spell checking, American English'
 | 
					    zlib)
 | 
				
			||||||
  'libappindicator-gtk3: Global menu support for GTK apps'
 | 
					makedepends=(cbindgen
 | 
				
			||||||
  'appmenu-gtk-module-git: Appmenu for GTK only'
 | 
					    clang
 | 
				
			||||||
  'plasma5-applets-window-appmenu: Appmenu for Plasma only')
 | 
					    diffutils
 | 
				
			||||||
options=(!emptydirs !makeflags !strip !lto !debug)
 | 
					    dump_syms
 | 
				
			||||||
install=$pkgname.install
 | 
					    imagemagick
 | 
				
			||||||
source=(https://archive.mozilla.org/pub/firefox/releases/"$pkgver"/source/firefox-"$pkgver".source.tar.xz{,.asc}
 | 
					    imake
 | 
				
			||||||
  "$pkgname.desktop"
 | 
					    inetutils
 | 
				
			||||||
  "git+https://gitlab.com/dr460nf1r3/common.git"
 | 
					    jack
 | 
				
			||||||
  "git+https://gitlab.com/dr460nf1r3/settings.git"
 | 
					    lld
 | 
				
			||||||
  "librewolf-source::git+https://codeberg.org/librewolf/source.git"
 | 
					    llvm
 | 
				
			||||||
  "librewolf-settings::git+https://codeberg.org/librewolf/settings.git"
 | 
					    mesa
 | 
				
			||||||
  "cachyos-source::git+https://github.com/CachyOS/CachyOS-Browser-Common.git")
 | 
					    nasm
 | 
				
			||||||
sha256sums=('f63e44194548f246e1396508800739a24c0517e65e920002a6f67ee099be39dd'
 | 
					    nodejs
 | 
				
			||||||
            'SKIP'
 | 
					    python
 | 
				
			||||||
            '53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560'
 | 
					    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'
 | 
					            'SKIP'
 | 
				
			||||||
            'SKIP'
 | 
					            'SKIP'
 | 
				
			||||||
            'SKIP')
 | 
					            '53d3e743f3750522318a786befa196237892c93f20571443fdf82a480e7f0560')
 | 
				
			||||||
# sha256sums_aarch64=()
 | 
					install="${pkgname}.install"
 | 
				
			||||||
validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases <release@mozilla.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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() {
 | 
					prepare() {
 | 
				
			||||||
  mkdir -p mozbuild
 | 
					    # Floorp's shenanigan to make the build work without cloning the whole
 | 
				
			||||||
  cd firefox-"$pkgver"
 | 
					    # 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
 | 
					    rm -rf "${srcdir}/mozbuild"
 | 
				
			||||||
  _patches_dir="${srcdir}/common/patches"
 | 
					    mkdir "${srcdir}/mozbuild"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  local _librewolf_patches_dir
 | 
					    cd Floorp-"${pkgver}" || exit
 | 
				
			||||||
  _librewolf_patches_dir="${srcdir}/librewolf-source/patches"
 | 
					    cat >../mozconfig <<END
 | 
				
			||||||
 | 
					ac_add_options --with-app-basename=${_pkgname}
 | 
				
			||||||
  local _cachyos_patches_dir
 | 
					ac_add_options --with-app-name=${pkgname}
 | 
				
			||||||
  _cachyos_patches_dir="${srcdir}/cachyos-source/patches"
 | 
					ac_add_options --with-branding=browser/branding/firedragon
 | 
				
			||||||
 | 
					ac_add_options --with-l10n-base=${PWD@Q}/floorp/browser/locales/l10n-central
 | 
				
			||||||
  cat >../mozconfig <<END
 | 
					 | 
				
			||||||
ac_add_options --enable-application=browser
 | 
					ac_add_options --enable-application=browser
 | 
				
			||||||
mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
 | 
					mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This supposedly speeds up compilation (We test through dogfooding anyway)
 | 
					# Build options
 | 
				
			||||||
ac_add_options --disable-debug
 | 
					 | 
				
			||||||
ac_add_options --disable-tests
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# TODO: use source/assets/moczonfig in the future
 | 
					 | 
				
			||||||
# NOTE: let us use it for one last build, otherwise, there might be some conflicts
 | 
					 | 
				
			||||||
mk_add_options MOZ_CRASHREPORTER=0
 | 
					 | 
				
			||||||
mk_add_options MOZ_DATA_REPORTING=0
 | 
					 | 
				
			||||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
 | 
					 | 
				
			||||||
mk_add_options MOZ_TELEMETRY_REPORTING=0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ac_add_options --disable-bootstrap
 | 
					ac_add_options --disable-bootstrap
 | 
				
			||||||
 | 
					ac_add_options --disable-elf-hack
 | 
				
			||||||
ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
 | 
					ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
 | 
				
			||||||
ac_add_options --enable-hardening
 | 
					ac_add_options --enable-hardening
 | 
				
			||||||
ac_add_options --enable-linker=lld
 | 
					ac_add_options --enable-linker=lld
 | 
				
			||||||
 | 
					ac_add_options --enable-lto=cross,full
 | 
				
			||||||
 | 
					ac_add_options --enable-optimize="-O3"
 | 
				
			||||||
ac_add_options --enable-release
 | 
					ac_add_options --enable-release
 | 
				
			||||||
ac_add_options --enable-rust-simd
 | 
					ac_add_options --enable-rust-simd
 | 
				
			||||||
 | 
					ac_add_options --enable-wasm-simd
 | 
				
			||||||
ac_add_options --prefix=/usr
 | 
					ac_add_options --prefix=/usr
 | 
				
			||||||
 | 
					ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
 | 
				
			||||||
export AR=llvm-ar
 | 
					export MOZ_INCLUDE_SOURCE_INFO=1
 | 
				
			||||||
export CC='clang'
 | 
					export RUSTC_OPT_LEVEL=2
 | 
				
			||||||
export CXX='clang++'
 | 
					 | 
				
			||||||
export NM=llvm-nm
 | 
					 | 
				
			||||||
export RANLIB=llvm-ranlib
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Branding
 | 
					# Branding
 | 
				
			||||||
ac_add_options --allow-addon-sideload
 | 
					ac_add_options --allow-addon-sideload
 | 
				
			||||||
 | 
					ac_add_options --enable-unverified-updates
 | 
				
			||||||
ac_add_options --enable-update-channel=release
 | 
					ac_add_options --enable-update-channel=release
 | 
				
			||||||
ac_add_options --with-app-name=${pkgname}
 | 
					 | 
				
			||||||
ac_add_options --with-branding=browser/branding/${pkgname}
 | 
					 | 
				
			||||||
ac_add_options --with-distribution-id=org.garudalinux
 | 
					ac_add_options --with-distribution-id=org.garudalinux
 | 
				
			||||||
ac_add_options --with-unsigned-addon-scopes=app,system
 | 
					ac_add_options --with-unsigned-addon-scopes=app,system
 | 
				
			||||||
export MOZ_REQUIRE_SIGNING=1
 | 
					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
 | 
					# 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-nspr
 | 
				
			||||||
ac_add_options --with-system-nss
 | 
					ac_add_options --with-system-nss
 | 
				
			||||||
 | 
					ac_add_options --with-system-webp
 | 
				
			||||||
 | 
					ac_add_options --with-system-zlib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Features
 | 
					# Features
 | 
				
			||||||
ac_add_options --enable-jxl
 | 
					ac_add_options --disable-crashreporter # (Minimize telemetry)
 | 
				
			||||||
ac_add_options --enable-alsa
 | 
					ac_add_options --disable-debug
 | 
				
			||||||
ac_add_options --enable-jack
 | 
					ac_add_options --disable-debug-js-modules
 | 
				
			||||||
ac_add_options --disable-crashreporter
 | 
					ac_add_options --disable-debug-symbols
 | 
				
			||||||
ac_add_options --disable-updater
 | 
					 | 
				
			||||||
ac_add_options --disable-default-browser-agent
 | 
					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-update-agent # (Might have to wait for a more recent version of Firefox. The setting is not availabe on v115)
 | 
				
			||||||
 | 
					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-bundled-fonts # (CSS system fonts are normalized, to hide any customization at the OS level, or the defaults that different locales might have)
 | 
				
			||||||
 | 
					ac_add_options --enable-jack
 | 
				
			||||||
 | 
					ac_add_options --enable-jxl
 | 
				
			||||||
 | 
					ac_add_options --enable-proxy-bypass-protection
 | 
				
			||||||
 | 
					ac_add_options --enable-strip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# WASI
 | 
					# Other
 | 
				
			||||||
ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
 | 
					export AR=llvm-ar
 | 
				
			||||||
 | 
					export CC=clang
 | 
				
			||||||
 | 
					export CXX=clang++
 | 
				
			||||||
 | 
					export NM=llvm-nm
 | 
				
			||||||
 | 
					export RANLIB=llvm-ranlib
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ $CARCH == 'aarch64' ]]; then
 | 
					    local _patches_dir
 | 
				
			||||||
    cat >>../mozconfig <<END
 | 
					    _patches_dir="${srcdir}/common/patches"
 | 
				
			||||||
# taken from manjaro build:
 | 
					 | 
				
			||||||
ac_add_options --enable-optimize="-g0 -O2"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    export MOZ_DEBUG_FLAGS=" "
 | 
					    local _floorp_patches_dir
 | 
				
			||||||
    export CFLAGS+=" -g0"
 | 
					    _floorp_patches_dir="${srcdir}/common/patches/floorp/"
 | 
				
			||||||
    export CXXFLAGS+=" -g0"
 | 
					 | 
				
			||||||
    export RUSTFLAGS="-Cdebuginfo=0"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # we should have more than enough RAM on the CI spot instances.
 | 
					    _patch() {
 | 
				
			||||||
    # ...or maybe not?
 | 
					        printf 'Patching %s ...\n' "$1"
 | 
				
			||||||
    export LDFLAGS+=" -Wl,--no-keep-memory"
 | 
					        patch -Np1 -i "$1"
 | 
				
			||||||
    # patch -Np1 -i "${_librewolf_patches_dir}"/arm.patch # not required anymore?
 | 
					    }
 | 
				
			||||||
    # patch -Np1 -i ../${pkgver}-${pkgrel}_build-arm-libopus.patch
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  else
 | 
					    # Remove some pre-installed addons that might be questionable
 | 
				
			||||||
 | 
					    _patch "${_floorp_patches_dir}"/remove_addons.patch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cat >>../mozconfig <<END
 | 
					    # Stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10)
 | 
				
			||||||
# probably not needed, enabled by default?
 | 
					    _patch "${_floorp_patches_dir}"/sed-patches/stop-undesired-requests.patch
 | 
				
			||||||
ac_add_options --enable-optimize
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Arch upstream has it in their PKGBUILD, ALARM does not for aarch64:
 | 
					    # Assorted patches
 | 
				
			||||||
ac_add_options --disable-elf-hack
 | 
					    _patch "${_floorp_patches_dir}"/urlbarprovider-interventions.patch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# might help with failing x86_64 builds?
 | 
					    # Allow uBlockOrigin to run in private mode by default, without user intervention.
 | 
				
			||||||
export LDFLAGS+=" -Wl,--no-keep-memory"
 | 
					    _patch "${_floorp_patches_dir}"/allow-ubo-private-mode.patch
 | 
				
			||||||
END
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Upstream patches from gentoo/CachyOS
 | 
					    # Add custom uBO assets (on first launch only)
 | 
				
			||||||
  # Harfbuzz builder fixes (POSSIBLE FUTURE USE)
 | 
					    _patch "${_floorp_patches_dir}"/custom-ubo-assets-bootstrap-location.patch
 | 
				
			||||||
  # patch -Np1 -i "${_cachyos_patches_dir}"/gentoo/0003-bmo-847568-Support-system-harfbuzz.patch
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Remove some pre-installed addons that might be questionable
 | 
					    # Allows hiding the password manager (from the lw pref pane) / via a pref
 | 
				
			||||||
  patch -Np1 -i "${_librewolf_patches_dir}"/remove_addons.patch
 | 
					    _patch "${_floorp_patches_dir}"/hide-passwordmgr.patch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # OpenSUSE KDE patches --> These seem to be DEPRECATED as of 2023-09-29
 | 
					    # Add Firedragon Preferences Pane
 | 
				
			||||||
  # patch -Np1 -i "${_patches_dir}"/kde-upstream/firefox-kde.patch
 | 
					    _patch "${_patches_dir}"/pref-pane/pref-pane-small.patch
 | 
				
			||||||
  # patch -Np1 -i "${_patches_dir}"/kde-upstream/mozilla-kde.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
 | 
					    # Update privacy preferences -- DISABLED to test UI changes and allow user to easily change the setting
 | 
				
			||||||
  patch -Np1 -i "${_librewolf_patches_dir}"/sed-patches/disable-pocket.patch
 | 
					    # _patch "${_patches_dir}"/custom/privacy-preferences.patch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Allow SearchEngines option in non-ESR builds
 | 
					    rm -f "${srcdir}"/common/source_files/mozconfig
 | 
				
			||||||
  patch -Np1 -i "${_librewolf_patches_dir}"/sed-patches/allow-searchengines-non-esr.patch
 | 
					    cp -r "${srcdir}"/common/source_files/* ./
 | 
				
			||||||
 | 
					 | 
				
			||||||
  # 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() {
 | 
					build() {
 | 
				
			||||||
  cd firefox-"$pkgver"
 | 
					    cd Floorp-"${pkgver}" || exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  export MOZ_NOSPAM=1
 | 
					    export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=pip
 | 
				
			||||||
  export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
 | 
					    export MOZBUILD_STATE_PATH="${srcdir}/mozbuild"
 | 
				
			||||||
  # export MOZ_ENABLE_FULL_SYMBOLS=1
 | 
					    export MOZ_ENABLE_FULL_SYMBOLS=1
 | 
				
			||||||
  export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=pip
 | 
					    export MOZ_NOSPAM=1
 | 
				
			||||||
  export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach # let us hope this is a working _new_ workaround for the pip env issues?
 | 
					    export MOZ_PROFILER_STARTUP=1 # Starts the profiler is started as early as possible during startup.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # LTO needs more open files
 | 
					    # Malloc_usable_size is used in various parts of the codebase
 | 
				
			||||||
  ulimit -n 4096
 | 
					    CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
 | 
				
			||||||
 | 
					    CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Do 3-tier PGO
 | 
					    # LTO needs more open files
 | 
				
			||||||
  echo "Building instrumented browser..."
 | 
					    ulimit -n 4096
 | 
				
			||||||
 | 
					 | 
				
			||||||
  if [[ $CARCH == 'aarch64' ]]; then
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Do 3-tier PGO
 | 
				
			||||||
 | 
					    echo "Building instrumented browser..."
 | 
				
			||||||
    cat >.mozconfig ../mozconfig - <<END
 | 
					    cat >.mozconfig ../mozconfig - <<END
 | 
				
			||||||
ac_add_options --enable-profile-generate
 | 
					ac_add_options --enable-profile-generate=cross
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					    ./mach build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  else
 | 
					    echo "Profiling instrumented browser..."
 | 
				
			||||||
 | 
					    ./mach package
 | 
				
			||||||
 | 
					    LLVM_PROFDATA=llvm-profdata \
 | 
				
			||||||
 | 
					        JARLOG_FILE="${PWD}/jarlog" \
 | 
				
			||||||
 | 
					        xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
 | 
				
			||||||
 | 
					        ./mach python build/pgo/profileserver.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cat >.mozconfig ../mozconfig - <<END
 | 
					    echo "Removing instrumented browser..."
 | 
				
			||||||
ac_add_options --enable-profile-generate
 | 
					    ./mach clobber
 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fi
 | 
					    echo "Building optimized browser..."
 | 
				
			||||||
 | 
					    cat >.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 \
 | 
					    echo "Building symbol archive..."
 | 
				
			||||||
    JARLOG_FILE="$PWD/jarlog" \
 | 
					    ./mach buildsymbols
 | 
				
			||||||
    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 - <<END
 | 
					 | 
				
			||||||
ac_add_options --enable-lto
 | 
					 | 
				
			||||||
ac_add_options --enable-profile-use
 | 
					 | 
				
			||||||
ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
 | 
					 | 
				
			||||||
ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cat >.mozconfig ../mozconfig - <<END
 | 
					 | 
				
			||||||
ac_add_options --enable-lto
 | 
					 | 
				
			||||||
ac_add_options --enable-profile-use
 | 
					 | 
				
			||||||
ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
 | 
					 | 
				
			||||||
ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # cat >>.mozconfig <<END
 | 
					 | 
				
			||||||
  # ac_add_options --enable-linker=lld
 | 
					 | 
				
			||||||
  # ac_add_options --disable-bootstrap
 | 
					 | 
				
			||||||
  # END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ./mach build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  echo "Building symbol archive..."
 | 
					 | 
				
			||||||
  ./mach buildsymbols
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package() {
 | 
					package() {
 | 
				
			||||||
  cd firefox-"$pkgver"
 | 
					    cd Floorp-"${pkgver}" || exit
 | 
				
			||||||
  DESTDIR="$pkgdir" ./mach install
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  rm "$pkgdir"/usr/lib/${pkgname}/pingsender
 | 
					    DESTDIR="${pkgdir}" ./mach install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  install -Dvm644 "$srcdir/settings/$pkgname.psd" "$pkgdir/usr/share/psd/browsers/$pkgname"
 | 
					    rm "${pkgdir}/usr/lib/${pkgname}/pingsender"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  local vendorjs
 | 
					    local vendorjs="${pkgdir}/usr/lib/${pkgname}/browser/defaults/preferences/vendor.js"
 | 
				
			||||||
  vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js"
 | 
					    install -Dvm644 /dev/stdin "${vendorjs}" <<END
 | 
				
			||||||
 | 
					// Use LANG environment variable to choose locale
 | 
				
			||||||
 | 
					pref("intl.locale.requested", "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  install -Dvm644 /dev/stdin "$vendorjs" <<END
 | 
					 | 
				
			||||||
// Use system-provided dictionaries
 | 
					// Use system-provided dictionaries
 | 
				
			||||||
pref("spellchecker.dictionary_path", "/usr/share/hunspell");
 | 
					pref("spellchecker.dictionary_path", "/usr/share/hunspell");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Disable default browser checking.
 | 
				
			||||||
 | 
					pref("browser.shell.checkDefaultBrowser", false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Don't disable extensions in the application directory
 | 
					// Don't disable extensions in the application directory
 | 
				
			||||||
// done in firedragon.cfg
 | 
					pref("extensions.autoDisableScopes", 11);
 | 
				
			||||||
// pref("extensions.autoDisableScopes", 11);
 | 
					
 | 
				
			||||||
 | 
					// Enable GNOME Shell search provider
 | 
				
			||||||
 | 
					pref("browser.gnome-search-provider.enabled", true);
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # cd ${srcdir}/settings
 | 
					    local distini="${pkgdir}/usr/lib/${pkgname}/distribution/distribution.ini"
 | 
				
			||||||
  # git checkout ${_settings_commit}
 | 
					    install -Dvm644 /dev/stdin "${distini}" <<END
 | 
				
			||||||
  cd ${srcdir}/firefox-"$pkgver"
 | 
					 | 
				
			||||||
  cp -r ${srcdir}/settings/* ${pkgdir}/usr/lib/${pkgname}/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  local distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
 | 
					 | 
				
			||||||
  install -Dvm644 /dev/stdin "$distini" <<END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Global]
 | 
					[Global]
 | 
				
			||||||
id=garudalinux
 | 
					id=${pkgname}
 | 
				
			||||||
version=1.0
 | 
					version=${pkgver}-${pkgrel}
 | 
				
			||||||
about=$_pkgname for Garuda Linux
 | 
					about=${pkgdesc}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[Preferences]
 | 
					[Preferences]
 | 
				
			||||||
app.distributor=garudalinux
 | 
					app.distributor=garudalinux
 | 
				
			||||||
app.distributor.channel=$pkgname
 | 
					app.distributor.channel=${pkgname}
 | 
				
			||||||
app.partner.garudalinux=garudalinux
 | 
					app.partner.garudalinux=garudalinux
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for i in 16 32 48 64 128; do
 | 
					    # Use system certificates
 | 
				
			||||||
    install -Dvm644 browser/branding/${pkgname}/default$i.png \
 | 
					    local nssckbi="${pkgdir}/usr/lib/${pkgname}/libnssckbi.so"
 | 
				
			||||||
      "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
 | 
					    if [[ -e "${nssckbi}" ]]; then
 | 
				
			||||||
  done
 | 
					        ln -srfv "${pkgdir}/usr/lib/libnssckbi.so" "${nssckbi}"
 | 
				
			||||||
  install -Dvm644 browser/branding/${pkgname}/content/about-logo.png \
 | 
					    fi
 | 
				
			||||||
    "$pkgdir/usr/share/icons/hicolor/192x192/apps/$pkgname.png"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Arch upstream provides a separate svg for this. we don't have that, so let's re-use 16.png
 | 
					    # Make native messaging work
 | 
				
			||||||
  install -Dvm644 browser/branding/${pkgname}/default16.png \
 | 
					    ln -s "/usr/lib/mozilla/native-messaging-hosts" "${pkgdir}/usr/lib/${pkgname}/native-messaging-hosts"
 | 
				
			||||||
    "$pkgdir/usr/share/icons/hicolor/symbolic/apps/$pkgname-symbolic.png"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  install -Dvm644 ../$pkgname.desktop \
 | 
					    # GNOME search provider
 | 
				
			||||||
    "$pkgdir/usr/share/applications/$pkgname.desktop"
 | 
					    local sprovider="$pkgdir/usr/share/gnome-shell/search-providers/$pkgname.search-provider.ini"
 | 
				
			||||||
 | 
					    install -Dvm644 /dev/stdin "$sprovider" <<END
 | 
				
			||||||
  # Install a wrapper to avoid confusion about binary path
 | 
					[Shell Search Provider]
 | 
				
			||||||
  install -Dvm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
 | 
					DesktopId=$pkgname.desktop
 | 
				
			||||||
#!/bin/sh
 | 
					BusName=org.mozilla.${pkgname//-/}.SearchProvider
 | 
				
			||||||
exec /usr/lib/$pkgname/$pkgname "\$@"
 | 
					ObjectPath=/org/mozilla/${pkgname//-/}/SearchProvider
 | 
				
			||||||
 | 
					Version=2
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Replace duplicate binary with wrapper
 | 
					    # Application icons
 | 
				
			||||||
  # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
 | 
					    for i in 16 32 48 64 128; do
 | 
				
			||||||
  ln -srfv "$pkgdir/usr/bin/$pkgname" "$pkgdir/usr/lib/$pkgname/$pkgname-bin"
 | 
					        install -Dvm644 browser/branding/firedragon/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"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Use system certificates
 | 
					    # Replace duplicate binary with wrapper
 | 
				
			||||||
  local nssckbi="$pkgdir/usr/lib/$pkgname/libnssckbi.so"
 | 
					    # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
 | 
				
			||||||
  if [[ -e $nssckbi ]]; then
 | 
					    ln -srfv "$pkgdir/usr/bin/$pkgname" "$pkgdir/usr/lib/$pkgname/${pkgname%-*}-bin"
 | 
				
			||||||
    ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi"
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Make native messaging work
 | 
					    # All the needed configuration files
 | 
				
			||||||
  ln -s "/usr/lib/mozilla/native-messaging-hosts" "$pkgdir/usr/lib/firedragon/native-messaging-hosts"
 | 
					    install -Dvm644 "../${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
 | 
				
			||||||
 | 
					    install -Dvm644 "${srcdir}/settings/firedragon.cfg" "${pkgdir}/usr/lib/${pkgname}/firedragon.cfg"
 | 
				
			||||||
  # Delete unneeded things from settings repo
 | 
					    install -Dvm644 "${srcdir}/settings/firedragon.psd" "${pkgdir}/usr/share/psd/browsers/firedragon"
 | 
				
			||||||
  rm "$pkgdir/usr/lib/firedragon/LICENSE.txt"
 | 
					    install -Dvm644 "${srcdir}/settings/defaults/pref/local-settings.js" "${pkgdir}/usr/lib/${pkgname}/defaults/pref/local-settings.js"
 | 
				
			||||||
  rm "$pkgdir/usr/lib/firedragon/about.png"
 | 
					    install -Dvm644 "${srcdir}/settings/distribution/policies.json" "${pkgdir}/usr/lib/${pkgname}/distribution/policies.json"
 | 
				
			||||||
  rm "$pkgdir/usr/lib/firedragon/firedragon.psd"
 | 
					 | 
				
			||||||
  rm "$pkgdir/usr/lib/firedragon/home.png"
 | 
					 | 
				
			||||||
  rm "$pkgdir/usr/lib/firedragon/package.json"
 | 
					 | 
				
			||||||
  rm "$pkgdir/usr/lib/firedragon/tabliss.json"
 | 
					 | 
				
			||||||
  rm "$pkgdir/usr/lib/firedragon/yarn.lock"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,12 @@
 | 
				
			|||||||
post_install() {
 | 
					RED='\033[0;31m'
 | 
				
			||||||
    echo "To use profile-sync-daemon add firedragon to ~/.config/psd/psd.conf"
 | 
					NC='\033[0m'
 | 
				
			||||||
    echo "If you prefer strict hardened settings execute 'mkdir ~/.firedragon && cp /usr/lib/firedragon/firedragon.overrides.cfg ~/.firedragon/'"
 | 
					
 | 
				
			||||||
}
 | 
					post_upgrade() {
 | 
				
			||||||
 | 
					    echo -e "⚠️  This update contains a rebase to the Floorp browser's source! ⚠️ 
 | 
				
			||||||
 | 
					This means we no longer use Librewolf as base, though settings and 
 | 
				
			||||||
 | 
					privacy aware feature set were kept as close to our previous setup 
 | 
				
			||||||
 | 
					as possible.
 | 
				
			||||||
 | 
					${RED}To prevent potential issues, we strongly recommend to create a
 | 
				
			||||||
 | 
					fresh browser profile. This can be done by running \"firedragon -P\" 
 | 
				
			||||||
 | 
					in the terminal.${NC}"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user