On Sun, Apr 20, 2025 at 04:46:52PM -0500, G. Branden Robinson wrote: > At 2025-04-20T23:22:04+0500, Andrey Rakhmatullin wrote: > > On Sun, Apr 20, 2025 at 06:25:53PM +0100, Josh Triplett wrote: > > > What I'm suggesting here is that if every individual package that > > > needs awk has a Depends on it (via a package that allows switching > > > implementations), rather than relying on Essential, then it becomes > > > possible to make incremental progress, and that incremental progress > > > benefits people who are willing to carefully remove some of what > > > Debian normally always has installed packages. > > > > Should we start declaring deps on all essential packages explicitly? > > I think that's a good idea. "Explicit is better than implicit," as the > Zen of Python puts it.[1] > > Factual statements about one's run-time dependencies should be as > decoupled from the details of the set of "Essential" packages as > possible. One reason is that the identities of the people making these > decisions are disjoint. Often a package maintainer lacks this power; > except for dependencies they introduce through operation of their > maintainer scripts (or Debian add-ons), such run-time dependencies are > beyond their control. >...
While this might sound good in theory, in practice it would be horrible. As an example, libc6 has a preinst script that calls dpkg, sed, grep and rm. Making these dependencies explicit would be something like Pre-Depends: sh, dpkg, sed, grep, coreutils I would expect that such Pre-Depends cycles between essential packages and libc6 will result in broken systems during upgrades. And then there's the normal time-waste like "the package ships a bash-completion file that uses awk, grep, sed and sort - that's dependencies on four essential packages". > Regards, > Branden >... cu Adrian