X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=02409727082149ac9766a39d87c36d9896fc1ae2;hp=12596ee45d40dd7ac52d4eafab356a0368ab39f9;hb=563f2f26944598d6c061044da3cbea08fdd7957b;hpb=a5f8527557ae9bdceb1227de4e023fa6a353234a diff --git a/grml-live b/grml-live index 12596ee..0240972 100755 --- a/grml-live +++ b/grml-live @@ -23,7 +23,7 @@ fi set -e # global variables -GRML_LIVE_VERSION='0.9.34-pre1' +GRML_LIVE_VERSION='0.9.35-pre1' PN="$(basename $0)" CMDLINE="$0 $@" SOURCES_LIST_FILE='/etc/grml/fai/apt/sources.list' @@ -288,34 +288,13 @@ ISO_OUTPUT="$OUTPUT/grml_isos" [ -n "$RELEASENAME" ] && export RELEASENAME="$RELEASENAME" # }}} -# clean/zero grml-live logfile {{{ - -# keep for backwards compability reasons (default behaviour until grml-live 0.9.34) -if [ -n "$ZERO_LOGFILE" -a -z "$PRESERVE_LOGFILE" ] ; then - echo -n > $LOGFILE - einfo "Zeroing logfile $LOGFILE as requested via \$ZERO_LOGFILE." - ewarn "Please consider disabling the \$ZERO_LOGFILE option as grml-live clears..." - ewarn "... the logfile $LOGFILE by default (unless \$PRESERVE_LOGFILE is set) nowadays." - eend 0 -fi - -if [ -n "$PRESERVE_LOGFILE" ] ; then - echo "Preserving logfile $LOGFILE as requested via \$PRESERVE_LOGFILE" -else - echo -n > $LOGFILE -fi -# }}} - -# clean/zero/remove old FAI directory {{{ -if [ -n "$ZERO_FAI_LOGFILE" ] ; then - if [ -d /var/log/fai/"$HOSTNAME" ] ; then - rm -rf /var/log/fai/"$HOSTNAME"/"$(readlink /var/log/fai/"$HOSTNAME"/last)" - rm -rf /var/log/fai/"$HOSTNAME"/"$(readlink /var/log/fai/"$HOSTNAME"/last-dirinstall)" - rm -rf /var/log/fai/"$HOSTNAME"/"$(readlink /var/log/fai/"$HOSTNAME"/last-softupdate)" - rm -f /var/log/fai/"$HOSTNAME"/last \ - /var/log/fai/"$HOSTNAME"/last-dirinstall \ - /var/log/fai/"$HOSTNAME"/last-softupdate - fi +# ZERO_LOGFILE - check for backwards compatibility reasons {{{ +# this was default behaviour until grml-live 0.9.34: +if [ -n "$ZERO_LOGFILE" ] ; then + PRESERVE_LOGFILE='' # make sure it's cleaned then + ewarn "Please consider disabling the \$ZERO_LOGFILE option as grml-live clears..." + ewarn "... the logfile $LOGFILE by default (unless \$PRESERVE_LOGFILE is set) nowadays." + eend 0 fi # }}} @@ -358,7 +337,30 @@ if [ -z "$FORCE" ] ; then fi echo fi +# }}} + +# clean/zero/remove logfiles {{{ + +if [ -n "$PRESERVE_LOGFILE" ] ; then + echo "Preserving logfile $LOGFILE as requested via \$PRESERVE_LOGFILE" +else + # make sure it is empty (as it is e.g. appended to grml-live-db) + echo -n > $LOGFILE +fi + +if [ -n "$ZERO_FAI_LOGFILE" ] ; then + if [ -d /var/log/fai/"$HOSTNAME" ] ; then + rm -rf /var/log/fai/"$HOSTNAME"/"$(readlink /var/log/fai/"$HOSTNAME"/last)" + rm -rf /var/log/fai/"$HOSTNAME"/"$(readlink /var/log/fai/"$HOSTNAME"/last-dirinstall)" + rm -rf /var/log/fai/"$HOSTNAME"/"$(readlink /var/log/fai/"$HOSTNAME"/last-softupdate)" + rm -f /var/log/fai/"$HOSTNAME"/last \ + /var/log/fai/"$HOSTNAME"/last-dirinstall \ + /var/log/fai/"$HOSTNAME"/last-softupdate + fi +fi +# }}} +# source config and startup {{{ if [ -n "$CONFIG" ] ; then if ! [ -f "$CONFIG" ] ; then log "Error: $CONFIG could not be read. Exiting. [$(date)]" @@ -390,7 +392,7 @@ if [ -n "$MIRROR_DIRECTORY" ] ; then # NOTE: This file is *NOT* meant for manual customisation! This file is # modified by grml-live and any changes might be overriden. # You might consider using GRML_LIVE_SOURCES in /etc/grml/grml-live.conf* -# and using /etc/grml/fai/files/etc/apt instead!' +# or FAI's fcopy command with /etc/grml/fai/config/files instead! EOF echo "$MIRROR_SOURCES" >> "$SOURCES_LIST_FILE" if [ -n "$GRML_LIVE_SOURCES" ] ; then @@ -401,7 +403,7 @@ elif [ -n "$GRML_LIVE_SOURCES" ] ; then # NOTE: This file is *NOT* meant for manual customisation! This file is # modified by grml-live and any changes might be overriden. # You might consider using GRML_LIVE_SOURCES in /etc/grml/grml-live.conf* -# and using /etc/grml/fai/files/etc/apt instead!' +# or FAI's fcopy command with /etc/grml/fai/config/files instead! EOF echo "$GRML_LIVE_SOURCES" >> "$SOURCES_LIST_FILE" fi @@ -591,7 +593,7 @@ CHECKLOG=/var/log/fai/$HOSTNAME/last # package validator if [ -r "$CHECKLOG/package_errors.log" ] && grep -q '[a-z]' "$CHECKLOG/package_errors.log" ; then - if [ -n "$EXIT_ON_MISSING_PACKAGES" ] ; then + if [ -n "$EXIT_ON_MISSING_PACKAGES" -a -z "$BUILD_DIRTY" ] ; then eerror "The following packages were requested for installation but could not be processed:" cat $CHECKLOG/package_errors.log eerror "... exiting as requested via \$EXIT_ON_MISSING_PACKAGES." @@ -896,7 +898,7 @@ else bailout fi else # no $SQUASHFS_BINARY configured, let's find the according binary: - # Note: this is ALL for backward compability and yes: it's serious PITA. + # Note: this is ALL for backward compatibility and yes: it's serious PITA. # We'll definitely drop this once people build >2.6.28-grml* only and # the squashfs-tools vs. squashfs-lzma-tools + zlib vs. lzma situation # is settling... @@ -911,7 +913,7 @@ else else # neither -nolzma nor -z and mksquashfs-lzma is available: SQUASHFS_BINARY='mksquashfs-lzma' - # backwards compability: someone has squashfs-lzma-tools >=4 installed but + # backwards compatibility: someone has squashfs-lzma-tools >=4 installed but # 1) doesn't use -nolzma in $SQUASHFS_OPTIONS or the grml-live's -z option *and* # 2) builds against kernel version <=2.6.28-grml[64] if ls $CHROOT_OUTPUT/boot/vmlinuz* >/dev/null 2>&1 ; then @@ -1140,9 +1142,10 @@ if [ -d /usr/share/grml-live-db ] ; then DPKG_LIST="/var/log/fai/$HOSTNAME/last/dpkg.list" # the dpkg --list output of the chroot: [ -n "$DPKG_DATABASE" ] || DPKG_DATABASE=/var/log/grml-live.db [ -n "$DPKG_DBSCRIPT" ] || DPKG_DBSCRIPT=/usr/share/grml-live-db/scripts/dpkg-to-db - [ -n "$DPKG_DBOPTIONS" ] || DPKG_DBOPTIONS="-d $DPKG_DATABASE --logfile $LOGFILE --flavour $GRML_NAME < $DPKG_LIST" + [ -n "$DPKG_DBOPTIONS" ] || DPKG_DBOPTIONS="--database $DPKG_DATABASE --logfile $LOGFILE --flavour $GRML_NAME --dpkg $DPKG_LIST" if ! [ -x "$DPKG_DBSCRIPT" ] ; then + log "Error: $DPKG_DBSCRIPT is not executable, can not log dpkg information." eerror "Error: $DPKG_DBSCRIPT is not executable, can not log dpkg information." ; eend 1 bailout 14 fi @@ -1154,10 +1157,13 @@ if [ -d /usr/share/grml-live-db ] ; then #fi if ! [ -r "$DPKG_LIST" ] ; then + log "Error reading $DPKG_LIST - can not provide information to $DPKG_DBSCRIPT" eerror "Error reading $DPKG_LIST - can not provide information to $DPKG_DBSCRIPT" ; eend 1 bailout 14 else einfo "Logging $DPKG_LIST to database $DPKG_DATABASE" + log "Logging $DPKG_LIST to database $DPKG_DATABASE" + log "Executing $DPKG_DBSCRIPT $DPKG_DBOPTIONS" eindent if DB_INFO=$("$DPKG_DBSCRIPT" $DPKG_DBOPTIONS 2>&1) ; then