Bug#349616: #349616 still here - checks/debconf: false alarm about settitle
Damyan Ivanov [EMAIL PROTECTED] writes: Package: lintian Version: 1.23.27 Followup-For: Bug #349616 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. lintian currently considers any version of cdebconf to be equivalent to debconf 1.2.30 for the purposes of dependency checks. It sounds like this is wrong and cdebconf 0.43 is actually equivalent to 1.3.22. All of that dependency munging code was written before we had working OR to OR comparisons in the lintian dependency engine. I think we may be able to get rid of all of it now in favor of doing the correct dependency comparisons. I don't have time to look at this now, but if someone else does, I think we can just delete all of the dependency munging code at the top of checks/debconf and then change: unless (Dep::implies($alldependencies, Dep::parse('debconf (= 1.3.22)'))) { tag settitle-requires-versioned-depends, $file unless $type eq 'udeb'; to: unless (Dep::implies($alldependencies, Dep::parse('debconf (= 1.3.22) | cdebconf (= 0.43)'))) { tag settitle-requires-versioned-depends, $file unless $type eq 'udeb'; (is libdebconfclient0 okay here as well?) and then change: if ($usespreinst) { unless (Dep::implies($dependencies{'pre-depends'}, Dep::parse('debconf'))) { tag missing-debconf-dependency-for-preinst, unless $type eq 'udeb'; } } else { unless (Dep::implies($alldependencies, Dep::parse('debconf')) or $usesdbconfig) { tag missing-debconf-dependency, ; } } to: my $anydebconf = 'debconf | debconf-2.0 | cdebconf | cdebconf-udeb' . ' | libdebconfclient0 | libdebconfclient0-udeb'; if ($usespreinst) { unless (Dep::implies($dependencies{'pre-depends'}, Dep::parse($anydebconf))) { tag missing-debconf-dependency-for-preinst, unless $type eq 'udeb'; } } else { unless (Dep::implies($alldependencies, Dep::parse($anydebconf)) or $usesdbconfig) { tag missing-debconf-dependency, ; } } but I'm not sure about the -udeb bits and it would definitely require checking (maybe against more than just the test suite). I'm also not sure that allowing a dependency on libdebconfclient0 without cdebconf is really what we want, but that's what the current code does. -- Russ Allbery ([EMAIL PROTECTED]) http://www.eyrie.org/~eagle/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#349616: #349616 still here - checks/debconf: false alarm about settitle
Russ Allbery [EMAIL PROTECTED] writes: Damyan Ivanov [EMAIL PROTECTED] writes: Package: lintian Version: 1.23.27 Followup-For: Bug #349616 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. lintian currently considers any version of cdebconf to be equivalent to debconf 1.2.30 for the purposes of dependency checks. It sounds like this is wrong and cdebconf 0.43 is actually equivalent to 1.3.22. Damyan's mail server doesn't accept mail from mine (he uses SORBS, which runs an extortion racket for delisting that I refuse to participate in), so be aware that he won't have seen my reply. -- Russ Allbery ([EMAIL PROTECTED]) http://www.eyrie.org/~eagle/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
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-3The GNU assembler, linker and bina ii diffstat 1.43-2produces graph of changes introduc ii dpkg-dev 1.13.25 package building tools for Debian ii file 4.19-1Determines file type using magic ii gettext0.16.1-1 GNU Internationalization utilities ii intltool-debian0.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 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]