--- /dev/null
+This directory provides files used for autobuilding grml-ISOs on a daily base,
+like what http://daily.grml.org/ provides. If you plan to use those files
+you definitely have to adjust them according to your needs, it should just
+provide an idea of what can be done using grml-live.
+
+ -- Michael Prokop <mika@grml.org>, Sun Oct 7 13:04:05 CEST 2007
--- /dev/null
+TODO for autobuild infrastructure
+---------------------------------
+
+Unify scripts in a core configuration file.
--- /dev/null
+#!/bin/sh
+# Filename: cleanup.sh
+# Purpose: clean up daily builds directory - remove old files
+# 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.
+# Latest change: Sun Oct 7 09:29:22 UTC 2007 [mika]
+################################################################################
+
+set -e
+
+# we want to always keep a few images, no matter how old they are
+# but get rid of the oldest ones first of course :)
+# so: how many images do we want to keep?
+DAYS=3
+
+REMOVE_ME=""
+for flavour in grml-medium_etch grml-medium_sid grml64-medium_etch grml64-medium_sid grml64_sid grml_sid ; do
+ FILE_COUNT=$(ls -1 $flavour*.iso | wc -l)
+ if [ "$FILE_COUNT" -gt "$DAYS" ] ; then
+ FILES=$(ls -1 $flavour*.iso | tail -"$DAYS")
+ OLD_FILES=$(ls $flavour*.iso | grep -v "$FILES")
+ for file in $OLD_FILES ; do
+ REMOVE_ME="$REMOVE_ME $(find $file -mtime +$DAYS)"
+ done
+ fi
+done
+
+[ -d .delete ] || mkdir .delete
+
+# move them before we really delete them:
+for file in $REMOVE_ME ; do
+ test -f ${file} && mv $file .delete
+ test -f ${file}.md5 && mv ${file}.md5 .delete
+done
+
+# inform on successful removal:
+if [ "$(echo "$REMOVE_ME" | tr -d ' ' )" != "" ] ; then
+ echo "deleted files $REMOVE_ME" | mail -s "daily-builds cleanup script" mika@grml.org
+fi
+
+# EOF
--- /dev/null
+#!/bin/sh
+
+set -u
+
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+
+# configuration:
+DATE=$(date +%Y%m%d)
+STORAGE=/srv/
+OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
+TMP_DIR=$(mktemp -d)
+MUTT_HEADERS=$(mktemp)
+ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+RECIPIENT=grml-live@ml.grml.org
+ISO_NAME=grml_etch_$DATE.iso
+ISO_DIR=/srv/grml-isos
+[ -n "$TMP_DIR" ] || exit 10
+[ -n "$MUTT_HEADERS" ] || exit 20
+echo "my_hdr From: grml-live autobuild daemon <grml-live@grml.org>" > $MUTT_HEADERS
+
+# execute grml-live:
+grml-live -F -s etch -c GRMLBASE,GRML_FULL,LATEX_CLEANUP,I386 -o $OUTPUT_DIR \
+ -g grml -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ 1>${TMP_DIR}/stdout 2>${TMP_DIR}/stderr ; RC=$?
+
+# create log archive:
+tar zcf $ATTACHMENT /var/log/fai/dirinstall/grml 1>/dev/null
+
+ISO_DETAILS=$(ls -lh $OUTPUT_DIR/grml_isos/$ISO_NAME)
+
+# send status mail:
+echo -en "Automatically generated mail by grml-live_autobuild_grml-large_etch.sh
+
+$ISO_DETAILS
+
+Return code of grml-live run was: $RC
+
+Find details in the attached logs." | \
+mutt -s "grml-live autobuild daemon: $DATE" \
+ -a ${TMP_DIR}/stdout \
+ -a ${TMP_DIR}/stderr \
+ -a $ATTACHMENT \
+ $RECIPIENT
+
+# make sure we store the final iso:
+[ -d "$ISO_DIR" ] || mkdir "$ISO_DIR"
+mv $OUTPUT_DIR/grml_isos/$ISO_NAME $ISO_DIR
+
+rm -rf "$TMP_DIR" "$MUTT_HEADERS" "$OUTPUT_DIR"
--- /dev/null
+#!/bin/sh
+
+set -u
+
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+
+# configuration:
+DATE=$(date +%Y%m%d)
+STORAGE=/srv/
+OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
+TMP_DIR=$(mktemp -d)
+MUTT_HEADERS=$(mktemp)
+ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+RECIPIENT=grml-live@ml.grml.org
+ISO_NAME=grml_sid_$DATE.iso
+ISO_DIR=/srv/grml-isos
+[ -n "$TMP_DIR" ] || exit 10
+[ -n "$MUTT_HEADERS" ] || exit 20
+echo "my_hdr From: grml-live autobuild daemon <grml-live@grml.org>" > $MUTT_HEADERS
+
+# execute grml-live:
+grml-live -F -s sid -c GRMLBASE,GRML_FULL,LATEX_CLEANUP,I386 -o $OUTPUT_DIR \
+ -g grml -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ 1>${TMP_DIR}/stdout 2>${TMP_DIR}/stderr ; RC=$?
+
+# create log archive:
+tar zcf $ATTACHMENT /var/log/fai/dirinstall/grml 1>/dev/null
+
+ISO_DETAILS=$(ls -lh $OUTPUT_DIR/grml_isos/$ISO_NAME)
+
+# send status mail:
+echo -en "Automatically generated mail by grml-live_autobuild_grml-large_sid.sh
+
+$ISO_DETAILS
+
+Return code of grml-live run was: $RC
+
+Find details in the attached logs." | \
+mutt -s "grml-live autobuild daemon: $DATE" \
+ -a ${TMP_DIR}/stdout \
+ -a ${TMP_DIR}/stderr \
+ -a $ATTACHMENT \
+ $RECIPIENT
+
+# make sure we store the final iso:
+[ -d "$ISO_DIR" ] || mkdir "$ISO_DIR"
+mv $OUTPUT_DIR/grml_isos/$ISO_NAME $ISO_DIR
+
+rm -rf "$TMP_DIR" "$MUTT_HEADERS" "$OUTPUT_DIR"
--- /dev/null
+#!/bin/sh
+
+set -u
+
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+
+# configuration:
+DATE=$(date +%Y%m%d)
+STORAGE=/srv/
+OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
+TMP_DIR=$(mktemp -d)
+MUTT_HEADERS=$(mktemp)
+ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+RECIPIENT=grml-live@ml.grml.org
+ISO_NAME=grml-medium_etch_$DATE.iso
+ISO_DIR=/srv/grml-isos
+[ -n "$TMP_DIR" ] || exit 10
+[ -n "$MUTT_HEADERS" ] || exit 20
+echo "my_hdr From: grml-live autobuild daemon <grml-live@grml.org>" > $MUTT_HEADERS
+
+# execute grml-live:
+grml-live -F -s etch -c GRMLBASE,I386,GRML_MEDIUM -o $OUTPUT_DIR \
+ -g grml-medium -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ 1>${TMP_DIR}/stdout 2>${TMP_DIR}/stderr ; RC=$?
+
+# create log archive:
+tar zcf $ATTACHMENT /var/log/fai/dirinstall/grml 1>/dev/null
+
+ISO_DETAILS=$(ls -lh $OUTPUT_DIR/grml_isos/$ISO_NAME)
+
+# send status mail:
+echo -en "Automatically generated mail by grml-live_autobuild_grml-medium_etch.sh
+
+$ISO_DETAILS
+
+Return code of grml-live run was: $RC
+
+Find details in the attached logs." | \
+mutt -s "grml-live autobuild daemon: $DATE" \
+ -a ${TMP_DIR}/stdout \
+ -a ${TMP_DIR}/stderr \
+ -a $ATTACHMENT \
+ $RECIPIENT
+
+# make sure we store the final iso:
+[ -d "$ISO_DIR" ] || mkdir "$ISO_DIR"
+mv $OUTPUT_DIR/grml_isos/$ISO_NAME $ISO_DIR
+
+rm -rf "$TMP_DIR" "$MUTT_HEADERS" "$OUTPUT_DIR"
--- /dev/null
+#!/bin/sh
+
+set -u
+
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+
+# configuration:
+DATE=$(date +%Y%m%d)
+STORAGE=/srv/
+OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
+TMP_DIR=$(mktemp -d)
+MUTT_HEADERS=$(mktemp)
+ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+RECIPIENT=grml-live@ml.grml.org
+ISO_NAME=grml-medium_sid_$DATE.iso
+ISO_DIR=/srv/grml-isos
+[ -n "$TMP_DIR" ] || exit 10
+[ -n "$MUTT_HEADERS" ] || exit 20
+echo "my_hdr From: grml-live autobuild daemon <grml-live@grml.org>" > $MUTT_HEADERS
+
+# execute grml-live:
+grml-live -F -s sid -c GRMLBASE,I386,GRML_MEDIUM -o $OUTPUT_DIR \
+ -g grml-medium -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ 1>${TMP_DIR}/stdout 2>${TMP_DIR}/stderr ; RC=$?
+
+# create log archive:
+tar zcf $ATTACHMENT /var/log/fai/dirinstall/grml 1>/dev/null
+
+ISO_DETAILS=$(ls -lh $OUTPUT_DIR/grml_isos/$ISO_NAME)
+
+# send status mail:
+echo -en "Automatically generated mail by grml-live_autobuild_grml-medium_sid.sh
+
+$ISO_DETAILS
+
+Return code of grml-live run was: $RC
+
+Find details in the attached logs." | \
+mutt -s "grml-live autobuild daemon: $DATE" \
+ -a ${TMP_DIR}/stdout \
+ -a ${TMP_DIR}/stderr \
+ -a $ATTACHMENT \
+ $RECIPIENT
+
+# make sure we store the final iso:
+[ -d "$ISO_DIR" ] || mkdir "$ISO_DIR"
+mv $OUTPUT_DIR/grml_isos/$ISO_NAME $ISO_DIR
+
+rm -rf "$TMP_DIR" "$MUTT_HEADERS" "$OUTPUT_DIR"
--- /dev/null
+#!/bin/sh
+
+set -u
+
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+
+# configuration:
+DATE=$(date +%Y%m%d)
+STORAGE=/grml-live/
+OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
+TMP_DIR=$(mktemp -d)
+MUTT_HEADERS=$(mktemp)
+ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+RECIPIENT=grml-live@ml.grml.org
+ISO_NAME=grml64_etch_$DATE.iso
+ISO_DIR=/grml-live/grml-isos
+[ -n "$TMP_DIR" ] || exit 10
+[ -n "$MUTT_HEADERS" ] || exit 20
+echo "my_hdr From: grml-live autobuild daemon <grml-live@grml.org>" > $MUTT_HEADERS
+
+# execute grml-live:
+grml-live -F -s etch -c GRMLBASE,GRML_FULL,LATEX_CLEANUP,AMD64 -o $OUTPUT_DIR \
+ -g grml64 -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ 1>${TMP_DIR}/stdout 2>${TMP_DIR}/stderr ; RC=$?
+
+# create log archive:
+tar zcf $ATTACHMENT /var/log/fai/dirinstall/grml 1>/dev/null
+
+if ! [ -f "$OUTPUT_DIR/grml_isos/$ISO_NAME" ] ; then
+ ISO_DETAILS="There was an error creating $ISO_NAME"
+else
+ ISO_DETAILS=$(ls -lh $OUTPUT_DIR/grml_isos/$ISO_NAME)
+fi
+
+# send status mail:
+echo -en "Automatically generated mail by grml-live_autobuild_grml-large_etch.sh
+
+$ISO_DETAILS
+
+Return code of grml-live run was: $RC
+
+Find details in the attached logs." | \
+mutt -s "grml-live autobuild daemon: $DATE" \
+ -a ${TMP_DIR}/stdout \
+ -a ${TMP_DIR}/stderr \
+ -a $ATTACHMENT \
+ $RECIPIENT
+
+# make sure we store the final iso:
+[ -d "$ISO_DIR" ] || mkdir "$ISO_DIR"
+mv $OUTPUT_DIR/grml_isos/$ISO_NAME $ISO_DIR
+
+rm -rf "$TMP_DIR" "$MUTT_HEADERS" "$OUTPUT_DIR"
--- /dev/null
+#!/bin/sh
+
+set -u
+
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+
+# configuration:
+DATE=$(date +%Y%m%d)
+STORAGE=/grml-live/
+OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
+TMP_DIR=$(mktemp -d)
+MUTT_HEADERS=$(mktemp)
+ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+RECIPIENT=grml-live@ml.grml.org
+ISO_NAME=grml64_sid_$DATE.iso
+ISO_DIR=/grml-live/grml-isos
+[ -n "$TMP_DIR" ] || exit 10
+[ -n "$MUTT_HEADERS" ] || exit 20
+echo "my_hdr From: grml-live autobuild daemon <grml-live@grml.org>" > $MUTT_HEADERS
+
+# execute grml-live:
+grml-live -F -s sid -c GRMLBASE,GRML_FULL,LATEX_CLEANUP,AMD64 -o $OUTPUT_DIR \
+ -g grml64 -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ 1>${TMP_DIR}/stdout 2>${TMP_DIR}/stderr ; RC=$?
+
+# create log archive:
+tar zcf $ATTACHMENT /var/log/fai/dirinstall/grml 1>/dev/null
+
+if ! [ -f "$OUTPUT_DIR/grml_isos/$ISO_NAME" ] ; then
+ ISO_DETAILS="There was an error creating $ISO_NAME"
+else
+ ISO_DETAILS=$(ls -lh $OUTPUT_DIR/grml_isos/$ISO_NAME)
+fi
+
+# send status mail:
+echo -en "Automatically generated mail by grml-live_autobuild_grml-large_sid.sh
+
+$ISO_DETAILS
+
+Return code of grml-live run was: $RC
+
+Find details in the attached logs." | \
+mutt -s "grml-live autobuild daemon: $DATE" \
+ -a ${TMP_DIR}/stdout \
+ -a ${TMP_DIR}/stderr \
+ -a $ATTACHMENT \
+ $RECIPIENT
+
+# make sure we store the final iso:
+[ -d "$ISO_DIR" ] || mkdir "$ISO_DIR"
+mv $OUTPUT_DIR/grml_isos/$ISO_NAME $ISO_DIR
+
+rm -rf "$TMP_DIR" "$MUTT_HEADERS" "$OUTPUT_DIR"
--- /dev/null
+#!/bin/sh
+
+set -u
+
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+
+# configuration:
+DATE=$(date +%Y%m%d)
+STORAGE=/grml-live/
+OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
+TMP_DIR=$(mktemp -d)
+MUTT_HEADERS=$(mktemp)
+ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+RECIPIENT=grml-live@ml.grml.org
+ISO_NAME=grml64-medium_etch_$DATE.iso
+ISO_DIR=/grml-live/grml-isos
+[ -n "$TMP_DIR" ] || exit 10
+[ -n "$MUTT_HEADERS" ] || exit 20
+echo "my_hdr From: grml-live autobuild daemon <grml-live@grml.org>" > $MUTT_HEADERS
+
+# execute grml-live:
+grml-live -F -s etch -c GRMLBASE,AMD64,GRML_MEDIUM -o $OUTPUT_DIR \
+ -g grml64-medium -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ 1>${TMP_DIR}/stdout 2>${TMP_DIR}/stderr ; RC=$?
+
+# create log archive:
+tar zcf $ATTACHMENT /var/log/fai/dirinstall/grml 1>/dev/null
+
+if ! [ -f "$OUTPUT_DIR/grml_isos/$ISO_NAME" ] ; then
+ ISO_DETAILS="There was an error creating $ISO_NAME"
+else
+ ISO_DETAILS=$(ls -lh $OUTPUT_DIR/grml_isos/$ISO_NAME)
+fi
+
+# send status mail:
+echo -en "Automatically generated mail by grml-live_autobuild_grml-medium_etch.sh
+
+$ISO_DETAILS
+
+Return code of grml-live run was: $RC
+
+Find details in the attached logs." | \
+mutt -s "grml-live autobuild daemon: $DATE" \
+ -a ${TMP_DIR}/stdout \
+ -a ${TMP_DIR}/stderr \
+ -a $ATTACHMENT \
+ $RECIPIENT
+
+# make sure we store the final iso:
+[ -d "$ISO_DIR" ] || mkdir "$ISO_DIR"
+mv $OUTPUT_DIR/grml_isos/$ISO_NAME $ISO_DIR
+
+rm -rf "$TMP_DIR" "$MUTT_HEADERS" "$OUTPUT_DIR"
--- /dev/null
+#!/bin/sh
+
+set -u
+
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+
+# configuration:
+DATE=$(date +%Y%m%d)
+STORAGE=/grml-live/
+OUTPUT_DIR="${STORAGE}/grml-live_${DATE}.$$"
+TMP_DIR=$(mktemp -d)
+MUTT_HEADERS=$(mktemp)
+ATTACHMENT=$TMP_DIR/grml-live-logs_$DATE.tar.gz
+RECIPIENT=grml-live@ml.grml.org
+ISO_NAME=grml64-medium_sid_$DATE.iso
+ISO_DIR=/grml-live/grml-isos
+[ -n "$TMP_DIR" ] || exit 10
+[ -n "$MUTT_HEADERS" ] || exit 20
+echo "my_hdr From: grml-live autobuild daemon <grml-live@grml.org>" > $MUTT_HEADERS
+
+# execute grml-live:
+grml-live -F -s sid -c GRMLBASE,AMD64,GRML_MEDIUM -o $OUTPUT_DIR \
+ -g grml64-medium -v $DATE -r grml-live-autobuild -i $ISO_NAME \
+ 1>${TMP_DIR}/stdout 2>${TMP_DIR}/stderr ; RC=$?
+
+# create log archive:
+tar zcf $ATTACHMENT /var/log/fai/dirinstall/grml 1>/dev/null
+
+if ! [ -f "$OUTPUT_DIR/grml_isos/$ISO_NAME" ] ; then
+ ISO_DETAILS="There was an error creating $ISO_NAME"
+else
+ ISO_DETAILS=$(ls -lh $OUTPUT_DIR/grml_isos/$ISO_NAME)
+fi
+
+# send status mail:
+echo -en "Automatically generated mail by grml-live_autobuild_grml-medium_sid.sh
+
+$ISO_DETAILS
+
+Return code of grml-live run was: $RC
+
+Find details in the attached logs." | \
+mutt -s "grml-live autobuild daemon: $DATE" \
+ -a ${TMP_DIR}/stdout \
+ -a ${TMP_DIR}/stderr \
+ -a $ATTACHMENT \
+ $RECIPIENT
+
+# make sure we store the final iso:
+[ -d "$ISO_DIR" ] || mkdir "$ISO_DIR"
+mv $OUTPUT_DIR/grml_isos/$ISO_NAME $ISO_DIR
+
+rm -rf "$TMP_DIR" "$MUTT_HEADERS" "$OUTPUT_DIR"
--- /dev/null
+#!/bin/sh
+# Filename: upload_isos.sh
+# Purpose: upload generated ISOs to daily.grml.org
+# 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.
+# Latest change: Sun Oct 07 13:06:09 CEST 2007 [mika]
+################################################################################
+
+cd /grml-live/grml-isos || exit 1
+for file in *.iso ; do
+ [ -f "${file}.md5" ] || md5sum $file > $file.md5
+done
+rsync --partial -az --quiet /grml-live/grml-isos/* grml-build@debian.netcologne.de:/home/ftp/www.grml.org/daily/
+
+## END OF FILE #################################################################
available).
* Check for presence of the initrd.
* Improve adjustment of suite for $FAI_DEBOOTSTRAP.
+ * Add /usr/share/grml-live/examples/buildd/
-- Michael Prokop <mika@grml.org> Thu, 04 Oct 2007 22:16:34 +0200
dh_testroot
dh_clean -k
dh_installdirs etc/grml/fai/live-initramfs usr/sbin usr/share/doc/grml-live \
- usr/share/grml-live
+ usr/share/grml-live usr/share/grml-live/examples
# Add here commands to install the package into debian/grml-live.
cp -a etc debian/grml-live/
cp -a examples debian/grml-live/usr/share/doc/grml-live/
cp -a templates debian/grml-live/usr/share/grml-live/
+ cp -a buildd debian/grml-live/usr/share/grml-live/examples/
install -o root -m 755 grml-live debian/grml-live/usr/sbin/grml-live
# Build architecture-independent files here.