<?xml version="1.0"?>
<package name="firefox">
	<description>Firefox web browser</description>
	<releases>
		<release version="150.0.3" revision="1">
			<settings>
				<!-- disable output synchronization -->
				<environment name="MAKEFLAGS">-j $(/bin/nproc)</environment>
				<environment name="SHELL">/bin/bash</environment>
			</settings>
			<deps>
				<dep name="atspi-2"/>
				<dep name="bzip2"/>
				<dep name="cairo"/>
				<dep name="cbindgen"/>
				<dep name="dbus-1"/>
				<dep name="dbus-glib-1"/>
				<dep name="ffmpeg"/>
				<dep name="freetype"/>
				<dep name="glib-2.0"/>
				<dep name="gtk+-3.0"/>
				<dep name="ice"/>
				<dep name="icu"/>
				<dep name="jpeg"/>
				<dep name="libevent"/>
				<dep name="libffi"/>
				<dep name="libIDL"/>
				<dep name="libnotify"/>
				<dep name="libpng"/>
				<dep name="libva"/>
				<dep name="mesa"/>
				<dep name="nasm"/>
				<dep name="nodejs"/>
				<dep name="nspr"/>
				<dep name="nss"/>
				<dep name="pango"/>
				<dep name="pipewire"/>
				<dep name="pulseaudio"/>
				<dep name="Python3"/>
				<dep name="python-zstandard"/>
				<dep name="rustc"/>
				<dep name="sm"/>
				<dep name="sqlite3"/>
				<dep name="unzip"/>
				<dep name="x11"/>
				<dep name="xext"/>
				<dep name="xrender"/>
				<dep name="xscrnsaver"/>
				<dep name="xt"/>
				<dep name="yasm"/>
				<dep name="zip"/>
				<dep name="zlib"/>
			</deps>
			<build>
				<script>
					<archive name="firefox-$VERSION.source">
						<!-- fix build with glibc 2.43, from Fedora -->
						<patch name="firefox-$VERSION-c23-1"/>
						<patch name="firefox-$VERSION-seccomp-1"/>

						<!-- use global download dir -->
						<cmd>sed -i -e '/"isContentPrefEnabled"/,+2s/true/false/' toolkit/mozapps/downloads/DownloadLastDir.sys.mjs</cmd>

						<!-- remove lib-dir from any previous firefox install -->
						<cmd>rm -rf /usr/lib/firefox</cmd>

						<!-- disable broken default browser check -->
						<cmd>sed -i -e '/checkDefaultBrowser/s/true/false/' browser/app/profile/firefox.js</cmd>

						<text dest="./.mozconfig" environment="expand">
. \$topsrcdir/browser/config/mozconfig

ac_add_options --prefix=/usr
ac_add_options --enable-optimize="-g -O2"
ac_add_options --with-system-nspr
ac_add_options --with-system-libevent
ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-icu
ac_add_options --enable-system-ffi
ac_add_options --enable-official-branding
ac_add_options --with-distribution-id=org.paldo
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-strip
ac_add_options --disable-necko-wifi
ac_add_options --disable-elf-hack
ac_add_options --without-wasm-sandboxed-libraries

export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1

mk_add_options MOZ_OBJDIR=$PWD/obj

mk_add_options MOZ_MAKE_FLAGS=-j\$(nproc)
</text>

						<cmd>export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none</cmd>
						<cmd>./mach build</cmd>
						<cmd>./mach install</cmd>

						<!-- use plugins from /usr/lib/mozilla/plugins/ -->
						<cmd>ln -svf ../mozilla/plugins /usr/lib/firefox/</cmd>

						<cmd>for i in 16x16 22x22 24x24 32x32 48x48 64x64 128x128 256x256; do
install -d /usr/share/icons/hicolor/$i/apps
install browser/branding/official/default${i/x*/}.png /usr/share/icons/hicolor/$i/apps/firefox.png
done</cmd>
						<text dest="/usr/share/applications/firefox.desktop">[Desktop Entry]
Name=Firefox
GenericName=Web Browser
Comment=Browse the web
Exec=firefox %U
Icon=firefox
Terminal=false
Type=Application
StartupWMClass=firefox-default
MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
X-MultipleArgs=false
Categories=Network;WebBrowser;
</text>
					</archive>
				</script>
			</build>
		</release>
	</releases>
</package>
