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

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



Damyan Ivanov <dam@modsoftsys.com> 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 (rra@debian.org)               <http://www.eyrie.org/~eagle/>



Reply to: