#!/bin/bash set -euxo pipefail # Clean build dir and remake rm -rf /build/artifacts/* mkdir -p /build/artifacts/dist # Gentoo setup mkdir -p /var/db/repos/gentoo rm -f /var/db/repos/gentoo/metadata/timestamp.x emerge-webrsync --quiet eselect profile set default/linux/amd64/23.0/musl/hardened/selinux # SquashFS tools needed for image generation emerge squashfstools # Copy in package list mkdir -p /etc/portage/sets cp /build/packages.txt /etc/portage/sets/halogenos # Set install location export ROOT="/build/artifacts/dist" # Emerge all packages emerge -j $(nproc) --quiet @halogenos # Fix directory locations mv /build/artifacts/dist/bin /build/artifacts/dist/usr/bin mv /build/artifacts/dist/lib /build/artifacts/dist/usr/lib mv /build/artifacts/dist/sbin /build/artifacts/dist/usr/sbin # Include any additional files # Make any additional config changes # Create images dir and img files mkdir -p /build/artifacts/images dd if=/dev/zero of=/build/images/usr.img bs=1 count=0 seek=2G dd if=/dev/zero of=/build/images/verity.img bs=1 count=0 seek=2000M # Create squashfs mksquashfs /build/artifacts/dist /build/artifacts/usr.squashfs # Image squashfs filesystem onto usr img dd if=/build/artifacts/usr.squashfs of=/build/images/usr.img # Build verity