[SCM] Debian package checker branch, master, updated. 2.5.10-206-g3aac95d
The following commit has been merged in the master branch:
commit 3aac95d933fc758c5902fd0fb215198b3ec0f23b
Author: Niels Thykier <niels@thykier.net>
Date: Wed Oct 17 23:35:07 2012 +0200
c/group-checks: Check for missing M-A: same fields on dbg pkgs
Signed-off-by: Niels Thykier <niels@thykier.net>
diff --git a/checks/group-checks b/checks/group-checks
index d98d8d0..22abd4a 100644
--- a/checks/group-checks
+++ b/checks/group-checks
@@ -158,6 +158,19 @@ sub _check_multiarch {
tag 'dependency-is-not-multi-archified', $proc->pkg_name . " depends on " . $dep->pkg_name . " (multi-arch: $dma)";
}
}
+ } elsif ($ma ne 'same' and $proc->info->field ('section', 'none') =~ m,(?:^|/)debug$,o) {
+ # Debug package that isn't M-A: same, exploit that (non-debug) dependencies
+ # is (almost certainly) a package for which the debug carries debug symbols.
+ foreach my $dep (@$deps) {
+ my $dma = $dep->info->field ('multi-arch', 'no');
+ if ($dma eq 'same' and $dep->info->field ('section', 'none') !~ m,(?:^|/)debug$,o) {
+ # Debug package isn't M-A: same, but depends on a package that is from same source
+ # that isn't a debug package and that is M-A same. Thus it is not possible to
+ # install debug symbols for all (architecture) variants of the binaries.
+ tag 'debug-package-for-multi-arch-same-pkg-not-coinstallable',
+ $proc->pkg_name . ' => ' . $dep->pkg_name;
+ }
+ }
}
}
diff --git a/checks/group-checks.desc b/checks/group-checks.desc
index 5975dbd..5e95e40 100644
--- a/checks/group-checks.desc
+++ b/checks/group-checks.desc
@@ -51,3 +51,24 @@ Certainty: possible
Info: The package is Multi-Arch "same", but it depends on a package that
is neither Multi-Arch "same" nor "foreign".
Ref: https://wiki.ubuntu.com/MultiarchSpec
+
+Tag: debug-package-for-multi-arch-same-pkg-not-coinstallable
+Severity: minor
+Certainty: possible
+Info: The debug package appear to be containing debug symbols for a
+ "Multi-Arch: same" package, but the debug package itself is not
+ "Multi-Arch: same". If so, it is not possible to have the debug
+ symbols for all architecture variants of the binaries available
+ at the same time.
+ .
+ Making a debug package co-installable with itself is very trival,
+ when installing the debug symbols beneath:
+ <tt>/usr/lib/debug/.build-id/<XX>/<part-id>/</tt>
+ .
+ dh_strip does this in debhelper compat 9. Otherwise, the expected
+ location of the debug symbols of a given ELF binary can be determined
+ by using:
+ .
+ readelf -n <binary-elf> | \
+ perl -ne 'print if s,^\s*Build ID:\s*(\S\S)(\S+),/usr/lib/debug/.build-id/$1/$2.debug,'
+
diff --git a/debian/changelog b/debian/changelog
index 5eab354..600e310 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ lintian (2.5.11) UNRELEASED; urgency=low
* Summary of tag changes:
+ Added:
+ - debug-package-for-multi-arch-same-pkg-not-coinstallable
- dm-upload-allowed-is-obsolete
- field-name-typo-in-dep5-copyright
- shlibs-uses-obsolete-relation
@@ -70,6 +71,10 @@ lintian (2.5.11) UNRELEASED; urgency=low
Vcs-* fields. (Closes: #681769)
* checks/files:
+ [RG] Recognise smarty3 as smarty itself.
+ * checks/group-checks{,.desc}:
+ + [NT] Detect debug packages not co-installable with itself,
+ when it provides debug symbols for a Multi-Arch: same package.
+ Thanks to Carsten Hey for the report. (Closes: #678896)
* checks/infofiles:
+ [NT] Use L::Util's gzip decompressor rather than zcat.
* checks/init.d{,.desc}:
diff --git a/t/tests/group-checks-multi-arch/debian/Makefile b/t/tests/group-checks-multi-arch/debian/Makefile
index a42c197..91d0c72 100644
--- a/t/tests/group-checks-multi-arch/debian/Makefile
+++ b/t/tests/group-checks-multi-arch/debian/Makefile
@@ -1,8 +1,10 @@
-DATAFILE=data-$(shell dpkg -qDEB_HOST_ARCH)
+DATAFILE=data-$(shell dpkg-architecture -qDEB_HOST_ARCH)
all:
echo $(DATAFILE) > $(DATAFILE)
install:
- install -d $(DESTDIR)/usr/lib/pkg-same/
+ install -d $(DESTDIR)/usr/lib/pkg-same/ \
+ $(DESTDIR)/usr/lib/debug/pkg-same/
install -m 0644 $(DATAFILE) $(DESTDIR)/usr/lib/pkg-same/$(DATAFILE)
+ install -m 0644 $(DATAFILE) $(DESTDIR)/usr/lib/debug/pkg-same/$(DATAFILE)
diff --git a/t/tests/group-checks-multi-arch/debian/debian/control.in b/t/tests/group-checks-multi-arch/debian/debian/control.in
index 0b5cbf8..4b5c68d 100644
--- a/t/tests/group-checks-multi-arch/debian/debian/control.in
+++ b/t/tests/group-checks-multi-arch/debian/debian/control.in
@@ -25,3 +25,15 @@ Description: {$description} - pkg-same
things. It should not be installed like a regular package.
.
Multi-arch same package.
+
+Package: pkg-dbg
+Section: debug
+Architecture: any
+Depends: $\{misc:Depends\}, pkg-same (= $\{binary:Version\}),
+ pkg-foreign (>= $\{source:Version\})
+Description: {$description} - pkg-dbg
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+ .
+ Multi-arch <none> debug package.
diff --git a/t/tests/group-checks-multi-arch/debian/debian/pkg-dbg.install b/t/tests/group-checks-multi-arch/debian/debian/pkg-dbg.install
new file mode 100644
index 0000000..fca7cfd
--- /dev/null
+++ b/t/tests/group-checks-multi-arch/debian/debian/pkg-dbg.install
@@ -0,0 +1 @@
+usr/lib/debug/
diff --git a/t/tests/group-checks-multi-arch/desc b/t/tests/group-checks-multi-arch/desc
index 1d9be20..c8b8730 100644
--- a/t/tests/group-checks-multi-arch/desc
+++ b/t/tests/group-checks-multi-arch/desc
@@ -2,4 +2,6 @@ Testname: group-checks-multi-arch
Sequence: 6000
Version: 1.0
Description: Test for multi-arch issues
-Test-For: dependency-is-not-multi-archified
+Test-For:
+ debug-package-for-multi-arch-same-pkg-not-coinstallable
+ dependency-is-not-multi-archified
diff --git a/t/tests/group-checks-multi-arch/tags b/t/tests/group-checks-multi-arch/tags
index 6e12e3f..0b65fa8 100644
--- a/t/tests/group-checks-multi-arch/tags
+++ b/t/tests/group-checks-multi-arch/tags
@@ -1 +1,2 @@
+I: group-checks-multi-arch source: debug-package-for-multi-arch-same-pkg-not-coinstallable pkg-dbg => pkg-same
W: group-checks-multi-arch source: dependency-is-not-multi-archified pkg-same depends on pkg-foreign (multi-arch: no)
--
Debian package checker
Reply to: