[SCM] debian-live/live-helper branch, master, updated. 1.0_a34-1-12-gcfbadf0

Daniel Baumann daniel at debian.org
Sat Nov 10 17:40:16 UTC 2007


The branch, master has been updated
       via  cfbadf00dc074883f7c09c02bea786d42158f897 (commit)
      from  b4b0384b619efe64cbae0ca1258730d60af33afe (commit)


- Shortlog ------------------------------------------------------------
cfbadf0 Adding option to allow building in fakeroot/fakechroot environment, thanks to An-Cheng Huang <ancheng at vyatta.com>.

Summary of changes:
 functions/chroot.sh              |    9 ++++++++-
 functions/defaults.sh            |    3 +++
 helpers/lh_binary_chroot         |   23 +++++++++++++++++++++--
 helpers/lh_bootstrap_debootstrap |   19 ++++++++++++-------
 helpers/lh_chroot_proc           |   38 +++++++++++++++++++++++++-------------
 helpers/lh_chroot_sysfs          |   28 ++++++++++++++++++++--------
 helpers/lh_config                |   12 +++++++++++-
 7 files changed, 100 insertions(+), 32 deletions(-)
-----------------------------------------------------------------------
Details of changes:

commit cfbadf00dc074883f7c09c02bea786d42158f897
Author: Daniel Baumann <daniel at debian.org>
Date:   Sat Nov 10 18:39:49 2007 +0100

    Adding option to allow building in fakeroot/fakechroot environment, thanks to An-Cheng Huang <ancheng at vyatta.com>.

diff --git a/functions/chroot.sh b/functions/chroot.sh
index ca48e00..17c5f36 100755
--- a/functions/chroot.sh
+++ b/functions/chroot.sh
@@ -15,7 +15,14 @@ Chroot ()
 
 	# Executing commands in chroot
 	Echo_debug "Executing: ${COMMANDS}"
-	${LH_ROOT_COMMAND} chroot chroot /usr/bin/env -i HOME="/root" PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" TERM="${TERM}" ftp_proxy="${LH_APT_FTP_PROXY}" http_proxy="${LH_APT_HTTP_PROXY}" DEBIAN_FRONTEND="${LH_DEBCONF_FRONTEND}" DEBIAN_PRIORITY="${LH_DEBCONF_PRIORITY}" DEBCONF_NOWARNINGS="${LH_DEBCONF_NOWARNINGS}" XORG_CONFIG="custom" ${COMMANDS}
+
+	if [ "${LH_USE_FAKEROOT}" != "enabled" ]
+	then
+		${LH_ROOT_COMMAND} chroot chroot /usr/bin/env -i HOME="/root" PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" TERM="${TERM}" ftp_proxy="${LH_APT_FTP_PROXY}" http_proxy="${LH_APT_HTTP_PROXY}" DEBIAN_FRONTEND="${LH_DEBCONF_FRONTEND}" DEBIAN_PRIORITY="${LH_DEBCONF_PRIORITY}" DEBCONF_NOWARNINGS="${LH_DEBCONF_NOWARNINGS}" XORG_CONFIG="custom" ${COMMANDS}
+	else
+		# Building with fakeroot/fakechroot
+		${LH_ROOT_COMMAND} chroot chroot ${COMMANDS}
+	fi
 
 	return "${?}"
 }
diff --git a/functions/defaults.sh b/functions/defaults.sh
index c389a6c..cc0747a 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -590,4 +590,7 @@ Set_defaults ()
 
 	# Setting image type
 	LH_SOURCE_IMAGES="${LH_SOURCE_IMAGES:-tar}"
+
+	# Setting fakeroot/fakechroot
+	LH_USE_FAKEROOT="${LH_USE_FAKEROOT:-disabled}"
 }
diff --git a/helpers/lh_binary_chroot b/helpers/lh_binary_chroot
index 50d3d67..c0727e0 100755
--- a/helpers/lh_binary_chroot
+++ b/helpers/lh_binary_chroot
@@ -50,12 +50,31 @@ Create_lockfile .lock
 # Normally, virtual filesystems are not mounted here, but people tend to be lazy
 if [ -f chroot/proc/version ]
 then
-	${LH_ROOT_COMMAND} umount chroot/proc
+	if [ "${LH_USE_FAKEROOT}" != "enabled" ]
+then
+		${LH_ROOT_COMMAND} umount chroot/proc
+	else
+		rm -rf chroot/proc
+		mkdir -p chroot/proc
+	fi
 fi
 
 if [ -d chroot/sys/kernel ]
 then
-	${LH_ROOT_COMMAND} umount chroot/sys
+	if [ "${LH_USE_FAKEROOT}" != "enabled" ]
+	then
+		${LH_ROOT_COMMAND} umount chroot/sys
+	else
+		rm -rf chroot/sys
+		mkdir -p chroot/sys
+	fi
+fi
+
+# Copying /dev if using fakeroot
+if [ "${LH_USE_FAKEROOT}" = "enabled" ]
+then
+	rm -rf chroot/dev
+	find /dev | cpio -dmpu chroot
 fi
 
 if [ "${LH_CHROOT_BUILD}" = "disabled" ]
diff --git a/helpers/lh_bootstrap_debootstrap b/helpers/lh_bootstrap_debootstrap
index 3ae6075..838a3de 100755
--- a/helpers/lh_bootstrap_debootstrap
+++ b/helpers/lh_bootstrap_debootstrap
@@ -82,15 +82,20 @@ then
 	DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --exclude=${LH_BOOTSTRAP_EXCLUDE}"
 fi
 
-if [ -z "${LH_BOOTSTRAP_FLAVOUR}" ]
+if [ "${LH_USE_FAKEROOT}" != "enabled" ]
 then
-	case "${LH_PACKAGES_LISTS}" in
-		minimal|mini)
-			DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --variant=buildd"
-			;;
-	esac
+	if [ -z "${LH_BOOTSTRAP_FLAVOUR}" ]
+	then
+		case "${LH_PACKAGES_LISTS}" in
+			minimal|mini)
+				DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --variant=buildd"
+				;;
+		esac
+	else
+		DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --variant=${LH_BOOTSTRAP_FLAVOUR}"
+	fi
 else
-	DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --variant=${LH_BOOTSTRAP_FLAVOUR}"
+	DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --variant=fakechroot"
 fi
 
 if [ "${LH_VERBOSE}" = "true" ]
diff --git a/helpers/lh_chroot_proc b/helpers/lh_chroot_proc
index 0dc12ab..7d5688d 100755
--- a/helpers/lh_chroot_proc
+++ b/helpers/lh_chroot_proc
@@ -52,14 +52,20 @@ case "${1}" in
 		# Creating lock file
 		Create_lockfile .lock
 
-		# Creating mountpoint
-		mkdir -p chroot/proc
+		if [ "${LH_USE_FAKEROOT}" != "enabled" ]
+		then
+			# Creating mountpoint
+			mkdir -p chroot/proc
 
-		# Mounting /proc
-		${LH_ROOT_COMMAND} mount proc-live -t proc chroot/proc
+			# Mounting /proc
+			${LH_ROOT_COMMAND} mount proc-live -t proc chroot/proc
 
-		# Creating stage file
-		Create_stagefile .stage/chroot_proc
+			# Creating stage file
+			Create_stagefile .stage/chroot_proc
+		else
+			rm -rf chroot/proc
+			ln -s /proc chroot/
+		fi
 		;;
 
 	remove)
@@ -69,16 +75,22 @@ case "${1}" in
 		# Creating lock file
 		Create_lockfile .lock
 
-		# Workaround binfmt-support /proc locking
-		if [ -e chroot/proc/sys/fs/binfmt_misc/status ]
+		if [ "${LH_USE_FAKEROOT}" != "enabled" ]
 		then
-			${LH_ROOT_COMMAND} umount chroot/proc/sys/fs/binfmt_misc
+			# Workaround binfmt-support /proc locking
+			if [ -e chroot/proc/sys/fs/binfmt_misc/status ]
+			then
+				${LH_ROOT_COMMAND} umount chroot/proc/sys/fs/binfmt_misc
+			fi
+
+			# Unmounting /proc
+			#fuser -km chroot/proc
+			${LH_ROOT_COMMAND} umount chroot/proc > /dev/null 2>&1
+		else
+			rm -rf chroot/proc
+			mkdir -p chroot/proc
 		fi
 
-		# Unmounting /proc
-		#fuser -km chroot/proc
-		${LH_ROOT_COMMAND} umount chroot/proc > /dev/null 2>&1
-
 		# Removing stage file
 		rm -f .stage/chroot_proc
 		;;
diff --git a/helpers/lh_chroot_sysfs b/helpers/lh_chroot_sysfs
index f9d1f41..fef710d 100755
--- a/helpers/lh_chroot_sysfs
+++ b/helpers/lh_chroot_sysfs
@@ -52,11 +52,17 @@ case "${1}" in
 		# Creating lock file
 		Create_lockfile .lock
 
-		# Create mountpoint
-		mkdir -p chroot/sys
-
-		# Mounting /sys
-		${LH_ROOT_COMMAND} mount sysfs-live -t sysfs chroot/sys
+		if [ "${LH_USE_FAKEROOT}" != "enabled" ]
+		then
+			# Create mountpoint
+			mkdir -p chroot/sys
+
+			# Mounting /sys
+			${LH_ROOT_COMMAND} mount sysfs-live -t sysfs chroot/sys
+		else
+			rm -rf chroot/sys
+			ln -s /sys chroot/
+		fi
 
 		# Creating stage file
 		Create_stagefile .stage/chroot_sysfs
@@ -69,9 +75,15 @@ case "${1}" in
 		# Creating lock file
 		Create_lockfile .lock
 
-		# Unmounting /sys
-		#fuser -km chroot/sys
-		${LH_ROOT_COMMAND} umount chroot/sys > /dev/null 2>&1
+		if [ "${LH_USE_FAKEROOT}" != "enabled" ]
+		then
+			# Unmounting /sys
+			#fuser -km chroot/sys
+			${LH_ROOT_COMMAND} umount chroot/sys > /dev/null 2>&1
+		else
+			rm -rf chroot/sys
+			mkdir -p chroot/sys
+		fi
 
 		# Removing stage file
 		rm -f .stage/chroot_sysfs
diff --git a/helpers/lh_config b/helpers/lh_config
index bb723ec..f17b300 100755
--- a/helpers/lh_config
+++ b/helpers/lh_config
@@ -88,6 +88,7 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\
 \t    [--packages PACKAGE|\"PACKAGES\"]\n\
 \t    [--quiet]\n\
 \t    [--root-command sudo]\n\
+\t    [--use-fakeroot enabled|disabled]\n\
 \t    [--sections SECTION|\"SECTIONS\"]\n\
 \t    [--security enabled|disabled]\n\
 \t    [--source enabled|disabled]\n\
@@ -107,7 +108,7 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\
 
 Local_arguments ()
 {
-	ARGUMENTS="$(getopt --longoptions apt:,apt-ftp-proxy:,apt-http-proxy:,apt-pdiffs:,apt-pipeline:,apt-recommends:,apt-secure:,bootstrap:,cache:,cache-indices:,cache-packages:,cache-stages:,debconf-frontend:,debconf-nowarnings:,debconf-priority:,genisoimage:,initramfs:,losetup:,mode:,root-command:,tasksel:,includes:,templates:,architecture:,bootstrap-config:,bootstrap-flavour:,bootstrap-keyring:,distribution:,mirror-bootstrap:,mirror-bootstrap-security:,mirror-binary:,mirror-binary-security:,sections:,chroot-filesystem:,union-filesystem:,exposed-root:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,packages:,packages-lists:,tasks:,security:,symlinks:,sysvinit:,binary-images:,binary-indices:,bootappend-install:,bootappend-live:,bootloader:,chroot-build:,debian-installer:,debian-installer-daily:,encryption:,grub-splash:,hostname:,iso-application:,iso-preparer:,iso-publisher:,iso-volume:,memtest:,net-root-filesystem:,net-root-mountoptions:,net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:,net-cow-server:,syslinux-splash:,syslinux-timeout:,syslinux-menu:,username:,source:,source-images:,breakpoints,conffile:,debug,force,help,quiet,usage,verbose,version --name=${PROGRAM} --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")"
+	ARGUMENTS="$(getopt --longoptions apt:,apt-ftp-proxy:,apt-http-proxy:,apt-pdiffs:,apt-pipeline:,apt-recommends:,apt-secure:,bootstrap:,cache:,cache-indices:,cache-packages:,cache-stages:,debconf-frontend:,debconf-nowarnings:,debconf-priority:,genisoimage:,initramfs:,losetup:,mode:,root-command:,use-fakeroot:,tasksel:,includes:,templates:,architecture:,bootstrap-config:,bootstrap-flavour:,bootstrap-keyring:,distribution:,mirror-bootstrap:,mirror-bootstrap-security:,mirror-binary:,mirror-binary-security:,sections:,chroot-filesystem:,union-filesystem:,exposed-root:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,packages:,packages-lists:,tasks:,security:,symlinks:,sysvinit:,binary-images:,binary-indices:,bootappend-install:,bootappend-live:,bootloader:,chroot-build:,debian-installer:,debian-installer-daily:,encryption:,grub-splash:,hostname:,iso-application:,iso-preparer:,iso-publisher:,iso-volume:,memtest:,net-root-filesystem:,net-root-mountoptions:,net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:,net-cow-server:,syslinux-splash:,syslinux-timeout:,syslinux-menu:,username:,source:,source-images:,breakpoints,conffile:,debug,force,help,quiet,usage,verbose,version --name=${PROGRAM} --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")"
 
 	if [ "${?}" != "0" ]
 	then
@@ -216,6 +217,11 @@ Local_arguments ()
 				shift 2
 				;;
 
+			--use-fakeroot)
+				LH_USE_FAKEROOT="${2}"
+				shift 2
+				;;
+
 			--tasksel)
 				LH_TASKSEL="${2}"
 				shift 2
@@ -702,6 +708,10 @@ LH_MODE="${LH_MODE}"
 # (Default: empty)
 #LH_ROOT_COMMAND="sudo"
 
+# \$LH_USE_FAKEROOT: use fakeroot/fakechroot
+# (Default: ${LH_USE_FAKEROOT})
+LH_USE_FAKEROOT="${LH_USE_FAKEROOT}"
+
 # \$LH_TASKSEL: set tasksel program
 # (Default: ${LH_TASKSEL})
 LH_TASKSEL="${LH_TASKSEL}"

-- 
debian-live/live-helper



More information about the debian-live-changes mailing list