tags 458785 +patch kthxbye A patch (with testcases) is attached, which checks for a dependency on a non-dbg equivalent package. It does not check whether the dependency is versioned at all.
The case where "Depends:" is empty is caught, along with the case where "libfoo0-dbg" depends on "libfoo" (it was not necessary to modify the testcase input for this). This latter case may even be wrong; I'm not sure. Regards, -- Chris Lamb, UK [EMAIL PROTECTED] GPG: 0x634F9A20
Index: checks/fields =================================================================== --- checks/fields (revision 1122) +++ checks/fields (working copy) @@ -408,6 +408,14 @@ } if (($type eq "binary") || ($type eq 'udeb')) { my (%deps, %fields, %parsed); + + my $non_dbg_variant_check = 0; + my $non_dbg_variant = ""; + if ($pkg =~ m/(.+)\-dbg$/) { + $non_dbg_variant_check = 1; + $non_dbg_variant = $1; + } + for my $field (qw(depends pre-depends recommends suggests conflicts provides replaces)) { if (open(FH, '<', "fields/$field")) { #Get data and clean it @@ -453,6 +461,11 @@ push @{$deps{$d_pkg}}, [$field, $d_version]; } + # We have found a Depends: on our non-dbg equivalent + if ($non_dbg_variant_check && $field eq "depends" && $d_pkg eq $non_dbg_variant) { + $non_dbg_variant = ""; + } + tag "versioned-provides", "$part_d_orig" if ($field eq "provides" && $d_version->[0]); @@ -513,6 +526,9 @@ } } + tag "foo-dbg-package-missing-depends-on-foo", "missing $non_dbg_variant" + if ($non_dbg_variant_check && $non_dbg_variant ne ""); + # If Conflicts is set, make sure it's not inconsistent with the other # dependency fields. if ($fields{conflicts}) { Index: checks/fields.desc =================================================================== --- checks/fields.desc (revision 1122) +++ checks/fields.desc (working copy) @@ -706,3 +706,9 @@ Info: This package has a name suggesting that it contains detached debugging symbols. If so, it should have priority "extra" since users normally do not need such packages. + +Tag: foo-dbg-package-missing-depends-on-foo +Type: warning +Info: This package has a name in the form of "foo-dbg" which suggests that + it contains detached debugging symbols. If so, it should depend on the + corresponding "foo" package. Index: testset/tags.debug =================================================================== --- testset/tags.debug (revision 1122) +++ testset/tags.debug (working copy) @@ -9,6 +9,8 @@ W: debug source: changelog-should-not-mention-nmu W: debug source: debian-rules-sets-DH_COMPAT line 5 W: debug source: out-of-date-standards-version 3.7.0 (current is 3.7.3) +W: hello-dbg: foo-dbg-package-missing-depends-on-foo missing hello W: hello: binary-without-manpage usr/bin/hello W: hello: binary-without-manpage usr/bin/hello.dbg +W: libhello0-dbg: foo-dbg-package-missing-depends-on-foo missing libhello0 W: libhello0-dbg: shared-lib-without-dependency-information ./usr/lib/libhello.so.dbg Index: testset/debug/debian/control =================================================================== --- testset/debug/debian/control (revision 1122) +++ testset/debug/debian/control (working copy) @@ -15,7 +15,7 @@ Package: hello-dbg Priority: extra Architecture: alpha amd64 arm hppa hurd-i386 i386 ia64 kfreebsd-i386 m68k mips mipsel powerpc ppc64 s390 sparc -Depends: hello (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: Description: Test for external debugging information lintian regression test for external debugging file handling.
signature.asc
Description: PGP signature