[devel] [PATCH] Verbose QueryTags prints whether tag is an extension

Vladimir D. Seleznev vseleznv на altlinux.org
Вт Апр 14 19:21:36 MSK 2020


On Mon, Apr 13, 2020 at 09:42:18PM +0300, Dmitry V. Levin wrote:
> On Mon, Apr 13, 2020 at 09:20:21PM +0300, Vladimir D. Seleznev wrote:
> > On Mon, Apr 13, 2020 at 09:04:37PM +0300, Dmitry V. Levin wrote:
> > > On Sun, Apr 12, 2020 at 06:02:26AM +0300, Vladimir D. Seleznev wrote:
> > > > Verbose QueryTags prints four field: tagname, tagvalue, tagtype and whether
> > > > it is an extension. To make it possible QueryTags uses new function
> > > > rpmTagIsExtension() that returns 0 if tag is real, 1 if tag is an extension
> > > > or -1 if tag is not found.
> > > > 
> > > > * lib/query.c(rpmDisplayQueryTags): Print whether tag is an extension.
> > > > * lib/rpmtag.h(rpmTagIsExtension): New definition.
> > > > * lib/tagname.c(rpmTagIsExtension): New function.
> > > > ---
> > > >  lib/query.c   |  5 +++++
> > > >  lib/rpmtag.h  |  7 +++++++
> > > >  lib/tagname.c | 14 ++++++++++++++
> > > >  3 files changed, 26 insertions(+)
> > > > 
> > > > diff --git a/lib/query.c b/lib/query.c
> > > > index 60d3a0269..f27b15a7c 100644
> > > > --- a/lib/query.c
> > > > +++ b/lib/query.c
> > > > @@ -253,9 +253,14 @@ void rpmDisplayQueryTags(FILE * fp)
> > > >  	if (rpmIsVerbose()) {
> > > >  	    rpmTagVal tag = rpmTagGetValue(sname);
> > > >  	    rpmTagType type = rpmTagGetTagType(tag);
> > > > +	    int ext = rpmTagIsExtension(tag);
> > > >  	    fprintf(fp, "%-20s %6d", sname, tag);
> > > >  	    if (type > RPM_NULL_TYPE && type <= RPM_MAX_TYPE)
> > > >  		fprintf(fp, " %s", tagTypeNames[type]);
> > > > +	    else if (ext == 1)
> > > > +		fprintf(fp, " -");
> > > > +	    if (ext == 1)
> > > > +		fprintf(fp, " ext");
> > > >  	} else {
> > > >  	    fprintf(fp, "%s", sname);
> > > >  	}
> > > 
> > > This changes rpmDisplayQueryTags output in an incompatible way.
> > 
> > rpm --verbose --querytags is missing in rpm 4.0.4, and is undocumented
> > feature of modern rpm. Should we care about compatibility in this
> > particular case?
> 
> Can we rely on any particular output format of this undocumented feature?

I think we can while we maintain this or if we specify the format.

-- 
   WBR,
   Vladimir D. Seleznev


Подробная информация о списке рассылки Devel