[Pkg-sysvinit-devel] Bug#716923: Bug#716923: sysv-rc 2.88dsf-42 breaks {, c}debootstrapping

Roger Leigh rleigh at codelibre.net
Sun Jul 14 22:27:31 UTC 2013


On Sun, Jul 14, 2013 at 02:55:49PM -0700, Steve Langasek wrote:
> On Sun, Jul 14, 2013 at 10:04:54PM +0100, Roger Leigh wrote:
> > tags 716923 + patch
> > thanks
> 
> > On Sun, Jul 14, 2013 at 10:41:18PM +0200, Stefan Lippers-Hollmann wrote:
> > > Trying to bootstrap a system using cdebootstrap (or debootstrap) fails 
> > > since sysv-rc 2.88dsf-42 entered the archive (it did succeed just 
> > > minutes before with the previous mirror sync, using sysv-rc 2.88dsf-41)
> > > with this error message:
> 
> > > # cdebootstrap -v --arch=amd64 --flavour=minimal sid /mnt/ http://ftp.de.debian.org/debian/
> > > […]
> > > O: dpkg: warning: ignoring pre-dependency problem!
> > > O: Unpacking util-linux (from .../util-linux_2.20.1-5.5_amd64.deb) ...
> > > P: Unpacking package util-linux
> > > O: Can't locate File/Path.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /usr/sbin/update-rc.d line 8.
> > > O: BEGIN failed--compilation aborted at /usr/sbin/update-rc.d line 8.
> > > O: dpkg: error processing /var/cache/bootstrap/util-linux_2.20.1-5.5_amd64.deb (--unpack):
> > > O:  subprocess new pre-installation script returned error exit status 2
> > > O: Selecting previously unselected package e2fsprogs.
> 
> > Does the following patch help?  It looks like it might have always been
> > missing the perl dependency.
> 
> Absolutely not.  sysv-rc is transitively essential as a Pre-Depends of
> sysvinit; making it depend on perl for core functionality will introduce
> dependency loops, because perl is deliberately NOT part of the transitively
> essential set.  update-rc.d should only require interfaces provided by
> perl-base.
> 
> The claim in the comment that File::Path is 'in core since Perl 5.001' is
> bogus.  The only modules that are permitted are the ones in perl-*base*. 
> File::Path is in perl-*modules*.  Why are people making changes unsupervised
> to sysvinit without understanding how the Debian base system works?

Michael,

Please could you take a look at this?  In your commit ae90465c you
introduced the File::Path dependency to update-rc.d.  It's only used
for make_path, and it should be fairly simple to implement this in
an alternative manner.  If you don't need recursion (and it looks
like this might be the case), then you can just use plain mkdir.
But if you do, can still use plain mkdir for the recursion, e.g.

    my @dirs = ();
    my @path = split /\//, $path;
    map { push @dirs, $_; mkdir join('/', @dirs), 0777 } @path;

as a starting point; you'd probably want to check if it already
exists before creating and double check the perms you need.


Thanks,
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



More information about the Pkg-sysvinit-devel mailing list