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

lintian: r768 - in trunk: checks debian



Author: rra
Date: 2006-11-11 05:40:54 +0100 (Sat, 11 Nov 2006)
New Revision: 768

Modified:
   trunk/checks/binaries
   trunk/checks/shared-libs
   trunk/debian/changelog
Log:
* checks/binaries{.desc,}:
  + [RA] Add a special exception to the shared library dependency check
    for the dynamic loader itself.
* checks/shared-libs:
  + [RA] Calling ldconfig is also required for libraries installed in
    various subdirectories of its standard search path based on hardware
    capabilities.  Reported by Aurelien Jarno.  (Closes: #396278)

Modified: trunk/checks/binaries
===================================================================
--- trunk/checks/binaries	2006-11-11 04:09:01 UTC (rev 767)
+++ trunk/checks/binaries	2006-11-11 04:40:54 UTC (rev 768)
@@ -224,16 +224,20 @@
     my %libc5_binary;
     my @needed;
     if (!exists($NEEDED{$file}) && !defined($NEEDED{$file})) {
-	if ($info =~ m/shared object/o && $file !~ m#^\./usr/lib/debug/#) {
+	if ($info =~ m/shared object/o) {
+            # Some exceptions: detached debugging information and the dynamic
+            # loader (which itself has no dependencies).
+            next if ($file =~ m%^\./usr/lib/debug/%);
+            next if ($file =~ m%^\./lib/(?:[\w/]+/)?ld-[\d.]+\.so$%);
 	    tag "shared-lib-without-dependency-information", "$file";
 	} else {
 	    # Some exceptions: files in /boot, /usr/lib/debug/*, named *-static or
 	    # *.static, or *-static as package-name.
-	    next if ($file =~ m#^./boot/#);
+	    next if ($file =~ m%^./boot/%);
 	    # klibc binaries appear to be static.
 	    next if ($KLIBC{$file});
 	    # Location of debugging symbols:
-	    next if ($file =~ m#^./usr/lib/debug/#);
+	    next if ($file =~ m%^./usr/lib/debug/%);
 	    next if ($file =~ /(\.|-)static$/);
 	    next if ($pkg =~ /-static$/);
 

Modified: trunk/checks/shared-libs
===================================================================
--- trunk/checks/shared-libs	2006-11-11 04:09:01 UTC (rev 767)
+++ trunk/checks/shared-libs	2006-11-11 04:40:54 UTC (rev 768)
@@ -41,6 +41,12 @@
         lib/libc5-compat
       );
 
+# Libraries that should only be used in the presence of certain capabilities
+# may be located in subdirectories of the standard ldconfig search path with
+# one of the following names.
+my %hwcap_dir = map { $_ => 1 }
+    qw( i486 i586 i686 cmov tls );
+
 # The following architectures should always have a STACK setting in shared
 # libraries to disable executable stack.  Other architectures don't always add
 # this section and therefore can't be checked.
@@ -171,8 +177,16 @@
             }
         }
 
-	# installed in a directory controlled by the dynamic linker?
-	if (exists $ldso_dir{dirname($cur_file)}) {
+	# Installed in a directory controlled by the dynamic linker?  We have
+	# to strip off directories named for hardware capabilities.
+	my $dirname = dirname($cur_file);
+	my $last;
+	do {
+	    $dirname =~ s%/([^/]+)$%%;
+	    $last = $1;
+	} while ($last && $hwcap_dir{$last});
+	$dirname .= "/$last" if $last;
+	if (exists $ldso_dir{$dirname}) {
 	    # yes! so postinst must call ldconfig
 	    $must_call_ldconfig = $real_file;
 	}

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2006-11-11 04:09:01 UTC (rev 767)
+++ trunk/debian/changelog	2006-11-11 04:40:54 UTC (rev 768)
@@ -1,8 +1,10 @@
 lintian (1.23.26) UNRELEASED; urgency=low
 
-  * checks/binaries.desc:
+  * checks/binaries{.desc,}:
     + [RA] Add a policy reference for unstripped-binary-or-object.
       Thanks, Bas Wijnen.  (Closes: #394419)
+    + [RA] Add a special exception to the shared library dependency check
+      for the dynamic loader itself.
   * checks/control-file{.desc,}:
     + [RA] Diagnose a control file that creates binary packages in a
       different archive category from the source package or the other
@@ -24,8 +26,12 @@
   * checks/menu.desc:
     + [RA] Remove stray commas in Ref strings since the reporting code
       considers commas to be separating two different references.
+  * checks/shared-libs:
+    + [RA] Calling ldconfig is also required for libraries installed in
+      various subdirectories of its standard search path based on hardware
+      capabilities.  Reported by Aurelien Jarno.  (Closes: #396278)
 
- -- Russ Allbery <rra@debian.org>  Fri, 10 Nov 2006 20:04:11 -0800
+ -- Russ Allbery <rra@debian.org>  Fri, 10 Nov 2006 20:39:32 -0800
 
 lintian (1.23.25) unstable; urgency=low
 



Reply to: