Files
haikuports/www-client/iceweasel/iceweasel_esr-140.3.1.recipe
2025-09-26 12:56:46 +10:00

185 lines
3.8 KiB
Bash

SUMMARY="Unofficial Haiku port of Mozilla Firefox ESR"
DESCRIPTION="Iceweasel is an open source web browser. \
It achieves balance between ease of use and customization, catering to the \
needs of both casual and power users."
HOMEPAGE="https://github.com/kenz-gelsoft/gecko-dev"
COPYRIGHT="1995-2025 Mozilla Developers and Contributors"
LICENSE="MPL v2.0"
REVISION="1"
SOURCE_URI="https://ftp.mozilla.org/pub/firefox/releases/${portVersion}esr/source/firefox-${portVersion}esr.source.tar.xz"
CHECKSUM_SHA256="0b43b3a1c4f40765d96eb2094d38838f5d01b7280ad8b9b0a17612bed9c36735"
SOURCE_DIR="firefox-$portVersion"
PATCHES="
iceweasel_esr-$portVersion.patchset
iceweasel_launcher-$portVersion.patchset
"
ADDITIONAL_FILES="
iceweasel.rdef.in
iceweasel_launcher.rdef.in
branding.zip
mozconfig
"
ARCHITECTURES="!x86_64"
PROVIDES="
iceweasel_esr= $portVersion
app:Iceweasel= $portVersion
"
CONFLICTS="
iceweasel
iceweasel_bin
iceweasel_esr_bin
"
REQUIRES="
haiku
lib:libatk_1.0
lib:libcairo
lib:libcairo_gobject
lib:libdbus_1
lib:libevent_2.1
lib:libgdk_3
lib:libgdk_pixbuf_2.0
lib:libglib_2.0
lib:libgtk_3
lib:libharfbuzz
lib:libintl
lib:libmediahelpers
lib:libnotify
lib:libnspr4
lib:libnss3
lib:libpango_1.0
lib:libpangocairo_1.0
lib:libpng16
lib:libz
"
BUILD_REQUIRES="
haiku_devel
devel:libdbus_1
devel:libdbus_glib_1
devel:libevent
devel:libglib_2.0
devel:libgtk_3
devel:libmediahelpers
devel:libnotify
devel:libnspr4
devel:libnss3
devel:libpng16
devel:libvpx
devel:libwebp
devel:libzstd
"
BUILD_PREREQUIRES="
llvm20
nodejs20
rust_bin
cmd:autoconf_2.13
cmd:cbindgen
cmd:clang++
cmd:gawk
cmd:gcc
cmd:git
cmd:gn
cmd:lld >= 20
cmd:m4
cmd:make
cmd:nasm
cmd:perl
cmd:pip3
cmd:pkg_config
cmd:python3
cmd:tar
cmd:unzip
cmd:xargs
cmd:zip
"
PATCH ()
{
# extract browser branding for iceweasel
unzip -o $sourceDir/../../additional-files/branding.zip -o -d $sourceDir/browser/branding
}
BUILD()
{
chmod +x \
build/cargo-linker \
mach
rm -f mozconfig
cp -f $portDir/additional-files/mozconfig mozconfig
export DISABLE_ASLR=1
export MOZBUILD_STATE_PATH="$sourceDir/.mozconfig"
./mach -vv \
--no-interactive bootstrap \
--application-choice="Firefox for Desktop" \
--exclude=sysroot-wasm32-wasi
./mach python build/gn_processor.py dom/media/webrtc/third_party_build/gn-configs/webrtc.json
./mach build
cd tools/haiku-launcher
gcc -o "Iceweasel Browser" launcher.cpp -lbe
}
INSTALL()
{
export DISABLE_ASLR=1
export MOZBUILD_STATE_PATH="$sourceDir/.mozconfig"
./mach install
./mach package
mkdir -p $appsDir
mv /usr/local/lib/Iceweasel $appsDir/Iceweasel
cp "tools/haiku-launcher/Iceweasel Browser" $appsDir/Iceweasel
mkdir -p $appsDir/Iceweasel/lib
# arranging the files in lib directories
cd $appsDir/Iceweasel
mv \
libgkcodecs.so \
liblgpllibs.so \
libmozavcodec.so \
libmozavutil.so \
libmozgtk.so \
libmozsqlite3.so \
libmozwayland.so \
libxul.so \
lib
local APP_SIGNATURE="application/x-vnd.iceweasel"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/iceweasel.rdef.in > iceweasel.rdef
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/iceweasel_launcher.rdef.in > iceweasel_launcher.rdef
addResourcesToBinaries iceweasel.rdef "$appsDir/Iceweasel/Iceweasel"
addResourcesToBinaries iceweasel_launcher.rdef "$appsDir/Iceweasel/Iceweasel Browser"
addAppDeskbarSymlink $appsDir/Iceweasel/Iceweasel
}