Files
fds-os/tools/build-base-packages
T
2026-09-21 22:29:23 +08:00

42 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Build every FDS base package from its source overlay and checked static payloads.
source "$(dirname -- "${BASH_SOURCE[0]}")/lib.sh"
[[ $# == 0 ]] || die 'Usage: tools/build-base-packages'
cd "$FDS_ROOT"
use_xbps
check_void_pin
mkdir -p out/logs out/packages out/manifests
exec 8>out/.base-packages.lock
flock -n 8 || die 'Another base package build is already running'
# Refresh the hardware package and every FDS overlay used in this image.
tools/build-fds-package
tools/build-kernel
tools/build-dasungd
input="$FDS_VOID/hostdir/sources/fds-init-0.1.0"
if [[ -d $input ]]; then
previous=$(mktemp -d "$FDS_ROOT/out/init-source.XXXXXX")
mv "$input" "$previous/"
fi
mkdir -p "$input/s6-source/boot/contents.d" "$input/s6-source/dasungd-runtime/dependencies.d"
for service in runtime-fs hostname console getty eudevd udev-trigger test-runtime test-echo machine-config; do
cp -a "s6/source/$service" "$input/s6-source/"
done
for member in runtime-fs hostname getty udev-trigger; do
cp "s6/source/boot/contents.d/$member" "$input/s6-source/boot/contents.d/"
done
cp s6/source/dasungd-runtime/dependencies.d/runtime-fs "$input/s6-source/dasungd-runtime/dependencies.d/"
(
cd "$input"
find . -type f ! -name SHA256SUMS -print0 | sort -z | xargs -0 sha256sum >SHA256SUMS
)
for package in fds-dhcpcd fds-eink fds-base-files fds-init fds-base; do
(
cd "$FDS_VOID"
xbps_src -a aarch64 clean "$package"
xbps_src -f -a aarch64 pkg "$package"
) 2>&1 | tee "out/logs/xbps-$package.log"
cp "$FDS_VOID/hostdir/binpkgs/$package-"*.aarch64.xbps out/packages/
done
XBPS_ARCH=aarch64 xbps-rindex -fa out/packages/fds-*.aarch64.xbps
printf 'PASS: all FDS base packages exported to out/packages/\n'