26 lines
1.4 KiB
Bash
Executable File
26 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Independent host-tool prefix, so image construction does not mutate xbps-src.
|
|
source "$(dirname -- "${BASH_SOURCE[0]}")/lib.sh"
|
|
[[ $# == 0 ]] || die 'Usage: tools/prepare-image-tools'
|
|
cd "$FDS_ROOT"
|
|
use_xbps
|
|
check_void_pin
|
|
root="$FDS_ROOT/.host/image-tools"
|
|
cache="$FDS_ROOT/out/cache/image-tools"
|
|
mkdir -p "$root/var/db/xbps/keys" "$root/config" "$cache" out/manifests
|
|
exec 9>out/.image-tools.lock
|
|
flock 9
|
|
cp "$FDS_VOID/common/repo-keys/"*.plist "$root/var/db/xbps/keys/"
|
|
if [[ ! -x $root/usr/bin/mkfs.erofs || ! -x $root/usr/bin/mformat || ! -x $root/usr/bin/mkfs.fat || ! -x $root/usr/bin/mke2fs ]]; then
|
|
[[ ${FDS_OFFLINE:-0} != 1 ]] || die 'Missing frozen image tools; restore the complete input snapshot'
|
|
bwrap --unshare-user --uid 0 --gid 0 --ro-bind / / \
|
|
--bind "$root" "$root" --bind "$cache" "$cache" --dev /dev --proc /proc \
|
|
env XBPS_ARCH=x86_64 XBPS_TARGET_ARCH=x86_64 \
|
|
"$FDS_XBPS/xbps-install" -r "$root" -C "$root/config" -c "$cache" \
|
|
-i -R https://repo-default.voidlinux.org/current -SyU erofs-utils dosfstools mtools e2fsprogs
|
|
fi
|
|
XBPS_ARCH=x86_64 xbps-query -r "$root" -l >out/manifests/image-tool-packages.txt
|
|
find "$cache" -maxdepth 1 -name '*.xbps' -print0 | sort -z | xargs -0 sha256sum >out/manifests/image-tool-inputs.sha256
|
|
tools/in-image-tools mkfs.erofs --version
|
|
printf 'PASS: project-local EROFS and FAT image tools prepared\n'
|