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