Update docs; finalize work on update option
authorMichael Prokop <mika@grml.org>
Mon, 29 Oct 2007 23:10:00 +0000 (00:10 +0100)
committerMichael Prokop <mika@grml.org>
Mon, 29 Oct 2007 23:10:00 +0000 (00:10 +0100)
debian/changelog
docs/grml-live.txt
grml-live

index c8cec61..029e195 100644 (file)
@@ -1,5 +1,7 @@
 grml-live (0.0.7) unstable; urgency=low
 
 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
   * 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
     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
   * 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
     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"
   * Display version number of grml-live.
   * Log executed grml-live command line.
   * Set FAI_DEBOOTSTRAP_OPTS="--exclude=dhcp-client,info"
index 2a746e5..a20c34b 100644 (file)
@@ -12,7 +12,7 @@ Synopsis
 
 grml-live [-a <architecture>] [-c <classe[s]>] [-g <grml_name>] [-i <iso_name> ]
 [-o <output_directory>] [-r <release_name>] [-s <suite>] [-t
 
 grml-live [-a <architecture>] [-c <classe[s]>] [-g <grml_name>] [-i <iso_name> ]
 [-o <output_directory>] [-r <release_name>] [-s <suite>] [-t
-<template_directory>] [-v <version_number>] [-FVh]
+<template_directory>] [-v <version_number>] [-FVhu]
 
 *******************************************************************************
 Important! This document is growing as requested. If you have questions which
 
 *******************************************************************************
 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/.
 
 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.
   -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
 -----------------
 
 Available classes
 -----------------
 
-To be done...
+Documentation to be done...
 
 Files
 -----
 
 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).
 
 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
 ---------------------------------
 
 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
 
 
   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
 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
 
   [...]
   Calling task_extrbase
@@ -420,11 +443,12 @@ executing debootstrap. Check out the output for the following lines:
   Calling task_mirror
   [...]
 
   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
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Set up apt-cacher for use with grml-live
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
index d5cd4a3..00e4a7e 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -4,7 +4,7 @@
 # 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.
 # 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 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 {{{
 ################################################################################
 
 # 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 <architecture>] [-c <classe[s]>] [-g <grml_name>] \\
                  [-i <iso_name> ] [-o <output_directory>] [-s <suite>] \\
                  [-t <template_directory>] [-s <suite>] \\
 Usage: $PN [-a <architecture>] [-c <classe[s]>] [-g <grml_name>] \\
                  [-i <iso_name> ] [-o <output_directory>] [-s <suite>] \\
                  [-t <template_directory>] [-s <suite>] \\
-                 [-v <version_number>] [-FVh]
+                 [-v <version_number>] [-FVhu]
 
 Usage examples:
 
 
 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
 
 # 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:
       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
       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
 
          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
 
       [ -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
          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 ${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
 
       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/
 
       [ -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
       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
       # 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
          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
 
    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
    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
 
    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
    log "$ISO_OUTPUT exists already, skipping stage 'iso build'"
    ewarn "$ISO_OUTPUT exists already, skipping stage 'iso build'" ; eend 0
 else