Bug#349616: #349616 still here - checks/debconf: false alarm about settitle

2007-02-02 Thread Russ Allbery
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

2007-02-02 Thread Russ Allbery
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

2007-02-01 Thread Damyan Ivanov
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]