Package: base-files
Version: 7.2
Severity: important
Tags: patch
X-Debbugs-Cc: Bastian Blank <wa...@debian.org>, 
 Debian Install System Team <debian-b...@lists.debian.org>, 
 Colin Watson <cjwat...@debian.org>

Hi

[ CC'ing the maintainers of the other involved packages, cdebootstrap, 
  base-passwd and cdebconf/ libdebconfclient0 ]

Trying to cdebootstrap Debian unstable fails starting with the 
2014-01-10 22:01:06[2] dinstall (2014-01-10 16:12:15[1]) is still o.k.)
by throwing the following error condition:

# cdebootstrap --arch=amd64 --flavour=minimal --debug --verbose sid /mnt/ 
http://ftp.de.debian.org/debian/
[…]
O: Setting up libdebconfclient0:amd64 (0.187) ...
P: Configuring package libdebconfclient0:amd64
O: Setting up base-files (7.2) ...
P: Configuring package base-files
D: Updating base-files to status 3
O: chown: invalid user: 'root:root'
O: dpkg: error processing package base-files (--configure):
O:  subprocess installed post-installation script returned error exit status 1
[…]
O: Processing triggers for libc-bin (2.17-97) ...
O: Errors were encountered while processing:
O:  base-files
O:  bash
D: Status: 256
E: Internal error: install

The cause for this appears to be a subtile change of the implicit 
package configuration order under cdebootstrap, triggered by 
libdebconfclient0 gaining multi-arch qualifiers with 0.186 --> 0.187. 
This results in base-passwd now being configured after base-files, 
while base-files already depends on /etc/passwd and /etc/group from its
postinst:

--- 20140110T161215Z
+++ 20140110T220106Z
@@ -245,7 +245,7 @@ P: Unpacking package tar
 P: Unpacking package libtinfo5:amd64
 P: Unpacking package mawk
 P: Unpacking package base-files
-P: Unpacking package libdebconfclient0
+P: Unpacking package libdebconfclient0:amd64
 P: Unpacking package base-passwd
 P: Unpacking package sensible-utils
 P: Unpacking package debianutils
@@ -309,8 +309,6 @@ P: Configuring package debianutils
 P: Configuring package bsdutils
 P: Configuring package perl-base
 P: Configuring package diffutils
-P: Configuring package libdebconfclient0
-P: Configuring package base-passwd
 P: Configuring package mawk
 P: Configuring package hostname
 P: Configuring package findutils
@@ -324,9 +322,11 @@ P: Configuring package libsepol1:amd64
 P: Configuring package tzdata
 P: Configuring package zlib1g:amd64
 P: Configuring package libgcc1:amd64
+P: Configuring package libdebconfclient0:amd64
 P: Configuring package base-files
 P: Configuring package libattr1:amd64
 P: Configuring package e2fslibs:amd64
+P: Configuring package base-passwd
 P: Configuring package libcomerr2:amd64
 P: Configuring package libacl1:amd64
 P: Configuring package libslang2:amd64

I think this should be solvable by declaring a dependency on 
base-passwd to base-files, so base-passwd gets configured before
base-files' postinst tries to use chown:

diff -Nrup a/debian/control b/debian/control
--- a/debian/control
+++ b/debian/control
@@ -8,6 +8,7 @@ Package: base-files
 Provides: base
 Architecture: any
 Pre-Depends: awk
+Depends: base-passwd
 Essential: yes
 Priority: required
 Replaces: base, miscutils, dpkg (<= 1.15.0)

Given that this cdebootstrap breakage affects the first bootstrap 
phase, I have not been able to actually test this patch, but I hope
it fixes the problem.

Regards
        Stefan Lippers-Hollmann

[1]     http://snapshot.debian.org/archive/debian/20140110T161215Z/debian/ [ok]
[2]     http://snapshot.debian.org/archive/debian/20140110T220106Z/debian/ 
[broken]

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to