Control: tags -1 + patch
* Matthias Klose <d...@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: