X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fbasefiles%2Fmk-basefile;h=f739142d10c9180871384e146eccc3c8535cc0ff;hb=ed6e4bd94df7d149cf041e95aaad01b6e2da3f85;hp=a61010a59cfe3d1654cff8770b19d5ce2e2312c6;hpb=d0b6a8cd4608fdffcf733f9180744819d8889be0;p=automated-distro-installer diff --git a/fai/config/basefiles/mk-basefile b/fai/config/basefiles/mk-basefile index a61010a..f739142 100755 --- a/fai/config/basefiles/mk-basefile +++ b/fai/config/basefiles/mk-basefile @@ -1,12 +1,11 @@ #! /bin/bash - # mk-basefile, create basefiles for some distributions # -# Thomas Lange, Uni Koeln, 2011-2015 +# Thomas Lange, Uni Koeln, 2011-2018 # based on the Makefile implementation of Michael Goetze # -# Usage example: fai-mk-basefile -J SQUEEZE64 -# This will create a SQUEEZE64.tar.xz basefile. +# Usage example: mk-basefile -J STRETCH64 +# This will create a STRETCH64.tar.xz basefile. # Supported distributions (each i386/amd64): # Debian GNU/Linux @@ -20,22 +19,27 @@ # Define your local mirros here # For the first stage, set the CentOS/SLC mirror in /etc/rinse/rinse.conf -MIRROR_DEBIAN=http://http.us.debian.org/debian -#MIRROR_DEBIAN=http://localmirror/debian/ +MIRROR_DEBIAN=http://deb.debian.org/debian/ MIRROR_UBUNTU=http://mirror.netcologne.de/ubuntu/ MIRROR_TRISQUEL=http://mirror.fsf.org/trisquel/ MIRROR_CENTOS=http://mirror.netcologne.de/ -#MIRROR_CENTOS=http://localmirror -#MIRROR_SLC=http://localmirror -EXCLUDE_SQUEEZE=isc-dhcp-client,isc-dhcp-common,info,tasksel,tasksel-data -EXCLUDE_WHEEZY=isc-dhcp-client,isc-dhcp-common,info,tasksel,tasksel-data -EXCLUDE_JESSIE=isc-dhcp-client,isc-dhcp-common,info,tasksel,tasksel-data +EXCLUDE_SQUEEZE=isc-dhcp-client,isc-dhcp-common,info +EXCLUDE_WHEEZY=info +EXCLUDE_JESSIE=info +EXCLUDE_STRETCH=info +EXCLUDE_BUSTER=info +EXCLUDE_SID= + EXCLUDE_BELENOS=dhcp3-client,dhcp3-common,info EXCLUDE_TRUSTY=dhcp3-client,dhcp3-common,info -EXCLUDE_XENIAL=isc-dhcp-client,isc-dhcp-common,udhcpc,dibbler-client,dhcpcd5,info,tasksel,tasksel-data +EXCLUDE_XENIAL=udhcpc,dibbler-client,info +EXCLUDE_FLIDAS=udhcpc,dibbler-client,info +EXCLUDE_BIONIC=udhcpc,dibbler-client,info +EXCLUDE_ETIONA=udhcpc,dibbler-client,info -INCLUDE_DEBIAN=aptitude +# here you can add packages, that are needed very early +INCLUDE_DEBIAN= setarch() { @@ -72,6 +76,7 @@ check() { mkpost-centos() { + # set local mirror for rinse post script [ -z "$MIRROR_CENTOS" ] && return cat < $xtmp/post #! /bin/sh @@ -85,6 +90,7 @@ EOM mkpost-slc() { + # set local mirror for rinse post script ver=$1 [ -z "$MIRROR_SLC" ] && return cat < $xtmp/post @@ -101,10 +107,19 @@ EOM cleanup-deb() { - chroot $xtmp aptitude clean - rm -f $xtmp/etc/hostname $xtmp/etc/resolv.conf $xtmp/etc/machine-id - rm $xtmp/var/lib/apt/lists/*_* - rm -f $xtmp/etc/udev/rules.d/70-persistent-net.rules + if [[ $cmd ]]; then + if [[ -e $cmd ]]; then + cp "$cmd" $xtmp/tmp + chroot $xtmp "/tmp/$cmd" + else + chroot $xtmp $cmd + fi + fi + 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/machine-id } @@ -126,7 +141,7 @@ cleanup-rinse() { tarit() { - tar --xattrs --selinux --acl --one-file-system -C $xtmp -cf - . | $zip > $target.$ext + tar $attributes --one-file-system -C $xtmp -cf - . | $zip > $target.$ext } @@ -160,80 +175,41 @@ slc() { } -squeeze() { - - local arch=$1 - - check - debootstrap --arch $arch --exclude=${EXCLUDE_SQUEEZE} squeeze $xtmp ${MIRROR_DEBIAN} - cleanup-deb - tarit -} - -wheezy() { - - local arch=$1 - - check - debootstrap --arch $arch --exclude=${EXCLUDE_WHEEZY} wheezy $xtmp ${MIRROR_DEBIAN} - cleanup-deb - tarit -} - -jessie() { +debgeneric() { + local DIST=$1 + shift + local mirror=$1 + shift local arch=$1 - check - debootstrap --arch $arch --exclude=${EXCLUDE_JESSIE} --include=${INCLUDE_DEBIAN} jessie $xtmp ${MIRROR_DEBIAN} - cleanup-deb - tarit -} - -stretch() { - - local arch=$1 + dist=${DIST%%[0-9][0-9]} + local exc="EXCLUDE_$dist" + [ -n "${!exc}" ] && exc="--exclude=${!exc}" || unset exc + dist=${dist,,} check - debootstrap --arch $arch --exclude=${EXCLUDE_JESSIE} --include=${INCLUDE_DEBIAN} stretch $xtmp ${MIRROR_DEBIAN} - cleanup-deb - tarit -} - -trusty() { - - local arch=$1 - - check - debootstrap --arch $arch --exclude=${EXCLUDE_TRUSTY} --include=${INCLUDE_DEBIAN} trusty $xtmp ${MIRROR_UBUNTU} - cleanup-deb - tarit -} - -xenial() { - - local arch=$1 - - check - debootstrap --arch $arch --exclude=${EXCLUDE_XENIAL} --include=${INCLUDE_DEBIAN} xenial $xtmp ${MIRROR_UBUNTU} - cleanup-deb - tarit -} - - -belenos() { - ln -sf gutsy /usr/share/debootstrap/scripts/belenos - local arch=$1 + if [ -n "$INCLUDE_DEBIAN" ]; then + local inc="--include=$INCLUDE_DEBIAN" + fi - check - debootstrap --arch $arch --exclude=${EXCLUDE_BELENOS} --include=${INCLUDE_DEBIAN} belenos $xtmp ${MIRROR_TRISQUEL} + if [ -n "$arch" ]; then + qemu-debootstrap --arch $arch ${exc} $inc $dist $xtmp $mirror + target="${target}_${arch^^}" + else + if [[ $DIST =~ 64 ]]; then + arch=amd64 + else + arch=i386 + fi + debootstrap --arch $arch ${exc} $inc $dist $xtmp $mirror + fi cleanup-deb tarit } -unknown() { +prtdists() { - echo "Unknown distribution. Aborting." echo "Available: CENTOS5_32 CENTOS5_64 @@ -244,37 +220,78 @@ unknown() { SLC7_64 TRUSTY32 TRUSTY64 XENIAL32 XENIAL64 + FLIDAS64 + BIONIC64 + ETIONA64 SQUEEZE32 SQUEEZE64 WHEEZY32 WHEEZY64 JESSIE32 JESSIE64 + STRETCH32 STRETCH64 + BUSTER32 BUSTER64 + SID32 SID64 " - exit 99 } +usage() { + + cat <