Package: git-buildpackage Version: 0.8.9 Severity: important X-Debbugs-Cc: Debian pbuilder maintenance team <pbuilder-ma...@lists.alioth.debian.org>
Disclaimer: These views are my own and not necessarily shared with Mattia; he has the final say with regards to pbuilder :) Hi, 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: 1. It ignores version numbers and package names, causing potential data loss, which I feel is justification enough for the Severity: important. While it's a data loss bug, I don't think it's major enough to be RC. (Please clone this if you want to separate this bug from the point below...) 2. I like being able to perform source-only uploads. While you can get pbuilder to generate a source-only changes file for a source+binary build with --changes-option=-S, this has the unfortunate side-effect of not copying back the .deb files, since they aren't referenced by the .changes. Also, the changes file is _arch.changes, which is misleading, and having the real _arch.changes is useful. Thus, I would like to have a --source-only-changes option which functions like sbuild (the main dpkg-buildpackage invocation generates _arch.changes, and then a manual dpkg-genchanges --build=source is performed) so that users can get both from one build. 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. 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? This is not just hypothetical, either; I actually have patched git-pbuilder[1] and pbuilder to implement this, but the implications of the switch to dpkg-source -b would need to be discussed I appreciate this is a lot of irrelevant details, but I hope by explaining where we are and where I'd like to get to makes the issues clear. A lot of this will end up going into a bug report against pbuilder blocked by this tomorrow. Regards, James [1] Commented out the 3-line if statement that deletes _source.changes