Bug#349616: #349616 still here - checks/debconf: false alarm about settitle
Package: lintian
Version: 1.23.27
Followup-For: Bug #349616
Hi,
Thanks for the updated problem description, but it does not solve the
problem.
A Depends: line of "debconf (>= 1.3.22) | cdebconf (>= 0.43)" still
generates the settitle-requires-versioned-depends error.
Here's what I've found (60 more lines):
If I change the Depends to "debconf (>= 1.3.22)", the error is gone.
(Unfortunatelly the package in question is yet to hit NEW so you can't
see the error yourselves. I can provide it on request).
I suspect that this is because of the way lintian checks for the
dependency:
[checks/debconf:507]
________________________________________________________
507| unless (Dep::implies($alldependencies,
508| Dep::parse('debconf (>= 1.3.22)')))
509| {
510| tag "settitle-requires-versioned-depends", "$file"
511| unless $type eq 'udeb';
512| }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As I understand it, lintian demands that there is a Depends that is
equal to 'debconf (>= 1.3.22)'. However, the recommended Depends (that
uses cdebconf alternative) is not equal to that.
Strangely, if I try to fix the check by making it require "debconf (>=
1.3.22) | cdebconf (>= 0.43)" (line 508), the error persists.
If I place some debug statements in OR-to-OR comparison in Dep::implies,
I see that what is compared is actually:
OR (debconf >= 1.3.22) (debconf >= 1.2.30))
to
OR (debconf >= 1.3.22) (cdebconf >= 0.43)
The second OR is the "fix" I've put in the checks/debconf above.
However, the first OR, which should come from the package's Depends:
line, seems garbled.
Aha! Gotcha! This is mangled in line 111 of checks/debconf:
$_ =~ s/cdebconf(-\w+)?(-udeb)?\s*(\(.+?\))?/debconf (>= 1.2.30)/g;
This makes the recommended "debconf(>=1.3.22)|cdebconf(>=0.43)" to be
converted to "debconf(>=1.3.22)|debconf(>=1.2.30)".
So, even if following the recommended Depends: line and removing the
"fix" I've tried to make, the comparison is:
OR (debconf >= 1.3.22) (debconf >= 1.2.30))
to
OR (debconf >= 1.3.22)
which is obviously not the same, thus the check fails.
Ways to fix this that I see:
1) drop mangling of cdebconf depencency and add "cdebconf(>=0.43)" to
the required dependencies as suggested by the check.
Possible cons: I am not sure what was the idea of cdebconf dependency
mangling - something other may break.
2) Suggest only "debconf (>= 1.32)" in
settitle-requires-versioned-depends.
Possible cons: d-i related, since cdebconf is used there
3) Other that you or someone else comes with.
Thanks for considering,
dam
-- System Information:
Debian Release: 4.0
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-686
Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8)
Versions of packages lintian depends on:
ii binutils 2.17-3 The GNU assembler, linker and bina
ii diffstat 1.43-2 produces graph of changes introduc
ii dpkg-dev 1.13.25 package building tools for Debian
ii file 4.19-1 Determines file type using "magic"
ii gettext 0.16.1-1 GNU Internationalization utilities
ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant conf
ii libparse-debianchangel 1.0-1 parse Debian changelogs and output
ii man-db 2.4.3-6 The on-line manual pager
ii perl [libdigest-md5-pe 5.8.8-7 Larry Wall's Practical Extraction
lintian recommends no packages.
-- no debconf information
Reply to: