Bug#839932: debsums: Ignores files with shared names (like /bin/ping /pin/ping6) in same package

LIkhachev Vasiliy lihachev at fastvps.ru
Thu Oct 6 08:05:18 UTC 2016


Package: debsums
Version: 2.0.52+deb7u1
Severity: important

Dear Maintainer,

Debsums in Debian Wheezy does not reports changes in files, that have similar name, one of which extends the other. The best example is ping and ping6. If you perform any change in file is is just ignored:

# debsums iputils-ping
/bin/ping                                                                     OK
/bin/ping6                                                                    OK
/usr/share/doc/iputils-ping/RELNOTES.gz                                       OK
/usr/share/doc/iputils-ping/changelog.Debian.gz                               OK
/usr/share/doc/iputils-ping/copyright                                         OK
/usr/share/lintian/overrides/iputils-ping                                     OK
/usr/share/man/man8/ping.8.gz                                                 OK
# mv /bin/ping /tmp/ping
# cp /bin/less /bin/ping 
# debsums iputils-ping
/bin/ping6                                                                    OK
/usr/share/doc/iputils-ping/RELNOTES.gz                                       OK
/usr/share/doc/iputils-ping/changelog.Debian.gz                               OK
/usr/share/doc/iputils-ping/copyright                                         OK
/usr/share/lintian/overrides/iputils-ping                                     OK
/usr/share/man/man8/ping.8.gz                                                 OK
#

Version 2.0.53 from Debian Jessie work good. It differs in line 465, where dpkg-query performed.

# diff debsums-2.0.53/debsums /usr/bin/debsums
274c274
< for (`LC_ALL=C dpkg-divert --list --admindir $DPKG`)
---
> for (`LC_ALL=C /usr/sbin/dpkg-divert --list --admindir $DPKG`)
465c465
< 	my $correct_package = `dpkg-query "--admindir=$DPKG" -S "/$path" | awk -F': ' '{print \$1}'`;
---
> 	my $correct_package = `dpkg-query "--admindir=$DPKG" -S "$path" | awk -F: '{print \$1}'`;

The problem is that dpkg-query uses $path as regex, when it is NOT started from '/', and as a full name if it IS strted from '/'.

# dpkg-query "--admindir=/var/lib/dpkg" -S "bin/ping" | awk -F: '{print $1}'
iputils-ping
iputils-ping

# dpkg-query "--admindir=/var/lib/dpkg" -S "/bin/ping" | awk -F': ' '{print $1}'
iputils-ping

The fix seems to be easy - just backport 2.0.53 version to Wheezy.

*** Please consider answering these questions, where appropriate ***

   * What led up to the situation?
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these lines ***


-- System Information:
Debian Release: 7.11
  APT prefers oldstable-updates
  APT policy: (500, 'oldstable-updates'), (500, 'oldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 2.6.32-042stab117.14 (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages debsums depends on:
ii  dpkg                  1.16.18
ii  libdpkg-perl          1.16.18
ii  libfile-fnmatch-perl  0.02-1+b2
ii  perl                  5.14.2-21+deb7u4
ii  ucf                   3.0025+nmu3

debsums recommends no packages.

debsums suggests no packages.

-- no debconf information



More information about the pkg-perl-maintainers mailing list