Simon Josefsson wrote: > Debian trixie images ship with 'mawk' pre-installed right now. While > I'm not convinced the removal game is necessarily a good one, I can > see that it does have some advantages. Is it possible to drop 'mawk' > from the set of default tools in trixie? If not, what are the > blockers? What is the method to find out what the blockers are?
I would *love* to see the Essential set reduced. But I think this is combining a couple of steps, and we'd do better to separate those steps. One is "should we make dependencies on awk explicit, rather than having them be implicit and undocumented because awk is Essential". The other is "should we reduce dependencies on awk". The latter may or may not happen in any individual case, but I think the former would have a lot of value independently. And with the former done, we'd have the opportunity to *consider* the latter on a case-by-case basis, with rationales like "if packages A and B didn't use awk, then we'd simplify bootstrapping", or "if packages B and C didn't use awk, it'd be possible for XYZ useful class of minimal systems/containers/VMs to not need it installed". Given some amount of agreement that it had value, and that the downsides were low, we could consider *starting* to list dependencies on awk (by way of virtual packages to allow selecting implementation) explicitly, rather than leaving them implicit via Essential. A quick look at /var/lib/dpkg/info suggests that not *that* many maintainer scripts use it even on a full desktop system, and a look at /usr/bin and /usr/sbin suggests that while there are various things using it, they tend to come in a few broad categories (e.g. developer-oriented scripts) and *mostly* be higher in the stack (e.g. mostly not essential things themselves). (A notable exception is tzselect, which makes extensive use of awk, but while that's in the essential package libc-bin, it does not itself seem like an essential tool and could potentially be in a higher-level package itself.) Based on that, it seems like it would not be *especially* hard to *declare dependencies* on awk, which would not in any way a commitment towards *systematically eliminating* those dependencies. Having those dependencies declared would then make it feasible to consider avoiding it in *some* especially valuable cases, and conversely would allow folks building container/VM/embedded images to know when they actually need it. In general, I think this is roughly the right approach for any proposed work on the Essential set, with the first step being to declare dependencies explicitly. - Josh Triplett