Bug#959019: lintian: True or false positive for uses-dpkg-database-directly? Checking for a running dpkg by testing for locks on /var/lib/dpkg/lock
Package: lintian
Version: 2.68.0
Hi,
lintian on aptitude-robot emits (beyond others) these two tags of which
I'm not sure if they're true or false positives:
W: aptitude-robot: uses-dpkg-database-directly etc/init.d/aptitude-robot
W: aptitude-robot: uses-dpkg-database-directly usr/sbin/aptitude-robot-session
Actually it is wrong that these scripts access dpkg's _database_. They
only access respectively check for other accesses of /var/lib/dpkg/lock:
[…]/aptitude-robot → git grep /var/lib/dpkg
aptitude-robot-session:if fuser -s /var/lib/dpkg/lock ; then
debian/init.d: if fuser -s /var/lib/dpkg/lock ; then
[…]/aptitude-robot →
So my question (mostly to Guillem, X-Debbugs-CC'ed): Does this file
really belong to the "internal interface", "the entire dpkg database,
its layout and files"?
If yes, how do I check with dpkg's tools if dpkg's database is currently
locked or more generally in use? (And maybe a hint in the lintian tag
description would be nice. :-)
If no, lintian should continue check for "/var/lib/dpkg" in code, but
ignore all occurrences of "/var/lib/dpkg/lock" before emitting the tag.
Depending on the answer, please either close this "bug report" or adjust
the severity accordingly. TIA!
-- System Information:
Debian Release: bullseye/sid
APT prefers unstable
APT policy: (990, 'unstable'), (600, 'testing'), (500, 'unstable-debug'), (500, 'buildd-unstable'), (110, 'experimental'), (1, 'experimental-debug'), (1, 'buildd-experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.5.0-1-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND, TAINT_UNSIGNED_MODULE
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled
Versions of packages lintian depends on:
ii binutils 2.34-6
ii bzip2 1.0.8-2
ii diffstat 1.63-1
ii dpkg 1.19.7
ii dpkg-dev 1.19.7
ii file 1:5.38-4
ii gettext 0.19.8.1-10
ii gpg 2.2.20-1
ii intltool-debian 0.35.0+20060710.5
ii libapt-pkg-perl 0.1.36+b3
ii libarchive-zip-perl 1.68-1
ii libcapture-tiny-perl 0.48-1
ii libclass-xsaccessor-perl 1.19-3+b3
ii libclone-perl 0.45-1
ii libcpanel-json-xs-perl 4.19-1
ii libdevel-size-perl 0.83-1+b1
ii libdigest-sha-perl 6.02-1+b2
ii libdpkg-perl 1.19.7
ii libemail-valid-perl 1.202-1
ii libfile-basedir-perl 0.08-1
ii libfile-find-rule-perl 0.34-1
ii libfont-ttf-perl 1.06-1
ii libhtml-parser-perl 3.72-5
ii libio-async-loop-epoll-perl 0.20-1
ii libio-async-perl 0.75-1
ii libjson-maybexs-perl 1.004000-1
ii liblist-compare-perl 0.53-1
ii liblist-moreutils-perl 0.416-1+b5
ii libmoo-perl 2.004000-1
ii libmoox-aliases-perl 0.001006-1
ii libnamespace-clean-perl 0.27-1
ii libpath-tiny-perl 0.112-1
ii libsereal-decoder-perl 4.011+ds-1
ii libsereal-encoder-perl 4.011+ds-1
ii libtext-levenshtein-perl 0.13-1
ii libtimedate-perl 2.3200-1
ii libtry-tiny-perl 0.30-1
ii libtype-tiny-perl 1.010001-1
ii libunicode-utf8-perl 0.62-1+b1
ii liburi-perl 1.76-2
ii libxml-libxml-perl 2.0134+dfsg-2
ii libxml-writer-perl 0.625-1
ii libyaml-libyaml-perl 0.81+repack-1
ii man-db 2.9.1-1
ii patchutils 0.3.4-2+b1
ii perl [libdigest-sha-perl] 5.30.0-10
ii t1utils 1.41-4
ii xz-utils 5.2.4-1+b1
Versions of packages lintian recommends:
ii libperlio-gzip-perl 0.19-1+b6
Versions of packages lintian suggests:
ii binutils-multiarch 2.34-6
ii libtext-template-perl 1.58-1
-- no debconf information
Reply to: