Bug#924401: base-files fails postinst when base-passwd is unpacked
Package: base-passwd,base-files,debian-policy
Debian policy section 3.8 says:
| Essential is defined as the minimal set of functionality that must be
| available and usable on the system at all times, even when packages
| are in the “Unpacked” state.
When unpacking (but not configuring) a buster or unstable essential
package set, nothing creates /etc/passwd. Creation of that file is
performed by base-passwd.postinst. base-files.postinst relies on a
working /etc/passwd by using e.g. "chown root:root".
Now we can make a choice:
A. /etc/passwd is part of base-passwd's interface and base-files is
right in relying on it working at all times. Then base-passwd is rc
buggy for violating a policy must. Fixing this violation is
technically impossible.
B. /etc/passwd is not part of base-passwd's interface and base-files
wrongly relies on its presence rendering base-files rc buggy.
C. Guillem Jover hinted that policy expects every essential package to
be configured at least once. The current text does not make this
assumption clear. If it holds, policy would simply say nothing about
how to bootstrap an essential system, which may be fine. Given that
we have debootstrap, cdebootstrap, multistrap, and mmdebstrap, it
seems like specifying the bootstrap interface would be a good idea.
Unfortunately, I don't exactly understand the bootstrap interface at
present. In practise, you cannot run postinsts of essential packages
in arbitrary order.
I argue that something is buggy. I'm not sure what. I gave three
options. Can we gather consensus on one of these?
Helmut
Reply to: