XPost: linux.debian.bugs.dist
From:
[email protected]
Hey Guillem.
On Fri, 2024-02-16 at 05:26 +0100, Guillem Jover wrote:
Thanks!
Well rather: thank you, for your constant efforts to DPKG and the whole ecosystem.
At least it seems to make it impossible to definitely find out
whether a package
is not installed (respectively not existant).
Exactly.
Maybe it would also be worth to elaborate on:
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).
My understanding would have been, that e.g. when searching for a
package, 1 would in practise mean that it doesn't exist at all (when
looking from APT’s PoV) respectively is in the state 'not-installed'.
So I guess for end-users it might be helpful to be told that, i.e. that
these two things (non-existing from APT) and non-installed are the same
from DPKG’s PoV, and would trigger 1.
Also perhaps notifying somewhere that 'not-installed' will never really
show up anywhere as a printed query result.
This is used for field names, be them real or virtual, so erroring
out
on fields that do not exist would seem bad. But there's the
distinction between the real fields and virtual ones, where the
latter
always contain a colon. So I guess I could make the latter, at least
warn if they do not exist. My main concern with making them errors,
is
that this would break backwards and/or forwards compatibility, where
you could not use a new or renamed field with old or new releases.
Warnings are at last difficult to use when scripting.
And btw: it also succeeds if there's no colon, e.g.:
$ dpkg-query --showformat='${foobar}' --show 2>/dev/null ; echo $?
0
Thanks,
Chris.
PS: In the dpkg-query manpage, there's:
Desired action:
u = Unknown
i = Install
h = Hold
r = Remove
p = Purge
Package status:
n = Not-installed
c = Config-files
H = Half-installed
U = Unpacked
F = Half-configured
W = Triggers-awaiting
t = Triggers-pending
i = Installed
Error flags:
<empty> = (none)
R = Reinst-required
I think, when these are actually printed, the full names are all
lowercase, i.e. installed not Installed ... might perhaps make sense to
align that?
--- SoupGate-Win32 v1.05
* Origin: you cannot sedate... all the things you hate (1:229/2)