Hi Johannes,

On Fri, Aug 22, 2025 at 11:52:31AM +0200, Johannes Schauer Marin Rodrigues 
wrote:
> Control: tag -1 + moreinfo
> 
> Hi,
> 
> Quoting Julian Gilbey (2025-08-22 10:58:20)
> > Lots of bugs have been filed about "Fails to build source after
> > successful build" (referring to Debian policy 4.9 (clean target)",
> > with the information:
> > 
> > This package fails to build a source package after a successful build
> > (dpkg-buildpackage ; dpkg-buildpackage -S).
> > 
> > It would be great if there were a possiblity to test this with sbuild:
> > the current option --post-build-commands runs outside the chroot, so
> > cannot be used for this purpose.  If there were an equivalent option
> > that ran the commands inside the chroot, it could be used for this
> > purpose, something like:
> > 
> > --post-build-chroot-commands="dpkg-buildpackage -S"
> 
> I agree that it would be nice if there was more flexibility in what build
> command sbuild is running. For example as of right now, sbuild hard-codes
> dpkg-buildpackage as the build command and Jochen recently hacked this by
> injecting another binary called dpkg-buildcommand into PATH which is actually 
> a
> script in /usr/local/bin executing a custom set of commands. Doing that should
> not be necessary and it should be easier to customize the build step with
> arbitrary code execution.

Oh, that sounds quite hacky, as you say; one would like the sbuild
invocation to be clear and repeatable, and if it depends on the
contents of random scripts on the system, anything might happen.

> That being said, there is a ton of QA tasks which sbuild could theoretically 
> be
> hacked to do. For example you could abuse sbuild as a rebuilder checking
> whether your source package is actually bit-by-bit reproducible. Many others
> come to mind but one could also argue that it is *not* the responsibility of
> the maintainer to test all the things before uploading and sbuild is maybe the
> wrong tool to test them. For example, you could also test things like this
> using pbuilder, mmdebstrap or by submitting a new test to the salsa CI
> pipeline. But then I'd argue: is a check like this really worth the additional
> CPU cycles? Is this not something you might only want to check every once in a
> while like once per release cycle? And is it then not sufficient to have one
> person or team to the mass-rebuild and file the bug instead of every single
> maintainer having to be aware of all the possible QA tasks they could perform?

There are two different things here: I totally agree that many of the
QA tasks are better performed by one person or team, and for them to
file the bug reports.  But as a package maintainer, once I receive
such a bug report, I want to be able to test locally whether I have
fixed the issue before marking it as done.

> Lastly, the check that you say should be possible with sbuild is possible with
> sbuild as Lucas has even so kindly explained in his initial email about his 
> MBF
> here:
> 
> https://lists.debian.org/debian-devel/2023/08/msg00031.html
> 
> sbuild -n -A -s --force-orig-source --apt-update -d unstable -v 
> --no-run-lintian \
> --starting-build-commands="cd %SBUILD_PKGBUILD_DIR && runuser -u $(id -un) -- 
> dpkg-buildpackage --sanitize-env -us -uc -rfakeroot" \
> --finished-build-commands="cd %SBUILD_PKGBUILD_DIR && runuser -u $(id -un) -- 
> dpkg-buildpackage --sanitize-env -us -uc -rfakeroot -S" \
> ruby-highline

Ah, awesome!  I'll try that.

Best wishes,

   Julian

Reply via email to