debuginfod server

Related issue: Provide debuginfod server

Most of the debuginfod work is implemented. See debian:debug-symbols, debian:suite, debian:archive, Sbuild, package_publish, Package repositories, and Use Debusine archives as a debuginfod source.

This blueprint retains only remaining design that is not implemented yet.

Archive option to control debug-symbol builds

The debian:archive collection should expose a per-archive configuration option (similar to Launchpad’s build_debug_symbols, default true) controlling whether debug symbols are extracted for that archive. When disabled, DEB_BUILD_OPTIONS=noautodbgsym should be passed to sbuild to suppress -dbgsym package generation entirely.

Until this exists, extraction always runs when a -dbgsym package is present in the build output.

Possible future work

These items were explicitly out of scope for the initial implementation and remain unimplemented:

  • Source file serving (/buildid/<id>/source): the debuginfod(8) man page notes that, due to Debian and Ubuntu packaging policies, debuginfod often cannot resolve source files for .deb and .ddeb packages. debuginfod.debian.net has the same limitation.

  • Executable serving (/buildid/<id>/executable): debian:binary-package stores the whole .deb as a single file rather than broken-out binaries.

  • DWZ supplement ingestion: -dbgsym packages built with DWZ compression ship a shared supplement under /usr/lib/debug/.dwz/. Until those are ingested, requests for the supplement’s build-ID return 404; debugging still works, but DWZ-using debug info may lack the alternate strings table.

  • Metrics (/metrics), metadata search (/metadata), IMA signatures, and upstream federation to servers such as debuginfod.debian.net.