On Wed, 01 Apr 2026 at 23:58:18 +0200, Santiago Vila wrote:
Several months ago I made the experiment of building the archive with
the nodoc build profile, with the intention of reporting bugs (with
whatever severity would be appropriate).

The problem: I found more than 950 packages which FTBFS with
nodoc profile. For the curious:

https://people.debian.org/~sanvila/build-logs/nodoc-20251010/

That's more than I would have expected, but doesn't entirely surprise me either.

One common failure mode is annotating a B-D with <!nodoc> but actually it's necessary for all builds, because even though it's only used when building documentation, the upstream build system checks for it unconditionally (<!nocheck> often has the same problem).

Another is annotating a B-D with <!nodoc>, but enabling the option that requires it (--enable-doc or -Ddoc=enabled or similar) whenever building Architecture: all - especially if the source package's only Architecture: all binaries *are* documentation (a fairly common pattern, especially for libraries, seen in src:libsdl3 for example).

From an arbitrary sample of those logs, it seems like another recurring problem is that the build does something programmatically to documentation or examples (chmod or sed), but installation of those files has been suppressed (either by debhelper or by the upstream build system), and so it fails - usually easily fixed with some conditionals in debian/rules, but that won't happen and continue to work unless something is routinely testing that code path.

Salsa-CI pipelines have an option to exercise build-profile builds, and maintainers who are interested in making sure a package does support nodoc correctly should probably enable that option, but that quickly results in a *lot* of builds if you also want to exercise nocheck, noinsttest, etc., so it doesn't necessarily scale to the whole archive.

Now I wonder if this nodoc profile is something that every package is
supposed to support, or maybe it would make sense to have some opt-out
or opt-in mechanism

One of the failing logs is for docbook-xsl-doc, and I think it certainly doesn't make sense to expect packages containing only documentation to support this build-profile, except possibly in a trivial sense where every binary package has Build-Profiles: <!nodoc> and therefore the build stops early with "nothing to do".

I think the most important targets for all build profiles (and cross-compiling, and many other nice things) are the packages that are in the critical path for architecture bootstrapping, or for bootstrapping a particular desktop, language or other stack ecosystem: it's those that are most likely to need compiling with minimal dependencies. For arbitrary leaf packages it's a lot less interesting.

    smcv

Reply via email to