Package: di-utils Version: 1.00 Severity: important Tags: d-i Packages installing daemons should not be allowed to start the daemon inside /target/. Packages installed with debootstrap will not do this, because debootstrap replaces start-stop-daemon, but apt-install do not do anything to avoid this.
See debian-boot thread "cardmgr start message during base install (extra packages)" for a discussion around this issue. Here is an untested patch with a proposed solution: From: Per Olofsson Subject: Re: cardmgr start message during base install (extra packages) To: debian-boot Date: Thu, 29 Jul 2004 18:09:17 +0200 Petter Reinholdtsen wrote: > Here is a patch to divert start-stop-daemon. Mostly unsteded, but > half of it is cut-n-paste from my upgrade-testing script. And here's an (untested) patch which also adds policy-rc.d support. Furthermore it corrects a problem in your patch: it runs cleanup code if apt-get fails. Index: apt-install =================================================================== --- apt-install (revision 18584) +++ apt-install (working copy) @@ -36,6 +36,42 @@ fi fi +# Create a policy-rc.d to stop maintainer scripts using invoke-rc.d from +# running init scripts +make_policy-rc.d() { + cat > /target/usr/sbin/policy-rc.d <<EOF +#!/bin/sh +exit 101 +EOF + chmod a+rx /target/usr/sbin/policy-rc.d +} +remove_policy-rc.d() { + rm -f /target/usr/sbin/policy-rc.d +} + +# This way to make start-stop-daemon do not work on upgrades, when +# start-stop-daemon is replaced with a new version. I tried to use +# dpkg-divert to solve this, but am not sure I got it right. [pere +# 2004-07-29] +make_dummy_start_stop_daemon() { + cat > /target/sbin/start-stop-daemon.dummy <<EOF +#!/bin/sh +echo 1>&2 +echo 'Warning: Fake start-stop-daemon called, doing nothing.' 1>&2 +exit 0 +EOF + chmod a+rx /target/sbin/start-stop-daemon.dummy + chroot /target dpkg-divert --add --local --rename /sbin/start-stop-daemon + ln -s start-stop-daemon.dummy /target/sbin/start-stop-daemon +} +remove_dummy_start_stop_daemon() { + rm /target/sbin/start-stop-daemon + chroot /target dpkg-divert --remove --local --rename /sbin/start-stop-daemon +} + +make_policy-rc.d +make_dummy_start_stop_daemon + # Unset to avoid problems with packages using debconf. This should # avoid the following error when installing dash: # "/var/lib/dpkg/info/ash/config: 1: Bad file descriptor" @@ -59,8 +95,12 @@ mount -t proc proc /target/proc fi -DEBIAN_FRONTEND=noninteractive \ -chroot /target apt-get -y install $@ < /dev/null >> $log 2>&1 +if ! DEBIAN_FRONTEND=noninteractive \ + chroot /target apt-get -y install $@ < /dev/null >> $log 2>&1; then + remove_dummy_start_stop_daemon + remove_policy-rc.d + exit 1 +fi # Undo the mounts done by the packages during installation. # Reverse sorting to umount the deepest mount points first. @@ -77,4 +117,7 @@ rm -f /tmp/mount.pre +remove_dummy_start_stop_daemon +remove_policy-rc.d + exit 0 -- Pelle -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]