On Wed, Sep 12, 2012 at 09:03:26AM -0400, Daniel Kahn Gillmor wrote: > If i have a GNU/Linux system with /dev/initctl present, and i > debootstrap with --variant=fakechroot as a non-privileged user, the > debootstrap fails with : > > Setting up sysvinit (2.88dsf-32) ... > sysvinit: creating /run/initctl > ln: failed to create symbolic link `/dev/initctl.new': Permission denied > dpkg: error processing sysvinit (--configure): > subprocess installed post-installation script returned error exit status 1 > Setting up e2fsprogs (1.42.5-1) ... > Errors were encountered while processing: > sysvinit > > This appears to be because this stanza is not wrapped in an ischroot test: > > # Replace old control channel (if present) with symlink > if [ -e "$OLDINITCTL" ]; then > ln -s "$INITCTL" "$OLDINITCTL.new" > mv "$OLDINITCTL.new" "$OLDINITCTL" > fi > > I suspect the same issue might be true for this other stanza later in > the postinst: > > # Remove old pipe if present. No longer in use after re-exec. > if [ "$OLDINITCTL" ] && [ -p "$OLDINITCTL" ] > then > rm -f "$OLDINITCTL" > fi
We should probably wrap all of the restart logic (except the inittab stuff) in ischroot checks. Messing with the host's /dev is not worth risking. There was a reason why we did it this way though; it wasn't unintentional. I'll have to remember the reasoning, since I don't want to break something else by accident. Possibly vservers/lxc or some other chroot-like thing. However, why is the host's /dev accessible when bootstrapping--it certainly shouldn't be bind mounted. Is this something which fakechroot is doing? Regards, Roger -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' schroot and sbuild http://alioth.debian.org/projects/buildd-tools `- GPG Public Key F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org