RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 24-Nov-2007 20:46:07
Branch: HEAD Handle: 2007112419460502
Modified files:
rpm CHANGES
rpm/build files.c pack.c spec.c
rpm/lib librpm.vers poptALL.c psm.c query.c rpmchecksig.c
rpmcli.h rpmfi.c rpminstall.c rpmts.c
rpm/perl RPM_Header.xs RPM_Spec.xs
rpm/python header-py.c
rpm/rpmdb hdrfmt.c librpmdb.vers rpmdb.c rpmtag.h
Log:
- use NULL default, not rpmTagTable, arg to headerSprintf everywhere.
- hdrfmt.c: relocate (and extend) rpmDisplayQueryTags.
Summary:
Revision Changes Path
1.1882 +2 -0 rpm/CHANGES
1.291 +1 -1 rpm/build/files.c
2.255 +1 -1 rpm/build/pack.c
2.161 +1 -1 rpm/build/spec.c
1.26 +0 -1 rpm/lib/librpm.vers
2.56 +1 -1 rpm/lib/poptALL.c
2.265 +1 -1 rpm/lib/psm.c
2.195 +1 -58 rpm/lib/query.c
1.197 +1 -1 rpm/lib/rpmchecksig.c
2.75 +0 -8 rpm/lib/rpmcli.h
2.102 +1 -1 rpm/lib/rpmfi.c
1.184 +2 -2 rpm/lib/rpminstall.c
2.124 +1 -1 rpm/lib/rpmts.c
1.15 +1 -1 rpm/perl/RPM_Header.xs
1.6 +1 -1 rpm/perl/RPM_Spec.xs
1.83 +1 -1 rpm/python/header-py.c
1.39 +71 -0 rpm/rpmdb/hdrfmt.c
1.30 +1 -0 rpm/rpmdb/librpmdb.vers
1.219 +2 -2 rpm/rpmdb/rpmdb.c
1.11 +12 -0 rpm/rpmdb/rpmtag.h
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1881 -r1.1882 CHANGES
--- rpm/CHANGES 24 Nov 2007 18:48:15 -0000 1.1881
+++ rpm/CHANGES 24 Nov 2007 19:46:05 -0000 1.1882
@@ -1,4 +1,6 @@
5.0a2 -> 5.0a3:
+ - jbj: use NULL default, not rpmTagTable, arg to headerSprintf everywhere.
+ - jbj: hdrfmt.c: relocate (and extend) rpmDisplayQueryTags.
- jbj: add tag{Clean,Name,Value,Type} methods to librpmdb.
- jbj: lose header.h in favor of rpmtag.h several places.
- jbj: make "struct headerTagTableEntry_s" opaque.
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/files.c
============================================================================
$ cvs diff -u -r1.290 -r1.291 files.c
--- rpm/build/files.c 22 Nov 2007 19:50:18 -0000 1.290
+++ rpm/build/files.c 24 Nov 2007 19:46:05 -0000 1.291
@@ -1030,7 +1030,7 @@
_docdir_fmt = "%{NAME}-%{VERSION}";
oneshot = 1;
}
- fmt = headerSprintf(pkg->header, _docdir_fmt, rpmTagTable, rpmHeaderFormats, &errstr);
+ fmt = headerSprintf(pkg->header, _docdir_fmt, NULL, rpmHeaderFormats, &errstr);
if (!fmt) {
rpmlog(RPMLOG_ERR, _("illegal _docdir_fmt: %s\n"), errstr);
fl->processingFailed = 1;
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/pack.c
============================================================================
$ cvs diff -u -r2.254 -r2.255 pack.c
--- rpm/build/pack.c 22 Nov 2007 18:50:25 -0000 2.254
+++ rpm/build/pack.c 24 Nov 2007 19:46:05 -0000 2.255
@@ -1020,7 +1020,7 @@
{ const char *binFormat = rpmGetPath("%{_rpmfilename}", NULL);
char *binRpm, *binDir;
- binRpm = headerSprintf(pkg->header, binFormat, rpmTagTable,
+ binRpm = headerSprintf(pkg->header, binFormat, NULL,
rpmHeaderFormats, &errorString);
binFormat = _free(binFormat);
if (binRpm == NULL) {
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/spec.c
============================================================================
$ cvs diff -u -r2.160 -r2.161 spec.c
--- rpm/build/spec.c 10 Nov 2007 18:06:41 -0000 2.160
+++ rpm/build/spec.c 24 Nov 2007 19:46:05 -0000 2.161
@@ -692,7 +692,7 @@
msgstr = _free(msgstr);
/* XXX this should use queryHeader(), but prints out tn as well. */
- msgstr = headerSprintf(h, fmt, rpmTagTable, rpmHeaderFormats, &errstr);
+ msgstr = headerSprintf(h, fmt, NULL, rpmHeaderFormats, &errstr);
if (msgstr == NULL) {
rpmlog(RPMLOG_ERR, _("can't query %s: %s\n"), tn, errstr);
return;
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/librpm.vers
============================================================================
$ cvs diff -u -r1.25 -r1.26 librpm.vers
--- rpm/lib/librpm.vers 10 Nov 2007 19:35:59 -0000 1.25
+++ rpm/lib/librpm.vers 24 Nov 2007 19:46:05 -0000 1.26
@@ -87,7 +87,6 @@
rpmcliSign;
rpmcliTargets;
rpmcliVerify;
- rpmDisplayQueryTags;
rpmdsAnyMatchesDep;
rpmdsBT;
rpmdsColor;
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/poptALL.c
============================================================================
$ cvs diff -u -r2.55 -r2.56 poptALL.c
--- rpm/lib/poptALL.c 24 Nov 2007 18:48:15 -0000 2.55
+++ rpm/lib/poptALL.c 24 Nov 2007 19:46:05 -0000 2.56
@@ -268,7 +268,7 @@
exit(EXIT_SUCCESS);
/*@notreached@*/ break;
case POPT_QUERYTAGS:
- rpmDisplayQueryTags(stdout);
+ rpmDisplayQueryTags(NULL, NULL, NULL);
/*@i@*/ con = rpmcliFini(con);
exit(EXIT_SUCCESS);
/*@notreached@*/ break;
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/psm.c
============================================================================
$ cvs diff -u -r2.264 -r2.265 psm.c
--- rpm/lib/psm.c 22 Nov 2007 22:28:14 -0000 2.264
+++ rpm/lib/psm.c 24 Nov 2007 19:46:05 -0000 2.265
@@ -1749,7 +1749,7 @@
xx = snprintf(tiddn, sizeof(tiddn), "%d", rpmtsGetTid(ts));
bfmt = rpmGetPath(tiddn, "/", "%{_repackage_name_fmt}", NULL);
pkgbn = headerSprintf(fi->h, bfmt,
- rpmTagTable, rpmHeaderFormats, NULL);
+ NULL, rpmHeaderFormats, NULL);
bfmt = _free(bfmt);
psm->pkgURL = rpmGenPath("%{?_repackage_root}",
"%{?_repackage_dir}",
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/query.c
============================================================================
$ cvs diff -u -r2.194 -r2.195 query.c
--- rpm/lib/query.c 24 Nov 2007 17:18:57 -0000 2.194
+++ rpm/lib/query.c 24 Nov 2007 19:46:05 -0000 2.195
@@ -117,7 +117,7 @@
const char * str;
/*@-modobserver@*/
- str = headerSprintf(h, qfmt, rpmTagTable, rpmHeaderFormats, &errstr);
+ str = headerSprintf(h, qfmt, NULL, rpmHeaderFormats, &errstr);
/*@=modobserver@*/
if (str == NULL)
rpmlog(RPMLOG_ERR, _("incorrect format: %s\n"), errstr);
@@ -354,63 +354,6 @@
return rc;
}
-void rpmDisplayQueryTags(FILE * fp)
-{
- const struct headerTagTableEntry_s * t;
- uint32_t ttype;
- headerSprintfExtension exts = rpmHeaderFormats;
- headerSprintfExtension ext;
- int extNum;
- int i;
-
- for (i = 0, t = rpmTagTable; i < rpmTagTableSize; i++, t++) {
- if (t->name == NULL)
- continue;
- if (rpmIsVerbose()) {
- /*@observer@*/
- static const char * tagtypes[] = {
- "", "char", "uint8", "uint16", "uint32", "uint64",
- "string", "octets", "argv", "i18nstring",
- };
- fprintf(fp, "%-20s %6d", t->name + 7, t->val);
- ttype = t->type & RPM_MASK_TYPE;
- if (ttype < RPM_MIN_TYPE || ttype > RPM_MAX_TYPE)
- continue;
- if (t->type & RPM_OPENPGP_RETURN_TYPE)
- fprintf(fp, " openpgp");
- if (t->type & RPM_X509_RETURN_TYPE)
- fprintf(fp, " x509");
- if (t->type & RPM_ASN1_RETURN_TYPE)
- fprintf(fp, " asn1");
- if (t->type & RPM_OPAQUE_RETURN_TYPE)
- fprintf(fp, " opaque");
- fprintf(fp, " %s", tagtypes[ttype]);
- if (t->type & RPM_ARRAY_RETURN_TYPE)
- fprintf(fp, " array");
- if (t->type & RPM_MAPPING_RETURN_TYPE)
- fprintf(fp, " mapping");
- if (t->type & RPM_PROBE_RETURN_TYPE)
- fprintf(fp, " probe");
- if (t->type & RPM_TREE_RETURN_TYPE)
- fprintf(fp, " tree");
- } else
- fprintf(fp, "%s", t->name + 7);
- fprintf(fp, "\n");
- }
-
- for (ext = exts, extNum = 0; ext != NULL && ext->type != HEADER_EXT_LAST;
- ext = (ext->type == HEADER_EXT_MORE ? *ext->u.more : ext+1), extNum++)
- {
- if (ext->name == NULL || ext->type != HEADER_EXT_TAG)
- continue;
-
- /* XXX don't print header tags twice. */
- if (tagValue(ext->name) > 0)
- continue;
- fprintf(fp, "%s\n", ext->name + 7);
- }
-}
-
static int rpmgiShowMatches(QVA_t qva, rpmts ts)
/*@globals rpmGlobalMacroContext, h_errno, internalState @*/
/*@modifies qva, rpmGlobalMacroContext, h_errno, internalState @*/
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmchecksig.c
============================================================================
$ cvs diff -u -r1.196 -r1.197 rpmchecksig.c
--- rpm/lib/rpmchecksig.c 23 Nov 2007 16:35:43 -0000 1.196
+++ rpm/lib/rpmchecksig.c 24 Nov 2007 19:46:05 -0000 1.197
@@ -550,7 +550,7 @@
he->append = 0;
- d = headerSprintf(h, afmt, rpmTagTable, rpmHeaderFormats, NULL);
+ d = headerSprintf(h, afmt, NULL, rpmHeaderFormats, NULL);
if (d == NULL)
goto exit;
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmcli.h
============================================================================
$ cvs diff -u -r2.74 -r2.75 rpmcli.h
--- rpm/lib/rpmcli.h 19 Nov 2007 18:57:54 -0000 2.74
+++ rpm/lib/rpmcli.h 24 Nov 2007 19:46:05 -0000 2.75
@@ -310,14 +310,6 @@
/*@modifies qva, rpmGlobalMacroContext, fileSystem, internalState @*/;
/** \ingroup rpmcli
- * Display list of tags that can be used in --queryformat.
- * @param fp file handle to use for display
- */
-void rpmDisplayQueryTags(FILE * fp)
- /*@globals fileSystem, internalState @*/
- /*@modifies *fp, fileSystem, internalState @*/;
-
-/** \ingroup rpmcli
* Common query/verify source interface, called once for each CLI arg.
*
* This routine uses:
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmfi.c
============================================================================
$ cvs diff -u -r2.101 -r2.102 rpmfi.c
--- rpm/lib/rpmfi.c 22 Nov 2007 22:28:14 -0000 2.101
+++ rpm/lib/rpmfi.c 24 Nov 2007 19:46:05 -0000 2.102
@@ -1450,7 +1450,7 @@
Header foo;
/* XXX error handling. */
- newPath = headerSprintf(h, fmt, rpmTagTable, rpmHeaderFormats, &errstr);
+ newPath = headerSprintf(h, fmt, NULL, rpmHeaderFormats, &errstr);
fmt = _free(fmt);
/* XXX Make sure autoreloc is not already specified. */
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpminstall.c
============================================================================
$ cvs diff -u -r1.183 -r1.184 rpminstall.c
--- rpm/lib/rpminstall.c 22 Nov 2007 22:28:14 -0000 1.183
+++ rpm/lib/rpminstall.c 24 Nov 2007 19:46:05 -0000 1.184
@@ -150,7 +150,7 @@
/* @todo Remove headerSprintf() on a progress callback. */
if (flags & INSTALL_HASH) {
s = headerSprintf(h, "%{NAME}",
- rpmTagTable, rpmHeaderFormats, NULL);
+ NULL, rpmHeaderFormats, NULL);
if (isatty (STDOUT_FILENO))
fprintf(stdout, "%4d:%-23.23s", (int)rpmcliProgressCurrent + 1, s);
else
@@ -159,7 +159,7 @@
s = _free(s);
} else {
s = headerSprintf(h, "%{NAME}-%{VERSION}-%{RELEASE}",
- rpmTagTable, rpmHeaderFormats, NULL);
+ NULL, rpmHeaderFormats, NULL);
fprintf(stdout, "%s\n", s);
(void) fflush(stdout);
s = _free(s);
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmts.c
============================================================================
$ cvs diff -u -r2.123 -r2.124 rpmts.c
--- rpm/lib/rpmts.c 22 Nov 2007 22:28:14 -0000 2.123
+++ rpm/lib/rpmts.c 24 Nov 2007 19:46:05 -0000 2.124
@@ -393,7 +393,7 @@
qfmt = rpmExpand("%{?_solve_name_fmt}", NULL);
if (qfmt == NULL || *qfmt == '\0')
goto exit;
- str = headerSprintf(bh, qfmt, rpmTagTable, rpmHeaderFormats, &errstr);
+ str = headerSprintf(bh, qfmt, NULL, rpmHeaderFormats, &errstr);
bh = headerFree(bh);
qfmt = _free(qfmt);
if (str == NULL) {
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/RPM_Header.xs
============================================================================
$ cvs diff -u -r1.14 -r1.15 RPM_Header.xs
--- rpm/perl/RPM_Header.xs 22 Nov 2007 22:28:16 -0000 1.14
+++ rpm/perl/RPM_Header.xs 24 Nov 2007 19:46:06 -0000 1.15
@@ -135,7 +135,7 @@
PREINIT:
const char * s;
PPCODE:
- s = headerSprintf(h, format, rpmTagTable, rpmHeaderFormats, NULL);
+ s = headerSprintf(h, format, NULL, rpmHeaderFormats, NULL);
if (s)
PUSHs(sv_2mortal(newSVpv((char *)s, 0)));
s = _free(s);
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/RPM_Spec.xs
============================================================================
$ cvs diff -u -r1.5 -r1.6 RPM_Spec.xs
--- rpm/perl/RPM_Spec.xs 22 Nov 2007 22:28:16 -0000 1.5
+++ rpm/perl/RPM_Spec.xs 24 Nov 2007 19:46:06 -0000 1.6
@@ -104,7 +104,7 @@
srctag = headerSprintf(
spec->packages->header,
"%{NAME}-%{VERSION}-%{RELEASE}",
- rpmTagTable,
+ NULL,
rpmHeaderFormats,
NULL
);
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/header-py.c
============================================================================
$ cvs diff -u -r1.82 -r1.83 header-py.c
--- rpm/python/header-py.c 24 Nov 2007 17:18:57 -0000 1.82
+++ rpm/python/header-py.c 24 Nov 2007 19:46:06 -0000 1.83
@@ -283,7 +283,7 @@
if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, &fmt))
return NULL;
- r = headerSprintf(s->h, fmt, rpmTagTable, rpmHeaderFormats, &err);
+ r = headerSprintf(s->h, fmt, NULL, rpmHeaderFormats, &err);
if (!r) {
PyErr_SetString(pyrpmError, err);
return NULL;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/hdrfmt.c
============================================================================
$ cvs diff -u -r1.38 -r1.39 hdrfmt.c
--- rpm/rpmdb/hdrfmt.c 24 Nov 2007 17:18:58 -0000 1.38
+++ rpm/rpmdb/hdrfmt.c 24 Nov 2007 19:46:07 -0000 1.39
@@ -5,6 +5,7 @@
#include "system.h"
#include "rpmio_internal.h"
+#include <rpmcb.h> /* XXX rpmIsVerbose */
#include <rpmmacro.h> /* XXX for %_i18ndomains */
#define _RPMTAG_INTERNAL
@@ -1389,3 +1390,73 @@
/*@=type@*/
headerSprintfExtension headerCompoundFormats = &_headerCompoundFormats[0];
+
+void rpmDisplayQueryTags(FILE * fp, headerTagTableEntry _rpmTagTable, headerSprintfExtension _rpmHeaderFormats)
+{
+ const struct headerTagTableEntry_s * t;
+ headerSprintfExtension exts;
+ headerSprintfExtension ext;
+ int extNum;
+ int i;
+
+ if (fp == NULL)
+ fp = stdout;
+ if (_rpmTagTable == NULL)
+ _rpmTagTable = rpmTagTable;
+
+ /* XXX this should use rpmHeaderFormats, but there are linkage problems. */
+ if (_rpmHeaderFormats == NULL)
+ _rpmHeaderFormats = headerCompoundFormats;
+
+/* XXX FIXME: don't use rpmTagTableSize here. */
+assert(_rpmTagTable == rpmTagTable);
+ for (i = 0, t = _rpmTagTable; i < rpmTagTableSize; i++, t++) {
+ uint32_t ttype;
+
+ if (t->name == NULL)
+ continue;
+ if (rpmIsVerbose()) {
+ /*@observer@*/
+ static const char * tagtypes[] = {
+ "", "char", "uint8", "uint16", "uint32", "uint64",
+ "string", "octets", "argv", "i18nstring",
+ };
+ fprintf(fp, "%-20s %6d", t->name + 7, t->val);
+ ttype = t->type & RPM_MASK_TYPE;
+ if (ttype < RPM_MIN_TYPE || ttype > RPM_MAX_TYPE)
+ continue;
+ if (t->type & RPM_OPENPGP_RETURN_TYPE)
+ fprintf(fp, " openpgp");
+ if (t->type & RPM_X509_RETURN_TYPE)
+ fprintf(fp, " x509");
+ if (t->type & RPM_ASN1_RETURN_TYPE)
+ fprintf(fp, " asn1");
+ if (t->type & RPM_OPAQUE_RETURN_TYPE)
+ fprintf(fp, " opaque");
+ fprintf(fp, " %s", tagtypes[ttype]);
+ if (t->type & RPM_ARRAY_RETURN_TYPE)
+ fprintf(fp, " array");
+ if (t->type & RPM_MAPPING_RETURN_TYPE)
+ fprintf(fp, " mapping");
+ if (t->type & RPM_PROBE_RETURN_TYPE)
+ fprintf(fp, " probe");
+ if (t->type & RPM_TREE_RETURN_TYPE)
+ fprintf(fp, " tree");
+ } else
+ fprintf(fp, "%s", t->name + 7);
+ fprintf(fp, "\n");
+ }
+
+ exts = _rpmHeaderFormats;
+ for (ext = exts, extNum = 0; ext != NULL && ext->type != HEADER_EXT_LAST;
+ ext = (ext->type == HEADER_EXT_MORE ? *ext->u.more : ext+1), extNum++)
+ {
+ if (ext->name == NULL || ext->type != HEADER_EXT_TAG)
+ continue;
+
+ /* XXX don't print header tags twice. */
+ if (tagValue(ext->name) > 0)
+ continue;
+ fprintf(fp, "%s\n", ext->name + 7);
+ }
+}
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/librpmdb.vers
============================================================================
$ cvs diff -u -r1.29 -r1.30 librpmdb.vers
--- rpm/rpmdb/librpmdb.vers 24 Nov 2007 18:48:16 -0000 1.29
+++ rpm/rpmdb/librpmdb.vers 24 Nov 2007 19:46:07 -0000 1.30
@@ -81,6 +81,7 @@
rpmdbSync;
rpmdbVerify;
rpmdbVerifyAllDBI;
+ rpmDisplayQueryTags;
rpmpkgCheck;
rpmpkgClean;
rpmpkgRead;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/rpmdb.c
============================================================================
$ cvs diff -u -r1.218 -r1.219 rpmdb.c
--- rpm/rpmdb/rpmdb.c 24 Nov 2007 17:18:58 -0000 1.218
+++ rpm/rpmdb/rpmdb.c 24 Nov 2007 19:46:07 -0000 1.219
@@ -829,7 +829,7 @@
/**
* Return header query string.
- * @warning Only default header extensions are available here.
+ * @warning Only compound header extensions are available here.
* @param h header
* @param qfmt header sprintf format
* @return header query string
@@ -841,7 +841,7 @@
const char * str;
/*@-modobserver@*/
- str = headerSprintf(h, qfmt, rpmTagTable, headerDefaultFormats, &errstr);
+ str = headerSprintf(h, qfmt, NULL, headerCompoundFormats, &errstr);
/*@=modobserver@*/
if (str == NULL)
rpmlog(RPMLOG_ERR, _("incorrect format: \"%s\": %s\n"), qfmt, errstr);
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/rpmtag.h
============================================================================
$ cvs diff -u -r1.10 -r1.11 rpmtag.h
--- rpm/rpmdb/rpmtag.h 24 Nov 2007 18:48:16 -0000 1.10
+++ rpm/rpmdb/rpmtag.h 24 Nov 2007 19:46:07 -0000 1.11
@@ -618,6 +618,18 @@
extern headerSprintfExtension headerCompoundFormats;
/*@=redecl@*/
+/**
+ * Display list of tags that can be used in --queryformat.
+ * @param fp file handle to use for display (NULL uses stdout)
+ * @param _rpmTagTable rpm tag table (NULL uses rpmTagTable)
+ * @param _rpmHeaderFormats rpm tag extensions & formats (NULL uses headerCompoundFormats)
+ */
+void rpmDisplayQueryTags(/*@null@*/ FILE * fp,
+ /*@null@*/ headerTagTableEntry _rpmTagTable,
+ /*@null@*/ headerSprintfExtension _rpmHeaderFormats)
+ /*@globals fileSystem, internalState @*/
+ /*@modifies *fp, fileSystem, internalState @*/;
+
#ifdef __cplusplus
}
#endif
@@ .
Received on Sat Nov 24 20:46:07 2007