Cc:ing the base-passwd Maintainer since his package is involved.
Santiago Vila <[email protected]> writes:
> reassign 643659 cdebootstrap
> thanks
>
> On Wed, 28 Sep 2011, Goswin von Brederlow wrote:
>
>> Package: base-files
>> Version: 6.0squeeze2
>> Severity: normal
>>
>> Hi,
>>
>> I'm not sure what changed but today when I tried to create a chroot
>> cdebootstrap gave the following error:
>>
>> ....
>> O: Setting up base-files (6.0squeeze2) ...
>> P: Configuring package base-files
>> O: chown: invalid user: `root:root'
>> O: dpkg: error processing base-files (--configure):
>> O: subprocess installed post-installation script returned error exit status
>> 1
>> O: Setting up libc-bin (2.11.2-10) ...
>> P: Configuring package libc-bin
>> O: dpkg: dependency problems prevent configuration of bash:
>> O: bash depends on base-files (>= 2.1.12); however:
>> O: Package base-files is not configured yet.
>> O: dpkg: error processing bash (--configure):
>> O: dependency problems - leaving unconfigured
>> ....
>> O: Setting up base-passwd (3.5.22) ...
>> P: Configuring package base-passwd
>> ....
>> O: Errors were encountered while processing:
>> O: base-files
>> O: bash
>> E: Internal error: install
>>
>>
>> As far as I can tell the problem is that there is no /etc/passwd until
>> base-passwd postinst runs and creates one. So until base-passwd is
>> configured you can't use symbolic names in chown.
>
> Of course I can, because base-passwd is "Essential: yes".
> base-files, like any other package, is right to assume that every
> essential package is ready to be used.
If you assume the creating /etc/passwd and /etc/group is the core
functionality of base-passwd then it fails policy 3.8:
| Since dpkg will not prevent upgrading of other packages while an
| essential package is in an unconfigured state, all essential packages
| must supply all of their core functionality even when *unconfigured*. If
| the package cannot satisfy this requirement it must not be tagged as
| essential, and any packages depending on this package must instead
| have explicit dependency fields as appropriate.
Base-passwd does not provide an /etc/passwd and /etc/group while
unconfigured.
And I don't see how it could. It can not ship an /etc/passwd and
/etc/group file because that would break on upgrades.
So lets look at it this way: Providing /etc/passwd and /etc/group is not
a core functionality of base-passwd but an extra feature only available
after the package has been configured. In that case you need to depend
on the package before using this extra feature as it is not covered by
the package being Essential: yes.
This would be a trivial one line fix.
>> It looks to me like base-files should have a Depends: base-passwd to
>> ensure the corect ordering when configuring. But I have no idea why
>> that shows up now all of a sudden.
>
> No. This is not a problem base-files should try to solve. This is exactly
> the type of problem that tools like cdebootstrap are supposed to solve,
> i.e. breaking all the implicit circular dependencies, hence the reassign.
I disagree. The configure order of packages is something the package
should declare and that should not have to be duplicated in every
bootstrap tool out there even if the order is only relevant for the
initial install.
MfG
Goswin
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]