Depend on fai >=3.2, implement the suite handling for conffiles, update docs, improve...
[grml-live.git] / docs / grml-live.txt
index 91b40e8..52b7d2d 100644 (file)
@@ -3,33 +3,41 @@ grml-live(8)
 
 Name
 ----
-grml-live - build process script for generating a (grml based) Linux Live-ISO
+
+grml-live - build framework for generating a grml and Debian based Linux Live
+system (CD/ISO)
 
 Synopsis
 --------
+
 grml-live [-c <classe[s]>] [-t <target_directory>] [-F] [-h|--help]
 
 *******************************************************************************
 Important! grml-live is under heavy construction, though your feedback is highly
 appreciated.  This document is growing as requested. If you have questions which
-aren't answered by this document yet please let me (mika@grml.org) know!
+aren't answered by this document yet please let me know: <mika@grml.org>!
 *******************************************************************************
 
 Description
 -----------
 
-grml-live provides the build system for creating (a grml based) live-cd. The
-build system is based on link:http://www.informatik.uni-koeln.de/fai/[FAI]
-(Fully Automatic Installation).
+grml-live provides the build system for creating a grml and Debian based Linux
+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
+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.
 
-FAI uses a class based system. This gives you the flexibility to choose the
+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.
 
-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 default FAI
-configuration and packages, so you can use grml-live and FAI completely
-independent!
+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
+default FAI configuration and packages, so you can use grml-live and FAI
+completely independent at the same time!
 
 [NOTE]
 
@@ -38,7 +46,7 @@ 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. To avoid downloading of the base system check out FAI's NFSROOT (check
+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).
 
 Options
@@ -57,8 +65,11 @@ Specify the Debian suite you want to use for your live-system.  Defaults to
 
   -t **TARGET_DIRECTORY**::
 
-Output directory of the build process of FAI - being the chroot
-used for building the ISO.
+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.
 
   -F::
 
@@ -76,11 +87,16 @@ Increase verbosity in the build process.
 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 /dev/shm/
+To get a small, Debian-stable and grml based live-cd using /grml/grml-live
 as build and output directory:
 
   # grml-live
 
+To get a small Debian-unstable and grml-small based live-cd using
+/home/mika/grml-live as build and output directory:
+
+  # 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
@@ -90,6 +106,22 @@ 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
+--------
+
+* create a grml-/Debian-based Linux Live-CD with one single command
+
+* class based concept, providing a maximum of flexibility
+
+* supports integration of own hooks, scripts and configuration
+
+* supports use and integration of own Software and/or Kernels via use of Debian
+repositories
+
+* native support of FAI features
+
+* multi-arch support (work in progress)
+
 The class concept
 -----------------
 
@@ -223,29 +255,36 @@ as possiblbe)
 Known TODOs
 -----------
 
-* do not use /dev/shm/ als default target directory (which one do we want to use
-instead?)
+* document the available classes in more detail
+
+* make sure $TARGET is mounted rw,suid,dev
+
+* write a step-by-step guide **how** to adjust **what** at **which** place
 
 * 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 (in progress) for at least x86, amd64 and ppc)
+grml, grml64, grml-small (done) for at least x86, amd64 and ppc)
 
 * support signed apt repositories (currently it's deactivated via FAI's
-FAI_ALLOW_UNSIGNED=1 for some packages)
+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,... (especially for stuff inside
-boot/isolinux/*)
+* 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 "final builds" (including stuff like generating md5sums, gpg,... -
+create something like grml_release including all the details about the build
+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)
 
-* provide possibility for cleanup of all created build directories
+* provide possibility for cleanup of all created build directories and
+a smart summary of the buildprocess (including "took ... minutes/seconds to
+build...)
 
 * support hooks to allow further customisation of the build process