#!/bin/sh set -e srcdir="$(dirname "$0")" destdir="$(mkdir -p "$1" && readlink -e "$1")" dest=basementhud.squashfs releasever=35 mkdir -p "${destdir}" dnf --installroot "${destdir}" install -y \ --releasever ${releasever} \ fedora-release cp /etc/dnf/dnf.conf "${destdir}/etc/dnf/" echo install_weak_deps=False >> "${destdir}"/etc/dnf/dnf.conf dnf --installroot "${destdir}" install -y \ bcm2711-firmware \ curl \ dhcp-client \ dracut-network \ firefox \ hostname \ kmod \ mesa-dri-drivers \ nbd \ openbox \ openssh-server \ rsyslog \ systemd \ xinit \ xorg-x11-server-Xorg \ xrandr \ xset \ zram-generator \ zram-generator-defaults \ -- dnf --installroot "${destdir}" install -y \ --setopt tsflags=noscripts \ kernel \ -- kver=$(rpm --root "${destdir}" -q --qf '%{VERSION}-%{RELEASE}.%{ARCH}' kernel) if [ ! -f "${destdir}"/lib/modules/"${kver}"/modules.dep ]; then chroot "${destdir}" depmod -a "${kver}" fi cp -p \ "${srcdir}"/cmdline.txt \ "${srcdir}"/config.txt \ "${destdir}"/boot/efi tar --owner root:0 --group root:0 -C "${srcdir}/overlay" -c . \ | tar -C "${destdir}" -x chown -R 1000:1000 "${destdir}"/home/user if ! grep -q ^user: "${destdir}"/etc/group; then chroot "${destdir}" groupadd -g 1000 user fi if ! grep -q ^user: "${destdir}"/etc/passwd; then chroot "${destdir}" useradd -u 1000 -g 1000 user fi if ! grep -qE '^video:.*:.+:.*,?user' "${destdir}"/etc/group; then chroot "${destdir}" gpasswd -a user video fi chroot "${destdir}" systemctl enable \ dhclient@eth0 \ systemd-time-wait-sync \ systemd-timesyncd \ xinit@user chroot "${destdir}" systemctl disable \ systemd-homed \ systemd-userdbd ln -sf /run/resolv.conf "${destdir}"/etc/resolv.conf umask 0022 mksquashfs "${destdir}" "${destdir}/boot/${dest}" \ -comp lz4 \ -noappend \ -ef "${srcdir}"/squashfs-exclude.txt \ -no-exports \ -wildcards