Pseudo-essential packages and Pre-Depends (Re: Next upload 2010-03-10 (dpkg 1.15.6))
[Please follow-up to debian-mentors, cc-ing me and Steve.]
Steve Langasek wrote:
> On Sun, Mar 07, 2010 at 11:57:28PM -0600, Jonathan Nieder wrote:
>> I just realized that xz-utils and liblzma2 technically aren’t ready to
>> be pseudo-essential: they use Depends: instead of Pre-Depends: for
>> their dependencies.
> This doesn't follow. Only the essential packages themselves must be usable
> when not configured, which is why those packages use pre-dependencies, not
> dependencies. The packages which are *themselves* pre-dependencies don't
> need to have their dependencies promoted to pre-dependencies.
When dpkg is upgraded, the pre-dependency of dpkg on xz-utils would ensure
that xz-utils is configured before the updated dpkg is unpacked. Such an
upgrade is safe without any changes to xz-utils.
If xz-utils is upgraded after that, however, IIUC the upgraded
xz-utils might be unpacked before its dependencies. The essential
functionality (support for unpacking lzma-compressed .debs) provided
by xz-utils would then be missing during the interval between the
unpacking time of the new xz-utils and a liblzma2 with new symbols it
I thought that this was why various other pseudo-essential packages
(gawk/mawk/original-awk, liblocale-gettext-perl, libpam-modules) used
pre-depends. What am I missing?
>> lzma has had the same problem for the last year, so I guess it’s not a
>> big deal in practice. I’ll prepare an upload fixing xz-utils tomorrow
> That's not a fix, and not appropriate to upload without consulting
Good point; I will hold off. I had assumed it was implicit when
discussing a package becoming pseudo-essential that this means adding
pre-depends, but clearly I was wrong.
If my analysis above is correct, which is a big if, the missing
Pre-Depends would not be an issue until the dependencies of xz-utils
or liblzma change (and conversely, would be an issue then). There is
plenty of time to figure this out before then.
Thanks for your help,