Bug#867822: pbuilder: pdebuild cannot build source-only packages

Sven Joachim svenjoac at gmx.de
Sun Jul 9 19:54:28 UTC 2017


On 2017-07-09 19:48 +0100, James Clarke wrote:

>> On 9 Jul 2017, at 19:31, Sven Joachim <svenjoac at gmx.de> wrote:
>> 
>> Package: pbuilder
>> Version: 0.228.7
>> Severity: normal
>> 
>> Passing "--debbuildopts -S" to pdebuild does not currently work, because
>> that produces a *_source.changes file while pbuilder expects a
>> *_${ARCH}.changes:
>> 
>> ,----
>> | $ pdebuild --debbuildopts -S
>> | W: /home/sven/.pbuilderrc does not exist
>> | [...]
>> |  dpkg-source -i -b ncurses-6.0+20161126
>> | dpkg-source: info: using source format '3.0 (quilt)'
>> | dpkg-source: info: building ncurses using existing ./ncurses_6.0+20161126.orig.tar.gz
>> | dpkg-source: info: building ncurses in ncurses_6.0+20161126-1+deb9u1.debian.tar.xz
>> | dpkg-source: info: building ncurses in ncurses_6.0+20161126-1+deb9u1.dsc
>> |  dpkg-genbuildinfo --build=source
>> |  dpkg-genchanges --build=source >../ncurses_6.0+20161126-1+deb9u1_source.changes
>> | dpkg-genchanges: info: not including original source code in upload
>> |  dpkg-source -i --after-build ncurses-6.0+20161126
>> | dpkg-buildpackage: info: binary and diff upload (original source NOT included)
>> | I: copying local configuration
>> | E: Missing changes file: /var/cache/pbuilder/build/26303/build/ncurses_6.0+20161126-1+deb9u1_i386.changes
>> `----
>> 
>> Now I _can_ of course produce the source package outside of pbuilder,
>> but it would be nicer and safer to build it in a chroot dedicated to the
>> distribution the upload is intended for.
>
> Hi Sven,
> A few things:
>
>  1. Building the source package on its own locally isn't good practice; you
>     should really be building the binary packages too as part of the build to
>     check it works, and then uploading just the source; you can do this with
>     pdebuild -- --source-only-changes (or SOURCE_ONLY_CHANGES=yes in your
>     pbuilderrc).

I don't know everybody else's workflow, but with mine this is a waste of
time and CPU cycles, for the one and only change after building and
testing the packages is to edit debian/changelog and get rid of that
"UNRELEASED" string there.  Why should I build the binaries again if I
had verified that this works just six hours ago?

>  2. Why are you building the source package on its own with pbuilder, anyway?
>     To copy the source into the chroot, the source package already first gets
>     built outside the chroot, and there really should not be a difference in
>     the resulting source package.

Certainly there _should_ not be a difference, but at least the
.buildinfo file will be vastly different, and there's also the
possibility of format upgrades in the .changes file.

> But, if you follow my advice in 1., you do
>     get to upload the .dsc built inside the chroot.

There seem to be two problems with that, the issue of ftp-masters not
liking the combination of _source.changes and _${ARCH}.buildinfo (see
the recent thread "Bad interaction between
pbuilder/debhelper/dpkg-buildinfo/dpkg-genchanges and dak on
security-master" in which you participated) and the fact that
"--debbuildopts -g" is not compatible with "- --source-only-changes", as
I have just discovered.  For jessie AFAIK source-only uploads are not
allowed and you have to at least include arch-independent binaries (if
any).

Cheers,
       Sven



More information about the Pbuilder-maint mailing list