Package: lintian
Version: 1.23.15
Severity: minor
Tags: patch
Hi,
The probably_uses_debconf test (in check/po-debconf) still fails in
many cases, especially when the maintainer uses dh_installdebconf and
${misc:Depends} (for example, #352948 would have been avoided if the
test had not failed).
Please find attached two patches, they are different ways to fix the
problem:
* po-debconf.depends.diff adds different tests such as the presence of
Build-Depends: po-debconf, the use of dh_installdebconf, ...
* po-debconf.strict.diff removes all the tests but the $has_templates
test, and assume that the package uses Debconf if this test returns
true.
While the first patch should avoid potential false-positives if a
maintainer uses a file 'debian/foo.templates' that is not related with
Debconf, I strongly recommend to use the second patch. There is currently
no false-positive (thanks to Denis Barbier who checked the source
packages), this patch greatly simplifies the check and is very
efficient to avoid false-negatives.
Cheers,
--
Thomas Huriaux
--- po-debconf 2006-01-02 10:19:16.000000000 +0100
+++ po-debconf.new 2006-02-15 13:20:24.000000000 +0100
@@ -42,12 +42,23 @@
if (m/^Depends:/i) {
$has_depends = 1
if m/\bdebconf(-[.\d]+)?\b/;
+ } elsif (m/^Build-Depends(-Indep)?:/i) {
+ $has_depends = 1
+ if m/\bpo-debconf(-[.\d]+)?\b/;
}
}
close(IN);
} elsif ($file =~ m/^(.+\.)?config(\..+)?$/) {
$has_config = 1;
+ } elsif ($file =~ m/^rules$/) {
+ open (IN, "debfiles/rules")
+ or fail("Can't open debfiles/rules.");
+ while (<IN>) {
+ $has_depends = 1 if (m/^\s*dh_installdebconf/);
+ }
+ close(IN);
}
+ last if $has_depends;
}
closedir(DEB);
--- po-debconf.orig 2006-02-17 12:39:59.000000000 +0100
+++ po-debconf 2006-02-17 12:42:22.000000000 +0100
@@ -31,27 +31,17 @@
# First, check wether this package seems to use debconf but not po-debconf
opendir(DEB, 'debfiles')
or fail("Can't open debfiles directory.");
-my $has_template = my $has_depends = my $has_config = 0;
+my $has_template = 0;
for my $file (readdir(DEB)) {
if ($file =~ m/^(.+\.)?templates(\..+)?$/) {
# TODO: out of this loop, use fields/*?
$has_template = 1;
- open(IN,"debfiles/control")
- or fail("Can't open debfiles/control.");
- while (<IN>) {
- if (m/^Depends:/i) {
- $has_depends = 1
- if m/\bdebconf(-[.\d]+)?\b/;
- }
- }
- close(IN);
- } elsif ($file =~ m/^(.+\.)?config(\..+)?$/) {
- $has_config = 1;
+ last;
}
}
closedir(DEB);
-my $probably_uses_debconf = $has_depends || ($has_template && $has_config);
+my $probably_uses_debconf = $has_template;
#TODO: check whether all templates are named in TEMPLATES.pot
if ( $probably_uses_debconf ) {
Attachment:
signature.asc
Description: Digital signature