From 1be31a7dd61ad5d081540a4b1c489ae2586ef69c Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Tue, 30 Oct 2007 00:10:00 +0100 Subject: [PATCH] Update docs; finalize work on update option --- debian/changelog | 6 ++++-- docs/grml-live.txt | 38 +++++++++++++++++++++++++++++++------- grml-live | 41 ++++++++++++++++++++++++----------------- 3 files changed, 59 insertions(+), 26 deletions(-) diff --git a/debian/changelog b/debian/changelog index c8cec61..029e195 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,7 @@ grml-live (0.0.7) unstable; urgency=low + The "holidays? what? are you joking?!"-release. + * Added FAI patches to /usr/share/grml-live/patches/ - it's recommended to apply the patches to FAI until they are accepted upstream. See Debian's BTS for more details: #444210, #447080 @@ -26,8 +28,7 @@ grml-live (0.0.7) unstable; urgency=low be used manually only if you realy know what you are doing. Notice: if something fails inside building the base chroot/ debootstrap system we can't do anything via grml-live for you - right now. Instead grab http://daily.grml.org/base.tgz - and place that at $NFSROOT/nfsroot/live/filesystem.dir/var/tmp/base.tgz + right now. Instead grab the base.tgz from http://daily.grml.org/ * Add /usr/share/grml-live/scripts/repodiff.pl (by formorer, thx!) for comparing two repositories. * Replaced /etc/grml/fai/files/etc/apt/preferences @@ -35,6 +36,7 @@ grml-live (0.0.7) unstable; urgency=low can be used and configured at a single place. * Use apt-pinning via /etc/grml/fai/config/hooks/instsoft.GRMLBASE and drop it from /etc/grml/fai/config/scripts/GRMLBASE/33-aptsetup + later again. * Display version number of grml-live. * Log executed grml-live command line. * Set FAI_DEBOOTSTRAP_OPTS="--exclude=dhcp-client,info" diff --git a/docs/grml-live.txt b/docs/grml-live.txt index 2a746e5..a20c34b 100644 --- a/docs/grml-live.txt +++ b/docs/grml-live.txt @@ -12,7 +12,7 @@ Synopsis grml-live [-a ] [-c ] [-g ] [-i ] [-o ] [-r ] [-s ] [-t -] [-v ] [-FVh] +] [-v ] [-FVhu] ******************************************************************************* Important! This document is growing as requested. If you have questions which @@ -110,6 +110,11 @@ Specify the Debian suite you want to use for your live-system. Defaults to Specify place of the templates used for building the ISO. By default (and if not manually specified) this is /usr/share/grml-live/templates/. + -u:: + +Update existing chroot instead of rebuilding it from scratch. This option is +based on the softupdate feature of FAI. + -v **VERSION_NUMBER**:: Specify version number of the release. @@ -198,7 +203,7 @@ FAI itself (being available at /usr/share/doc/fai-doc/). Available classes ----------------- -To be done... +Documentation to be done... Files ----- @@ -294,6 +299,20 @@ files please refer to the source of the scripts. This directory provides the files used for building the initramfs/initrd via live-initramfs(8). +Available log files +------------------- + +grml-live itself logs to /var/log/grml-live.log. Unless you set ZERO_LOGFILE in +/etc/grml/grml-live.conf the output is appended to the file. If you set the +ZERO_LOGFILE configuration option the logfile will be truncated on a new +invocation of grml-live. + +The FAI part of grml-live logs to /var/log/fai/dirinstall/$HOSTNAME - so the +default being /var/log/fai/dirinstall/grml. + +If you are using the update option of grml-live (option -u) the logs are +available at /var/log/fai/current. + Requirements for the build system --------------------------------- @@ -410,8 +429,12 @@ So as /grml/fai/nfsroot is your NFSROOT place the file under mv base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz +or even better use /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz instead. +Use I386 as $CLASSNAME for i386 builds and AMD64 for amd64 builds. + Now running "grml-live ..." will use this file as main system instead of -executing debootstrap. Check out the output for the following lines: +executing debootstrap. Check out the output for the following lines if using +NFSROOT: [...] Calling task_extrbase @@ -420,11 +443,12 @@ executing debootstrap. Check out the output for the following lines: Calling task_mirror [...] -[NOTE] +or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for: -Notice that you can also use /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz if -you prefer to use /etc as the main configuration directory instead of -/path/to/nfsroot/.... (Thanks to Thomas Lange for the tip.) + [...] + ftar: extracting /etc/grml/fai/config/basefiles///AMD64.tar.gz to + /grml-live/grml-live_20071029.22138/grml_chroot// + [...] Set up apt-cacher for use with grml-live ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/grml-live b/grml-live index d5cd4a3..00e4a7e 100755 --- a/grml-live +++ b/grml-live @@ -4,7 +4,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2 or any later version. -# Latest change: Sun Oct 28 23:52:20 CET 2007 [mika] +# Latest change: Die Okt 30 00:09:42 CET 2007 [mika] ################################################################################ # read configuration files, set some misc variables {{{ @@ -155,7 +155,7 @@ $PN - build process script for generating a (grml based) Linux Live-ISO Usage: $PN [-a ] [-c ] [-g ] \\ [-i ] [-o ] [-s ] \\ [-t ] [-s ] \\ - [-v ] [-FVh] + [-v ] [-FVhu] Usage examples: @@ -356,12 +356,12 @@ mkdir -p "$BUILD_OUTPUT" || bailout 6 "Problem with creating $BUILD_OUTPUT for s # i386: if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then - if [ -d "$BUILD_OUTPUT"/boot ] ; then + if [ -d "$BUILD_OUTPUT"/boot -a -z "$UPDATE" ] ; then log "$BUILD_OUTPUT/boot exists already, skipping stage 'boot'" ewarn "$BUILD_OUTPUT/boot exists already, skipping stage 'boot'" ; eend 0 else # booting stuff: - mkdir -p "$BUILD_OUTPUT"/boot/isolinux + [ -d "$BUILD_OUTPUT"/boot/isolinux ] || mkdir -p "$BUILD_OUTPUT"/boot/isolinux cp /boot/memtest86+.bin "$BUILD_OUTPUT"/boot/isolinux/memtest # if we don't have an initrd we a) can't boot and b) there was an error @@ -374,11 +374,11 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then bailout 10 fi - cp "$CHROOT_OUTPUT"/boot/vmlinuz* "$BUILD_OUTPUT"/boot/isolinux/linux26 - cp /usr/lib/syslinux/chain.c32 "$BUILD_OUTPUT"/boot/isolinux/ - cp /usr/lib/syslinux/isolinux.bin "$BUILD_OUTPUT"/boot/isolinux/ - cp /usr/lib/syslinux/memdisk "$BUILD_OUTPUT"/boot/isolinux/ - cp /usr/lib/syslinux/menu.c32 "$BUILD_OUTPUT"/boot/isolinux/ + cp "$CHROOT_OUTPUT"/boot/vmlinuz* "$BUILD_OUTPUT"/boot/isolinux/linux26 + cp /usr/lib/syslinux/chain.c32 "$BUILD_OUTPUT"/boot/isolinux/ + cp /usr/lib/syslinux/isolinux.bin "$BUILD_OUTPUT"/boot/isolinux/ + cp /usr/lib/syslinux/memdisk "$BUILD_OUTPUT"/boot/isolinux/ + cp /usr/lib/syslinux/menu.c32 "$BUILD_OUTPUT"/boot/isolinux/ [ -n "$TEMPLATE_DIRECTORY" ] || TEMPLATE_DIRECTORY='/usr/share/grml-live/templates' if ! [ -d "${TEMPLATE_DIRECTORY}"/boot ] ; then @@ -386,15 +386,19 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then eerror "${TEMPLATE_DIRECTORY}/boot does not exist. Exiting." ; eend 1 bailout 8 fi + cp ${TEMPLATE_DIRECTORY}/boot/isolinux/* "$BUILD_OUTPUT"/boot/isolinux/ cp ${TEMPLATE_DIRECTORY}/boot/isolinux/* "$BUILD_OUTPUT"/boot/isolinux/ - cp -a ${TEMPLATE_DIRECTORY}/boot/grub "$BUILD_OUTPUT"/boot/ + if ! [ -d "${TEMPLATE_DIRECTORY}/boot/grub" ] ; then + cp -a ${TEMPLATE_DIRECTORY}/boot/grub "$BUILD_OUTPUT"/boot/ + fi if ! [ -d "${TEMPLATE_DIRECTORY}"/GRML ] ; then log "${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting." eerror "${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting." ; eend 1 bailout 9 fi + [ -d "$BUILD_OUTPUT"/GRML ] || mkdir "$BUILD_OUTPUT"/GRML cp -a ${TEMPLATE_DIRECTORY}/GRML/* "$BUILD_OUTPUT"/GRML/ @@ -419,17 +423,20 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then if [ -d "${TEMPLATE_DIRECTORY}/windows/autostart/" ] ; then cp ${TEMPLATE_DIRECTORY}/windows/autostart/* "$BUILD_OUTPUT"/ fi + # windows-binaries: if [ -n "$WINDOWS_BINARIES" ] ; then if [ -f "$BUILD_OUTPUT"/windows/putty.exe ] ; then log "$BUILD_OUTPUT/windows exists already, skipping stage 'WINDOWS_BINARIES'" ewarn "$BUILD_OUTPUT/windows exists already, skipping stage 'WINDOWS_BINARIES'" ; eend 0 else - mkdir "$BUILD_OUTPUT"/windows - ( cd "$BUILD_OUTPUT"/windows - for file in pageant plink pscp psftp putty puttygen ; do - wget -O ${file}.exe ${WINDOWS_BINARIES}/${file}.exe - done ) + if ! [ -d "$BUILD_OUTPUT"/windows ] ; then + mkdir "$BUILD_OUTPUT"/windows + ( cd "$BUILD_OUTPUT"/windows + for file in pageant plink pscp psftp putty puttygen ; do + wget -O ${file}.exe ${WINDOWS_BINARIES}/${file}.exe + done ) + fi fi log "Finished execution of stage 'WINDOWS_BINARIES' [$(date)]" einfo "Finished execution of stage 'WINDOWS_BINARIES'" ; eend 0 @@ -444,7 +451,7 @@ else eerror 'Error: Unsupported ARCH, sorry. Want to support it? Contribute!' ; eend 1 fi -if [ -f "$BUILD_OUTPUT"/live/grml.squashfs ] ; then +if [ -f "$BUILD_OUTPUT"/live/grml.squashfs -a -z "$UPDATE" ] ; then log "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'" ewarn "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'" ; eend 0 else @@ -469,7 +476,7 @@ elif [ "$BOOT_METHOD" = "grub" ] ; then BOOT_FILE="boot/grub/stage2_eltorito" fi -if [ -f "${ISO_OUTPUT}/${ISO_NAME}" ] ; then +if [ -f "${ISO_OUTPUT}/${ISO_NAME}" -a -z "$UPDATE" ] ; then log "$ISO_OUTPUT exists already, skipping stage 'iso build'" ewarn "$ISO_OUTPUT exists already, skipping stage 'iso build'" ; eend 0 else -- 2.1.4