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

Bug#826361: debootstrap: please allow the packages to be installed to be customizable via enviroment variables



reopen 826361
thanks

So here's an alternate patch which allows fakechroot to be handled
transparently.  Either patch will work for me.  (Or I can continue to
use my own forked script, if neither is deemed worthy of merging into
the debootstrap upstream.)

Thanks,

						- Ted

>From f2fde5120a3159556c9fab3f90a4e9dba75fdd84 Mon Sep 17 00:00:00 2001
From: Theodore Ts'o <tytso@mit.edu>
Date: Sat, 4 Jun 2016 23:47:48 -0400
Subject: [PATCH] Handle support for fakechroot automatially

Add transparent support for fakechroot, so that --variant=fakechroot
doesn't have to be specified explicitly.

More importantly, this allows commands like "fakechroot fakeroot
debootstrap --variant=minbase ..." to work correctly.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
 scripts/sid | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/scripts/sid b/scripts/sid
index 7b32ac2..75e06b3 100644
--- a/scripts/sid
+++ b/scripts/sid
@@ -28,7 +28,7 @@ work_out_debs () {
 		base="apt"
 	fi
 
-	if doing_variant fakechroot; then
+	if doing_variant fakechroot || test "$FAKECHROOT" = "true"; then
 		# ldd.fake needs binutils
 		required="$required binutils"
 	fi
@@ -53,7 +53,11 @@ first_stage_install () {
 		chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
 	fi
 
-	setup_devices
+	if test "$FAKECHROOT" = "true"; then
+		setup_devices_fakechroot
+	else
+		setup_devices
+	fi
 
 	x_feign_install () {
 		local pkg="$1"
@@ -75,7 +79,9 @@ Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
 }
 
 second_stage_install () {
-	setup_dynamic_devices
+	if test "$FAKECHROOT" != "true"; then
+		setup_dynamic_devices
+	fi
 
 	x_core_install () {
 		smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
@@ -85,7 +91,7 @@ second_stage_install () {
 		baseprog="$(($baseprog + ${1:-1}))"
 	}
 
-	if doing_variant fakechroot; then
+	if doing_variant fakechroot || test "$FAKECHROOT" = "true"; then
 		setup_proc_fakechroot
 	elif doing_variant scratchbox; then
 		true
@@ -115,7 +121,8 @@ second_stage_install () {
 		ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
 	fi
 
-	if doing_variant fakechroot; then
+	if doing_variant fakechroot || test "$FAKECHROOT" = "true"; then
+		export PATH=/usr/sbin:/sbin:$PATH
 		install_fakechroot_tools
 	fi
 
-- 
2.5.0


Reply to: