commit: 692759d4e74b958dff78f86a53a3b56f4920a980 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Mon Apr 8 08:56:21 2019 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Mon Apr 8 08:56:21 2019 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=692759d4
qdepends: update manpage for rewrite Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> man/include/qdepends-05-examples.include | 20 +++----- man/include/qdepends.desc | 33 ++++++++++---- man/include/qdepends.optdesc.yaml | 11 +++-- man/qdepends.1 | 78 ++++++++++++++++---------------- qdepends.c | 6 +-- 5 files changed, 79 insertions(+), 69 deletions(-) diff --git a/man/include/qdepends-05-examples.include b/man/include/qdepends-05-examples.include index 04fb92f..d3eac01 100644 --- a/man/include/qdepends-05-examples.include +++ b/man/include/qdepends-05-examples.include @@ -1,25 +1,19 @@ .SH "EXAMPLES" For finding out what a particular package depends on for building, you could do: .nf - $ \fIqdepends nano\fR + $ \fIqdepends -d nano\fR app-editors/nano-2.3.2: >=sys-libs/ncurses-5.9-r1[unicode] sys-apps/file ... .fi This tells us that we have \fIapp-editors/nano-2.3.2\fR installed and it depends on ncurses (among other things). - -Searching for packages that actually have nano in their RDEPEND: +.P +Searching for packages that actually depend on logrotate: .nf - $ \fIqdepends -rQ nano\fR - virtual/editor-0 + $ \fIqdepends -qQ logrotate\fR + sys-apps/portage-2.3.18: !<app-admin/logrotate-3.8.0 .fi -Tells us that \fIvirtual/editor\fR depends on nano. However, if we -wanted to know in what way a package specifically depends on another -package, one can use \fB\-v\fR. -.nf - $ \fIqdepends -vrQ logrotate\fR - sys-apps/portage-2.3.18: >=app-admin/logrotate-3.8.0 -.fi -This way we can see there is a specific dependency expressed here. If +The \fB-q\fR flag suppresses the entire list of dependencies here, so we +can quickly see what specific dependency is expressed here. If the above had used \fI<logrotate-3\fR, for example, no matches would be returned. Not using any specifiers allows to reveal in what way a dependency is expressed. diff --git a/man/include/qdepends.desc b/man/include/qdepends.desc index 0143847..070032e 100644 --- a/man/include/qdepends.desc +++ b/man/include/qdepends.desc @@ -1,15 +1,30 @@ The .I qdepends -applet has a couple different modes. Normally it is geared towards -answering the queries "what does package X depend on" and "what packages depend -on X". Both can further be classified into build, run, and post dependencies. - -By default, it will tell you the build time dependencies only (DEPEND). - +applet has two different modes, forward and reverse dependency querying. +Default operation is forward mode, answering the queries "what does +package X depend on", while reverse mode answers "what packages depend +on X". Both modes can be further specified into build (DEPEND), run +(RDEPEND), post (PDEPEND) and EAPI7's BDEPEND dependencies. +.P +By default, \fIqdepends\fR returns the unique set of atoms that match +all dependency variables. To split this out per variable, use \fB-v\fR +option. +.P Currently, .I qdepends will only query installed packages. There is no support for querying packages not yet installed (see \fBequery\fR(1) for that). - -If there is no answer to your query (i.e. you've asked for a package that is not -installed, or a version that does not match), then you will get back no output. +.P +If there is no answer to your query (i.e. you've asked for a package +that is not installed, or a version that does not match), then you will +get empty output. +.P +After version \fB0.74\fR of portage-utils, \fIqdepends\fR was changed +considerably to be more consistent and more advanced. Most notably, +this has changed default output for reverse mode (\fB-Q\fR). Instead of +just displaying the package name, like for forward mode, all +dependencies for the package are shown. When colours are enabled, the +matched atom is highlighted in the list. In addition to just querying +DEPEND, the default mode changed to query all DEPEND-variables, and +return the unique atoms found in them. Automatic regular expression +match support was removed. diff --git a/man/include/qdepends.optdesc.yaml b/man/include/qdepends.optdesc.yaml index 5d786f3..f317227 100644 --- a/man/include/qdepends.optdesc.yaml +++ b/man/include/qdepends.optdesc.yaml @@ -16,14 +16,15 @@ format: | Pretty-print DEPEND declaration to be used in an ebuild. This option initiates a very different mode of operation. Instead of printing searching through packages, it constructs a multi-line - statement in with shell syntax, to be used in an ebuild. Each + statement with shell syntax, to be used in an ebuild. Each argument is turned into a separate DEPEND variable declaration. You need to quote dependency strings in order for them to be printed as a single dependency declaration. When used with the \fB\-q\fR option, only the pretty-printed dependency declaration is printed, e.g.\ the DEPEND= part is skipped. verbose: | - When in reverse dep mode, print the package or packages that matched - the query from the dependency line being searched. This includes - specifiers and versions. -quiet: Suppress DEPEND= output for \fB\-f\fR. + Pretty-print atoms output, per DEPEND-variable. This is much like + the \fB-f\fR option, but uses as input the dependency info from the + matches. +quiet: Suppress DEPEND= output for \fB\-f\fR. Only print the matching + atom for \fB\-Q\fR. diff --git a/man/qdepends.1 b/man/qdepends.1 index f5c8c01..dcaef0c 100644 --- a/man/qdepends.1 +++ b/man/qdepends.1 @@ -1,5 +1,5 @@ .\" generated by mkman.py, please do NOT edit! -.TH qdepends "1" "Feb 2019" "Gentoo Foundation" "qdepends" +.TH qdepends "1" "Apr 2019" "Gentoo Foundation" "qdepends" .SH NAME qdepends \- show dependency info .SH SYNOPSIS @@ -8,23 +8,38 @@ qdepends \- show dependency info .SH DESCRIPTION The .I qdepends -applet has a couple different modes. Normally it is geared towards -answering the queries "what does package X depend on" and "what packages depend -on X". Both can further be classified into build, run, and post dependencies. - -By default, it will tell you the build time dependencies only (DEPEND). - +applet has two different modes, forward and reverse dependency querying. +Default operation is forward mode, answering the queries "what does +package X depend on", while reverse mode answers "what packages depend +on X". Both modes can be further specified into build (DEPEND), run +(RDEPEND), post (PDEPEND) and EAPI7's BDEPEND dependencies. +.P +By default, \fIqdepends\fR returns the unique set of atoms that match +all dependency variables. To split this out per variable, use \fB-v\fR +option. +.P Currently, .I qdepends will only query installed packages. There is no support for querying packages not yet installed (see \fBequery\fR(1) for that). - -If there is no answer to your query (i.e. you've asked for a package that is not -installed, or a version that does not match), then you will get back no output. +.P +If there is no answer to your query (i.e. you've asked for a package +that is not installed, or a version that does not match), then you will +get empty output. +.P +After version \fB0.74\fR of portage-utils, \fIqdepends\fR was changed +considerably to be more consistent and more advanced. Most notably, +this has changed default output for reverse mode (\fB-Q\fR). Instead of +just displaying the package name, like for forward mode, all +dependencies for the package are shown. When colours are enabled, the +matched atom is highlighted in the list. In addition to just querying +DEPEND, the default mode changed to query all DEPEND-variables, and +return the unique atoms found in them. Automatic regular expression +match support was removed. .SH OPTIONS .TP \fB\-d\fR, \fB\-\-depend\fR -Show DEPEND info (default). +Show DEPEND info. .TP \fB\-r\fR, \fB\-\-rdepend\fR Show RDEPEND info. @@ -35,13 +50,7 @@ Show PDEPEND info. \fB\-b\fR, \fB\-\-bdepend\fR Show BDEPEND info. .TP -\fB\-k\fR \fI<arg>\fR, \fB\-\-key\fR \fI<arg>\fR -Advanced option to allow querying the VDB. This option overrides -\fB\-d\fR, \fB\-r\fR, \fB\-p\fR, \fB\-b\fR or \fB\-a\fR. -\fI<arg>\fR can be any key from Portage's VDB, e.g.\ any file from -var/db/pkg/<cat>/<pkg>/. -.TP -\fB\-Q\fR \fI<arg>\fR, \fB\-\-query\fR \fI<arg>\fR +\fB\-Q\fR, \fB\-\-query\fR Query reverse deps. This basically reverses the search to any package that references \fI<arg>\fR in DEPEND, RDEPEND, PDEPEND or BDEPEND. This can be useful to find consumers of a given package, e.g.\ to @@ -50,14 +59,11 @@ search for packages that have \fIlogwatch\fR in their DEPEND. \fB\-N\fR, \fB\-\-name\-only\fR Only show category/package, instead of category/package-version. .TP -\fB\-a\fR, \fB\-\-all\fR -Show *DEPEND, alias for \fB\-drpb\fR. -.TP \fB\-f\fR, \fB\-\-format\fR Pretty-print DEPEND declaration to be used in an ebuild. This option initiates a very different mode of operation. Instead of printing searching through packages, it constructs a multi-line -statement in with shell syntax, to be used in an ebuild. Each +statement with shell syntax, to be used in an ebuild. Each argument is turned into a separate DEPEND variable declaration. You need to quote dependency strings in order for them to be printed as a single dependency declaration. When used with the \fB\-q\fR @@ -68,12 +74,12 @@ e.g.\ the DEPEND= part is skipped. Set the ROOT env var. .TP \fB\-v\fR, \fB\-\-verbose\fR -When in reverse dep mode, print the package or packages that matched -the query from the dependency line being searched. This includes -specifiers and versions. +Pretty-print atoms output, per DEPEND-variable. This is much like +the \fB-f\fR option, but uses as input the dependency info from the +matches. .TP \fB\-q\fR, \fB\-\-quiet\fR -Suppress DEPEND= output for \fB\-f\fR. +Suppress DEPEND= output for \fB\-f\fR. Only print the matching atom for \fB\-Q\fR. .TP \fB\-C\fR, \fB\-\-nocolor\fR Don't output color. @@ -86,25 +92,19 @@ Print version and exit. .SH "EXAMPLES" For finding out what a particular package depends on for building, you could do: .nf - $ \fIqdepends nano\fR + $ \fIqdepends -d nano\fR app-editors/nano-2.3.2: >=sys-libs/ncurses-5.9-r1[unicode] sys-apps/file ... .fi This tells us that we have \fIapp-editors/nano-2.3.2\fR installed and it depends on ncurses (among other things). - -Searching for packages that actually have nano in their RDEPEND: -.nf - $ \fIqdepends -rQ nano\fR - virtual/editor-0 -.fi -Tells us that \fIvirtual/editor\fR depends on nano. However, if we -wanted to know in what way a package specifically depends on another -package, one can use \fB\-v\fR. +.P +Searching for packages that actually depend on logrotate: .nf - $ \fIqdepends -vrQ logrotate\fR - sys-apps/portage-2.3.18: >=app-admin/logrotate-3.8.0 + $ \fIqdepends -qQ logrotate\fR + sys-apps/portage-2.3.18: !<app-admin/logrotate-3.8.0 .fi -This way we can see there is a specific dependency expressed here. If +The \fB-q\fR flag suppresses the entire list of dependencies here, so we +can quickly see what specific dependency is expressed here. If the above had used \fI<logrotate-3\fR, for example, no matches would be returned. Not using any specifiers allows to reveal in what way a dependency is expressed. diff --git a/qdepends.c b/qdepends.c index df3434e..09156f6 100644 --- a/qdepends.c +++ b/qdepends.c @@ -210,10 +210,10 @@ qdepends_results_cb(q_vdb_pkg_ctx *pkg_ctx, void *priv) ret = 1; if (!firstmatch) { - printf("%s%s/%s%s%s%s", + printf("%s%s/%s%s%s:", BOLD, catname, BLUE, - qdep_name_only ? datom->PN : pkgname, NORM, - quiet ? "" : ":"); + qdep_name_only ? datom->PN : pkgname, + NORM); } firstmatch = true;