Russ Allbery wrote: > I think Josh is arguing that ideally we'd slowly move towards declaring > dependencies on essential packages explicitly, so we should indicate that > in Policy and, as a first step, say that we're not adding any entirely new > functionality to the essential set if we can help it and instead asking > people to just declare explicit dependencies.
Yes, exactly. To be clear, I am *not* proposing that we eliminate the concept of Essential, nor am I suggesting that any specific package should become non-Essential; I'm suggesting that no new packages should become Essential. I would, roughly speaking, propose language along these lines: "New packages must not declare themselves Essential, even if this requires many other packages to declare explicit Depends on them. Existing Essential packages may continue to use the Essential flag in new versions. If an existing Essential package needs to change its packaging structure in a way that would introduce a new package with the Essential flag, this must be discussed on the debian-devel mailing list and a consensus and transition strategy for doing so must be reached." > I've never liked the rule that you don't have to declare dependencies on > essential packages and would love to phase it out as much as possible (I > think even intermediate movement in that direction would be useful) I would like to work towards that as well. > (Also, that said, having every package that contains a shell script > declare a dependency on sh | dash and every package that uses a common > shell utility declare a dependency on coreutils, despite being a nice way > to remove some special cases and make the dependency structure more > explicit, may be a bit too tedious to want to endure.) Honestly, dash is the *last* package I would want packages to have to declare explicit dependencies on. However, I could absolutely imagine having debhelper supply an automatic dependency on bash for every package containing a #!/bin/bash script, and something similar for perl-base. I imagine that some of the embedded Debian derivatives would appreciate that. The packages I would personally be most interested in making non-Essential would have relatively few packages depending on them: - login (not necessarily needed in a chroot/container that doesn't support interactive logins) - hostname (not necessarily needed at all) - ncurses-base and ncurses-bin (not necessarily needed on systems that don't support interactive use).

