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

Bug#790739: don't warn about dev-pkg-without-shlib-symlink for GCC runtime libraries



Control: tags -1 + patch

* Matthias Klose <doko@debian.org>, 2015-07-01, 13:03:
lintian currently warns for every runtime library built by the GCC sources about the missing symlink, because GCC ships the .so symlink together with the static and internal libraries in /usr/lib/gcc/<triplet>/<version>.

Lintian already had code to accommodate GCC, but:

1) It assumed that the source package name is gcc-X.Y, which is no longer the case.

2) It assumed that <triplet> is $DEB_HOST_MULTIARCH, which is not the case on any-i386.

3) It didn't know about the 64 subdirectory...

4) ...but that didn't matter because it never checked existence of any symlinks, as long as /usr/lib/gcc/<triplet>/<version> existed.

The attached patch fixes all these bugs.

--
Jakub Wilk
diff --git a/checks/shared-libs.pm b/checks/shared-libs.pm
--- a/checks/shared-libs.pm
+++ b/checks/shared-libs.pm
@@ -268,7 +268,7 @@
 
             push @alt, $link_file;
 
-            if ($proc->pkg_src =~ m/^gcc-(\d+.\d+)$/o) {
+            if ($proc->pkg_src =~ m/^gcc-(\d+(?:.\d+)?)$/o) {
                 # gcc has a lot of bi-arch libs and puts the dev symlink
                 # in slightly different directories (to be co-installable
                 # with itself I guess).  Allegedly, clang (etc.) have to
@@ -277,11 +277,12 @@
                 my $gcc_ver = $1;
                 my $basename = basename($link_file);
                 my $madir = $MA_DIRS->value($proc->pkg_arch);
+                $madir =~ s/^i386/i586/;
                 my $stem;
                 # Generally we are looking for
                 #  * usr/lib/gcc/MA-TRIPLET/$gcc_ver/${BIARCH}$basename
                 #
-                # Where BIARCH is one of {,32/,n32/,x32/,sf/,hf/}.  Note
+                # Where BIARCH is one of {,64/,32/,n32/,x32/,sf/,hf/}.  Note
                 # the "empty string" as a possible option.
                 #
                 # The two-three letter name directory before the
@@ -291,7 +292,7 @@
                 # just do without it as often (but not always) works.
                 $stem = "usr/lib/gcc/$gcc_ver" unless defined $madir;
 
-                push @alt, map { "$stem/$_"  } ('', qw(32 n32 x32 sf hf));
+                push @alt, map { "$stem/$_$basename" } ('', qw(64/ 32/ n32/ x32/ sf/ hf/));
             }
 
           PKG:

Reply to: