Package: mmdebstrap
Version: 0.4.1-6
Severity: minor
Tags: patch

Hi josch,

I ran into another minor problem with the (unofficial) hooks. If a
--customize-hook removes /sbin/start-stop-daemon.REAL, mmdebstrap fails.
Can we make it cope with that situation? I'm attaching some patches for
you.

Helmut
>From 7c53a346c2c20e5dbff6b30c2a7f7acc6dd280ec Mon Sep 17 00:00:00 2001
From: Helmut Grohne <[email protected]>
Date: Fri, 13 Sep 2019 12:36:02 +0200
Subject: [PATCH 1/3] fix error message about opening s-s-d

---
 mmdebstrap | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mmdebstrap b/mmdebstrap
index 0fdd6ee..5c331aa 100755
--- a/mmdebstrap
+++ b/mmdebstrap
@@ -863,7 +863,7 @@ sub run_chroot(&$) {
 
 	{
 	    move("$options->{root}/sbin/start-stop-daemon", "$options->{root}/sbin/start-stop-daemon.REAL") or error "cannot move start-stop-daemon";
-	    open my $fh, '>', "$options->{root}/sbin/start-stop-daemon" or error "cannot open policy-rc.d: $!";
+	    open my $fh, '>', "$options->{root}/sbin/start-stop-daemon" or error "cannot open start-stop-daemon: $!";
 	    print $fh "#!/bin/sh\n";
 	    print $fh "echo \"Warning: Fake start-stop-daemon called, doing nothing\">&2\n";
 	    close $fh;
-- 
2.20.1

>From 00fd0dc4b31418754a43f4f0c082dc20615a5073 Mon Sep 17 00:00:00 2001
From: Helmut Grohne <[email protected]>
Date: Fri, 13 Sep 2019 12:36:59 +0200
Subject: [PATCH 2/3] make errors about moving s-s-d more verbose

---
 mmdebstrap | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mmdebstrap b/mmdebstrap
index 5c331aa..cd9f96b 100755
--- a/mmdebstrap
+++ b/mmdebstrap
@@ -862,7 +862,7 @@ sub run_chroot(&$) {
 	}
 
 	{
-	    move("$options->{root}/sbin/start-stop-daemon", "$options->{root}/sbin/start-stop-daemon.REAL") or error "cannot move start-stop-daemon";
+	    move("$options->{root}/sbin/start-stop-daemon", "$options->{root}/sbin/start-stop-daemon.REAL") or error "cannot move start-stop-daemon: $!";
 	    open my $fh, '>', "$options->{root}/sbin/start-stop-daemon" or error "cannot open start-stop-daemon: $!";
 	    print $fh "#!/bin/sh\n";
 	    print $fh "echo \"Warning: Fake start-stop-daemon called, doing nothing\">&2\n";
@@ -873,7 +873,7 @@ sub run_chroot(&$) {
 	&{$cmd}();
 
 	# cleanup
-	move("$options->{root}/sbin/start-stop-daemon.REAL", "$options->{root}/sbin/start-stop-daemon") or error "cannot move start-stop-daemon";
+	move("$options->{root}/sbin/start-stop-daemon.REAL", "$options->{root}/sbin/start-stop-daemon") or error "cannot move start-stop-daemon: $!";
 	unlink "$options->{root}/usr/sbin/policy-rc.d" or error "cannot unlink policy-rc.d: $!";
 
     };
-- 
2.20.1

>From 8033519aa0de689f579fe59d4b1142e87c11bdc8 Mon Sep 17 00:00:00 2001
From: Helmut Grohne <[email protected]>
Date: Fri, 13 Sep 2019 12:37:28 +0200
Subject: [PATCH 3/3] allow messing with s-s-d in hooks

Presently, mmdebstrap fails hard if e.g. a --setup-hook removes
start-stop-daemon.REAL.
---
 mmdebstrap | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/mmdebstrap b/mmdebstrap
index cd9f96b..f3a64ba 100755
--- a/mmdebstrap
+++ b/mmdebstrap
@@ -861,7 +861,7 @@ sub run_chroot(&$) {
 	    chmod 0755, "$options->{root}/usr/sbin/policy-rc.d" or error "cannot chmod policy-rc.d: $!";
 	}
 
-	{
+	if (-e "$options->{root}/sbin/start-stop-daemon") {
 	    move("$options->{root}/sbin/start-stop-daemon", "$options->{root}/sbin/start-stop-daemon.REAL") or error "cannot move start-stop-daemon: $!";
 	    open my $fh, '>', "$options->{root}/sbin/start-stop-daemon" or error "cannot open start-stop-daemon: $!";
 	    print $fh "#!/bin/sh\n";
@@ -873,7 +873,9 @@ sub run_chroot(&$) {
 	&{$cmd}();
 
 	# cleanup
-	move("$options->{root}/sbin/start-stop-daemon.REAL", "$options->{root}/sbin/start-stop-daemon") or error "cannot move start-stop-daemon: $!";
+	if (-e "$options->{root}/sbin/start-stop-daemon.REAL") {
+	    move("$options->{root}/sbin/start-stop-daemon.REAL", "$options->{root}/sbin/start-stop-daemon") or error "cannot move start-stop-daemon: $!";
+	}
 	unlink "$options->{root}/usr/sbin/policy-rc.d" or error "cannot unlink policy-rc.d: $!";
 
     };
-- 
2.20.1

Reply via email to