Big update of documentation; use sed -i instead of sed -ie in script
authorMichael Prokop <devnull@localhost>
Tue, 18 Sep 2007 22:08:52 +0000 (00:08 +0200)
committerMichael Prokop <devnull@localhost>
Tue, 18 Sep 2007 22:08:52 +0000 (00:08 +0200)
docs/grml-live.txt
etc/grml/grml-live.conf
grml-live

index 52b7d2d..9c0d88a 100644 (file)
@@ -4,17 +4,16 @@ grml-live(8)
 Name
 ----
 
 Name
 ----
 
-grml-live - build framework for generating a grml and Debian based Linux Live
-system (CD/ISO)
+grml-live - build framework based on FAI for generating a grml and Debian based
+Linux Live system (CD/ISO)
 
 Synopsis
 --------
 
 
 Synopsis
 --------
 
-grml-live [-c <classe[s]>] [-t <target_directory>] [-F] [-h|--help]
+grml-live [-c <classe[s]>] [-t <target_directory>] [-s <suite>] [-Fvh]
 
 *******************************************************************************
 
 *******************************************************************************
-Important! grml-live is under heavy construction, though your feedback is highly
-appreciated.  This document is growing as requested. If you have questions which
+Important! This document is growing as requested. If you have questions which
 aren't answered by this document yet please let me know: <mika@grml.org>!
 *******************************************************************************
 
 aren't answered by this document yet please let me know: <mika@grml.org>!
 *******************************************************************************
 
@@ -22,17 +21,17 @@ Description
 -----------
 
 grml-live provides the build system for creating a grml and Debian based Linux
 -----------
 
 grml-live provides the build system for creating a grml and Debian based Linux
-live-cd. The build system is based on
+Live-CD. The build system is based on
 link:http://www.informatik.uni-koeln.de/fai/[FAI] (Fully Automatic
 Installation). grml-live uses the "fai dirinstall" feature to generate a chroot
 link:http://www.informatik.uni-koeln.de/fai/[FAI] (Fully Automatic
 Installation). grml-live uses the "fai dirinstall" feature to generate a chroot
-system based on the class concept of FAI (see later section for further details)
-and provides all the details to be able to generate a full-featured ISO. It does
-not use all the FAI features by default though and you don't have to know FAI to
-be able to use it.
+system based on the class concept of FAI (see later sections for further
+details) and provides the framework to be able to generate a full-featured ISO.
+It does not use all the FAI features by default though and you don't have to
+know FAI to be able to use it.
 
 
-The use of FAI behind the curtains gives you the flexibility to choose the
-packages you would like to include on your very own Linux live-cd without having
-to deal with all the details of a build process.
+The use of FAI gives you the flexibility to choose the packages you would like
+to include on your very own Linux Live-CD without having to deal with all the
+details of a build process.
 
 CAUTION: grml-live does **not** use /etc/fai for configuration but instead
 provides and uses /etc/grml/fai. This ensures that it does not clash with
 
 CAUTION: grml-live does **not** use /etc/fai for configuration but instead
 provides and uses /etc/grml/fai. This ensures that it does not clash with
@@ -42,39 +41,38 @@ completely independent at the same time!
 [NOTE]
 
 Please notice that you should have a fast network connection as all the Debian
 [NOTE]
 
 Please notice that you should have a fast network connection as all the Debian
-packages will be installed via network. If you want to use a local mirror
-(strongly recommended!) checkout mkdebmirror (see
-/usr/share/doc/grml-live/examples/mkdebmirror), debmirror(1), reprepro(1) (see
-/usr/share/doc/grml-live/examples/reprepro/ for a sample configuration) and
-approx(8). To avoid downloading of the base system check out FAI's NFSROOT (check
-docs for ../fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz).
+packages will be downloaded and installed via network. If you want to use a
+local mirror (strongly recommended if you plan to use grml-live more than once)
+checkout mkdebmirror (see /usr/share/doc/grml-live/examples/mkdebmirror),
+debmirror(1), reprepro(1) (see /usr/share/doc/grml-live/examples/reprepro/ for a
+sample configuration) and approx(8). To avoid downloading the base system again
+and again check out FAI's NFSROOT (see FAQ of this document for details).
 
 Options
 -------
 
   -c **CLASSES**::
 
 
 Options
 -------
 
   -c **CLASSES**::
 
-Specify the CLASSES to be used for building the ISO via fai.  By default only
+Specify the CLASSES to be used for building the ISO via FAI.  By default only
 the classes GRMLBASE and I386 are assumed, resulting in a small base system
 the classes GRMLBASE and I386 are assumed, resulting in a small base system
-(being about ~150MB ISO size).
+(being about ~150MB total ISO size) for x86 (32bit).
 
   -s **SUITE**::
 
 Specify the Debian suite you want to use for your live-system.  Defaults to
 
   -s **SUITE**::
 
 Specify the Debian suite you want to use for your live-system.  Defaults to
-"etch"; support values are: etch, lenny, sid, stable, testing, unstable.
+"etch" (being current Debian/stable). Supported values are: etch, lenny, sid,
+stable, testing, unstable.
 
   -t **TARGET_DIRECTORY**::
 
 
   -t **TARGET_DIRECTORY**::
 
-Main output directory of the build process of FAI.  Three directories are
-created inside the target directory, being: grml_cd/ - where the files for
-creating the ISO are located (including the compressed squashfs file),
-grml_chroot/ - the generated chroot system and grml_isos/ - where the resulting
-ISO is stored.
+Main output directory of the build process of FAI.  Some directories are created
+inside this target directory, being: grml_cd (where the files for creating the
+ISO are located, including the compressed squashfs file), grml_chroot (the
+chroot system) and grml_isos (where the resulting ISO is stored).
 
   -F::
 
 
   -F::
 
-Force execution and do not prompt for / display summary of configuration
-details.
+Force execution and do not prompt for acknowledgment of configuration.
 
   -h::
 
 
   -h::
 
@@ -84,30 +82,30 @@ Display short usage information and exit.
 
 Increase verbosity in the build process.
 
 
 Increase verbosity in the build process.
 
-How to get your own live-cd - the easy, fast and simple way
+How to get your own Live-CD - the easy, fast and simple way
 -----------------------------------------------------------
 
 -----------------------------------------------------------
 
-To get a small, Debian-stable and grml based live-cd using /grml/grml-live
-as build and output directory:
+To get a small, Debian-stable and grml-based Live-CD using /grml/grml-live
+as build and output directory just run:
 
   # grml-live
 
 
   # grml-live
 
-To get a small Debian-unstable and grml-small based live-cd using
-/home/mika/grml-live as build and output directory:
+To get a small Debian-unstable and grml-small based Live-CD using
+/home/mika/grml-live as build and output directory just use:
 
   # grml-live -c GRMLBASE,GRML_SMALL,I386 -t /home/mika/grml-live
 
 [NOTE]
 
 If you have about 700MB of free space inside /dev/shm (being a tmpfs, usually
 
   # grml-live -c GRMLBASE,GRML_SMALL,I386 -t /home/mika/grml-live
 
 [NOTE]
 
 If you have about 700MB of free space inside /dev/shm (being a tmpfs, usually
-you have >=1GB of RAM) just run "mount -o remount,suid,dev,rw /dev/shm" and use
-/dev/shm as build and output directory - resulting in very fast build process.
-But please be aware of the fact that rebooting your system will result in an
-empty /dev/shm, so please another directory for $CHROOT_TARGET, $BUILD_TARGET
-and $ISO_TARGET if you plan to create more persistent output. :)
+you should have >=1GB of RAM) just run "mount -o remount,suid,dev,rw /dev/shm"
+and use /dev/shm as build and output directory - resulting in very fast build
+process.  But please be aware of the fact that rebooting your system will result
+in an empty /dev/shm, so please another directory for $CHROOT_TARGET,
+$BUILD_TARGET and $ISO_TARGET if you plan to create more persistent output. :)
 
 
-Features
---------
+Main features of grml-live
+--------------------------
 
 * create a grml-/Debian-based Linux Live-CD with one single command
 
 
 * create a grml-/Debian-based Linux Live-CD with one single command
 
@@ -115,8 +113,8 @@ Features
 
 * supports integration of own hooks, scripts and configuration
 
 
 * supports integration of own hooks, scripts and configuration
 
-* supports use and integration of own Software and/or Kernels via use of Debian
-repositories
+* supports use and integration of own Software and/or Kernels via simple use of
+Debian repositories
 
 * native support of FAI features
 
 
 * native support of FAI features
 
@@ -125,15 +123,15 @@ repositories
 The class concept
 -----------------
 
 The class concept
 -----------------
 
-grml-live uses FAI and its class based concept for adjusting configuration
-according to your needs. This gives you flexibility and strength without losing
-the simplicity in the build process.
+grml-live uses FAI and its class based concept for adjusting configuration and
+setup according to your needs. This gives you flexibility and strength without
+losing the simplicity in the build process.
 
 The main and base class provided by grml-live is named GRMLBASE. It's strongly
 recommended to **always** use the class GRMLBASE when building an ISO using
 
 The main and base class provided by grml-live is named GRMLBASE. It's strongly
 recommended to **always** use the class GRMLBASE when building an ISO using
-grml-live as well as the architecture dependend class (being 'I386' for x86_32
-currently only). The following files and directories are relevant for class GRML
-by default:
+grml-live, as well as the architecture dependend class which provides the kernel
+(being 'I386' for x86_32 currently only). The following files and directories
+are relevant for class GRMLBASE by default:
 
   /etc/grml/fai/config/scripts/GRMLBASE/
   /etc/grml/fai/config/debconf/GRMLBASE
 
   /etc/grml/fai/config/scripts/GRMLBASE/
   /etc/grml/fai/config/debconf/GRMLBASE
@@ -145,51 +143,61 @@ Take a look at the next section for information about the concept of those
 files/directories.
 
 If you want to use your own configuration, extend an existing configuration
 files/directories.
 
 If you want to use your own configuration, extend an existing configuration
-and/or add additional packages to your ISO just invent a new class. For example
-if you want to use your own class named "FOOBAR" just extend CLASSES="GRMLBASE"
-inside /etc/grml/grml-live.conf to CLASSES="GRMLBASE,FOOBAR" or invoke grml-live
-using the classes option: "grml-live -c GRMLBASE,FOOBAR ...".
+and/or add additional packages to your ISO just invent a new class (or extend an
+existing one). For example if you want to use your own class named "FOOBAR" just
+extend CLASSES="GRMLBASE,I386" inside /etc/grml/grml-live.conf to
+CLASSES="GRMLBASE,I386,FOOBAR" or invoke grml-live using the classes option:
+"grml-live -c GRMLBASE,I386,FOOBAR ...".
 
 More details regarding the class concept can be found in the documentation of
 
 More details regarding the class concept can be found in the documentation of
-FAI (available at /usr/share/doc/fai-doc/).
+FAI itself (being available at /usr/share/doc/fai-doc/).
 
 Files
 -----
 
 Notice that grml-live ships FAI configuration files that do not use the same
 
 Files
 -----
 
 Notice that grml-live ships FAI configuration files that do not use the same
-namespace as the FAI packages itself.  This ensures that grml-live does not
-clash with your usual FAI configuration, so instead of /etc/fai/fai.conf
-(package fai-client) grml uses /etc/grml/fai/fai.conf instead. For more details
-see below. To get an idea how another configuration or example files could look
-like check out /usr/share/doc/fai-doc/examples/simple/ (provided by Debian package
-fai-doc). /usr/share/doc/fai-doc/fai-guide.html/ch-config.html also provides
-documentation regarding configuration possibilities.
+namespace as the FAI packages itself. This ensures that grml-live does not clash
+with your usual FAI configuration, so instead of /etc/fai/fai.conf (package
+fai-client) grml uses /etc/grml/fai/fai.conf instead. For more details see
+below. To get an idea how another configuration or example files could look like
+check out /usr/share/doc/fai-doc/examples/simple/ (provided by Debian package
+fai-doc). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html
+provides documentation regarding configuration possibilities.
 
   /usr/sbin/grml-live
 
 
   /usr/sbin/grml-live
 
-Script for the main build process (being a wrapper around FAI currently).
-Requires root permissions for execution.
+Script for the main build process. Requires root permissions for execution.
+
+  /etc/grml/grml-live.conf
+
+Main configuration file for grml-live. All the important steps can be configured
+at this stage.
 
   /etc/grml/fai/fai.conf
 
 
   /etc/grml/fai/fai.conf
 
-Main configuration file which specifies where all the configuration files and
-scripts for FAI/grml-live can be found. By default it is
+Main configuration file for FAI which specifies where all the configuration
+files and scripts for FAI/grml-live can be found. By default it is set to
 FAI_CONFIGDIR=/etc/grml/fai/config, a directory shipped by grml-live
 out-of-the-box so you shouldn't have to configure anything in this file.
 
   /etc/grml/fai/make-fai-nfsroot.conf
 
 FAI_CONFIGDIR=/etc/grml/fai/config, a directory shipped by grml-live
 out-of-the-box so you shouldn't have to configure anything in this file.
 
   /etc/grml/fai/make-fai-nfsroot.conf
 
-TODO: documentation
+This file is used by make-fai-nfsroot(8) only. Usually you don't have to change
+anything inside this file. If you want to modify NFSROOT though you can adjust
+it there.
 
   /etc/grml/fai/NFSROOT
 
 
   /etc/grml/fai/NFSROOT
 
-TODO: documentation
+This file specifies the package list for creating the NFSROOT.
 
   /etc/grml/fai/apt/sources.list
 
 This file specifies which mirrors should be used for retreiving the Debian
 
   /etc/grml/fai/apt/sources.list
 
 This file specifies which mirrors should be used for retreiving the Debian
-packages used for creating the ISO. If you want to use a local mirror you have
-to adjust this file.
+packages used for creating the main chroot (including all the software you would
+like to see included). If you want to use a local mirror you either have to
+adjust this file or use the GRML_LIVE_SOURCES variable inside
+/etc/grml/grml-live.conf which modifies /etc/grml/fai/apt/sources.list
+on-the-fly then.
 
   /etc/grml/fai/config/
 
 
   /etc/grml/fai/config/
 
@@ -207,24 +215,24 @@ through files.
 
   /etc/grml/fai/config/hooks/
 
 
   /etc/grml/fai/config/hooks/
 
-This directory provides files for customizing the build process through hooks.
+This directory provides files for customising the build process through hooks.
 Hooks are user defined programs or scripts, which are called during the
 installation process.
 
   /etc/grml/fai/config/package_config/
 
 Hooks are user defined programs or scripts, which are called during the
 installation process.
 
   /etc/grml/fai/config/package_config/
 
-File with lists of software packages to be installed or removed.  The different
-classes describe what should find its way to your ISO.  When running 'fai -v -C
-/etc/grml/fai -cGRMLBASE dirinstall ...' only the files from the directory GRML/
-will be taken, if you use 'fai -v -C /etc/grml/fai -cGRMLBASE,FOOBAR dirinstall
-...' then the files of GRML/ **plus** the files from FOOBAR/ will be taken. So
-just create a new class to adjust it to your needs. Please notice that the
-directory GRML contains a package list defining a minimum but still reasonable
-package configuration.
+Directory with lists of software packages to be installed or removed.  The
+different classes describe what should find its way to your ISO.  When running
+"grml-live -c GRMLBASE,I386 ..." only the files from the directories GRMLBASE
+and I386 will be taken, if you use 'grml-live -c GRMLBASE,I386,FOOBAR ...' then
+the files of GRMLBASE, I386 **plus** the files from FOOBAR will be taken. So
+just create a new class to adjust the package selection according to your needs.
+Please notice that the directory GRMLBASE contains a package list defining a
+minimum but still reasonable package configuration.
 
   /etc/grml/fai/config/scripts/
 
 
   /etc/grml/fai/config/scripts/
 
-Scripts for customising the ISO within build process.
+Scripts for customising the ISO within the build process.
 
   /etc/grml/fai/files/
 
 
   /etc/grml/fai/files/
 
@@ -240,8 +248,9 @@ live-initramfs(8).
 Requirements for the build system
 ---------------------------------
 
 Requirements for the build system
 ---------------------------------
 
-* any Debian based system should be sufficient (if not please send a bug
-report), for example a grml2hd harddisk installation ships all you need
+* any Debian based system should be sufficient (if not it's a bug, so please
+send us a bug report then) [a usual link:http://grml.org/grml2hd/[grml2hd]
+harddisk installation ships all you need]
 
 * enough free disk space; at least 800MB are required for a minimal grml-live
 run (\~400MB for the chroot [$CHROOT_TARGET], \~150MB for the build target
 
 * enough free disk space; at least 800MB are required for a minimal grml-live
 run (\~400MB for the chroot [$CHROOT_TARGET], \~150MB for the build target
@@ -252,44 +261,173 @@ temporary files)
 chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far
 as possiblbe)
 
 chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far
 as possiblbe)
 
+FAQ
+---
+
+Help, I'm using Debian etch and I don't have FAI version >3.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  wget http://www.informatik.uni-koeln.de/fai/download/etch/fai-client_3.2.1_all.deb \
+       http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.1_all.deb
+  dpkg -i fai-client_3.2.1_all.deb fai-server_3.2.1_all.deb
+
+or check out the link:http://www.informatik.uni-koeln.de/fai/[FAI-homepage] for
+further details.
+
+I've problems with the build process. How to start debugging?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Check out the logs inside /var/log/fai/dirinstall/... If you don't have the time
+to debug the problem in further detail or don't know how to proceed just send a
+copy of your config, logs and the commandline with a short problem description
+to <mika@grml.org>:
+
+  # history | grep grml-live > /etc/grml/grml_live.cmdline
+  # tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \
+            /var/log/fai/dirinstall /etc/grml/fai
+
+Can I use my own (local) Debian mirror?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Sure. Just adjust the variables GRML_LIVE_SOURCES and FAI_DEBOOTSTRAP (if not
+already using NFSROOT's base.tgz) inside /etc/grml/grml-live.conf according to
+your needs. Please don't forget that you should use the grml servers as well
+(see default configuration) so all the grml packages can be downloaded as well.
+
+If you want to use a local (for example NFS mount) mirror additionally, just
+adjust MIRROR_DIRECTORY and MIRROR_SOURCES insede /etc/grml/grml-live.conf as
+well.
+
+Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from
+/etc/grml/fai/apt/sources.list and /etc/grml/fai/make-fai-nfsroot.conf will be
+taken. If you customise the variables in /etc/grml/grml-live.conf then the two
+files will be adjusted during runtime automatically.
+
+If MIRROR_DIRECTORY and MIRROR_SOURCES are specified the local mirror will be
+taken as first entry in the generated sources.list so it's prefered over
+non-local mirrors. Using a fallback mirror (via providing several mirrors in
+GRML_LIVE_SOURCES as used by default) is a recommended setting.
+
+How do I add additional Debian package(s) to my CD/ISO?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Just create a new class (using the package_config directory):
+
+  # cat > /etc/grml/fai/config/package_config/MIKA << EOF
+  PACKAGES aptitude
+
+  vim
+  another_name_of_a_debian_package
+  and_another_one
+  EOF
+
+and specify it when invoking grml-live then:
+
+  # grml-live -c GRMLBASE,I386,MIKA
+
+I fscked up my grml-live configuration. How do I reset it to the defaults?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Notice: this deletes all your grml-live configuration files. If that's really
+what you are searching for just run:
+
+  rm -rf /etc/grml/fai /etc/grml/grml-live.conf
+  dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb
+
+[NOTE]
+
+If you don't control your /etc using a version control system (VCS) yet it's a
+good chance to start using it now. Check out
+link:http://michael-prokop.at/blog/2007/03/14/maintain-etc-with-mercurial-on-debian/[http://michael-prokop.at/blog/2007/03/14/maintain-etc-with-mercurial-on-debian/]
+for more details how to maintain /etc using the mercurial VCS.
+
+How do I create a base.tgz for use as NFSROOT?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+First of all build the chroot system:
+
+  mkdir /tmp/nfsroot && cd /tmp/nfsroot
+  debootstrap etch /tmp/nfsroot/ http://ftp.de.debian.org/debian
+  tar zcf base.tgz ./
+
+Then check out where your NFSROOT is located:
+
+  # grep '^NFSROOT' /etc/grml/fai/make-fai-nfsroot.conf
+  NFSROOT=/grml/fai/nfsroot
+
+So as /grml/fai/nfsroot is your NFSROOT place the file under
+/grml/fai/nfsroot/live/filesystem.dir/var/tmp/:
+
+  mv base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
+
+Now running "grml-live ..." will use this file as main system instead of
+executing debootstrap. Check out the output for the following lines:
+
+  [...]
+  Calling task_extrbase
+  Unpacking Debian base archive
+  Extracting /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
+  Calling task_mirror
+  [...]
+
+I've a question which isn't answered by this document
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Don't hesitate to ask on IRC (channel #grml on irc.freenode.org) or just drop me
+a mail: <mika@grml.org>
+
 Known TODOs
 -----------
 
 Known TODOs
 -----------
 
-* document the available classes in more detail
+* "fai dirinstall" does not seem to always exit according to what happend during
+the build; make sure to exit on any error
 
 
-* make sure $TARGET is mounted rw,suid,dev
+* document the available classes in more detail
 
 
-* write a step-by-step guide **how** to adjust **what** at **which** place
+* add a check to make sure $TARGET is mounted rw,suid,dev?
 
 * add support for amd64 [gebi?] + ppc [formorer?] (and identify all packages
 that are arch specific so we have a clean package list in all classes)
 
 * support different grml-flavours through classes right out-of-the-box (being:
 
 * add support for amd64 [gebi?] + ppc [formorer?] (and identify all packages
 that are arch specific so we have a clean package list in all classes)
 
 * support different grml-flavours through classes right out-of-the-box (being:
-grml, grml64, grml-small (done) for at least x86, amd64 and ppc)
+grml and  grml-small (done), each for x86, amd64 and ppc)
 
 * support signed apt repositories (currently it's deactivated via FAI's
 FAI_ALLOW_UNSIGNED=1 for some packages in the toolchain)
 
 
 * support signed apt repositories (currently it's deactivated via FAI's
 FAI_ALLOW_UNSIGNED=1 for some packages in the toolchain)
 
-* explain (and provide configuration for) use of NFSROOT
-
 * support setting stuff like ISO name, version,... on-the-fly (especially for
 stuff inside boot/isolinux/*)
 
 * support "final builds" (including stuff like generating md5sums, gpg,... -
 * support setting stuff like ISO name, version,... on-the-fly (especially for
 stuff inside boot/isolinux/*)
 
 * support "final builds" (including stuff like generating md5sums, gpg,... -
-create something like grml_release including all the details about the build
-like dpkg selection, logs,...)
+create a grml_release-directory including all the details about the build
+process like dpkg selection, logs,...)
 
 
-* the grml-live class(es) should send output as used inside FAI as well (so it's
-not as verbose unless you specify it, make it configurable)
+* the grml-live class(es) should send output to stdout and stderr as used inside
+FAI as well (so it's not as verbose unless you specify it, make it configurable
+though); check for errors inside the logs then as well
 
 * provide possibility for cleanup of all created build directories and
 a smart summary of the buildprocess (including "took ... minutes/seconds to
 
 * provide possibility for cleanup of all created build directories and
 a smart summary of the buildprocess (including "took ... minutes/seconds to
-build...)
+build...")
+
+* check out how FAI_DEBMIRROR of /etc/grml/fai/fai.conf could be merged with our
+MIRROR_DIRECTORY and MIRROR_SOURCES feature of /etc/grml/grml-live.conf
 
 * support hooks to allow further customisation of the build process
 
 
 * support hooks to allow further customisation of the build process
 
-Debian package
---------------
+Long term goals
+---------------
+
+* Provide all upcoming grml releases based on grml-live.
+
+* Provide a console interface (using dialog) for easy and common use of
+grml-live.
+
+* Provide a graphical interface (for example using pygtk) for easy and common
+use of grml-live.
+
+Download / install grml-live as a Debian package
+------------------------------------------------
 
 Debian packages will be available through the grml-repository at
 link:http://deb.grml.org/[http://deb.grml.org/] as soon as the grml-team
 
 Debian packages will be available through the grml-repository at
 link:http://deb.grml.org/[http://deb.grml.org/] as soon as the grml-team
index 4c67f87..6d31354 100644 (file)
@@ -3,38 +3,40 @@
 # 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: Tue Sep 18 20:32:37 CEST 2007 [mika]
+# Latest change: Tue Sep 18 22:27:31 CEST 2007 [mika]
 ################################################################################
 
 ################################################################################
 
-# main output directory
-# please notice that you need suid,dev,rw permissions there
+# Main output directory
+# Please notice that you need suid,dev,rw permissions there
 TARGET="/grml/grml-live"
 TARGET="/grml/grml-live"
+# You have enough RAM? Use shared memory for fast testing purposes:
 # TARGET="/dev/shm" # mount -o remount,suid,dev,rw /dev/shm
 
 # TARGET="/dev/shm" # mount -o remount,suid,dev,rw /dev/shm
 
-# chroot of the buildprocess files:
+# Where do want to find the chroot of the buildprocess files?
 CHROOT_TARGET="$TARGET/grml_chroot"
 CHROOT_TARGET="$TARGET/grml_chroot"
-# where do you want to find the compressed chroot, bootstuff,...?
+# Where do you want to find the compressed chroot, bootstuff,...?
 BUILD_TARGET="$TARGET/grml_cd"
 BUILD_TARGET="$TARGET/grml_cd"
-# where do you want to find the final ISO?
+# Where do you want to find the final ISO?
 ISO_TARGET="$TARGET/grml_isos"
 
 ISO_TARGET="$TARGET/grml_isos"
 
-# which Debian suite to you want to use? unless set it defaults to "etch"
-# supported values: stable, testing, unstable, etch, lenny, sid
+# Which Debian suite to you want to use? Unless it's set it defaults to "etch"
+# Supported values are: stable, testing, unstable, etch, lenny, sid
 # SUITE="sid"
 
 # SUITE="sid"
 
-# which FAI classes do you want to use by default?
-# notice: GRMLBASE is recommended in any case unless you *really*
-# know what you are doing; class I386 provides the kernel
+# Which FAI classes do you want to use by default?
+# Notice: GRMLBASE is recommended in any case unless you *really*
+# know what you are doing; class I386 provides the kernel for x86
 CLASSES="GRMLBASE,I386"
 
 ## Which mirrors do you want to use? Please set GRML_LIVE_SOURCES *and*
 CLASSES="GRMLBASE,I386"
 
 ## Which mirrors do you want to use? Please set GRML_LIVE_SOURCES *and*
-## *FAI_DEBOOTSTRAP* according!
+## *FAI_DEBOOTSTRAP* accordingly. To use a local directory (like an NFS mount)
+## check out MIRROR_DIRECTORY and MIRROR_SOURCES as well.
 
 # Do you want to generate /etc/grml/fai/apt/sources.list on-the-fly via grml-live?
 # If so then activate the according mirrors using GRML_LIVE_SOURCES=...
 
 # Do you want to generate /etc/grml/fai/apt/sources.list on-the-fly via grml-live?
 # If so then activate the according mirrors using GRML_LIVE_SOURCES=...
-# If you do *not* set GRML_LIVE_SOURCES then grml-live will just take what
-# /etc/grml/fai/apt/sources.list provides by default
-# Usage: like your /etc/apt/sources.list looks like
+# If you do *not* set GRML_LIVE_SOURCES here then grml-live will just take what
+# /etc/grml/fai/apt/sources.list provides by default.
+# Use the variable like your /etc/apt/sources.list looks like.
 #GRML_LIVE_SOURCES="
 #deb http://192.168.1.112/debian     etch         main contrib non-free
 #deb http://deb.grml.org/            grml-stable  main
 #GRML_LIVE_SOURCES="
 #deb http://192.168.1.112/debian     etch         main contrib non-free
 #deb http://deb.grml.org/            grml-stable  main
@@ -42,11 +44,11 @@ CLASSES="GRMLBASE,I386"
 #deb http://ftp.de.debian.org/debian etch         main contrib non-free
 #"
 
 #deb http://ftp.de.debian.org/debian etch         main contrib non-free
 #"
 
-# Which Debian flavour and which mirror do you want to use for basic debootstrapping?
+# Which Debian suite and which mirror do you want to use for debootstrapping?
 # Unless specified the default from /etc/grml/fai/make-fai-nfsroot.conf will be
 # taken. If you specify a value then the file /etc/grml/fai/make-fai-nfsroot.conf
 # will be updated by grml-live on-the-fly.
 # Unless specified the default from /etc/grml/fai/make-fai-nfsroot.conf will be
 # taken. If you specify a value then the file /etc/grml/fai/make-fai-nfsroot.conf
 # will be updated by grml-live on-the-fly.
-# Usage: <flavour> <mirror>
+# Usage: "<suite> <mirror>"
 # FAI_DEBOOTSTRAP="etch http://ftp.de.debian.org/debian"
 
 # Do you want to use a local mirror (like NFS) as well?
 # FAI_DEBOOTSTRAP="etch http://ftp.de.debian.org/debian"
 
 # Do you want to use a local mirror (like NFS) as well?
@@ -55,25 +57,25 @@ CLASSES="GRMLBASE,I386"
 # ... and the sources.list entry for the directory:
 # MIRROR_SOURCES="deb file:///mnt/mirror/debian sid main contrib non-free"
 
 # ... and the sources.list entry for the directory:
 # MIRROR_SOURCES="deb file:///mnt/mirror/debian sid main contrib non-free"
 
-# directory of configuration files for grml-live's FAI:
+# Directory of configuration files for grml-live's FAI:
 GRML_FAI_CONFIG=/etc/grml/fai
 
 GRML_FAI_CONFIG=/etc/grml/fai
 
-# specify hostname of the live-system:
+# Specify hostname of the live-system:
 HOSTNAME=grml
 
 HOSTNAME=grml
 
-# specify user with UID 1000 on live-system:
+# Specify user with UID 1000 on live-system:
 USERNAME=grml
 
 USERNAME=grml
 
-# do you want to pass any additional arguments to FAI?
+# Do you want to pass any additional arguments to FAI?
 # FAI_ARGS=""
 
 # FAI_ARGS=""
 
-# which architecture do you want to build?
-# defaults to output of 'dpkg --print-architecture'
+# Which architecture do you want to build?
+# It defaults to output of 'dpkg --print-architecture'
 # ARCH="i386"
 
 # ARCH="i386"
 
-# do you want to download pageant, plink, pscp, psftp, putty and puttygen
-# to store it inside $BUILD_TARGET/windows/?
-# just unset it do skip download via wget or modify URL
+# Do you want to download pageant, plink, pscp, psftp, putty and puttygen
+# using wget to store it inside $BUILD_TARGET/windows/?
+# Just unset it do skip download via wget or modify the download URL.
 WINDOWS_BINARIES="http://the.earth.li/~sgtatham/putty/latest/x86/"
 
 ## END OF FILE #################################################################
 WINDOWS_BINARIES="http://the.earth.li/~sgtatham/putty/latest/x86/"
 
 ## END OF FILE #################################################################
index ec336c2..956f8b4 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: Tue Sep 18 20:32:35 CEST 2007 [mika]
+# Latest change: Tue Sep 18 22:46:28 CEST 2007 [mika]
 ################################################################################
 
 # read configuration files, set some misc variables {{{
 ################################################################################
 
 # read configuration files, set some misc variables {{{
@@ -82,7 +82,6 @@ http://grml.org/bugs/
 while getopts "c:s:t:Fhv" opt; do
   case "$opt" in
     c) CLASSES="$OPTARG" ;;
 while getopts "c:s:t:Fhv" opt; do
   case "$opt" in
     c) CLASSES="$OPTARG" ;;
-    # f) FLAVOUR="$OPTARG" ;; # TODO
     F) FORCE=1 ;;
     h) usage ; bailout 0 ;;
     s) SUITE="$OPTARG" ;;
     F) FORCE=1 ;;
     h) usage ; bailout 0 ;;
     s) SUITE="$OPTARG" ;;
@@ -149,15 +148,15 @@ fi
 
 # does this suck? YES!
 if [ -n "$SUITE" ] ; then
 
 # does this suck? YES!
 if [ -n "$SUITE" ] ; then
-   sed -ie "s/SUITE=.*/SUITE=\"$SUITE\"/" $LIVE_CONF
+   sed -i "s/SUITE=.*/SUITE=\"$SUITE\"/" $LIVE_CONF
 
    DIST="\|\ etch\ \|\ stable\ \|\ lenny\ \|\ testing\ \|\ sid\ \|\ unstable\ "
 
    DIST="\|\ etch\ \|\ stable\ \|\ lenny\ \|\ testing\ \|\ sid\ \|\ unstable\ "
-   sed -ie "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" $LIVE_CONF
-   sed -ie "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" /etc/grml/fai/apt/sources.list
+   sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" $LIVE_CONF
+   sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" /etc/grml/fai/apt/sources.list
 
    DIST='\"etch\|=\"stable=\"lenny=\"testing=\"sid=\"unstable'
 
    DIST='\"etch\|=\"stable=\"lenny=\"testing=\"sid=\"unstable'
-   sed -ie "s#FAI_DEBOOTSTRAP=$DIST#FAI_DEBOOTSTRAP=\"$SUITE#" $LIVE_CONF
-   sed -ie "s#FAI_DEBOOTSTRAP=$DIST#FAI_DEBOOTSTRAP=\"$SUITE#" /etc/grml/fai/make-fai-nfsroot.conf
+   sed -i "s#FAI_DEBOOTSTRAP=$DIST#FAI_DEBOOTSTRAP=\"$SUITE#" $LIVE_CONF
+   sed -i "s#FAI_DEBOOTSTRAP=$DIST#FAI_DEBOOTSTRAP=\"$SUITE#" /etc/grml/fai/make-fai-nfsroot.conf
 fi
 # }}}
 
 fi
 # }}}