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

Bug#787853: lintian: Do not complain about lack of LFS from local implementations



Control: tags -1 + patch

On 2015-06-05 19:17:07 [+0200], Guillem Jover wrote:
> it should not. So I think that, to avoid false-positives, only undefined
> symbols should be considered.

Added a patch for this. Another limition could be to look for symbols from
GLIBC. With what you suggested inetutils-ftpd gets off the list.

> Thanks,
> Guillem

Sebastian
>From b5d7e4af568f87d22b62faa2b7f7f3a58837d389 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Date: Wed, 22 Jul 2015 13:06:28 +0200
Subject: [PATCH] binaries: limit LFS symbol checks to unresolved symbols

Guillem reported in BTS [0] that inetutils-ftpd is marked as
binary-file-built-without-LFS-support while it has LFS support. The
false-positive comes from a local symbol.
This patch limits the symbol checks to symbols which are unresolved
(i.e. not local, come from an external libary) as suggested by Guillem.
Another (additional) limitation could be to limit the version to ^GLIBC_
as all the symbols for the LFS check come from GLIBC.

With this patch the inetutils-ftpd package is no longer marked with
binary-file-built-without-LFS-support while havp is still marked.

[0] https://bugs.debian.org/787853
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
 checks/binaries.pm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/checks/binaries.pm b/checks/binaries.pm
index 4b068dcd5c36..c22ed4bd1392 100644
--- a/checks/binaries.pm
+++ b/checks/binaries.pm
@@ -152,9 +152,10 @@ sub run {
             my ($foo, $sec, $sym) = @{$symbol};
 
             unless (defined $has_lfs) {
-                if ($LFS_SYMBOLS->known($sym)) {
+                if ($foo =~ /^UND$/ and $LFS_SYMBOLS->known($sym)) {
                     # Using a 32bit only interface call, some parts of the
-                    # binary are built without LFS.
+                    # binary are built without LFS. If the symbol is defined
+                    # within the binary then we ignore it
                     $has_lfs = 0;
                 }
             }
-- 
2.1.4


Reply to: