Lucas Nussbaum recently did a blog post called “Debian is still changing“. I found it a very welcome continuation of his previous blog post on the same topic. I find the graphs very interesting and was very happy to learn that he included relative graphs this time.
Now I can with relatively ease say that 69% of all Debian packages are using a dh-style build (source). We have another 15% using classic debhelper, which means that at least 84% of all packages uses debhelper directly. Assuming all CDBS based packages rely on the “debhelper class”, we are at 99%! The latter is certainly an assumption, although I suspect it is probably pretty accurate.
Now, it is very cute to have “world dominance”, but that is not my primary interest in these numbers. Instead, we can use these numbers to determine that:
- We can deploy changes to up to 99% of all source packages via existing debhelper tools
- We can deploy changes to up to 84% of all sources packages via debhelper + CDBS if it requires a new debhelper tool.
Such as automatic dbgsym packages, indexable build-id from dbg(sym) packages via Packages files, and replacing maintscripts with ldconfig triggers. All of these changes happen to be changes that could be trivially deployed with very little risk and very high efficiency. Notably, none of them required a compat bump (or a new debhelper tool).
Of course, I do not intend to say that every change can (or should) be deployed via debhelper and much less into an existing “dh_cmd”-tool. Notably, dh_strip is reaching its breaking point for content. And if we were to require a compat bump for your change, we can now at least see the adoption rate via lintian. 🙂
Nevertheless, it is nice to know that (politics aside) there is some agility in the Debian build system! 🙂
 I would very much love to see numbers to (dis)prove my assumption about CDBS + debhelper. In fact, an absolute number of packages not using debhelper (indirectly) in Debian would be very intriguing.
 New fields by default end up the Packages file. See e.g. the Packages.xz file on the debug mirror or your apt-cache via:
apt-cache show mscgen-dbgsym | grep ^Build-Ids
The latter assumes that you have the debug mirror in your sources list.
 Efficiency here being features people rarely override/disable.