[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#627439: handling Ubuntu's multiple manifest scheme



On Fri, May 20, 2011 at 05:25:45PM +0100, Colin Watson wrote:
> live-build doesn't currently support this kind of two-stage installation
> except by means of local hooks, and as explained in
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627332#25 I would like
> to find a way to do this without local hooks.  I'm happy to do the
> implementation work, but do you have any ideas on a nice way to do this
> within the structure of live-build?

I've ended up with the attached patch for now.  How does this look?  As
discussed on IRC, I guess you'll want a different way to handle package
lists; I'm only using tasks and a couple of individual packages, so I'm
not really well-placed to judge how package lists might work here.

-- 
Colin Watson                                       [cjwatson@ubuntu.com]
>From e8c24f24dcce3828875736995b1b5d2ed86b62f5 Mon Sep 17 00:00:00 2001
From: Colin Watson <cjwatson@canonical.com>
Date: Fri, 10 Jun 2011 11:59:51 +0100
Subject: [PATCH] Add --live-package-lists, --live-packages, and --live-tasks
 options for Ubuntu.

---
 manpages/en/lb_config.1                    |   12 +++++
 scripts/build/lb_chroot                    |   18 +++++++
 scripts/build/lb_chroot_initramfs          |   52 ++++++++++++++++++++
 scripts/build/lb_chroot_install-packages   |   22 +++++++-
 scripts/build/lb_chroot_linux-image        |   12 -----
 scripts/build/lb_chroot_local-packagelists |   26 ++++++++--
 scripts/build/lb_chroot_local-packages     |   24 +++++++--
 scripts/build/lb_chroot_manifest           |   73 ++++++++++++++++++++++++++++
 scripts/build/lb_chroot_packagelists       |   26 ++++++++--
 scripts/build/lb_chroot_packages           |   26 ++++++++--
 scripts/build/lb_chroot_tasks              |   30 +++++++++---
 scripts/build/lb_clean                     |    2 +-
 scripts/build/lb_config                    |   33 ++++++++++++-
 13 files changed, 311 insertions(+), 45 deletions(-)
 create mode 100755 scripts/build/lb_chroot_initramfs
 create mode 100755 scripts/build/lb_chroot_manifest

diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index 9e2f858..542ebfa 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -135,6 +135,12 @@
 .br
 	[\fB\-\-linux\-packages\fR \fI"PACKAGES"\fR]
 .br
+	[\fB\-\-live\-package\-lists\fR \fILIST\fR|\fI"LISTS"\fR]
+.br
+	[\fB\-\-live\-packages\fR \fIPACKAGE\fR|\fI"PACKAGES"\fR]
+.br
+	[\fB\-\-live\-tasks\fR \fITASK\fR|"\fITASKS\fR"]
+.br
 	[\fB\-\-losetup\fR losetup|losetup.orig]
 .br
 	[\fB\-\-memtest\fR memtest86+|memtest86|none]
@@ -383,6 +389,12 @@ sets the language of a live system by installing l10n related packages. It doesn
 sets the kernel flavours to be installed. Note that in case you specify more than that the first will be configured the default kernel that gets booted.
 .IP "\fB\-\-linux\-packages\fR ""\fIPACKAGES\fR""" 4
 sets the internal name of the kernel packages naming scheme. If you use debian kernel packages, you will not have to adjust it. If you decide to use custom kernel packages that do not follow the debian naming scheme, remember to set this option to the stub of the packages only (for debian this is linux\-image\-2.6), so that \fISTUB\fR-\fIFLAVOUR\fR results in a valid package name (for debian e.g. linux\-image\-2.6\-486). Preferably you use the meta package name, if any, for the stub, so that your configuration is ABI independent. Also don't forget that you have to include stubs of the binary modules packages for unionfs or aufs, and squashfs if you built them out-of-tree.
+.IP "\fB\-\-live\-package\-lists\fR \fILIST\fR|""\fILISTS\fR""" 4
+defines which lists available in /usr/share/live/build/lists should be used for the second installation pass. By default, no lists are used. Note that in case you have local package lists, you don't need to list them here. Putting them into config/chroot_local-packagelists is enough (the filename needs to have the .list suffix though). Packages installed in the first pass rather than the second will be listed in a separate manifest file (ending in "\-desktop"); an installer which is aware of this can arrange for only packages from the first pass to end up on an installed system.
+.IP "\fB\-\-live\-packages\fR \fIPACKAGE\fR|""\fIPACKAGES\fR""" 4
+defines one or more packages to be installed in the live system for the second installation pass. This is a quick and convenient place to add a few packages when building an image (limited by the max length of shell). Packages that should be permanently installed should be put into a local packages list.
+.IP "\fB\-\-live\-tasks\fR \fITASK\fR|""\fITASKS\fR""" 4
+defines one or more package tasks to be installed in the live system for the second installation pass. This is a quick and convenient way to get a reasonable default selection of packages suitable for most users when building an image, but it results in quite big images. If you want to have finer grained package selections, local package lists should be used instead.
 .IP "\fB\-\-losetup\fR losetup|losetup.orig" 4
 sets the filename of the losetup binary from the host system that should be used. This is autodetected and does generally not need any customization.
 .IP "\fB\-\-memtest\fR memtest86+|memtest86|none" 4
diff --git a/scripts/build/lb_chroot b/scripts/build/lb_chroot
index 8e57535..2a1e9f6 100755
--- a/scripts/build/lb_chroot
+++ b/scripts/build/lb_chroot
@@ -53,14 +53,32 @@ lb chroot_sources install ${*}
 
 # Customizing chroot
 lb chroot_linux-image ${*}
+if [ "${LB_MODE}" != "ubuntu" ]
+then
+	lb chroot_initramfs ${*}
+fi
 lb chroot_preseed ${*}
 lb chroot_local-preseed ${*}
+
 lb chroot_packagelists ${*}
 lb chroot_local-packagelists ${*}
 lb chroot_packages ${*}
 lb chroot_local-packages ${*}
 lb chroot_install-packages ${*}
 lb chroot_tasks ${*}
+
+if [ "${LB_MODE}" = "ubuntu" ]
+then
+	lb chroot_manifest ${*}
+	lb chroot_initramfs ${*}
+	lb chroot_packagelists live ${*}
+	lb chroot_local-packagelists live ${*}
+	lb chroot_packages live ${*}
+	lb chroot_local-packages live ${*}
+	lb chroot_install-packages live ${*}
+	lb chroot_tasks live ${*}
+fi
+
 lb chroot_localization ${*}
 lb chroot_local-includes ${*}
 lb chroot_local-patches ${*}
diff --git a/scripts/build/lb_chroot_initramfs b/scripts/build/lb_chroot_initramfs
new file mode 100755
index 0000000..942c2f4
--- /dev/null
+++ b/scripts/build/lb_chroot_initramfs
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+## live-build(7) - System Build Scripts
+## Copyright (C) 2006-2011 Daniel Baumann <daniel@debian.org>
+##
+## live-build 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
+. "${LB_BASE:-/usr/share/live/build}"/scripts/build.sh
+
+# Setting static variables
+DESCRIPTION="$(Echo 'schedule initramfs packages for installation')"
+HELP=""
+USAGE="${PROGRAM} [--force]"
+
+Arguments "${@}"
+
+# Reading configuration files
+Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
+Set_defaults
+
+# Requiring stage file
+Require_stagefile .stage/config .stage/bootstrap
+
+# Checking stage file
+Check_stagefile .stage/chroot_initramfs
+
+# Checking lock file
+Check_lockfile .lock
+
+# Creating lock file
+Create_lockfile .lock
+
+# Queue installation of ${LB_INITRAMFS}
+if [ "${LB_INITRAMFS}" != "none" ]
+then
+	echo ${LB_INITRAMFS} >> chroot/root/chroot_packages
+fi
+
+# Queue installation of live-config
+if [ "${LB_INITSYSTEM}" != "none" ]
+then
+	echo "live-config live-config-${LB_INITSYSTEM}" >> chroot/root/chroot_packages
+fi
+
+# Creating stage file
+Create_stagefile .stage/chroot_initramfs
diff --git a/scripts/build/lb_chroot_install-packages b/scripts/build/lb_chroot_install-packages
index a0e2684..ac80d15 100755
--- a/scripts/build/lb_chroot_install-packages
+++ b/scripts/build/lb_chroot_install-packages
@@ -16,7 +16,7 @@ set -e
 # Setting static variables
 DESCRIPTION="$(Echo 'install queued packages into chroot')"
 HELP=""
-USAGE="${PROGRAM} [--force]"
+USAGE="${PROGRAM} [live] [--force]"
 
 Arguments "${@}"
 
@@ -26,11 +26,27 @@ Set_defaults
 
 Echo_message "Begin installing packages..."
 
+case "${1}" in
+	"")
+		PACKAGE_LISTS="${LB_PACKAGE_LISTS}"
+		STAGE=install-packages
+		;;
+
+	live)
+		PACKAGE_LISTS="${LB_LIVE_PACKAGE_LISTS}"
+		STAGE=install-packages-live
+		;;
+
+	*)
+		Usage
+		;;
+esac
+
 # Requiring stage file
 Require_stagefile .stage/config .stage/bootstrap
 
 # Checking stage file
-Check_stagefile .stage/chroot_install-packages
+Check_stagefile .stage/chroot_${STAGE}
 
 # Checking lock file
 Check_lockfile .lock
@@ -63,4 +79,4 @@ then
 fi
 
 # Creating stage file
-Create_stagefile .stage/chroot_install-packages
+Create_stagefile .stage/chroot_${STAGE}
diff --git a/scripts/build/lb_chroot_linux-image b/scripts/build/lb_chroot_linux-image
index 39ee0fa..cf0dc82 100755
--- a/scripts/build/lb_chroot_linux-image
+++ b/scripts/build/lb_chroot_linux-image
@@ -54,18 +54,6 @@ then
 	done
 fi
 
-# Queue installation of linux-image and ${LB_INITRAMFS}
-if [ "${LB_INITRAMFS}" != "none" ]
-then
-	echo ${LB_INITRAMFS} >> chroot/root/chroot_packages
-fi
-
-# Queue installation of live-config
-if [ "${LB_INITSYSTEM}" != "none" ]
-then
-	echo "live-config live-config-${LB_INITSYSTEM}" >> chroot/root/chroot_packages
-fi
-
 # Do initsystem specific hacks
 if [ "${LB_INITSYSTEM}" != "sysvinit" ]
 then
diff --git a/scripts/build/lb_chroot_local-packagelists b/scripts/build/lb_chroot_local-packagelists
index 2f1da90..e847938 100755
--- a/scripts/build/lb_chroot_local-packagelists
+++ b/scripts/build/lb_chroot_local-packagelists
@@ -16,7 +16,7 @@ set -e
 # Setting static variables
 DESCRIPTION="$(Echo 'queue install of local package lists into chroot')"
 HELP=""
-USAGE="${PROGRAM} [--force]"
+USAGE="${PROGRAM} [live] [--force]"
 
 Arguments "${@}"
 
@@ -26,11 +26,25 @@ Set_defaults
 
 Echo_message "Begin queueing installation of local package lists..."
 
+case "${1}" in
+	"")
+		STAGE=local-packagelists
+		;;
+
+	live)
+		STAGE=local-packagelists-live
+		;;
+
+	*)
+		Usage
+		;;
+esac
+
 # Requiring stage file
 Require_stagefile .stage/config .stage/bootstrap
 
 # Checking stage file
-Check_stagefile .stage/chroot_local-packagelists
+Check_stagefile .stage/chroot_${STAGE}
 
 # Checking lock file
 Check_lockfile .lock
@@ -38,15 +52,15 @@ Check_lockfile .lock
 # Creating lock file
 Create_lockfile .lock
 
-if ls config/chroot_local-packagelists/*.list > /dev/null 2>&1
+if ls config/chroot_${STAGE}/*.list > /dev/null 2>&1
 then
-	for LIST in config/chroot_local-packagelists/*.list
+	for LIST in config/chroot_${STAGE}/*.list
 	do
 		# Generating local package list
-		Expand_packagelist "$(basename ${LIST})" "config/chroot_local-packagelists" \
+		Expand_packagelist "$(basename ${LIST})" "config/chroot_${STAGE}" \
 			>> chroot/root/chroot_packages
 	done
 
 	# Creating stage file
-	Create_stagefile .stage/chroot_local-packagelists
+	Create_stagefile .stage/chroot_${STAGE}
 fi
diff --git a/scripts/build/lb_chroot_local-packages b/scripts/build/lb_chroot_local-packages
index bca5c5e..926fb83 100755
--- a/scripts/build/lb_chroot_local-packages
+++ b/scripts/build/lb_chroot_local-packages
@@ -16,7 +16,7 @@ set -e
 # Setting static variables
 DESCRIPTION="$(Echo 'queue install of local packages into chroot')"
 HELP=""
-USAGE="${PROGRAM} [--force]"
+USAGE="${PROGRAM} [live] [--force]"
 
 Arguments "${@}"
 
@@ -26,11 +26,25 @@ Set_defaults
 
 Echo_message "Begin queueing installation of local packages..."
 
+case "${1}" in
+	"")
+		STAGE=local-packages
+		;;
+
+	live)
+		STAGE=local-packages-live
+		;;
+
+	*)
+		Usage
+		;;
+esac
+
 # Requiring stage file
 Require_stagefile .stage/config .stage/bootstrap
 
 # Checking stage file
-Check_stagefile .stage/chroot_local-packages
+Check_stagefile .stage/chroot_${STAGE}
 
 # Checking lock file
 Check_lockfile .lock
@@ -38,11 +52,11 @@ Check_lockfile .lock
 # Creating lock file
 Create_lockfile .lock
 
-if Find_files chroot/root/local-packages/*.deb
+if Find_files chroot/root/${STAGE}/*.deb
 then
-	gunzip < chroot/root/local-packages/Packages.gz | awk '/^Package: / { print $2 }' \
+	gunzip < chroot/root/${STAGE}/Packages.gz | awk '/^Package: / { print $2 }' \
 		>> chroot/root/chroot_packages
 
 	# Creating stage file
-	Create_stagefile .stage/chroot_local-packages
+	Create_stagefile .stage/chroot_${STAGE}
 fi
diff --git a/scripts/build/lb_chroot_manifest b/scripts/build/lb_chroot_manifest
new file mode 100755
index 0000000..d4ccb07
--- /dev/null
+++ b/scripts/build/lb_chroot_manifest
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+## live-build(7) - System Build Scripts
+## Copyright (C) 2006-2011 Daniel Baumann <daniel@debian.org>
+##
+## live-build 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
+. "${LB_BASE:-/usr/share/live/build}"/scripts/build.sh
+
+# Setting static variables
+DESCRIPTION="$(Echo 'create manifest')"
+HELP=""
+USAGE="${PROGRAM} [--force]"
+
+Arguments "${@}"
+
+# Reading configuration files
+Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
+Set_defaults
+
+Echo_message "Begin creating manifest..."
+
+# Requiring stage file
+Require_stagefile .stage/config .stage/bootstrap
+
+# Checking stage file
+Check_stagefile .stage/chroot_manifest
+
+# Checking lock file
+Check_lockfile .lock
+
+# Creating lock file
+Create_lockfile .lock
+
+case "${LB_INITRAMFS}" in
+	casper)
+		INITFS="casper"
+		SUFFIX="manifest-desktop"
+		;;
+
+	live-boot)
+		INITFS="live"
+		SUFFIX="packages-desktop"
+		;;
+
+	*)
+		INITFS="boot"
+		SUFFIX="packages-desktop"
+		;;
+esac
+
+# We output directly to binary/.  This is awkward, but seems less awkward
+# than creating chroot.* files and copying them over later, or than creating
+# files under chroot/ which need to be removed before building the
+# filesystem image.
+
+# Creating directory
+mkdir -p binary/${INITFS}
+
+# Add filesystem.packages-desktop
+Chroot chroot "dpkg-query -W" > binary/"${INITFS}"/filesystem.${SUFFIX}
+
+# Copy manifest as build output.
+cp binary/"${INITFS}"/filesystem.${SUFFIX} binary.${SUFFIX}
+
+# Creating stage file
+Create_stagefile .stage/chroot_manifest
diff --git a/scripts/build/lb_chroot_packagelists b/scripts/build/lb_chroot_packagelists
index d3b178b..351d126 100755
--- a/scripts/build/lb_chroot_packagelists
+++ b/scripts/build/lb_chroot_packagelists
@@ -16,7 +16,7 @@ set -e
 # Setting static variables
 DESCRIPTION="$(Echo 'queue install of package lists into chroot')"
 HELP=""
-USAGE="${PROGRAM} [--force]"
+USAGE="${PROGRAM} [live] [--force]"
 
 Arguments "${@}"
 
@@ -26,11 +26,27 @@ Set_defaults
 
 Echo_message "Begin queueing installation of package lists..."
 
+case "${1}" in
+	"")
+		PACKAGE_LISTS="${LB_PACKAGE_LISTS}"
+		STAGE=packagelists
+		;;
+
+	live)
+		PACKAGE_LISTS="${LB_LIVE_PACKAGE_LISTS}"
+		STAGE=packagelists-live
+		;;
+
+	*)
+		Usage
+		;;
+esac
+
 # Requiring stage file
 Require_stagefile .stage/config .stage/bootstrap
 
 # Checking stage file
-Check_stagefile .stage/chroot_packagelists
+Check_stagefile .stage/chroot_${STAGE}
 
 # Checking lock file
 Check_lockfile .lock
@@ -38,15 +54,15 @@ Check_lockfile .lock
 # Creating lock file
 Create_lockfile .lock
 
-if [ -n "${LB_PACKAGE_LISTS}" ] && [ "${LB_PACKAGE_LISTS}" != "none" ]
+if [ -n "${PACKAGE_LISTS}" ] && [ "${PACKAGE_LISTS}" != "none" ]
 then
 
-	for LIST in ${LB_PACKAGE_LISTS}
+	for LIST in ${PACKAGE_LISTS}
 	do
 		# Generating package list
 		Expand_packagelist "${LIST}" >> chroot/root/chroot_packages
 	done
 
 	# Creating stage file
-	Create_stagefile .stage/chroot_packagelists
+	Create_stagefile .stage/chroot_${STAGE}
 fi
diff --git a/scripts/build/lb_chroot_packages b/scripts/build/lb_chroot_packages
index 174a9aa..dcd179c 100755
--- a/scripts/build/lb_chroot_packages
+++ b/scripts/build/lb_chroot_packages
@@ -16,7 +16,7 @@ set -e
 # Setting static variables
 DESCRIPTION="$(Echo 'queue install of packages into chroot')"
 HELP=""
-USAGE="${PROGRAM} [--force]"
+USAGE="${PROGRAM} [live] [--force]"
 
 Arguments "${@}"
 
@@ -26,11 +26,27 @@ Set_defaults
 
 Echo_message "Begin queueing installation of packages..."
 
+case "${1}" in
+	"")
+		PACKAGES="${LB_PACKAGES}"
+		STAGE=packages
+		;;
+
+	live)
+		PACKAGES="${LB_LIVE_PACKAGES}"
+		STAGE=packages-live
+		;;
+
+	*)
+		Usage
+		;;
+esac
+
 # Requiring stage file
 Require_stagefile .stage/config .stage/bootstrap
 
 # Checking stage file
-Check_stagefile .stage/chroot_packages
+Check_stagefile .stage/chroot_${STAGE}
 
 # Checking lock file
 Check_lockfile .lock
@@ -38,10 +54,10 @@ Check_lockfile .lock
 # Creating lock file
 Create_lockfile .lock
 
-if [ -n "${LB_PACKAGES}" ] && [ "${LB_PACKAGES}" != "none" ]
+if [ -n "${PACKAGES}" ] && [ "${PACKAGES}" != "none" ]
 then
-	echo ${LB_PACKAGES} >> chroot/root/chroot_packages
+	echo ${PACKAGES} >> chroot/root/chroot_packages
 
 	# Creating stage file
-	Create_stagefile .stage/chroot_packages
+	Create_stagefile .stage/chroot_${STAGE}
 fi
diff --git a/scripts/build/lb_chroot_tasks b/scripts/build/lb_chroot_tasks
index 477d755..d5851d6 100755
--- a/scripts/build/lb_chroot_tasks
+++ b/scripts/build/lb_chroot_tasks
@@ -16,7 +16,7 @@ set -e
 # Setting static variables
 DESCRIPTION="$(Echo 'install tasks into chroot')"
 HELP=""
-USAGE="${PROGRAM} [--force]"
+USAGE="${PROGRAM} [live] [--force]"
 
 Arguments "${@}"
 
@@ -26,11 +26,27 @@ Set_defaults
 
 Echo_message "Begin installing tasks..."
 
+case "${1}" in
+	"")
+		TASKS="${LB_TASKS}"
+		STAGE=tasks
+		;;
+
+	live)
+		TASKS="${LB_LIVE_TASKS}"
+		STAGE=tasks-live
+		;;
+
+	*)
+		Usage
+		;;
+esac
+
 # Requiring stage file
 Require_stagefile .stage/config .stage/bootstrap
 
 # Checking stage file
-Check_stagefile .stage/chroot_tasks
+Check_stagefile .stage/chroot_${STAGE}
 
 # Checking lock file
 Check_lockfile .lock
@@ -38,7 +54,7 @@ Check_lockfile .lock
 # Creating lock file
 Create_lockfile .lock
 
-if [ -n "${LB_TASKS}" ] && [ "${LB_TASKS}" != "none" ]
+if [ -n "${TASKS}" ] && [ "${TASKS}" != "none" ]
 then
 	# Restoring cache
 	Restore_cache cache/packages_chroot
@@ -65,7 +81,7 @@ then
 	case "${LB_TASKSEL}" in
 		apt)
 			APT_TASKS=
-			for TASK in ${LB_TASKS}
+			for TASK in ${TASKS}
 			do
 				APT_TASKS="${APT_TASKS:+$APT_TASKS }$TASK^"
 			done
@@ -73,11 +89,11 @@ then
 			;;
 
 		aptitude)
-			Chroot chroot "aptitude ${APTITUDE_OPTIONS} install ${LB_TASKS}"
+			Chroot chroot "aptitude ${APTITUDE_OPTIONS} install ${TASKS}"
 			;;
 
 		tasksel)
-			for TASK in ${LB_TASKS}
+			for TASK in ${TASKS}
 			do
 				case "${TASK}" in
 					gnome*)
@@ -113,5 +129,5 @@ then
 	Save_cache cache/packages_chroot
 
 	# Creating stage file
-	Create_stagefile .stage/chroot_tasks
+	Create_stagefile .stage/chroot_${STAGE}
 fi
diff --git a/scripts/build/lb_clean b/scripts/build/lb_clean
index d690a3a..4e03bc1 100755
--- a/scripts/build/lb_clean
+++ b/scripts/build/lb_clean
@@ -95,7 +95,7 @@ do
 			rm -f binary*.img
 			rm -f binary*.tar.gz
 			rm -f binary.sh
-			rm -f binary.list binary.packages md5sum.txt
+			rm -f binary.list binary.packages* binary.manifest* md5sum.txt
 
 			rm -rf binary
 			rm -rf tftpboot
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index f129255..03164fc 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -92,6 +92,9 @@ USAGE="${PROGRAM}   [--apt apt|aptitude]\n\
 \t    [-l|--language LANGUAGE]\n\
 \t    [-k|--linux-flavours FLAVOUR|\"FLAVOURS\"]\n\
 \t    [--linux-packages \"PACKAGES\"]\n\
+\t    [--live-package-lists LIST|\"LISTS\"]\n\
+\t    [--live-packages PACKAGE|\"PACKAGES\"]\n\
+\t    [--live-tasks TASK|\"TASKS\"]\n\
 \t    [--losetup losetup|losetup.orig]\n\
 \t    [--memtest memtest86+|memtest86|none]\n\
 \t    [-m|--parent-mirror-bootstrap URL]\n\
@@ -162,7 +165,8 @@ Local_arguments ()
 		mirror-binary-security:,mirror-binary-volatile:,mirror-binary-backports:,mirror-debian-installer:,
 		archive-areas:,parent-archive-areas:,chroot-filesystem:,exposed-root:,virtual-root-size:,
 		gzip-options:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,
-		packages:,package-lists:,tasks:,security:,volatile:,backports:,binary-filesystem:,binary-images:,binary-remove-linux:,
+		packages:,package-lists:,tasks:,live-packages:,live-package-lists:,live-tasks:,
+		security:,volatile:,backports:,binary-filesystem:,binary-images:,binary-remove-linux:,
 		apt-indices:,bootappend-install:,bootappend-live:,bootloader:,checksums:,compression:,build-with-chroot:,
 		debian-installer:,debian-installer-distribution:,debian-installer-preseedfile:,debian-installer-gui:,
 		grub-splash:,hostname:,isohybrid-options:,iso-application:,iso-preparer:,iso-publisher:,
@@ -580,6 +584,21 @@ Local_arguments ()
 				shift 2
 				;;
 
+			--live-packages)
+				LB_LIVE_PACKAGES="${2}"
+				shift 2
+				;;
+
+			--live-package-lists)
+				LB_LIVE_PACKAGE_LISTS="${2}"
+				shift 2
+				;;
+
+			--live-tasks)
+				LB_LIVE_TASKS="${2}"
+				shift 2
+				;;
+
 			--security)
 				LB_SECURITY="${2}"
 				shift 2
@@ -1230,6 +1249,18 @@ LB_PACKAGE_LISTS="${LB_PACKAGE_LISTS}"
 # (Default: empty)
 LB_TASKS="${LB_TASKS}"
 
+# \$LB_LIVE_PACKAGES: set packages to install in second pass
+# (Default: ${LB_LIVE_PACKAGES})
+LB_LIVE_PACKAGES="${LB_LIVE_PACKAGES}"
+
+# \$LB_LIVE_PACKAGE_LISTS: set package list to install in second pass
+# (Default: ${LB_LIVE_PACKAGE_LISTS})
+LB_LIVE_PACKAGE_LISTS="${LB_LIVE_PACKAGE_LISTS}"
+
+# \$LB_LIVE_TASKS: set tasks to install in second pass
+# (Default: ${LB_LIVE_TASKS})
+LB_LIVE_TASKS="${LB_LIVE_TASKS}"
+
 # \$LB_SECURITY: enable security updates
 # (Default: ${LB_SECURITY})
 LB_SECURITY="${LB_SECURITY}"
-- 
1.7.5.3


Reply to: