Hi Chris,

On Tue, Aug 24, 2021 at 10:31:39AM +0200, Chris Hofstaedtler wrote:
> Thanks for the info, however I would not know what to use.
> util-linux has a lot of !stage1 Build-Depends today:
>                bc <!stage1 !nocheck>,
>                libaudit-dev [linux-any] <!stage1>,
>                libcap-ng-dev [linux-any] <!stage1>,
>                libcryptsetup-dev [linux-any] <!stage1>,
>                libpam0g-dev <!stage1>,
>                libsystemd-dev [linux-any] <!stage1>,
>                libudev-dev [linux-any] <!stage1>,
>                netbase <!stage1 !nocheck>,
>                socat <!stage1 !nocheck>,
>                systemd [linux-any] <!stage1>,
> 
> And also !stage1 excludes most of the util-linux binary packages,
> except for lib* and lib*-dev. I imagine this was done to allow
> building some reverse-dependencies.

Ah right. util-linux is one of the early adopters introducing stage1.
Extending the existing profile to cover another dependency certainly is
not a regression. However, libcryptsetup-dev may play a different role
here.

> Given this it would "feel" more like a pkg.util-linux.justlibs
> profile...

That sounds about right. Similar examples are pkg.openldap.noslapd and
pkg.unbound.libonly. We can rename stage1 when convenient.

> Is there an overview of the currently in use values in the extension
> namespace?

https://wiki.debian.org/BuildProfileSpec#Registered_profile_names

None of the common build profiles fits your use.

The problem I see here is that presence of libcryptsetup-dev influences
how libmount-dev is built. If you were to add it to a
pkg.util-linux.justlibs profile, your built libraries would differ when
built with or without this profile and that's not what we want. Ideally
profiles just enable/disable packages without changing the contents of
those that are built.

I suggest that util-linux should have distinct profiles here. One for
building only libraries (in a way that reproduces a full build) and
another for disabling functionality inside those libraries that need to
be passed for bootstrap.

In essence, I argue that while stage1 should probably renamed to
something like pkg.util-linux.justlibs, libcryptsetup-dev should not be
part of that profile (renamed or not).

Helmut

Reply via email to