feat(info): show the install reason and drop the indentation
N? and `info PKG` now print three lines, none indented:
PKG: <description>
reason: explicitly installed | installed as a dependency | unknown | not installed
required by: <installed dependents, comma separated> | nothing
The reason comes from a new <be>_reason backend function: apt-mark
showauto / showmanual (dpkg decides for a package in neither list), the
Install Reason of pacman -Qi, dnf repoquery --installed %{reason} (dnf4
and dnf5 words) and the Installed line of zypper info (rpm plus libzypp's
AutoInstalled when zypper is locked). A row whose old version is "-" is
not installed and the backend is not asked. The "(installed)" qualifier
moves to --help, README and DESIGN.
The rpm E2E fixture and e2e_reset now also mark su-dummy-a and su-dummy-c
as user-installed on dnf, which records plain rpm installs as "unknown",
so 1? and 2? show both reasons on all 12 distros. The verified commands
are recorded in discovery/{apt,pacman,rpm}.md.
This commit is contained in:
1 parent
1354db6c39
commit
71d7f87aa3
21 files changed
+589
-48
No files matched your search
@@ -51,6 +51,13 @@ declare -A PROVIDES=(
|
||||
[ncurses-libs]=$'ncurses-libs\nlibtinfo.so.6()(64bit)'
|
||||
[redhat-rpm-config]=redhat-rpm-config [rpm]=rpm
|
||||
)
|
||||
# what dnf4 records as the install reason (`repoquery --installed --qf %{reason}`; the fake dnf
|
||||
# speaks dnf5's words with FAKE_DNF_MAJOR=5): plain `rpm -i` leaves "unknown"
|
||||
declare -A REASON=(
|
||||
[su-dummy-a]=user [su-dummy-b]=dependency [su-dummy-c]=unknown [su-dummy-d]=user
|
||||
[bash]=user [glibc]=dependency [glibc-common]=dependency [glibc-gconv-extra]=weak-dependency
|
||||
[basesystem]=group [setup]=dependency [filesystem]=dependency
|
||||
)
|
||||
# FAKE_RPM_NO_D=1: su-dummy-d (which requires every dummy) is not installed
|
||||
declare -A FILES=(
|
||||
[su-dummy-a]=/usr/share/su-dummy/su-dummy-a [su-dummy-b]=/usr/share/su-dummy/su-dummy-b
|
||||
|
||||
Reference in new issue
Block a user