X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fbasefiles%2Fmk-basefile;h=7ced32de1d248f0be63c48d04f1a02aed00ce423;hb=refs%2Fheads%2Fupstream;hp=2fc0d2ace513f27ed08439c51521585a099ff107;hpb=bc3037fe2075e33b0035fc0689f44a60381638f9;p=automated-distro-installer diff --git a/fai/config/basefiles/mk-basefile b/fai/config/basefiles/mk-basefile index 2fc0d2a..7ced32d 100755 --- a/fai/config/basefiles/mk-basefile +++ b/fai/config/basefiles/mk-basefile @@ -2,16 +2,18 @@ # mk-basefile, create basefiles for some distributions # -# Thomas Lange, Uni Koeln, 2011-2018 +# Thomas Lange, Uni Koeln, 2011-2024 # based on the Makefile implementation of Michael Goetze # # Usage example: mk-basefile -J STRETCH64 # This will create a STRETCH64.tar.xz basefile. -# Supported distributions (each i386/amd64): +# Supported distributions (i386/amd64): # Debian GNU/Linux -# Ubuntu 14.04/16.04 -# CentOS 5/6/7 +# Ubuntu 14.04/16.04/20.04/22.04 +# AlmaLinux 9 +# Rocky Linux 8/9 +# CentOS 5/6/7/8 # Scientific Linux Cern 5/6 # # Packages you might want to install to use this command: @@ -29,11 +31,18 @@ EXCLUDE_WHEEZY=info EXCLUDE_JESSIE=info EXCLUDE_STRETCH=info EXCLUDE_BUSTER= +EXCLUDE_BULLSEYE= +EXCLUDE_BOOKWORM= +EXCLUDE_TRIXIE= +EXCLUDE_FORKY= EXCLUDE_SID= EXCLUDE_TRUSTY=dhcp3-client,dhcp3-common,info EXCLUDE_XENIAL=udhcpc,dibbler-client,info EXCLUDE_BIONIC=udhcpc,dibbler-client,info +EXCLUDE_FOCAL=udhcpc,dibbler-client,info +EXCLUDE_JAMMY=udhcpc,dibbler-client,info +EXCLUDE_NOBLE=udhcpc,dibbler-client,info # here you can add packages, that are needed very early INCLUDE_DEBIAN= @@ -49,7 +58,7 @@ setarch() { check() { - if [ `id -u` != 0 ]; then + if [ $(id -u) != 0 ]; then echo "You must be root to create chroots." exit 1 fi @@ -107,7 +116,8 @@ cleanup-deb() { chroot $xtmp apt-get clean rm -f $xtmp/etc/hostname $xtmp/etc/resolv.conf \ $xtmp/var/lib/apt/lists/*_* $xtmp/usr/bin/qemu-*-static \ - $xtmp/etc/udev/rules.d/70-persistent-net.rules + $xtmp/etc/udev/rules.d/70-persistent-net.rules \ + $xtmp/var/lib/dbus/machine-id > $xtmp/etc/machine-id } @@ -130,10 +140,34 @@ cleanup-rinse() { tarit() { - tar $attributes --one-file-system -C $xtmp -cf - . | $zip > $target.$ext + tar $attributes --numeric-owner --one-file-system -C $xtmp -cf - . | $zip > $target.$ext } +rpmdist() { + + local arch=$1 + local vers=$2 + local dist=$3 + local domain=$(domainname) + + check + setarch $arch + $l32 rinse --directory $xtmp --distribution $dist-$vers --arch $arch --before-post-install $xtmp/post + domainname $domain # workaround for #613377 + cleanup-rinse + tarit +} + + +alma() { + rpmdist $1 $2 alma +} + +rocky() { + rpmdist $1 $2 rocky +} + centos() { local arch=$1 @@ -174,6 +208,7 @@ debgeneric() { dist=${DIST%%[0-9][0-9]} local exc="EXCLUDE_$dist" + [ -n "${!exc}" ] && exc="--exclude=${!exc}" || unset exc dist=${dist,,} check @@ -182,7 +217,7 @@ debgeneric() { fi if [ -n "$arch" ]; then - qemu-debootstrap --arch $arch --exclude=${!exc} $inc $dist $xtmp $mirror + qemu-debootstrap --arch $arch ${exc} $inc $dist $xtmp $mirror target="${target}_${arch^^}" else if [[ $DIST =~ 64 ]]; then @@ -190,7 +225,7 @@ debgeneric() { else arch=i386 fi - debootstrap --arch $arch --exclude=${!exc} $inc $dist $xtmp $mirror + debootstrap --arch $arch ${exc} $inc $dist $xtmp $mirror fi cleanup-deb tarit @@ -200,20 +235,31 @@ prtdists() { echo "Available: + ALMA9_64 + ROCKY8_64 + ROCKY9_64 CENTOS5_32 CENTOS5_64 CENTOS6_32 CENTOS6_64 CENTOS7_32 CENTOS7_64 + CENTOS8_64 SLC5_32 SLC5_64 SLC6_32 SLC6_64 SLC7_64 TRUSTY32 TRUSTY64 XENIAL32 XENIAL64 BIONIC64 + FOCAL64 + JAMMY64 + NOBLE64 SQUEEZE32 SQUEEZE64 WHEEZY32 WHEEZY64 JESSIE32 JESSIE64 STRETCH32 STRETCH64 BUSTER32 BUSTER64 + BULLSEYE32 BULLSEYE64 + BOOKWORM32 BOOKWORM64 + TRIXIE32 TRIXIE64 + FORKY32 FORKY64 SID32 SID64 " } @@ -223,14 +269,14 @@ usage() { cat <