Hi,

I'm the author of the change that removed Priority:Required packages from
build-essential. Since there has been no other input to this bug I thought I
just weigh in with my two cents.

On Tue, 5 Dec 2023 22:39:51 +0000 Harlan Lieberman-Berg <hlieber...@debian.org> 
wrote:
> On Mon, 30 Oct 2023 17:14:57 +0100 Marc Haber
> <mh+debian-packa...@zugschlus.de> wrote:
> > debspawn create sid errors out because the tool cannot find useradd. I
> > have added adduser manually to "include_pkgs" in osbase.py and this
> > allows debspawn create sid to finish.
> 
> I've done a bit of digging, and I traced this problem back to a change
> in the way debootstrap works when installing the buildd variant, which
> is what debspawn uses.  In bug 837060, debootstrap stopped installing
> packages which were Priority: Required but not essential.

You CC-ed that bug in your last message but since the bug is archived I don't
think that had the effect you intended.

> Specifically, the passwd package is the cause here; failure to install
> passwd means that the `useradd` command is not available.  The reason
> that installing the adduser package fixed this is that adduser depends
> on passwd, so it was indirectly pulled in.

> It's certainly easy enough for us to fix on the debspawn side -- we can just
> unilaterally add the passwd package -- but it is a bit...  strange for us to
> have to fix.  It seems, to me, like this is something we should be able to
> rely on debootstrap for.  I've copied the relevant bug; hopefully we can get
> some input from the bootstrap folx.  (Maybe we should be using the minbase
> variant instead? Except we're always building packages... should we be using
> a specific user?  I'm not sure!)

My main motivation for this change in debootstrap was to prevent source
packages from missing to declare build dependencies because the buildd
debootstrap variant automatically pulls in Priority:required packages and thus
missing B-Ds on mount or tzdata or similar would go unnoticed.

I think my change had a similar effect here. Your code requires a package that
is not Essential:yes (passwd) and you did not explicitly install it but relied
on it getting installed implicitly. In my opinion, the correct way forward
would be to explicitly pull in all the packages your code needs (except of
course if they are Essential:yes). I'm sorry that my change has caused you more
work but in the end I think it helped discover a dependency of your code that
you did not make explicit.

Thanks!

cheers, josch

P.S.: Funny side note: missing passwd in the buildd profile is actually only
possible due to *two* changes that I triggered. One is the change in
debootstrap that you found but the other is apt no longer depending on adduser.
If it still did, you would not have a problem even with the current handling of
the buildd variant. See
https://salsa.debian.org/apt-team/apt/-/merge_requests/260/diffs

Attachment: signature.asc
Description: signature

Reply via email to