--- /dev/null
+# Filename: /usr/share/grml-live/buildd/execute.sh
+# Purpose: main execution file for grml-live buildd
+# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports: see http://grml.org/bugs/
+# License: This file is licensed under the GPL v2 or any later version.
+################################################################################
+
+. /usr/share/grml-live/buildd/functions.sh || exit 1
+
+# execute main grml-live
+grml_live_run
+
+# store logs on remote server
+upload_logs
+
+# store information about ISO size
+iso_details
+
+# create logs for adding to mail, but only if it fails
+create_logs
+send_mail -e
+
+# move the ISO to final destination
+store_iso
+
+# clean exit
+bailout
+
+## END OF FILE #################################################################
-#!/bin/sh
# Filename: /usr/share/grml-live/buildd/functions.sh
# Purpose: main function file for grml-live buildd
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# some defaults:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
-DATE=$(date +%Y%m%d)
-TMP_DIR=$(mktemp -d)
-MUTT_HEADERS=$(mktemp)
-[ -n "$TMP_DIR" ] || die "Could not create \$TMP_DIR. Exiting."
+DATE="$(date +%Y%m%d)"
+TMP_DIR="$(mktemp -d)"
+MUTT_HEADERS="$(mktemp)"
+[ -n "$TMP_DIR" ] || die "Could not create \$TMP_DIR. Exiting."
[ -n "$MUTT_HEADERS" ] || die "Could not create $\MUTT_HEADERS. Exiting."
[ -n "$ARCH" ] && GRML_LIVE_ARCH="-a $ARCH"
[ -n "$OUTPUT_DIR" ] || OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
[ -n "$ISO_DIR" ] || ISO_DIR=$STORAGE/grml-isos
[ -n "$RECIPIENT" ] || RECIPIENT=root@localhost
-[ -n "$ATTACHMENT" ] || ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+[ -n "$ATTACHMENT" ] || ATTACHMENT="$TMP_DIR/grml-live-logs_$DATE.tar.gz"
[ -n "$FROM" ] || FROM=root@localhost
if [ -n "$LOGFILE" ] ; then
fi
fi
+ # workaround the 32 chars limit of mkisofs -V ....
+ # 'grml64-small-daily-squeeze 090223' is too long
+ case $SUITE in
+ sid) CODENAME=sid ;;
+ squeeze) CODENAME=squ ;;
+ lenny) CODENAME=lenny ;;
+ etch) CODENAME=etch ;;
+ esac
+
+ grml_name="$NAME-daily-$CODENAME"
+ shortdate="$(date +%y%m%d)"
+
grml-live -F $* $GRML_LIVE_ARCH -s $SUITE -c $CLASSES -o $OUTPUT_DIR \
- -g "$NAME-daily-$SUITE" -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ -g "$grml_name" -v "$shortdate" -r grml-live-autobuild -i $ISO_NAME \
1>/var/log/grml-buildd.stdout \
2>/var/log/grml-buildd.stderr ; RC=$?
# create log archive:
create_logs() {
- ( cd / && tar zcf $ATTACHMENT $FAI_LOGFILES $GRML_LOGFILE 1>/dev/null )
+ ( cd / && tar zcf $ATTACHMENT $FAI_LOGFILES /var/log/grml-buildd.stderr /var/log/grml-buildd.stdout $GRML_LOGFILE 1>/dev/null )
}
# store logs on remote server:
# send status mail:
send_mail() {
+ # create logs only if using 'send_mail -e'
+ [ "$1" = "-e" ] && create_logs
# attach logs only if we have some:
[ -r "$ATTACHMENT" ] && MUTT_ATTACH="-a $ATTACHMENT" || MUTT_ATTACH=''
$(grep -i "Couldn't find.*package" $FAI_LOGFILES/software.log | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/' | sort -u || echo "* nothing")
+See attached files:
+/var/log/grml-buildd.stderr /var/log/grml-buildd.stdout $ATTACHMENT
+
EOF " | \
- mutt -s "$SCRIPTNAME [${DATE}] - $RC_INFO" $MUTT_ATTACH "$RECIPIENT"
+ mutt -s "$SCRIPTNAME [${DATE}] - $RC_INFO" -a /var/log/grml-buildd.stderr -a /var/log/grml-buildd.stdout $MUTT_ATTACH "$RECIPIENT"
}
# make sure we store the final iso:
SCRIPTNAME="$(basename $0)"
ARCH=i386
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=i386
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=i386
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=i386
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=i386
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run -z
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=i386
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run -z
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=amd64
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-if [ "$RC" = "0" ] ; then
- bailout
-else
- echo "building ISO failed, keeping build files [${OUTPUT_DIR}]"
-fi
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=amd64
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=amd64
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=amd64
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=amd64
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run -z
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
SCRIPTNAME="$(basename $0)"
ARCH=amd64
-. /usr/share/grml-live/buildd/functions.sh || exit 1
-
-# execute grml-live:
-grml_live_run -z
-
-# create_logs
-upload_logs
-
-iso_details
-
-send_mail
-
-store_iso
-
-bailout
+# finally just source main file
+. /usr/share/grml-live/buildd/execute.sh || exit 1
+grml-live (0.9.10) unstable; urgency=low
+
+ * buildd:
+ - Add workaround to get around the mkisofs volume label limit.
+ Otherwise with something like 'grml64-medium-daily-squeeze 20090223'
+ we would get:
+ "mkisofs: Volume ID string too long (cur. XX max. 32 chars)."
+ - add buildd/execute.sh to further simplify buildd/*.sh setup
+
+ -- Michael Prokop <mika@grml.org> Tue, 24 Feb 2009 00:12:01 +0100
+
grml-live (0.9.9) unstable; urgency=low
* Update to kernel 2.6.28-grml[64].
* Always skip mksquashfs part when using -q option.
* Adjust configuration files on the fly only when the according lines
aren't comments.
- *
-- Michael Prokop <mika@grml.org> Mon, 23 Feb 2009 12:43:18 +0100
# exit on any error:
set -e
-GRML_LIVE_VERSION='0.9.9'
+GRML_LIVE_VERSION='0.9.10'
PN="$(basename $0)"
CMDLINE="$0 $@"
ISO_DATE="$(date +%Y-%m-%d)"