Bug#850478: git-pbuilder deliberately deletes source.changes

Russ Allbery rra at debian.org
Sat Jan 7 02:18:14 UTC 2017


James Clarke <jrtc27 at debian.org> writes:

> Currently, straight after git-pbuilder invokes pdebuild, it deletes
> ../*_source.changes, provided there is at least one such file, and the
> build was not done with -S. This causes two problems:

I did that originally for two reasons.  One, historically, the
*_source.changes file was completely worthless, since it was generated to
move the source package into the pbuilder chroot, where the source package
is then regenerated (and source-only builds weren't a thing).  So that
*_source.changes file has the wrong checksum for the *.dsc file, and is
entirely useless.  Two, I run gbp build-package and then want to view,
sign, and upload the corresponding changes file, and want to use *.changes
to refer to the one that's actually useful and uploadable.  Having another
changes file around requires typing quite a bit more of the file and
dealing with tab completion, and it's surprisingly irritating.

>  1. It ignores version numbers and package names, causing potential data
>     loss, which I feel is justification enough for the Severity: important.

Yeah, it does that because I didn't know how to do better (and this
started life as my personal script for my workflow, and at the time all
*_source.changes files were garbage).

>     In looking into this, I discovered that pdebuild itself actually
>     ends up producing a _source.changes, since it calls
>     dpkg-buildpackage -S to generate the dsc to copy into the chroot. I
>     presume that the original intention of the deletion performed by
>     git-pbuilder was to delete *this* changes file, since the dsc
>     subsequently produced by the build inside the chroot will not be
>     identical, but is copied back as part of the build, making the
>     original _source.changes invalid.

Correct.

>     Now, I'm of the view that dpkg-source -b should be used instead,
>     which is what sbuild uses to create the dsc. This also has the
>     advantage of not generating .buildinfo files (no annoying
>     debian/files lingering after the build, either). Then the only
>     _source.changes generated by pbuilder would be if the user requested
>     it, and therefore having it deleted by git-pbuilder would be wrong.
>     I should think changes like this are too late for Stretch, but
>     perhaps for Buster (or experimental?) we could coordinate our
>     efforts to get this to work?

Yeah, this seems reasonable to me.  Definitely happy to change
git-pbuilder once pdebuild is fixed to not produce the spurious and
useless *_changes.file.

-- 
Russ Allbery (rra at debian.org)               <http://www.eyrie.org/~eagle/>



More information about the Pbuilder-maint mailing list