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

[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/&lt;XX&gt;/&ltpart-id&gt;/</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 &lt;binary-elf&gt; | \
+      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: