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

Bug#621006: lintian: Variable substitution in "Maintainer" field in causes warnings and "no-maintainer-field" error



Hi Niels,

On 07.04.2011 18:52, Niels Thykier wrote:
> Hi
> 
> I have the feeling you have not read #615132, which is basically asking
> for a check against this particular usage of substvars.

To my opinion, emitting a warning is fine.

Jakub says that "use substitution variables in the source is always a
packaging bug", however the documentation concerning "debian/control"
file keeps silence concerning the fields which are not allowed to be
substituted:

http://www.debian.org/doc/debian-policy/ch-source.html#s-substvars

> This most likely happens because dpkg command (exact name eludes me at
> the moment, possibly dpkg-source or dpkg-genchanges) building the dsc
> does not include the Maintainer field.

You are right here: the generated .dsc file does not contain
"Maintainer" field at all, and "dpkg-genchanges" generated the .changes
file with "Maintainer" not substituted:
=== cut ===
Maintainer: ${common:Maintainer}
=== cut ===

I have explicitly passed the substvars file to use for dpkg-source /
dpkg-genchanges like that:
debuild -sa -us -uc --changes-option="-Tdebian/substvars"
but it does not help:

=== console ===
   debian/rules override_dh_gencontrol
make[1]: Entering directory `/root/tmp/build/osra-1.3.8'
dh_gencontrol -- -Tdebian/substvars
...
 dpkg-genchanges -sa -Tdebian/substvars >../osra_1.3.8-1_i386.changes
dpkg-genchanges: including full source code in upload
 dpkg-source -Tdebian/substvars --after-build osra-1.3.8
dpkg-buildpackage: full upload (original source is included)
Now running lintian...
E: osra source: no-maintainer-field
...
=== console ===

As from the logs I also override dh_gencontrol, which by default is
passing package-specific substvars file:
dh_gencontrol -Tdebian/osra.substvars
while I want to use one substvars for all packages.

As I mentioned, all "DEBIAN/control" files in the .deb packages look OK.

Does it look like a bug for dpkg-source / dpkg-genchanges? I have found
this bug report:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589609
saying that it's only dpkg-gencontrol (and not dpkg-source /
dpkg-genchanges) that performs the substitution. But still "-T" option
is there... I've got a bad feeling :)

> I assume it does this if the Maintainer field is empty, which is very
> likely as the debian/substvars file is usually removed by the clean
> target (e.g. by dh_clean) and is therefore not present when the source
> package is created.

No, "debian/substvars" is not removed (at least explicitly by me) at
dh_clean step and it stays in "debian/" after the build.

> Note we also have a tag for keeping the debian/substvars file in the
> source package because doing so may lead to complications/weird results.

Could you provide more information on that (which lintian option / tag?)

> Obviously we cannot satisfy this and #615132 at the same time.
> Personally I am more inclined to satisfy #615132, since these
> substitutions can be rather non-trivial and (as you experienced) lead to
> some "interesting" issues when done in source fields.

I can agree with you. Does it mean, that it is only "Maintainer" field
which is problematic? What if I want to substitute "Homepage" or
"Vcs-Browser" or "Version" field?

Thanks.

-- 
With best regards,
Dmitry



Reply to: