[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: The tangled web of pbuilder



Daniel Martin <martin@snowplow.org> writes:

> Somehow, Katie managed to tag this latest version of pyrite-publisher
> as a NMU, not as a maintainer upload (even though it was a regular
> maintainer upload).  I think that this happened because of the
> difference between the Maintainer: and Changed-by: lines in the
> .changes file.
> 
> However, I'm at a loss as to how things got that way - the
> debian/control file clearly says (in the top paragraph):
> 
> Source: pyrite-publisher
> Section: otherosfs
> Priority: extra
> Maintainer: Daniel Martin <fizbin@debian.org>
> Build-Depends: debhelper (>> 3.0.0), python2.2-dev
> Standards-Version: 3.5.2
> 
> So then how did Maintainer: end up with just my email address in the
> .changes file?
> 
> This was a pbuilder build; I just used pdebuild and then used debsign
> to sign the .changes file.  According to what I thought I knew, that
> should have been enough - however, there seems to be something I'm
> missing about doing pbuilder builds so that they appear as though they
> were any other build.
> 
> As I write this, I remember that my .pbuilderrc says
> DEBEMAIL=fizbin@debian.org
>
> So that's probably ultimately where this result came from, although
> I'm now at a loss as to how to make everything come out correctly -
> before I had that line in the .pbuilderrc, I would get "Maintainer:
> nobody@nowhere" in the .changes file.

This is because /etc/pbuilderrc defaults to defining DEBEMAIL as
"nobody@nowhere" - a stupid default, IMO. If it rather would have
defaulted to "", pdebuild would have acted like 'regular' debuild
pr. default. More thorough explanation follows below. :)

> I suppose I could blindly change my .pbuilderrc to
> DEBEMAIL="Daniel Martin <fizbin@debian.org>
> 
> But I'd really like to understand the interaction between pbuilder,
> the control file and debsign.  Also, I'm a bit curious where debsign
> is getting the "Daniel Martin" part of the Changed-By line - I don't
> have a ~/.devscripts file, and /etc/devscripts is the installed
> default (all commented out).

The Changed-By: line is (obviously) the last entry in the changelog.
If it isn't the same as the Maintainer: field, the upload will be
considered an NMU.

The Maintainer: field defaults as far as I know to what's stated in
debian/control. This can however be overridden by dpkg-genchanges,
if you pass it the -m option. pbuilder does this if DEBEMAIL isn't
a empty string, so unless you set DEBEMAIL to the exact same string
as what's in the changelog, the fields will differ, and you'll have
an NMU.

As you suggested above, «DEBEMAIL="Daniel Martin <fizbin@debian.org>"»
in .pbuilderrc will work. You can also use «DEBEMAIL=""», which will
make pbuilder not use the -m option, which in turn will make the
.changes-files use the Maintainer: field from debian/control. Then
the only thing you have to care about is to use the exact same
string in both debian/control and debian/changelog.

I think debsign simply uses whatever the Changed-By: field of the
.changes say, when determining which key to sign with.

HTH,
-- 
Tore Anderson




Reply to: