Files
librewolf/source.sh
T

75 lines
2.6 KiB
Bash

# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
# The prepare function is executed in the root of the temp directory
# This function is used for putting downloaded files to the correct location or applying patches
prepare() {
cd "$BPM_SOURCE"
patch -Np1 -i "$BPM_WORKDIR"/build-c11-threads-avail.patch
patch -Np1 -i "$BPM_WORKDIR"/build-seccomp.patch
# Generate mozconfig
cat > mozconfig <<-EOF
ac_add_options --enable-application=browser
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/librewolf-build-dir
ac_add_options --prefix=/usr
ac_add_options --enable-release
ac_add_options --enable-hardening
ac_add_options --enable-optimize
ac_add_options --enable-rust-simd
ac_add_options --disable-elf-hack
ac_add_options --disable-bootstrap
ac_add_options --enable-update-channel=release
# Branding
ac_add_options --with-app-name=librewolf
ac_add_options --with-app-basename=librewolf
export MOZ_APP_REMOTINGNAME=Librewolf
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --without-wasm-sandboxed-libraries
# Features
ac_add_options --enable-alsa
ac_add_options --enable-jack
ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --allow-addon-sideload
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
EOF
}
# The build function is executed in the source directory
# This function is used to compile the source code
build() {
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="$BPM_SOURCE"/mozbuild
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
./mach build
}
# The package function is executed in the source directory
# This function is used to move the compiled files into the output directory
package() {
export MOZBUILD_STATE_PATH="$BPM_SOURCE"/mozbuild
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
DESTDIR="$BPM_OUTPUT" ./mach install
# Install icon files
for size in 16 32 48 64 128; do
install -Dm644 "$BPM_SOURCE"/browser/branding/librewolf/default"$size".png "$BPM_OUTPUT"/usr/share/icons/hicolor/"$size"x"$size"/apps/librewolf.png
done
# Install librewolf desktop file
install -Dm644 ../librewolf.desktop "$BPM_OUTPUT"/usr/share/applications/librewolf.desktop
# Install package license
install -Dm644 "$BPM_SOURCE"/LICENSE "$BPM_OUTPUT"/usr/share/licenses/librewolf/LICENSE
}