X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=9f5085be5fc29989f0f0c6b376f51c7b72baf010;hp=95f0b3e5c6abec46c4b02440b917057fdef99a89;hb=4bc598a000f21b1d3d9bbbf55e0e3d61b68fe507;hpb=193203a7b81d595703d7da56e072d19cb21c5510 diff --git a/grml-live b/grml-live index 95f0b3e..9f5085b 100755 --- a/grml-live +++ b/grml-live @@ -183,6 +183,11 @@ bailout() { [ -n "${CHROOT_OUTPUT}" -a -d "${CHROOT_OUTPUT}" ] && rm -r "${CHROOT_OUTPUT}" eend 0 fi + + # get rid of automatically generated conffiles + rm -f ${GRML_FAI_CONFIG}/nfsroot.conf + rm -f ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf + if [ -n "$CHOWN_USER" ]; then log "Setting ownership" einfo "Setting ownership" @@ -365,7 +370,6 @@ fi [ -n "$GRML_NAME" ] || GRML_NAME='grml' [ -n "$HOSTNAME" ] || HOSTNAME='grml' [ -n "$HYBRID_METHOD" ] || HYBRID_METHOD='isohybrid' -[ -n "$NFSROOT_CONF" ] || NFSROOT_CONF="${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" [ -n "$RELEASENAME" ] || RELEASENAME='grml-live rocks' [ -n "$SQUASHFS_EXCLUDES_FILE" ] || SQUASHFS_EXCLUDES_FILE="${GRML_FAI_CONFIG}/config/grml/squashfs-excludes" [ -n "$SUITE" ] || SUITE='testing' @@ -560,9 +564,6 @@ extract_iso # }}} # on-the-fly configuration {{{ -if [ -n "$FAI_DEBOOTSTRAP" ] ; then - sed "s#^FAI_DEBOOTSTRAP=.*#FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"#" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF" -fi # does this suck? YES! # /usr/share/debootstrap/scripts/unstable does not exist, instead use 'sid': @@ -572,12 +573,6 @@ case $SUITE in esac export SUITE # make sure it's available in FAI scripts -for file in "$LIVE_CONF" "$LOCAL_CONFIG" "$NFSROOT_CONF" ; do - if [ -n "$file" ] ; then - sed "s|^FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" "$file" | sponge "$file" - fi -done - # validate whether the specified architecture class matches the # architecture (option), otherwise installation of kernel will fail if echo $CLASSES | grep -qi i386 ; then @@ -598,11 +593,31 @@ elif echo $CLASSES | grep -qi amd64 ; then fi fi -if grep -q -- 'FAI_DEBOOTSTRAP_OPTS.*--arch' "$NFSROOT_CONF" ; then - sed "s/--arch [a-z0-9]* /--arch $ARCH /" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF" -else - sed "s|^FAI_DEBOOTSTRAP_OPTS=\"\(.*\)|FAI_DEBOOTSTRAP_OPTS=\"--arch $ARCH \1|" "$NFSROOT_CONF" | sponge "$NFSROOT_CONF" +# generate nfsroot configuration for FAI on the fly +if [ -z "$FAI_DEBOOTSTRAP" ] ; then + FAI_DEBOOTSTRAP="$SUITE http://cdn.debian.net/debian" fi + +if [ -z "$FAI_DEBOOTSTRAP_OPTS" ] ; then + FAI_DEBOOTSTRAP_OPTS="--exclude=info,tasksel,tasksel-data --arch $ARCH" +fi + +# create backup of old (not yet automatically generated) config file +if [ -f "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" ] ; then + if ! grep -q 'This is an automatically generated file by grml-live' "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" ; then + ewarn "Found old ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf - moving to ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf.outdated" + mv "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf.outdated" + eend $? + fi +fi + +echo "# This is an automatically generated file by grml-live. +# Do NOT edit this file, your changes will be lost. +FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\" +FAI_DEBOOTSTRAP_OPTS=\"$FAI_DEBOOTSTRAP_OPTS\" +# EOF " > "${GRML_FAI_CONFIG}/nfsroot.conf" +# support FAI <=3.4.8, versions >=4.0 use nfsroot.conf +( cd ${GRML_FAI_CONFIG} && ln -sf nfsroot.conf make-fai-nfsroot.conf ) # }}} # CHROOT_OUTPUT - execute FAI {{{ @@ -672,6 +687,10 @@ else mkdir -p "$LOG_OUTPUT"/fai/ cp -r "$CHROOT_OUTPUT"/var/log/fai/"$HOSTNAME"/last/* "$LOG_OUTPUT"/fai/ rm -rf "$CHROOT_OUTPUT"/var/log/fai + + # store copy of autogenerated configuration file + cp ${GRML_FAI_CONFIG}/nfsroot.conf "$LOG_OUTPUT"/fai/ + # copy fai package list cp "$CHROOT_OUTPUT"/var/log/install_packages.list "$LOG_OUTPUT"/fai/ # fixup owners