Hi Simon! > There are lots of options for doing this, some of which are listed in > <https://wiki.debian.org/SystemBuildTools#Package_build_tools>. > > All of these have the same problem as cowbuilder, pbuilder, and any > other solution that is not sbuild + schroot: it isn't (currently) what > the production Debian buildds use, therefore it is entirely possible > (perhaps even likely, depending on what packages you maintain) that your > package will build successfully and pass tests in your own local builder, > but then fail to build or fail tests on the buildds as a result of some > quirk of how schroot sets up its chroots, which is a worse-than-RC bug > making the package unreleasable.
Could you point me to some Debian Bug # or otherwise share examples of cases when a build succeeded locally but failed on official Debian builders due to something that is specific for sbuild/schroot? I have never run in such a situation despite doing Debian packaging for 10 years with fairly complex C++ software targeting all archs Debian supports. Also as a member of the Salsa-CI team I don't recall ever seeing a bug report about something built on Salsa in a container successfully but failed to build on actual buildd. I am not dismissive of your claim - as a very senior DD you surely have those experiences - I am just curious to learn what those cases might have been. I could imagine that buildd builds fail if they the source was prepared in a non-hermetic environment that ran as root, or had network access, or if build environment was unclean and debian/control was missing some dependencies, but that is elementary hermetic build environment properties and not inherently something that *only* sbuild/schroot does. Related, you might want to take a peek at the source code of https://salsa.debian.org/otto/debcraft how it supports both Podman and Docker, and how it generates the 'root.tar.gz' equivalent container automatically based on debian/control and debian/changelog contents, and then runs the actual build as a regular non-root user in a container that has no network access. If I learn about other requirements for a hermetic build environment I would be happy to incorporate it. - Otto