vm-build: Add script to build in a microvm

This script uses the `ocivm` tool to launch a QEMU micro VM to build
the operating system.  This is necessary to produce an SELinux-enabled
system, since container runtimes interfere with the SELinux policy
build and filesystem labeling processes.
master
Dustin 2023-03-03 12:34:12 -06:00
parent f3b63a1dc2
commit b2aac7c74e
2 changed files with 27 additions and 0 deletions

23
ocivm.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
set -e
. ./config
name=build_yellow
if ! ocivm list | grep -q localhost/cross-${target}; then
ocivm import localhost/cross-${target}
fi
ocivm \
--log-level DEBUG \
run \
-n ${name} \
-w /tmp/src \
-v "${PWD}":/tmp/src \
-v distfiles:/var/cache/distfiles:size=4G \
-v packages:/var/cache/binpkgs \
-v portage:/var/db/repos/gentoo:size=4G \
--tmpfs /usr/aarch64-unknown-linux-gnu/tmp \
--tmpfs /var/tmp \
localhost/cross-aarch64-unknown-linux-gnu \
"$@"

4
vm-build.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
# vim: set sw=4 ts=4 sts=4 et :
exec ./ocivm.sh make O=/tmp/build 'IMAGESDIR=${PWD}/images'