From fdef63e60c2e68226da2fe92d6cc393c1af2b801 Mon Sep 17 00:00:00 2001
From: Daniel Baumann <daniel@debian.org>
Date: Sun, 23 Sep 2007 10:05:12 +0200
Subject: Adding live-helper 1.0~a16-1.

---
 Makefile                                |   8 +-
 debian/changelog                        |   7 +
 docs/CREDITS                            |   1 +
 docs/ChangeLog                          |  25 +++
 docs/TODO                               |   2 -
 examples/cron/etch+beryl.sh             |   2 +-
 examples/cron/etch.sh                   |   2 +-
 examples/cron/snapshots.sh              |   2 +-
 examples/hooks/qemu-launcher.sh         |   9 +
 functions/common.sh                     |   2 +-
 functions/packagelists.sh               |  42 ++++
 helpers/lh_binary                       |   2 +-
 helpers/lh_binary_debian-installer      |  97 ++++++++--
 helpers/lh_binary_grub                  |   2 +-
 helpers/lh_binary_live-installer        | 333 --------------------------------
 helpers/lh_binary_local-hooks           |  60 ++++++
 helpers/lh_binary_rootfs                |   4 +-
 helpers/lh_binary_syslinux              |  66 +++----
 helpers/lh_binary_yaboot                |   2 +-
 helpers/lh_bootstrap_cache              |   4 +-
 helpers/lh_bootstrap_clone              |  61 ------
 helpers/lh_chroot_cache                 |   4 +-
 helpers/lh_chroot_linux-image           |   6 +
 helpers/lh_chroot_local-packageslists   |   6 +-
 helpers/lh_chroot_packageslists         |   4 +-
 helpers/lh_clean                        |   2 +-
 helpers/lh_config                       |  21 +-
 helpers/lh_source_debian-live           |   2 +-
 lists/gnome                             |  14 +-
 lists/gnome-core                        |  11 +-
 lists/gnome-full                        |  11 +-
 lists/gnome-junior                      |  26 +--
 lists/gnustep                           |  11 +-
 lists/junior-pkgs                       |   8 +
 lists/kde                               |  11 +-
 lists/kde-core                          |  11 +-
 lists/kde-extra                         |  18 +-
 lists/kde-full                          |  15 +-
 lists/kde-junior                        |  23 +--
 lists/minimal                           |   5 +
 lists/rescue                            |  10 +-
 lists/standard                          |   5 +-
 lists/standard-x11                      |   8 +-
 lists/xfce                              |  11 +-
 lists/xfce-junior                       |  23 +--
 manpages/lh_binary.de.1                 |   2 +-
 manpages/lh_binary.en.1                 |   2 +-
 manpages/lh_bootstrap.de.1              |   2 +-
 manpages/lh_bootstrap.en.1              |   2 +-
 manpages/lh_bootstrap_cdebootstrap.de.1 |   2 +-
 manpages/lh_bootstrap_cdebootstrap.en.1 |   2 +-
 manpages/lh_bootstrap_debootstrap.de.1  |   2 +-
 manpages/lh_bootstrap_debootstrap.en.1  |   2 +-
 manpages/lh_build.de.1                  |   2 +-
 manpages/lh_build.en.1                  |   2 +-
 manpages/lh_chroot.de.1                 |   2 +-
 manpages/lh_chroot.en.1                 |   2 +-
 manpages/lh_clean.de.1                  |   2 +-
 manpages/lh_clean.en.1                  |   2 +-
 manpages/lh_source.de.1                 |   2 +-
 manpages/lh_source.en.1                 |   2 +-
 manpages/lh_testroot.de.1               |   2 +-
 manpages/lh_testroot.en.1               |   2 +-
 manpages/live-helper.de.7               |   2 +-
 manpages/live-helper.en.7               |   2 +-
 manpages/make-live.de.1                 |   2 +-
 manpages/make-live.en.1                 |   2 +-
 67 files changed, 375 insertions(+), 668 deletions(-)
 create mode 100755 examples/hooks/qemu-launcher.sh
 create mode 100755 functions/packagelists.sh
 delete mode 100755 helpers/lh_binary_live-installer
 create mode 100755 helpers/lh_binary_local-hooks
 delete mode 100755 helpers/lh_bootstrap_clone
 create mode 100644 lists/junior-pkgs
 create mode 100644 lists/minimal

diff --git a/Makefile b/Makefile
index cf41d4f..cb7258e 100644
--- a/Makefile
+++ b/Makefile
@@ -91,15 +91,15 @@ uninstall:
 update:
 	set -e; for MANPAGE in manpages/*.de.* manpages/*.en.*; \
 	do \
-		sed -i	-e 's/2007\\-06\\-11/2007\\-06\\-18/' \
-			-e 's/11.06.2007/18.06.2007/' \
-			-e 's/1.0~a14/1.0~a15/' \
+		sed -i	-e 's/2007\\-06\\-25/2007\\-07\\-02/' \
+			-e 's/25.06.2007/02.07.2007/' \
+			-e 's/1.0~a16/1.0~a17/' \
 		$$MANPAGE; \
 	done
 
 	set -e; for SCRIPT in functions/*.sh examples/cron/*.sh; \
 	do \
-		sed -i -e 's/1.0~a14/1.0~a15/' $$SCRIPT; \
+		sed -i -e 's/1.0~a16/1.0~a17/' $$SCRIPT; \
 	done
 
 clean:
diff --git a/debian/changelog b/debian/changelog
index a52e615..08c9df8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+live-helper (1.0~a16-1) unstable; urgency=medium
+
+  * New upstream release:
+    - Caches also linux-image packages (Closes: #430511).
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 25 Jun 2007 00:00:00 +0200
+
 live-helper (1.0~a15-1) unstable; urgency=medium
 
   * New upstream release:
diff --git a/docs/CREDITS b/docs/CREDITS
index 0397822..484e265 100644
--- a/docs/CREDITS
+++ b/docs/CREDITS
@@ -19,6 +19,7 @@ Patches (alphabetical order):
   * Sebastian Raveau <sebastien.raveau@epita.fr>
   * Thomas Lange <lange@informatik.uni-koeln.de>
   * Trent Buck <trentbuck@gmail.com>
+  * Vladimir Stavrinov <vs@inist.ru>
 
 Donations (alphaetical order):
 
diff --git a/docs/ChangeLog b/docs/ChangeLog
index 6abb430..ca0cc3c 100644
--- a/docs/ChangeLog
+++ b/docs/ChangeLog
@@ -1,3 +1,28 @@
+2007-06-25  Daniel Baumann  <daniel@debian.org>
+
+	* helpers/lh_binary_local-hooks:
+	  - Added.
+	* helpers/lh_chroot_linux-image:
+	  - Caching downloaded packages.
+	* examples/hooks/qemu-launcher.sh:
+	  - Added.
+	* Uploaded 1.0~a16-1.
+
+2007-06-18  Chris Lamb  <chris@chris-lamb.co.uk>
+
+	* helpers/lh_chroot_packageslists, lh_chroot_local-packageslists:
+	  - Added support for '#<include>' pragma to include other list files.
+	* functions/packagelists.sh:
+	  - Added.
+	* lists/*:
+	  - Translated existing lists to be include-based, added a few missing
+	    lists.
+
+2007-06-18  Daniel Baumann  <daniel@debian.org>
+
+	* helpers/*:
+	  - All cache operations use hardlinks now.
+
 2007-06-16  Daniel Baumann  <daniel@debian.org>
 
 	* helpers/lh_bootstrap_clone, lh_bootstrap_copy:
diff --git a/docs/TODO b/docs/TODO
index f728855..a06a680 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -14,8 +14,6 @@ FIXME
   * grub (i386/amd64) boot support on net binary images
   * multi-{binary,architecture,distribution} builds in one shot
   * check unset variables
-  * include capability for package lists
-  * add descriptions in package lists
   * signal handlers
   * parsable descriptions in helpers
   * add lilo support? :)
diff --git a/examples/cron/etch+beryl.sh b/examples/cron/etch+beryl.sh
index b994e3b..7e4ccc3 100755
--- a/examples/cron/etch+beryl.sh
+++ b/examples/cron/etch+beryl.sh
@@ -7,7 +7,7 @@ BUILD="etch+beryl"
 # Begin custom defaults
 AUTOBUILD="enabled"
 
-DATE="r0_1.0~a15-1"
+DATE="r0_1.0~a16-1"
 DESTDIR="/srv/debian-unofficial/ftp/debian-live"
 TEMPDIR="/srv/tmp/live-helper"
 
diff --git a/examples/cron/etch.sh b/examples/cron/etch.sh
index 19d076e..f00392b 100755
--- a/examples/cron/etch.sh
+++ b/examples/cron/etch.sh
@@ -7,7 +7,7 @@ BUILD="etch"
 # Begin custom defaults
 AUTOBUILD="enabled"
 
-DATE="r0_1.0~a15-1"
+DATE="r0_1.0~a16-1"
 DESTDIR="/srv/debian-unofficial/ftp/debian-live"
 TEMPDIR="/srv/tmp/live-helper"
 
diff --git a/examples/cron/snapshots.sh b/examples/cron/snapshots.sh
index 655d512..5513a4b 100755
--- a/examples/cron/snapshots.sh
+++ b/examples/cron/snapshots.sh
@@ -3,7 +3,7 @@
 # Needs: build-essential fakeroot lsb-release svn [...]
 
 # Static variables
-PACKAGES="live-helper live-initramfs live-sysvinit live-webhelper"
+PACKAGES="live-helper live-initramfs live-magic live-sysvinit live-webhelper"
 
 DEBEMAIL="debian-live-devel@lists.alioth.debian.org"
 EMAIL="debian-live-devel@lists.alioth.debian.org"
diff --git a/examples/hooks/qemu-launcher.sh b/examples/hooks/qemu-launcher.sh
new file mode 100755
index 0000000..1535cbe
--- /dev/null
+++ b/examples/hooks/qemu-launcher.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# This is a hook for live-helper(7) to install autorun4linuxCD.
+# autorun4linuxCD was written by Franklin Piat <fpiat@bigfoot.com>.
+#
+# To enable it, copy this hook into your config/binary_local-hooks directory.
+
+cd binary
+wget http://www.klabs.be/~fpiat/projects/autorun4linuxCD/autorun4linuxCD.tar.gz
diff --git a/functions/common.sh b/functions/common.sh
index 71011bd..2c30117 100755
--- a/functions/common.sh
+++ b/functions/common.sh
@@ -10,4 +10,4 @@
 set -e
 
 PROGRAM="`basename ${0}`"
-VERSION="1.0~a15"
+VERSION="1.0~a16"
diff --git a/functions/packagelists.sh b/functions/packagelists.sh
new file mode 100755
index 0000000..f25b5fb
--- /dev/null
+++ b/functions/packagelists.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# packagelists.sh - expands package list includes
+# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
+#
+# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+# This is free software, and you are welcome to redistribute it
+# under certain conditions; see COPYING for details.
+
+set -e
+
+Expand_packagelist ()
+{
+	# ${1} List name
+	# ${2} Default path to search
+	# ${3} Fallback path to search (optional)
+
+	# Does list exist in default path?
+	if [ -e "${2}/${1}" ];
+	then
+		Expand_packagelist_file "${2}/${1}" "${@}"
+	else
+		# If list exists in fallback, include it.
+		if [ -n "${3}" ] && [ -e "${3}/${1}" ]
+		then
+			Expand_packagelist_file "${3}/${1}" "${@}"
+		fi
+	fi
+}
+
+Expand_packagelist_file ()
+{
+	local FILE="${1}"
+	shift
+	shift
+
+	for INCLUDE in `sed -ne 's/^#<include> \(.*\)/\1/gp' "${FILE}"`;
+	do
+		Expand_packagelist "${INCLUDE}" "${@}"
+	done
+	sed -ne 's/^\([^#].*\)/\1\n/gp' "${FILE}"
+}
diff --git a/helpers/lh_binary b/helpers/lh_binary
index 39ba209..fb91cb3 100755
--- a/helpers/lh_binary
+++ b/helpers/lh_binary
@@ -42,13 +42,13 @@ lh_binary_encryption ${*}
 # Prepare images
 lh_binary_linux-image ${*}
 lh_binary_debian-installer ${*}
-lh_binary_live-installer ${*}
 lh_binary_memtest ${*}
 lh_binary_grub ${*}
 lh_binary_syslinux ${*}
 lh_binary_yaboot ${*}
 lh_binary_includes ${*}
 lh_binary_local-includes ${*}
+lh_binary_local-hooks ${*}
 lh_binary_md5sum ${*}
 
 # Building images
diff --git a/helpers/lh_binary_debian-installer b/helpers/lh_binary_debian-installer
index de15f1c..8bb9a77 100755
--- a/helpers/lh_binary_debian-installer
+++ b/helpers/lh_binary_debian-installer
@@ -125,15 +125,47 @@ fi
 
 # Downloading debian-installer
 mkdir -p "${DESTDIR_DI}"
-wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/vmlinuz
-wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/initrd.gz
+
+if [ "${LIVE_DISTRIBUTION}" = "sid" ] # FIXME arch
+then
+	case "${LIVE_ARCHITECTURE}" in
+		amd64)
+			wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" http://people.debian.org/~aba/d-i/images/daily/cdrom/vmlinuz
+			wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" http://people.debian.org/~aba/d-i/images/daily/cdrom/initrd.gz
+			;;
+
+		i386)
+		 	wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" http://people.debian.org/~joeyh/d-i/images/daily/cdrom/vmlinuz
+			wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" http://people.debian.org/~joeyh/d-i/images/daily/cdrom/initrd.gz
+			;;
+	esac
+else
+	wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/vmlinuz
+	wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/initrd.gz
+fi
 
 # Downloading graphical-installer
 if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ] || [ "${LIVE_ARCHITECTURE}" = "powerpc" ]
 then
 	mkdir -p "${DESTDIR_GI}"
-	wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/gtk/vmlinuz
-	wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/gtk/initrd.gz
+
+	if [ "${LIVE_DISTRIBUTION}" = "sid" ] # FIXME arch
+	then
+		case "${LIVE_ARCHITECTURE}" in
+			amd64)
+				wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" http://people.debian.org/~aba/d-i/images/daily/cdrom/gtk/vmlinuz
+				wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" http://people.debian.org/~aba/d-i/images/daily/cdrom/gtk/initrd.gz
+				;;
+
+			i386)
+				wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" http://people.debian.org/~joeyh/d-i/images/daily/cdrom/gtk/vmlinuz
+				wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" http://people.debian.org/~joeyh/d-i/images/daily/cdrom/gtk/initrd.gz
+				;;
+		esac
+	else
+		wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/gtk/vmlinuz
+		wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/gtk/initrd.gz
+	fi
 fi
 
 # Downloading additional packages
@@ -143,11 +175,11 @@ touch chroot/var/lib/dpkg/status
 
 case "${LIVE_ARCHITECTURE}" in
 	amd64)
-		DI_PACKAGES="linux-image-2.6-amd64 lilo grub"
+		DI_PACKAGES="linux-image-2.6-amd64 elilo lilo grub"
 		;;
 
 	i386)
-		DI_PACKAGES="linux-image-2.6-486 linux-image-2.6-686 lilo grub"
+		DI_PACKAGES="linux-image-2.6-486 linux-image-2.6-686 elilo lilo grub"
 		;;
 
 	powerpc)
@@ -199,15 +231,8 @@ gzip -9 -c dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}/Packages
 #gzip -9 -c dists/${LIVE_DISTRIBUTION}/main/source/Sources > dists/${LIVE_DISTRIBUTION}/main/source/Sources
 cd "${OLDPWD}"
 
-# Writing release
-cat > binary/dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}/Release << EOF
-Archive: stable
-Version: 4.0r0
-Component: main
-Origin: Debian
-Label: Debian
-Architecture: ${LIVE_ARCHITECTURE}
-EOF
+# Fetching release
+wget "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/binary-"${LIVE_ARCHITECTURE}"/Release -O binary/dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}/Release
 
 #cat > binary/dists/${LIVE_DISTRIBUTION}/main/source/Release << EOF
 #Archive: stable
@@ -229,12 +254,43 @@ gunzip -c Packages.gz > Packages
 UDEBS="`awk '/Filename: / { print $2 }' Packages`"
 
 # Downloading udebs
-DOWNLOAD=""
 for UDEB in ${UDEBS}
 do
-	DOWNLOAD="$DOWNLOAD ${LIVE_MIRROR_BOOTSTRAP}/${UDEB}"
+	wget "${LIVE_MIRROR_BOOTSTRAP}"/${UDEB}
 done
-echo $DOWNLOAD | xargs wget
+
+# Including local udebs
+if ls ../config/binary_local-udebs/* &> /dev/null
+then
+	for FILE in ../config/binary_local-udebs/*.udeb
+	do
+		SOURCE="`dpkg -f ${FILE} Source | awk '{ print $1 }'`"
+
+		if [ -z "${SOURCE}" ]
+		then
+			SOURCE="`basename ${FILE} | awk -F_ '{ print $1 }'`"
+		fi
+
+		case "${SOURCE}" in
+			lib?*)
+				LETTER="`echo ${SOURCE} | sed 's/\(....\).*/\1/'`"
+				;;
+
+			*)
+				LETTER="`echo ${SOURCE} | sed 's/\(.\).*/\1/'`"
+				;;
+		esac
+
+		# Install directory
+		mkdir -p pool/main/"${LETTER}"/"${SOURCE}"
+
+		# Copy files
+		cp "${FILE}" pool/main/"${LETTER}"/"${SOURCE}"
+
+		# Prefere local udebs over downloaded udebs
+		rm -f "`basename ${FILE} | awk -F_ '{ print $1 }'`"_*.udeb
+	done
+fi
 
 # Excluding udebs
 grep -v "^#" ${LH_BASE:-/usr/share/live-helper}/data/debian-cd/"${LIVE_DISTRIBUTION}"/udeb_exclude > exclude
@@ -304,5 +360,10 @@ pcmciautils-udeb
 wireless-tools-udeb
 EOF
 
+if [ -d binary/pool/main/l/live-installer ]
+then
+	echo "live-installer" >> binary/.disk/udeb_include
+fi
+
 # Creating stage file
 Create_stagefile .stage/binary_debian-installer
diff --git a/helpers/lh_binary_grub b/helpers/lh_binary_grub
index dc22d7f..d559f63 100755
--- a/helpers/lh_binary_grub
+++ b/helpers/lh_binary_grub
@@ -194,7 +194,7 @@ fi
 LINUX="`echo ${LINUX} | sed -e 's#//#/#g'`"
 
 # Assembling debian-installer configuration
-if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ] || [ "${LIVE_LIVE_INSTALLER}" = "enabled" ]
+if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ]
 then
 	LINUX="title\t\tLive:\nroot\n\n${LINUX}"
 
diff --git a/helpers/lh_binary_live-installer b/helpers/lh_binary_live-installer
deleted file mode 100755
index 8517ceb..0000000
--- a/helpers/lh_binary_live-installer
+++ /dev/null
@@ -1,333 +0,0 @@
-#!/bin/sh
-
-# lh_binary_live-installer(1) - install live-installer into binary
-# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
-#
-# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
-# This is free software, and you are welcome to redistribute it
-# under certain conditions; see COPYING for details.
-
-set -e
-
-# Including common functions
-LH_BASE="${LH_BASE:-/usr/share/live-helper}"
-
-for FUNCTION in "${LH_BASE}"/functions/*.sh
-do
-	. "${FUNCTION}"
-done
-
-# Setting static variables
-DESCRIPTION="install live-installer into binary"
-HELP=""
-USAGE="${PROGRAM} [--force]"
-
-Arguments "${@}"
-
-# Reading configuration files
-Read_conffile config/common
-Read_conffile config/bootstrap
-Read_conffile config/chroot
-Read_conffile config/binary
-Read_conffile config/source
-Set_defaults
-
-if [ "${LIVE_LIVE_INSTALLER}" != "enabled" ]
-then
-	exit 0
-fi
-
-Echo_message "Begin installing live-installer..."
-
-# Requiring stage file
-Require_stagefile .stage/bootstrap
-
-# Checking stage file
-Check_stagefile .stage/binary_live-installer
-
-# Checking lock file
-Check_lockfile .lock
-
-# Creating lock file
-Create_lockfile .lock
-
-# Setting destination directory
-case "${LIVE_BINARY_IMAGES}" in
-	iso)
-		DESTDIR="binary/install"
-		DI="cdrom"
-		;;
-
-	net)
-		DESTDIR="tftpboot"
-		DI="netboot"
-
-		Echo_error "Not supported yet (FIXME)"
-		exit 1
-		;;
-
-	tar|usb-hdd)
-		DESTDIR="binary/install"
-		DI="hd-media"
-
-		# Workaround for syslinux (<< 3.36) which doesn't support long file/path names
-		if [ "${LIVE_DISTRIBUTION}" = "etch" ] && [ "${LIVE_BOOTLOADER}" = "syslinux" ]
-		then
-			DESTDIR="binary"
-		fi
-		;;
-esac
-
-# Temporary check for broken syslinux
-if [ "${LIVE_BINARY_IMAGES}" = "iso" ]
-then
-	# Assemble multi-arch
-	if [ -n "${MULTIARCH}" ]
-	then
-		case "${LIVE_ARCHITECTURE}" in
-			amd64)
-				DESTDIR="${DESTDIR}.amd"
-				;;
-
-			i386)
-				DESTDIR="${DESTDIR}.386"
-				;;
-
-			powerpc)
-				DESTDIR="${DESTDIR}.ppc"
-				;;
-		esac
-	fi
-fi
-
-VMLINUZ_DI="vmlinuz"
-INITRD_DI="initrd.gz"
-DESTDIR_DI="${DESTDIR}"
-
-VMLINUZ_GI="gtk/vmlinuz"
-INITRD_GI="gtk/initrd.gz"
-DESTDIR_GI="${DESTDIR}/gtk"
-
-# Workaround for syslinux (<< 3.36) which doesn't support long file/path names
-if [ "${LIVE_DISTRIBUTION}" = "etch" ]
-then
-	if [ "${LIVE_BINARY_IMAGES}" = "tar" ] || [ "${LIVE_BINARY_IMAGES}" = "usb-hdd" ]
-	then
-		VMLINUZ_DI="vmlinuz.di"
-		INITRD_DI="initrddi.gz"
-		DESTDIR_DI="${DESTDIR}"
-
-		VMLINUZ_GI="vmlinuz.gi"
-		INITRD_GI="initrdgi.gz"
-		DESTDIR_GI="${DESTDIR}"
-	fi
-fi
-
-# Downloading debian-installer
-mkdir -p "${DESTDIR_DI}"
-wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/vmlinuz
-wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/initrd.gz
-
-# Downloading graphical-installer
-if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ] || [ "${LIVE_ARCHITECTURE}" = "powerpc" ]
-then
-	mkdir -p "${DESTDIR_GI}"
-	wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/gtk/vmlinuz
-	wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/gtk/initrd.gz
-fi
-
-# Downloading additional packages
-mkdir -p chroot/binary.deb/archives/partial
-mv chroot/var/lib/dpkg/status chroot/var/lib/dpkg/status.tmp
-touch chroot/var/lib/dpkg/status
-
-case "${LIVE_ARCHITECTURE}" in
-	amd64)
-		DI_PACKAGES="linux-image-2.6-amd64 lilo grub"
-		;;
-
-	i386)
-		DI_PACKAGES="linux-image-2.6-486 linux-image-2.6-686 lilo grub"
-		;;
-
-	powerpc)
-		DI_PACKAGES="linux-image-2.6-powerpc linux-image-2.6-powerpc64 linux-image-2.6-powerpc-smp linux-image-2.6-prep yaboot" # FIXME bootloader?
-		;;
-esac
-
-Chroot "apt-get -o Dir::Cache=/binary.deb --download-only install --yes ${DI_PACKAGES}"
-mv chroot/binary.deb ./
-mv chroot/var/lib/dpkg/status.tmp chroot/var/lib/dpkg/status
-
-# Including base debian packages
-if [ -d cache/packages_bootstrap ]
-then
-	for FILE in cache/packages_bootstrap/*.deb binary.deb/archives/*.deb
-	do
-		SOURCE="`dpkg -f ${FILE} Source | awk '{ print $1 }'`"
-
-		if [ -z "${SOURCE}" ]
-		then
-			SOURCE="`basename ${FILE} | awk -F_ '{ print $1 }'`"
-		fi
-
-		case "${SOURCE}" in
-			lib?*)
-				LETTER="`echo ${SOURCE} | sed 's/\(....\).*/\1/'`"
-				;;
-
-			*)
-				LETTER="`echo ${SOURCE} | sed 's/\(.\).*/\1/'`"
-				;;
-		esac
-
-		# Install directory
-		mkdir -p binary/pool/main/"${LETTER}"/"${SOURCE}"
-
-		# Move files
-		cp "${FILE}" binary/pool/main/"${LETTER}"/"${SOURCE}"
-	done
-fi
-
-# Generating deb indices
-mkdir -p binary/dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}
-
-cd binary
-apt-ftparchive packages pool/main > dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}/Packages
-gzip -9 -c dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}/Packages > dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}/Packages.gz
-#apt-ftparchive sources pool/main > dists/${LIVE_DISTRIBUTION}/main/source/Sources
-#gzip -9 -c dists/${LIVE_DISTRIBUTION}/main/source/Sources > dists/${LIVE_DISTRIBUTION}/main/source/Sources
-cd "${OLDPWD}"
-
-# Fetching release
-wget http://"${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/binary-"${LIVE_ARCHITECTURE}"/Release -O binary/dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}/Release
-
-#cat > binary/dists/${LIVE_DISTRIBUTION}/main/source/Release << EOF
-#Archive: stable
-#Version: 4.0r0
-#Component: main
-#Origin: Debian
-#Label: Debian
-#Architecture: source
-#EOF
-
-mkdir binary.udeb
-cd binary.udeb
-
-# Downloading udeb indices
-wget "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/debian-installer/binary-"${LIVE_ARCHITECTURE}"/Packages.gz
-gunzip -c Packages.gz > Packages
-
-# Sorting udebs
-UDEBS="`awk '/Filename: / { print $2 }' Packages`"
-
-# Downloading udebs
-for UDEB in ${UDEBS}
-do
-	wget "${LIVE_MIRROR_BOOTSTRAP}"/${UDEB}
-done
-
-# Including local udebs
-if ls ../config/binary_local-udebs/* &> /dev/null
-then
-	for FILE in ../config/binary_local-udebs/*.udeb
-	do
-		SOURCE="`dpkg -f ${FILE} Source | awk '{ print $1 }'`"
-
-		if [ -z "${SOURCE}" ]
-		then
-			SOURCE="`basename ${FILE} | awk -F_ '{ print $1 }'`"
-		fi
-
-		case "${SOURCE}" in
-			lib?*)
-				LETTER="`echo ${SOURCE} | sed 's/\(....\).*/\1/'`"
-				;;
-
-			*)
-				LETTER="`echo ${SOURCE} | sed 's/\(.\).*/\1/'`"
-				;;
-		esac
-
-		# Install directory
-		mkdir -p pool/main/"${LETTER}"/"${SOURCE}"
-
-		# Copy files
-		cp "${FILE}" pool/main/"${LETTER}"/"${SOURCE}"
-
-		# Prefere local udebs over downloaded udebs
-		rm -f "`basename ${FILE} | awk -F_ '{ print $1 }'`"_*.udeb
-	done
-fi
-
-# Excluding udebs
-grep -v "^#" ${LH_BASE:-/usr/share/live-helper}/data/debian-cd/"${LIVE_DISTRIBUTION}"/udeb_exclude > exclude
-grep -v "^#" ${LH_BASE:-/usr/share/live-helper}/data/debian-cd/"${LIVE_DISTRIBUTION}"/exclude-udebs > exclude
-grep -v "^#" ${LH_BASE:-/usr/share/live-helper}/data/debian-cd/"${LIVE_DISTRIBUTION}"/exclude-udebs-${LIVE_ARCHITECTURE} >> exclude
-
-for EXCLUDE in `cat exclude`
-do
-	rm -f "${EXCLUDE}"_*.udeb
-done
-
-# Moving udebs
-for UDEB in ${UDEBS}
-do
-	if [ -f "`basename ${UDEB}`" ]
-	then
-		mkdir -p `dirname ${UDEB}`
-		mv "`basename ${UDEB}`" "`dirname ${UDEB}`"
-	fi
-done
-
-# Creating udeb indices
-mkdir -p dists/"${LIVE_DISTRIBUTION}"/main/debian-installer/binary-"${LIVE_ARCHITECTURE}"
-apt-ftparchive packages pool/main > dists/"${LIVE_DISTRIBUTION}"/main/debian-installer/binary-"${LIVE_ARCHITECTURE}"/Packages
-gzip -9 -c dists/${LIVE_DISTRIBUTION}/main/debian-installer/binary-${LIVE_ARCHITECTURE}/Packages > dists/${LIVE_DISTRIBUTION}/main/debian-installer/binary-${LIVE_ARCHITECTURE}/Packages.gz
-
-rm -f Packages* exclude
-find . | cpio -dmpu "${OLDPWD}"/binary
-cd "${OLDPWD}"
-
-rm -rf binary.udeb
-rm -rf binary.deb
-
-# Generating release file
-apt-ftparchive \
-	-o APT::FTPArchive::Release::Origin="Debian" \
-	-o APT::FTPArchive::Release::Label="Debian" \
-	-o APT::FTPArchive::Release::Suite="${LIVE_DISTRIBUTION}" \
-	-o APT::FTPArchive::Release::Version="4.0" \
-	-o APT::FTPArchive::Release::Codename="${LIVE_DISTRIBUTION}" \
-	-o APT::FTPArchive::Release::Date="`date -R`" \
-	-o APT::FTPArchive::Release::Architectures="${LIVE_ARCHITECTURE}" \
-	-o APT::FTPArchive::Release::Components="main" \
-	-o APT::FTPArchive::Release::Description="Last updated: `date -R`" \
-release binary/dists/${LIVE_DISTRIBUTION} > binary/dists/${LIVE_DISTRIBUTION}/Release
-
-# Creating dist symlinks
-for DISTRIBUTION in frozen stable testing unstable
-do
-	ln -s ${LIVE_DISTRIBUTION} binary/dists/${DISTRIBUTION}
-done
-
-ln -s . binary/debian
-
-# Creating disk info
-mkdir binary/.disk
-echo "main" > binary/.disk/base_components
-touch binary/.disk/base_installable
-echo "not_complete" > binary/.disk/cd_type
-echo "Debian GNU/Linux ${LIVE_DISTRIBUTION} - Unofficial ${LIVE_ARCHITECTURE} LIVE Binary `date +%Y%m%d-%H:%M`" > binary/.disk/info
-touch binary/.disk/mkisofs
-cat > binary/.disk/udeb_include << EOF
-netcfg
-ethdetect
-pcmcia-cs-udeb
-pcmciautils-udeb
-wireless-tools-udeb
-live-installer
-EOF
-
-# Creating stage file
-Create_stagefile .stage/binary_debian-installer
diff --git a/helpers/lh_binary_local-hooks b/helpers/lh_binary_local-hooks
new file mode 100755
index 0000000..e758247
--- /dev/null
+++ b/helpers/lh_binary_local-hooks
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# lh_binary_local-hooks(1) - execute local hooks in binary
+# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
+#
+# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+# This is free software, and you are welcome to redistribute it
+# under certain conditions; see COPYING for details.
+
+set -e
+
+# Including common functions
+LH_BASE="${LH_BASE:-/usr/share/live-helper}"
+
+for FUNCTION in "${LH_BASE}"/functions/*.sh
+do
+	. "${FUNCTION}"
+done
+
+# Setting static variables
+DESCRIPTION="execute local hooks in binary"
+HELP=""
+USAGE="${PROGRAM} [--force]"
+
+Arguments "${@}"
+
+# Reading configuration files
+Read_conffile config/common
+Read_conffile config/bootstrap
+Read_conffile config/chroot
+Read_conffile config/binary
+Read_conffile config/source
+Set_defaults
+
+Echo_message "Begin executing local hooks..."
+
+# Requiring stage file
+Require_stagefile .stage/bootstrap
+
+# Checking stage file
+Check_stagefile .stage/binary_local-hooks
+
+# Checking lock file
+Check_lockfile .lock
+
+# Creating lock file
+Create_lockfile .lock
+
+# Processing local-hooks
+if ls config/binary_local-hooks/* > /dev/null 2>&1
+then
+	for HOOK in config/binary_local-hooks/*
+	do
+		# Executing hook
+		./"${HOOK}"
+	done
+
+	# Creating stage file
+	Create_stagefile .stage/binary_local-hooks
+fi
diff --git a/helpers/lh_binary_rootfs b/helpers/lh_binary_rootfs
index f2a00f3..8c370b4 100755
--- a/helpers/lh_binary_rootfs
+++ b/helpers/lh_binary_rootfs
@@ -79,7 +79,7 @@ do
 
 		# Restoring old cache
 		mkdir -p binary/"${INITFS}"
-		${LH_ROOT_COMMAND} cp -a cache/stages_rootfs/filesystem.* binary/"${INITFS}"
+		${LH_ROOT_COMMAND} cp -al cache/stages_rootfs/filesystem.* binary/"${INITFS}"
 
 		if [ -n "${LH_ROOT_COMMAND}" ]
 		then
@@ -187,7 +187,7 @@ do
 
 		mkdir -p cache/stages_rootfs
 
-		${LH_ROOT_COMMAND} cp -a binary/"${INITFS}"/filesystem.* cache/stages_rootfs
+		${LH_ROOT_COMMAND} cp -al binary/"${INITFS}"/filesystem.* cache/stages_rootfs
 
 		if [ -n "${LH_ROOT_COMMAND}" ]
 		then
diff --git a/helpers/lh_binary_syslinux b/helpers/lh_binary_syslinux
index d736d5f..73c29e5 100755
--- a/helpers/lh_binary_syslinux
+++ b/helpers/lh_binary_syslinux
@@ -190,16 +190,16 @@ then
 	# Workaround for syslinux (<< 3.36) which doesn't support long file/path names
 	if [ "`basename ${DESTDIR_LIVE}`" = "binary" ]
 	then
-		LINUX="LABEL live\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
-		LINUX="${LINUX}\n\nLABEL live-failsafe\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
+		LINUX="# Debian GNU/Linux - live\nLABEL live\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
+		LINUX="${LINUX}\n\n# Debian GNU/Linux - live-failsafe\nLABEL live-failsafe\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
 	else
-		LINUX="LABEL live\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
-		LINUX="${LINUX}\n\nLABEL live-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
+		LINUX="# Debian GNU/Linux - live\nLABEL live\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
+		LINUX="${LINUX}\n\n# Debian GNU/Linux - live-failsafe\nLABEL live-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
 	fi
 else
 	DEFAULT_FLAVOUR="`echo ${LIVE_LINUX_FLAVOURS} | awk '{ print $1 }'`"
-	LINUX="LABEL live\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
-	LINUX="${LINUX}\n\nLABEL live-failsafe\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
+	LINUX="# Debian GNU/Linux - live\nLABEL live\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
+	LINUX="${LINUX}\n\n# Debian GNU/Linux - live-failsafe\nLABEL live-failsafe\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
 fi
 
 if [ "`echo ${LIVE_LINUX_FLAVOURS} | wc -w`" -gt "1" ]
@@ -210,20 +210,20 @@ then
 		then
 			if [ "${LIVE_BINARY_IMAGES}" = "iso" ]
 			then
-				LINUX="LABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
-				LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
+				LINUX="# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
+				LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
 			else
-				LINUX="LABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} live_BOOTAPPEND"
-				LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
+				LINUX="# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} live_BOOTAPPEND"
+				LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
 			fi
 		else
 			if [ "${LIVE_BINARY_IMAGES}" = "iso" ]
 			then
-				LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
-				LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
+				LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
+				LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
 			else
-				LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
-				LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
+				LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
+				LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
 			fi
 		fi
 	done
@@ -233,7 +233,7 @@ fi
 LINUX="`echo ${LINUX} | sed -e 's#//#/#g'`"
 
 # Assembling debian-installer configuration
-if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ] || [ "${LIVE_LIVE_INSTALLER}" = "enabled" ]
+if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ]
 then
 	VMLINUZ_DI="vmlinuz"
 	INITRD_DI="initrd.gz"
@@ -331,7 +331,7 @@ case "${LIVE_BINARY_IMAGES}" in
 		fi
 
 		# Configure syslinux templates
-		sed -i -e "s#LIVE_LINUX_LIVE#${LINUX}#" -e "s#LIVE_LINUX_INSTALL#${LIVE_LINUX_INSTALL}#" -e "s#LIVE_MEMTEST#${MEMTEST}#" binary/isolinux/isolinux.cfg
+		sed -i -e "s@LIVE_LINUX_LIVE@${LINUX}@" -e "s@LIVE_LINUX_INSTALL@${LIVE_LINUX_INSTALL}@" -e "s@LIVE_MEMTEST@${MEMTEST}@" binary/isolinux/isolinux.cfg
 		sed -i -e "s#LIVE_BOOTAPPEND#${LIVE_BOOTAPPEND}#" binary/isolinux/isolinux.cfg
 		sed -i -e "s/LIVE_DATE/`date +%Y%m%d`/" binary/isolinux/f1.txt
 		sed -i -e "s/LIVE_VERSION/${VERSION}/" binary/isolinux/f10.txt
@@ -385,7 +385,7 @@ case "${LIVE_BINARY_IMAGES}" in
 		fi
 
 		# Configure syslinux templates
-		sed -i -e "s#LIVE_LINUX_LIVE#${LINUX}#" -e "s#LIVE_LINUX_INSTALL#${LIVE_LINUX_INSTALL}#" -e "s#LIVE_MEMTEST#${MEMTEST}#" tftpboot/pxelinux.cfg/default
+		sed -i -e "s@LIVE_LINUX_LIVE@${LINUX}@" -e "s@LIVE_LINUX_INSTALL@${LIVE_LINUX_INSTALL}@" -e "s@LIVE_MEMTEST@${MEMTEST}@" tftpboot/pxelinux.cfg/default
 		sed -i -e "s/LIVE_NET_SERVER/${LIVE_NET_SERVER}/" -e "s#LIVE_NET_PATH#${LIVE_NET_PATH}#" -e "s#LIVE_BOOTAPPEND#${LIVE_BOOTAPPEND}#" tftpboot/pxelinux.cfg/default
 		sed -i -e "s/LIVE_DATE/`date +%Y%m%d`/" tftpboot/pxelinux.cfg/f1.txt
 		sed -i -e "s/LIVE_VERSION/${VERSION}/" tftpboot/pxelinux.cfg/f10.txt
@@ -424,7 +424,7 @@ case "${LIVE_BINARY_IMAGES}" in
 		mkdir -p "${DESTDIR}"
 		cp chroot/usr/lib/syslinux/isolinux.bin "${DESTDIR}"/syslinux.bin
 		cp -r "${LIVE_TEMPLATES}"/syslinux/* "${DESTDIR}"
-		mv binary/isolinux.cfg "${DESTDIR}"/syslinux.cfg
+		mv "${DESTDIR}"/isolinux.cfg "${DESTDIR}"/syslinux.cfg
 
 		# Copying splash screen
 		if [ -f config/binary_syslinux/splash.rle ]
@@ -444,7 +444,7 @@ case "${LIVE_BINARY_IMAGES}" in
 		fi
 
 		# Configure syslinux templates
-		sed -i -e "s#LIVE_LINUX_LIVE#${LINUX}#" -e "s#LIVE_LINUX_INSTALL#${LIVE_LINUX_INSTALL}#" -e "s#LIVE_MEMTEST#${MEMTEST}#" "${DESTDIR}"/syslinux.cfg
+		sed -i -e "s@LIVE_LINUX_LIVE@${LINUX}@" -e "s@LIVE_LINUX_INSTALL@${LIVE_LINUX_INSTALL}@" -e "s@LIVE_MEMTEST@${MEMTEST}@" "${DESTDIR}"/syslinux.cfg
 		sed -i -e "s#LIVE_BOOTAPPEND#${LIVE_BOOTAPPEND}#" "${DESTDIR}"/syslinux.cfg
 		sed -i -e "s/LIVE_DATE/`date +%Y%m%d`/" "${DESTDIR}"/f1.txt
 		sed -i -e "s/LIVE_VERSION/${VERSION}/" "${DESTDIR}"/f10.txt
@@ -453,23 +453,19 @@ case "${LIVE_BINARY_IMAGES}" in
 		rm -f "${DESTDIR}"/pxelinux.cfg
 
 		# Workaround for syslinux (<< 3.36) which doesn't support long file/path names
-		if [ "${LIVE_DISTRIBUTION}" = "etch" ]
+		if [ "${LIVE_DISTRIBUTION}" = "etch" ] && [ "`echo ${LIVE_LINUX_FLAVOURS} | wc -w`" -gt "1" ]
 		then
-			if [ "`echo ${LIVE_LINUX_FLAVOURS} | wc -w`" -gt "1" ]
-			then
-				for FLAVOUR in ${LIVE_LINUX_FLAVOURS}
-				do
-					NUMBER=$(($NUMBER + 1))
-
-					mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER}
-					mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img
-					sed -i -e "s/vmlinuz-.*-${FLAVOUR}/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR}/initrd${NUMBER}.img/g" "${DESTDIR}"/syslinux.cfg
-				done
-			else
-				mv "${DESTDIR_LIVE}"/vmlinuz-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/vmlinuz
-				mv "${DESTDIR_LIVE}"/initrd.img-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/initrd.img
-				sed -i -e "s/vmlinuz-.*-${LIVE_LINUX_FLAVOURS}/vmlinuz/g" -e "s/initrd.img-.*-${LIVE_LINUX_FLAVOURS}/initrd.img/g" "${DESTDIR}"/syslinux.cfg
-			fi
+			for FLAVOUR in ${LIVE_LINUX_FLAVOURS}
+			do
+				NUMBER=$(($NUMBER + 1))
+				mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER}
+				mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img
+				sed -i -e "s/vmlinuz-.*-${FLAVOUR}/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR}/initrd${NUMBER}.img/g" "${DESTDIR}"/syslinux.cfg
+			done
+		else
+			mv "${DESTDIR_LIVE}"/vmlinuz-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/vmlinuz
+			mv "${DESTDIR_LIVE}"/initrd.img-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/initrd.img
+			sed -i -e "s/vmlinuz-.*-${LIVE_LINUX_FLAVOURS}/vmlinuz/g" -e "s/initrd.img-.*-${LIVE_LINUX_FLAVOURS}/initrd.img/g" "${DESTDIR}"/syslinux.cfg
 		fi
 		;;
 esac
diff --git a/helpers/lh_binary_yaboot b/helpers/lh_binary_yaboot
index fea812e..930c4cd 100755
--- a/helpers/lh_binary_yaboot
+++ b/helpers/lh_binary_yaboot
@@ -202,7 +202,7 @@ fi
 LINUX="`echo ${LINUX} | sed -e 's#//#/#g'`"
 
 # Assembling debian-installer configuration
-if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ] || [ "${LIVE_LIVE_INSTALLER}" = "enabled" ]
+if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ]
 then
 	VMLINUZ_DI="vmlinuz"
 	INITRD_DI="initrd.gz"
diff --git a/helpers/lh_bootstrap_cache b/helpers/lh_bootstrap_cache
index 03ae904..a3d05f3 100755
--- a/helpers/lh_bootstrap_cache
+++ b/helpers/lh_bootstrap_cache
@@ -53,7 +53,7 @@ do
 				rm -rf chroot
 
 				# Restoring old cache
-				${LH_ROOT_COMMAND} cp -a cache/stages_bootstrap chroot
+				${LH_ROOT_COMMAND} cp -al cache/stages_bootstrap chroot
 
 				if [ -n "${LH_ROOT_COMMAND}" ]
 				then
@@ -83,7 +83,7 @@ do
 
 				mkdir -p cache
 
-				${LH_ROOT_COMMAND} cp -a chroot cache/stages_bootstrap
+				${LH_ROOT_COMMAND} cp -al chroot cache/stages_bootstrap
 
 				if [ -n "${LH_ROOT_COMMAND}" ]
 				then
diff --git a/helpers/lh_bootstrap_clone b/helpers/lh_bootstrap_clone
deleted file mode 100755
index ce5f29f..0000000
--- a/helpers/lh_bootstrap_clone
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/sh
-
-# lh_bootstrap_clone(1) - bootstrap by cloning the host system
-# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
-#
-# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
-# This is free software, and you are welcome to redistribute it
-# under certain conditions; see COPYING for details.
-
-set -e
-
-# Including common functions
-LH_BASE="${LH_BASE:-/usr/share/live-helper}"
-
-for FUNCTION in "${LH_BASE}"/functions/*.sh
-do
-	. "${FUNCTION}"
-done
-
-# Setting static variables
-DESCRIPTION="bootstrap by cloning the host system"
-HELP=""
-USAGE="${PROGRAM} [--force]"
-
-Arguments "${@}"
-
-# Reading configuration files
-Read_conffile config/common
-Read_conffile config/bootstrap
-Read_conffile config/chroot
-Read_conffile config/binary
-Read_conffile config/source
-Set_defaults
-
-if [ "${LH_BOOTSTRAP}" != "clone" ]
-then
-	exit 0
-fi
-
-Echo_message "Begin bootstrapping system..."
-
-# Ensure that a system is built as root
-lh_testroot
-
-# Checking stage file
-Check_stagefile .stage/bootstrap
-
-# Checking lock file
-Check_lockfile .lock
-
-# Creating lock file
-Create_lockfile .lock
-
-# Read package selection
-dpkg --get-selections
-
-# Read debconf values
-> preseed
-
-# Creating stage file
-Create_stagefile .stage/bootstrap
diff --git a/helpers/lh_chroot_cache b/helpers/lh_chroot_cache
index 2f016a6..0e655be 100755
--- a/helpers/lh_chroot_cache
+++ b/helpers/lh_chroot_cache
@@ -53,7 +53,7 @@ do
 				rm -rf chroot
 
 				# Restoring old cache
-				${LH_ROOT_COMMAND} cp -a cache/stages_chroot chroot
+				${LH_ROOT_COMMAND} cp -al cache/stages_chroot chroot
 
 				if [ -n "${LH_ROOT_COMMAND}" ]
 				then
@@ -83,7 +83,7 @@ do
 
 				mkdir -p cache
 
-				${LH_ROOT_COMMAND} cp -a chroot cache/stages_chroot
+				${LH_ROOT_COMMAND} cp -al chroot cache/stages_chroot
 
 				if [ -n "${LH_ROOT_COMMAND}" ]
 				then
diff --git a/helpers/lh_chroot_linux-image b/helpers/lh_chroot_linux-image
index 0678134..92e5eb5 100755
--- a/helpers/lh_chroot_linux-image
+++ b/helpers/lh_chroot_linux-image
@@ -37,6 +37,9 @@ Require_stagefile .stage/bootstrap
 
 case "${1}" in
 	install)
+		# Restoring cache
+		Restore_cache cache/packages_linux-image
+
 		Echo_message "Configuring file /etc/kernel-img.conf"
 
 		# Checking stage file
@@ -85,6 +88,9 @@ EOF
 				;;
 		esac
 
+		# Saving cache
+		Save_cache cache/packages_linux-image
+
 		# Creating stage file
 		Create_stagefile .stage/chroot_linux-image
 		;;
diff --git a/helpers/lh_chroot_local-packageslists b/helpers/lh_chroot_local-packageslists
index ed914ab..3e814f6 100755
--- a/helpers/lh_chroot_local-packageslists
+++ b/helpers/lh_chroot_local-packageslists
@@ -53,9 +53,9 @@ then
 
 	for PACKAGESLIST in config/chroot_local-packageslists/*
 	do
-		# Copying package list
-		grep -v "^#" "${PACKAGESLIST}" > chroot/root/"`basename ${PACKAGESLIST}`"
-
+		# Generate package list
+		Expand_packagelist "`basename ${PACKAGESLIST}`" "config/chroot_local-packageslists" "${LH_BASE:-/usr/share/live-helper/lists}/lists" > chroot/root/"`basename ${PACKAGESLIST}`"
+		
 		# Installing package list
 		case "${LH_APT}" in
 			apt|apt-get)
diff --git a/helpers/lh_chroot_packageslists b/helpers/lh_chroot_packageslists
index 3735d6b..da796a7 100755
--- a/helpers/lh_chroot_packageslists
+++ b/helpers/lh_chroot_packageslists
@@ -55,8 +55,8 @@ then
 	do
 		if [ -f ${LH_BASE:-/usr/share/live-helper}/lists/"${LIST}" ]
 		then
-			# Copying package list
-			grep -v "^#" ${LH_BASE:-/usr/share/live-helper}/lists/"${LIST}" > chroot/root/"${LIST}"
+			# Generating package list
+			Expand_packagelist "${LIST}" "config/chroot_local-packageslists" "${LH_BASE:-/usr/share/live-helper}/lists" > chroot/root/${LIST}
 
 			# Installing package list
 			case "${LH_APT}" in
diff --git a/helpers/lh_clean b/helpers/lh_clean
index bd22681..d843907 100755
--- a/helpers/lh_clean
+++ b/helpers/lh_clean
@@ -65,7 +65,7 @@ case "${1}" in
 
 		if [ "${PURGE}" != "true" ] && [ -d cache/stages_bootstrap ]
 		then
-			${LH_ROOT_COMMAND} cp -a cache/stages_bootstrap chroot
+			${LH_ROOT_COMMAND} cp -al cache/stages_bootstrap chroot
 			mkdir -p .stage
 			touch .stage/bootstrap
 		fi
diff --git a/helpers/lh_config b/helpers/lh_config
index ef5e423..67ecbfb 100755
--- a/helpers/lh_config
+++ b/helpers/lh_config
@@ -291,6 +291,7 @@ EOF
 
 # Creating lh_binary_* configuration
 mkdir -p "${LIVE_ROOT}"/config/binary_grub
+mkdir -p "${LIVE_ROOT}"/config/binary_local-hooks
 mkdir -p "${LIVE_ROOT}"/config/binary_local-includes
 mkdir -p "${LIVE_ROOT}"/config/binary_local-udebs
 mkdir -p "${LIVE_ROOT}"/config/binary_rootfs
@@ -319,10 +320,6 @@ LIVE_BOOTLOADER="${LIVE_BOOTLOADER}"
 # (Default: ${LIVE_DEBIAN_INSTALLER})
 LIVE_DEBIAN_INSTALLER="${LIVE_DEBIAN_INSTALLER}"
 
-# \$LIVE_LIVE_INSTALLER: set debian-installer + live-installer
-# (Default: ${LIVE_LIVE_INSTALLER})
-LIVE_LIVE_INSTALLER="${LIVE_LIVE_INSTALLER}"
-
 # \$LIVE_ENCRYPTION: set encrytion
 # (Default: empty)
 LIVE_ENCRYPTION="${LIVE_ENCRYPTION}"
@@ -347,7 +344,7 @@ LIVE_ISO_PREPARER="${LIVE_ISO_PREPARER}"
 # (Default: ${LIVE_ISO_PUBLISHER})
 LIVE_ISO_PUBLISHER="${LIVE_ISO_PUBLISHER}"
 
-# \$LIVE_ISO_VOLUME: set iso volume
+# \$LIVE_ISO_VOLUME: set iso volume (max 32 chars)
 # (Default: ${LIVE_ISO_VOLUME})
 LIVE_ISO_VOLUME="${LIVE_ISO_VOLUME}"
 
@@ -384,3 +381,17 @@ LIVE_SOURCE="${LIVE_SOURCE}"
 # (Default: ${LIVE_SOURCE_IMAGES})
 LIVE_SOURCE_IMAGES="${LIVE_SOURCE_IMAGES}"
 EOF
+
+if [ "${CONFIG}" = "clone" ]
+then
+	# Read package selection
+	echo `dpkg --get-selections | awk '{ print $1 }'` > config/chroot_local-packageslists/local-system
+
+	# Read debconf questions
+	if [ ! -f /usr/bin/debconf-get-selections ]
+	then
+		Echo_warning "Please install 'debconf-utils' in order to use this feature."
+	else
+		debconf-get-selections | grep -v deinstall | cut -f1 > config/chroot_local-preseed/local-system
+	fi
+fi
diff --git a/helpers/lh_source_debian-live b/helpers/lh_source_debian-live
index 970e0fd..c51364d 100755
--- a/helpers/lh_source_debian-live
+++ b/helpers/lh_source_debian-live
@@ -59,7 +59,7 @@ fi
 
 # Copy system configuration
 mkdir -p source/debian-live
-cp -a config source/debian-live
+cp -al config source/debian-live
 
 # Create tarball
 cd source
diff --git a/lists/gnome b/lists/gnome
index 6f1d96e..dfe7a0d 100644
--- a/lists/gnome
+++ b/lists/gnome
@@ -1,17 +1,9 @@
 # /usr/share/live-helper/lists/gnome - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: GNOME Desktop
+#<include> gnome-core
 
-# Standard
-console-common kbd locales
-
-# GNOME
-gdm gdm-themes gnome-desktop-environment gnome-cups-manager gnome-screensaver
+gdm-themes gnome-desktop-environment gnome-cups-manager gnome-screensaver
 gnome-themes-extras
-desktop-base
 
 rhythmbox synaptic
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
diff --git a/lists/gnome-core b/lists/gnome-core
index fb39c1a..f4ccebc 100644
--- a/lists/gnome-core
+++ b/lists/gnome-core
@@ -1,14 +1,7 @@
 # /usr/share/live-helper/lists/gnome-core - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: GNOME Core
+#<include> standard-x11
 
-# Standard
-console-common kbd locales
-
-# GNOME Core
 gdm gnome-core
 desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
diff --git a/lists/gnome-full b/lists/gnome-full
index 799a78b..a741247 100644
--- a/lists/gnome-full
+++ b/lists/gnome-full
@@ -1,14 +1,7 @@
 # /usr/share/live-helper/lists/gnome-full - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: GNOME full
+#<include> gnome
 
-# Standard
-console-common kbd locales
-
-# GNOME Full
 gdm gnome
 desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
diff --git a/lists/gnome-junior b/lists/gnome-junior
index 6dfd174..e7d8178 100644
--- a/lists/gnome-junior
+++ b/lists/gnome-junior
@@ -1,23 +1,7 @@
-# /usr/share/live-helper/lists/gnome - package list for live-helper(7)
+# /usr/share/live-helper/lists/gnome-junior - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: Debian Junior (Gnome)
+#<include> gnome
+#<include> junior-pkgs
 
-# Standard
-console-common kbd locales
-
-# GNOME
-gdm gdm-themes gnome-desktop-environment gnome-cups-manager gnome-screensaver
-gnome-themes-extras
-desktop-base
-
-rhythmbox synaptic
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
-
-# Debian Junior
-junior-sound junior-typing junior-internet junior-gnome junior-toys
-junior-games-net junior-games-sim junior-games-gl junior-puzzle junior-arcade
-junior-math junior-writing junior-games-card junior-programming junior-system
-junior-art junior-doc junior-games-text
+junior-gnome 
diff --git a/lists/gnustep b/lists/gnustep
index 1ebbaff..a952fbe 100644
--- a/lists/gnustep
+++ b/lists/gnustep
@@ -1,15 +1,8 @@
 # /usr/share/live-helper/lists/gnustep - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: GNUstep desktop
+#<include> standard-x11
 
-# Standard
-console-common kbd locales
-
-# X11
-xorg xresprobe discover menu
-
-# GNUstep
 wdm
 
 gnustep gnumail.app talksoup.app viewpdf.app wmaker gnustep-icons
diff --git a/lists/junior-pkgs b/lists/junior-pkgs
new file mode 100644
index 0000000..aced543
--- /dev/null
+++ b/lists/junior-pkgs
@@ -0,0 +1,8 @@
+# /usr/share/live-helper/lists/junior-pkgs - package list for live-helper(7)
+
+## LH: Desktop agnostic packages for Debian Junior
+
+junior-sound junior-typing junior-internet junior-toys junior-games-net
+junior-games-sim junior-games-gl junior-puzzle junior-arcade junior-math
+junior-writing junior-games-card junior-programming junior-system junior-art
+junior-doc junior-games-text
diff --git a/lists/kde b/lists/kde
index 77f154f..e8224d6 100644
--- a/lists/kde
+++ b/lists/kde
@@ -1,14 +1,7 @@
 # /usr/share/live-helper/lists/kde - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: KDE
+#<include> kde-core
 
-# Standard
-console-common kbd locales
-
-# KDE
 kde kdm
 desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
diff --git a/lists/kde-core b/lists/kde-core
index d570cb6..349ca2c 100644
--- a/lists/kde-core
+++ b/lists/kde-core
@@ -1,14 +1,7 @@
 # /usr/share/live-helper/lists/kde-core - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: KDE Core
+#<include> standard-x11
 
-# Standard
-console-common kbd locales
-
-# KDE Core
 kde-core kdm
 desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
diff --git a/lists/kde-extra b/lists/kde-extra
index 3835387..a36bca1 100644
--- a/lists/kde-extra
+++ b/lists/kde-extra
@@ -1,20 +1,6 @@
 # /usr/share/live-helper/lists/kde-extra - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: KDE Extra
+#<include> kde-full
 
-# Standard
-console-common kbd locales
-
-# KDE
-kde kdm
-desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
-
-# KDE Full
-koffice
-
-# KDE Extra
 kde-extras
diff --git a/lists/kde-full b/lists/kde-full
index 7807687..de28ebb 100644
--- a/lists/kde-full
+++ b/lists/kde-full
@@ -1,17 +1,6 @@
 # /usr/share/live-helper/lists/kde-full - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: KDE Full
+#<include> kde
 
-# Standard
-console-common kbd locales
-
-# KDE
-kde kdm
-desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
-
-# KDE Full
 koffice
diff --git a/lists/kde-junior b/lists/kde-junior
index 7663c61..559936e 100644
--- a/lists/kde-junior
+++ b/lists/kde-junior
@@ -1,20 +1,7 @@
-# /usr/share/live-helper/lists/kde - package list for live-helper(7)
+# /usr/share/live-helper/lists/kde-junior - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: KDE Junior
+#<include> kde
+#<include> junior-pkgs
 
-# Standard
-console-common kbd locales
-
-# KDE
-kde kdm
-desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
-
-# Debian Junior
-junior-sound junior-typing junior-internet junior-toys junior-games-net
-junior-games-sim junior-games-gl junior-puzzle junior-arcade junior-math
-junior-writing junior-games-card junior-programming junior-system junior-art
-junior-doc junior-games-text junior-kde
+junior-kde
diff --git a/lists/minimal b/lists/minimal
new file mode 100644
index 0000000..8d28f72
--- /dev/null
+++ b/lists/minimal
@@ -0,0 +1,5 @@
+# /usr/share/live-helper/lists/minimal - package list for live-helper(7)
+
+## LH: Minimal
+
+eject file sudo vim-tiny
diff --git a/lists/rescue b/lists/rescue
index 0e8d1ba..9ff9246 100644
--- a/lists/rescue
+++ b/lists/rescue
@@ -1,15 +1,9 @@
 # /usr/share/live-helper/lists/rescue - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
-
-# Standard
-console-common kbd locales
-
-#####  Rescue
+## LH: Rescue
+#<include> standard
 
 ## System
-
 gnupg dash discover gawk grub htop lilo ltrace pstack screen strace units
 
 ## Editors
diff --git a/lists/standard b/lists/standard
index 364e661..03c984d 100644
--- a/lists/standard
+++ b/lists/standard
@@ -1,7 +1,6 @@
 # /usr/share/live-helper/lists/standard - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: Standard
+#<include> minimal
 
-# Standard
 console-common kbd locales
diff --git a/lists/standard-x11 b/lists/standard-x11
index cbd2f50..ce5eae3 100644
--- a/lists/standard-x11
+++ b/lists/standard-x11
@@ -1,11 +1,7 @@
 # /usr/share/live-helper/lists/standard-x11 - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: Standard X11
+#<include> standard
 
-# Standard
-console-common kbd locales
-
-# X11
 xorg xresprobe discover menu
 alsa-base alsa-oss alsa-utils
diff --git a/lists/xfce b/lists/xfce
index fd805ff..0307996 100644
--- a/lists/xfce
+++ b/lists/xfce
@@ -1,14 +1,7 @@
 # /usr/share/live-helper/lists/xfce - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: Xfce
+#<include> standard-x11
 
-# Standard
-console-common kbd locales
-
-# Xfce
 xfce4 gdm
 desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
diff --git a/lists/xfce-junior b/lists/xfce-junior
index 1301735..93becb6 100644
--- a/lists/xfce-junior
+++ b/lists/xfce-junior
@@ -1,20 +1,7 @@
-# /usr/share/live-helper/lists/xfce - package list for live-helper(7)
+# /usr/share/live-helper/lists/xfce-junior - package list for live-helper(7)
 
-# Minimal
-eject file sudo vim-tiny
+## LH: Xfce Debian Junior
+#<include> xfce
+#<include> junior-pkgs
 
-# Standard
-console-common kbd locales
-
-# Xfce
-xfce4 gdm
-desktop-base
-
-xorg xresprobe discover menu
-alsa-base alsa-oss alsa-utils
-
-# Debian Junior
-junior-sound junior-typing junior-internet junior-gnome junior-toys
-junior-games-net junior-games-sim junior-games-gl junior-puzzle junior-arcade
-junior-math junior-writing junior-games-card junior-programming junior-system
-junior-art junior-doc junior-games-text junior-kde
+junior-kde junior-gnome
diff --git a/manpages/lh_binary.de.1 b/manpages/lh_binary.de.1
index 8238a33..022491e 100644
--- a/manpages/lh_binary.de.1
+++ b/manpages/lh_binary.de.1
@@ -1,4 +1,4 @@
-.TH LH_BINARY 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_BINARY 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_binary \- Meta\-Helper f\[:u]r lh_binary_*
diff --git a/manpages/lh_binary.en.1 b/manpages/lh_binary.en.1
index 52ae128..bf2415c 100644
--- a/manpages/lh_binary.en.1
+++ b/manpages/lh_binary.en.1
@@ -1,4 +1,4 @@
-.TH LH_BINARY 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_BINARY 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_binary \- meta\-helper for lh_binary_*
diff --git a/manpages/lh_bootstrap.de.1 b/manpages/lh_bootstrap.de.1
index a262b37..f43a1c3 100644
--- a/manpages/lh_bootstrap.de.1
+++ b/manpages/lh_bootstrap.de.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_BOOTSTRAP 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_bootstrap \- Meta\-Helper f\[:u]r lh_bootstrap_*
diff --git a/manpages/lh_bootstrap.en.1 b/manpages/lh_bootstrap.en.1
index 1e913ea..c5b6e9b 100644
--- a/manpages/lh_bootstrap.en.1
+++ b/manpages/lh_bootstrap.en.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_BOOTSTRAP 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_bootstrap \- meta\-helper for lh_bootstrap_*
diff --git a/manpages/lh_bootstrap_cdebootstrap.de.1 b/manpages/lh_bootstrap_cdebootstrap.de.1
index 8e2cdb9..ae96f53 100644
--- a/manpages/lh_bootstrap_cdebootstrap.de.1
+++ b/manpages/lh_bootstrap_cdebootstrap.de.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP_CDEBOOTSTRAP 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_BOOTSTRAP_CDEBOOTSTRAP 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_bootstrap_cdebootstrap \- erstellt ein Debian-System mit \fIcdebootstrap\fR(1)
diff --git a/manpages/lh_bootstrap_cdebootstrap.en.1 b/manpages/lh_bootstrap_cdebootstrap.en.1
index 7435d61..4338b42 100644
--- a/manpages/lh_bootstrap_cdebootstrap.en.1
+++ b/manpages/lh_bootstrap_cdebootstrap.en.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP_CDEBOOTSTRAP 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_BOOTSTRAP_CDEBOOTSTRAP 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_bootstrap_cdebootstrap \- bootstrap a Debian system with \fIcdebootstrap\fR(1)
diff --git a/manpages/lh_bootstrap_debootstrap.de.1 b/manpages/lh_bootstrap_debootstrap.de.1
index f79991e..dd6d904 100644
--- a/manpages/lh_bootstrap_debootstrap.de.1
+++ b/manpages/lh_bootstrap_debootstrap.de.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP_DEBOOTSTRAP 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_BOOTSTRAP_DEBOOTSTRAP 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_bootstrap_debootstrap \- erstellt ein Debian-System mit \fIdebootstrap\fR(8)
diff --git a/manpages/lh_bootstrap_debootstrap.en.1 b/manpages/lh_bootstrap_debootstrap.en.1
index 58163d9..174f47e 100644
--- a/manpages/lh_bootstrap_debootstrap.en.1
+++ b/manpages/lh_bootstrap_debootstrap.en.1
@@ -1,4 +1,4 @@
-.TH LH_BOOTSTRAP_DEBOOTSTRAP 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_BOOTSTRAP_DEBOOTSTRAP 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_bootstrap_debootstrap \- bootstrap a Debian system with \fIdebootstrap\fR(8)
diff --git a/manpages/lh_build.de.1 b/manpages/lh_build.de.1
index 015b410..519632f 100644
--- a/manpages/lh_build.de.1
+++ b/manpages/lh_build.de.1
@@ -1,4 +1,4 @@
-.TH LH_BUILD 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_BUILD 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_build \- erstellen eines Live-Systemes
diff --git a/manpages/lh_build.en.1 b/manpages/lh_build.en.1
index 92d97ae..1f35366 100644
--- a/manpages/lh_build.en.1
+++ b/manpages/lh_build.en.1
@@ -1,4 +1,4 @@
-.TH LH_BUILD 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_BUILD 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_build \- building a live system
diff --git a/manpages/lh_chroot.de.1 b/manpages/lh_chroot.de.1
index 94d854d..ed07089 100644
--- a/manpages/lh_chroot.de.1
+++ b/manpages/lh_chroot.de.1
@@ -1,4 +1,4 @@
-.TH LH_CHROOT 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_CHROOT 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_chroot \- Meta\-Helper f\[:u]r lh_chroot_*
diff --git a/manpages/lh_chroot.en.1 b/manpages/lh_chroot.en.1
index b990684..13801fa 100644
--- a/manpages/lh_chroot.en.1
+++ b/manpages/lh_chroot.en.1
@@ -1,4 +1,4 @@
-.TH LH_CHROOT 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_CHROOT 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_chroot \- meta\-helper for lh_chroot_*
diff --git a/manpages/lh_clean.de.1 b/manpages/lh_clean.de.1
index b65cc95..f70e71b 100644
--- a/manpages/lh_clean.de.1
+++ b/manpages/lh_clean.de.1
@@ -1,4 +1,4 @@
-.TH LH_CLEAN 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_CLEAN 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_clean \- r\[:a]umt das Build-Verzeichnis auf
diff --git a/manpages/lh_clean.en.1 b/manpages/lh_clean.en.1
index 76b49a6..eff3706 100644
--- a/manpages/lh_clean.en.1
+++ b/manpages/lh_clean.en.1
@@ -1,4 +1,4 @@
-.TH LH_CLEAN 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_CLEAN 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_clean \- clean up system build directories
diff --git a/manpages/lh_source.de.1 b/manpages/lh_source.de.1
index 6f82807..7d40c17 100644
--- a/manpages/lh_source.de.1
+++ b/manpages/lh_source.de.1
@@ -1,4 +1,4 @@
-.TH LH_SOURCE 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_SOURCE 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_source \- Meta\-Helper f\[:u]r lh_source_*
diff --git a/manpages/lh_source.en.1 b/manpages/lh_source.en.1
index 6ff6aa4..63407a5 100644
--- a/manpages/lh_source.en.1
+++ b/manpages/lh_source.en.1
@@ -1,4 +1,4 @@
-.TH LH_SOURCE 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_SOURCE 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_source \- meta\-helper for lh_source_*
diff --git a/manpages/lh_testroot.de.1 b/manpages/lh_testroot.de.1
index 409b6f7..1474993 100644
--- a/manpages/lh_testroot.de.1
+++ b/manpages/lh_testroot.de.1
@@ -1,4 +1,4 @@
-.TH LH_TESTROOT 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LH_TESTROOT 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_testroot \- stellt sicher dass das System als root gebaut wird
diff --git a/manpages/lh_testroot.en.1 b/manpages/lh_testroot.en.1
index 8349873..a9667b0 100644
--- a/manpages/lh_testroot.en.1
+++ b/manpages/lh_testroot.en.1
@@ -1,4 +1,4 @@
-.TH LH_TESTROOT 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LH_TESTROOT 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 lh_testroot \- ensure that a system is built as root
diff --git a/manpages/live-helper.de.7 b/manpages/live-helper.de.7
index b158346..3cf296f 100644
--- a/manpages/live-helper.de.7
+++ b/manpages/live-helper.de.7
@@ -1,4 +1,4 @@
-.TH LIVE\-HELPER 7 "18.06.2007" "1.0~a15" "live\-helper"
+.TH LIVE\-HELPER 7 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 live\-helper \- Debian Live Helper-Programme
diff --git a/manpages/live-helper.en.7 b/manpages/live-helper.en.7
index 586ef22..c4e251f 100644
--- a/manpages/live-helper.en.7
+++ b/manpages/live-helper.en.7
@@ -1,4 +1,4 @@
-.TH LIVE\-HELPER 7 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH LIVE\-HELPER 7 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 live\-helper \- Debian Live helper programs
diff --git a/manpages/make-live.de.1 b/manpages/make-live.de.1
index 9008d84..bce03c4 100644
--- a/manpages/make-live.de.1
+++ b/manpages/make-live.de.1
@@ -1,4 +1,4 @@
-.TH MAKE\-LIVE 1 "18.06.2007" "1.0~a15" "live\-helper"
+.TH MAKE\-LIVE 1 "25.06.2007" "1.0~a16" "live\-helper"
 
 .SH NAME
 make\-live \- erstellt ein Debian Live-System
diff --git a/manpages/make-live.en.1 b/manpages/make-live.en.1
index fef2508..edc60f2 100644
--- a/manpages/make-live.en.1
+++ b/manpages/make-live.en.1
@@ -1,4 +1,4 @@
-.TH MAKE\-LIVE 1 "2007\-06\-18" "1.0~a15" "live\-helper"
+.TH MAKE\-LIVE 1 "2007\-06\-25" "1.0~a16" "live\-helper"
 
 .SH NAME
 make\-live \- build a Debian Live system
-- 
cgit v1.0