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

Bug#528975: [lintian] refreshed with remarks from irc



Package: lintian
Version: 2.5.14

refreshed with remarks from irc

Bastien
From e3f06a993d376f79710f98f099854e6c4c2b4ccb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastien=20ROUCARI=C3=88S?= <roucaries.bastien@gmail.com>
Date: Wed, 31 Jul 2013 18:32:34 +0200
Subject: [PATCH] Add testing of no multiarch old lib dir

/lib32 /lib64 /libx32 and /usr counterpart are obsolete.

Tag it.
---
 checks/files.desc                              |    8 ++++
 checks/files.pm                                |   47 +++++++++++++++++++-----
 t/tests/files-foo-in-bar/debian/debian/install |    6 +++
 t/tests/files-foo-in-bar/desc                  |    1 +
 t/tests/files-foo-in-bar/tags                  |    6 +++
 5 files changed, 59 insertions(+), 9 deletions(-)

diff --git a/checks/files.desc b/checks/files.desc
index 55f94fd..e9c1d9e 100644
--- a/checks/files.desc
+++ b/checks/files.desc
@@ -532,6 +532,14 @@ Info: The Filesystem Hierarchy Standard forbids the installation of new
  files or directories in the root directory.
 Ref: fhs therootfilesystem
 
+Tag: non-multiarch-lib-dir
+Severity: important
+Certainty: certain
+Info: The following library use an old path (like /lib64 or /lib32)
+ instead of using multiarch path (like for instance
+ /lib/x86_64-linux-gnu/ or /lib/i386-linux-gnu/).
+Ref: https://wiki.debian.org/Multiarch
+
 Tag: subdir-in-bin
 Severity: serious
 Certainty: certain
diff --git a/checks/files.pm b/checks/files.pm
index e1e8d9f..d979090 100644
--- a/checks/files.pm
+++ b/checks/files.pm
@@ -631,11 +631,26 @@ sub run {
                 elsif (
                     $file !~ m,^usr/(?:X11R6|X386|
                                     bin|games|include|
-                                    lib|libx?32|lib64|
+                                    lib|
                                     local|sbin|share|
                                     src|spool|tmp)/,x
                   ) {
-                    tag 'non-standard-dir-in-usr', $file;
+                    if ($file =~ m,^usr/lib(?'libsuffix'64|x?32)/,) {
+                        my $libsuffix = $+{libsuffix};
+                        # libc6 exception is due to FHS
+                        # other are transitional, waiting for full implementation of multiarch
+                        # (even ^libc6- like libc6-dev-amd64 that should be in the longer term
+                        #  libc6:amd64)
+                        unless ($pkg eq 'libc6' or
+                                $pkg =~ m/^($libsuffix)/ or
+                                $pkg =~ m/^libc6-/) {
+                            tag 'non-multiarch-lib-dir', $file;
+                        }
+                    }
+                    else {
+                        tag 'non-standard-dir-in-usr', $file;
+                    }
+                    
                 }
 
                 # unless $file =~ m,^usr/[^/]+-linuxlibc1/,; was tied
@@ -747,7 +762,7 @@ sub run {
         elsif (
                 $file =~ m,^[^/]+/$,o
             and $file !~ m{\A (?:
-                  bin|boot|dev|etc|home|lib(?:64|x?32)?
+                  bin|boot|dev|etc|home|lib
                  |mnt|opt|root|run|sbin|selinux|srv|sys
                  |tmp|usr|var)  /
           }oxsm
@@ -760,12 +775,26 @@ sub run {
             #
             # Also make an exception for /emul, which is used for
             # multiarch support in Debian at the moment.
-            tag 'non-standard-toplevel-dir', $file
-              unless $pkg eq 'base-files'
-              or $pkg eq 'hurd'
-              or $pkg eq 'hurd-udeb'
-              or $pkg =~ /^rootskel(?:-bootfloppy)?/
-              or $file =~ m,^emul/,;
+            if ($file =~ m,^lib(?'libsuffix'64|x?32)/,) {
+                my $libsuffix = $+{libsuffix};
+                # see comments for ^usr/lib(?'libsuffix'64|x?32)
+                unless ($pkg eq 'libc6' or
+                        $pkg =~ m/^$libsuffix/ or
+                        $pkg =~ /^libc6-/) {
+                    tag 'non-multiarch-lib-dir', $file;
+                }
+            } elsif ($file =~ m,^emul/,) {
+                # Make an exception for /emul, which is used for multiarch
+                # support in Debian at the moment.
+            } else {
+                unless ($pkg eq 'base-files' or
+                        $pkg eq 'hurd' or
+                        $pkg eq 'hurd-udeb' or
+                        $pkg =~ /^rootskel(?:-bootfloppy)?/) {
+                    tag 'non-standard-toplevel-dir', $file
+                }
+            }
+            
         }
 
         # ---------------- compatibility symlinks should not be used
diff --git a/t/tests/files-foo-in-bar/debian/debian/install b/t/tests/files-foo-in-bar/debian/debian/install
index 6aca91d..057c19d 100644
--- a/t/tests/files-foo-in-bar/debian/debian/install
+++ b/t/tests/files-foo-in-bar/debian/debian/install
@@ -3,6 +3,9 @@ bar etc/gconf/schemas/
 bar etc/rc.boot
 bar etc/rc.d
 bar etc/udev/rules.d
+bar lib32
+bar lib64
+bar libx32
 bar mnt/foo
 bar run/foo
 bar srv/foo
@@ -10,6 +13,9 @@ bar tmp/foo
 bar usr/bin/foo
 bar usr/foo
 bar usr/lib/debug/
+bar usr/lib32
+bar usr/lib64
+bar usr/libx32
 bar usr/lib/perl/
 bar usr/lib/python2.6/
 bar usr/lib/sgml
diff --git a/t/tests/files-foo-in-bar/desc b/t/tests/files-foo-in-bar/desc
index 712bfb2..9bc1248 100644
--- a/t/tests/files-foo-in-bar/desc
+++ b/t/tests/files-foo-in-bar/desc
@@ -20,6 +20,7 @@ Test-For:
  file-in-usr-lib-site-python
  file-in-usr-local
  image-file-in-usr-lib
+ non-multiarch-lib-dir
  package-contains-xvpics-dir
  package-installs-file-to-usr-x11r6
  package-installs-into-etc-gconf-schemas
diff --git a/t/tests/files-foo-in-bar/tags b/t/tests/files-foo-in-bar/tags
index b5ff6c5..467f687 100644
--- a/t/tests/files-foo-in-bar/tags
+++ b/t/tests/files-foo-in-bar/tags
@@ -26,6 +26,12 @@ E: files-foo-in-bar: file-in-usr-lib-site-python usr/lib/site-python/foo/
 E: files-foo-in-bar: file-in-usr-lib-site-python usr/lib/site-python/foo/bar
 E: files-foo-in-bar: file-in-usr-local usr/local/foo/bar
 E: files-foo-in-bar: nested-examples-directory usr/share/doc/files-foo-in-bar/examples/examples/
+E: files-foo-in-bar: non-multiarch-lib-dir lib32/
+E: files-foo-in-bar: non-multiarch-lib-dir lib64/
+E: files-foo-in-bar: non-multiarch-lib-dir libx32/
+E: files-foo-in-bar: non-multiarch-lib-dir usr/lib32/
+E: files-foo-in-bar: non-multiarch-lib-dir usr/lib64/
+E: files-foo-in-bar: non-multiarch-lib-dir usr/libx32/
 E: files-foo-in-bar: non-standard-dir-in-var var/foo/
 E: files-foo-in-bar: package-contains-xvpics-dir usr/share/doc/files-foo-in-bar/.xvpics/
 E: files-foo-in-bar: package-installs-file-to-usr-x11r6 usr/X11R6/
-- 
1.7.10.4


Reply to: