Package: dpkg
Version: 1.22.4
Severity: normal
Hey.
dpkg-query manpage says:
EXIT STATUS
0 The requested query was successfully performed.
1 The requested query failed either fully or partially, due to no
file or package being found (except for --control-path,
--control-list and --control-show were such errors are fatal).
2 Fatal or unrecoverable error due to invalid command-line usage, or
interactions with the system, such as accesses to the database,
memory allocations, etc.
E.g.:
$ dpkg-query --showformat='${db:Status-Status}' --show --list 2>/dev/null ;
echo $?
2
looks good, as does
$ dpkg-query --showformat='${db:Status-Status}' --show not-existing-package
2>/dev/null ; echo $?
1
But e.g.
$ dpkg-query --showformat='${db:Status-Statu' --show 2>/dev/null ; echo $?
1
causes also 1, though it fails because of the syntax error in the format string.
Shouldn't that be a 2?
At least it seems to make it impossible to definitely find out whether a package
is not installed (respectively not existant).
btw. it will also not fail at all in cases like:
$ dpkg-query --showformat='${db:Status-Statu}' --show 2>/dev/null ; echo $?
0
where the field doesn't exist. Not sure whether that’s desired or not
Cheers,
Chris.
-- Package-specific info:
-- System Information:
Debian Release: trixie/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.6.15-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=en_DE.UTF-8, LC_CTYPE=en_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages dpkg depends on:
ii libbz2-1.0 1.0.8-5+b2
ii libc6 2.37-15
ii liblzma5 5.4.5-0.3
ii libmd0 1.1.0-2
ii libselinux1 3.5-2
ii libzstd1 1.5.5+dfsg2-2
ii tar 1.35+dfsg-3
ii zlib1g 1:1.3.dfsg-3+b1
dpkg recommends no packages.
Versions of packages dpkg suggests:
ii apt 2.7.11
ii debsig-verify 0.29
-- no debconf information