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: 22-Nov-2007 23:28:18
Branch: HEAD Handle: 2007112222281305
Modified files:
rpm CHANGES
rpm/build rpmbuild.h
rpm/lib depends.c formats.c fsm.c poptQV.c psm.c query.c
rpmchecksig.c rpmds.c rpmfc.c rpmfi.c rpmgi.c
rpminstall.c rpmrollback.c rpmte.c rpmts.c
transaction.c verify.c
rpm/perl RPM.xs RPM_Files.xs RPM_Header.xs
RPM_PackageIterator.xs RPM_Spec.xs
RPM_Transaction.xs rpmxs.c
rpm/python rpmdb-py.c rpmps-py.c rpmrc-py.c rpmte-py.c
rpm/rpmdb hdrfmt.c header.c header.h rpmtag.h tagname.c
rpm/tools rpmcache.c
Log:
- unsnarl header.h from everything else.
Summary:
Revision Changes Path
1.1870 +1 -0 rpm/CHANGES
2.79 +2 -1 rpm/build/rpmbuild.h
1.364 +1 -0 rpm/lib/depends.c
2.120 +1 -0 rpm/lib/formats.c
2.137 +1 -0 rpm/lib/fsm.c
2.47 +1 -0 rpm/lib/poptQV.c
2.264 +1 -0 rpm/lib/psm.c
2.193 +1 -0 rpm/lib/query.c
1.194 +1 -0 rpm/lib/rpmchecksig.c
2.83 +1 -0 rpm/lib/rpmds.c
1.40 +1 -0 rpm/lib/rpmfc.c
2.101 +1 -0 rpm/lib/rpmfi.c
2.43 +1 -0 rpm/lib/rpmgi.c
1.183 +1 -0 rpm/lib/rpminstall.c
1.26 +1 -0 rpm/lib/rpmrollback.c
2.69 +1 -0 rpm/lib/rpmte.c
2.123 +1 -0 rpm/lib/rpmts.c
1.355 +1 -1 rpm/lib/transaction.c
2.178 +1 -0 rpm/lib/verify.c
1.24 +4 -4 rpm/perl/RPM.xs
1.7 +4 -5 rpm/perl/RPM_Files.xs
1.14 +10 -10 rpm/perl/RPM_Header.xs
1.3 +2 -2 rpm/perl/RPM_PackageIterator.xs
1.5 +2 -4 rpm/perl/RPM_Spec.xs
1.9 +1 -2 rpm/perl/RPM_Transaction.xs
1.6 +5 -4 rpm/perl/rpmxs.c
1.19 +1 -0 rpm/python/rpmdb-py.c
1.13 +1 -0 rpm/python/rpmps-py.c
1.21 +1 -0 rpm/python/rpmrc-py.c
1.23 +1 -0 rpm/python/rpmte-py.c
1.37 +1 -0 rpm/rpmdb/hdrfmt.c
1.127 +0 -47 rpm/rpmdb/header.c
1.71 +1 -234 rpm/rpmdb/header.h
1.5 +233 -2 rpm/rpmdb/rpmtag.h
1.14 +1 -1 rpm/rpmdb/tagname.c
2.24 +1 -0 rpm/tools/rpmcache.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1869 -r1.1870 CHANGES
--- rpm/CHANGES 22 Nov 2007 19:50:17 -0000 1.1869
+++ rpm/CHANGES 22 Nov 2007 22:28:13 -0000 1.1870
@@ -1,4 +1,5 @@
5.0a2 -> 5.0a3:
+ - jbj: unsnarl header.h from everything else.
- jbj: eliminate hRET_t, use rpmTagData instead.
- jbj: fix: files.c: pass union ptr, not 1st element, address.
- jbj: eliminate hTYP_t and hCNT_t typedefs everywhere.
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/rpmbuild.h
============================================================================
$ cvs diff -u -r2.78 -r2.79 rpmbuild.h
--- rpm/build/rpmbuild.h 21 Nov 2007 13:31:37 -0000 2.78
+++ rpm/build/rpmbuild.h 22 Nov 2007 22:28:14 -0000 2.79
@@ -6,7 +6,8 @@
* This is the *only* module users of librpmbuild should need to include.
*/
-#include "rpmcli.h"
+#include <header.h>
+#include <rpmcli.h>
/* and it shouldn't need these :-( */
#include "stringbuf.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/depends.c
============================================================================
$ cvs diff -u -r1.363 -r1.364 depends.c
--- rpm/lib/depends.c 22 Nov 2007 18:50:25 -0000 1.363
+++ rpm/lib/depends.c 22 Nov 2007 22:28:14 -0000 1.364
@@ -5,6 +5,7 @@
#include "system.h"
#include "rpmio_internal.h" /* XXX PGPHASHALGO_MD5 */
+#include <header.h>
#include <rpmcli.h> /* XXX rpmcliPackagesTotal */
#include <rpmmacro.h> /* XXX rpmExpand("%{_dependency_whiteout}" */
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/formats.c
============================================================================
$ cvs diff -u -r2.119 -r2.120 formats.c
--- rpm/lib/formats.c 19 Nov 2007 18:57:54 -0000 2.119
+++ rpm/lib/formats.c 22 Nov 2007 22:28:14 -0000 2.120
@@ -7,6 +7,7 @@
#include <rpmio.h>
#include <rpmcb.h> /* XXX fnpyKey */
#include <rpmmacro.h> /* XXX for %_i18ndomains */
+#include <header.h>
#include <rpmlib.h>
#define _RPMEVR_INTERNAL
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/fsm.c
============================================================================
$ cvs diff -u -r2.136 -r2.137 fsm.c
--- rpm/lib/fsm.c 22 Nov 2007 18:50:25 -0000 2.136
+++ rpm/lib/fsm.c 22 Nov 2007 22:28:14 -0000 2.137
@@ -7,6 +7,7 @@
#include <rpmio_internal.h> /* XXX urlPath, fdGetCpioPos */
#include <rpmcb.h> /* XXX fnpyKey */
+#include <header.h>
#include <rpmlib.h>
#include "cpio.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/poptQV.c
============================================================================
$ cvs diff -u -r2.46 -r2.47 poptQV.c
--- rpm/lib/poptQV.c 30 Sep 2007 20:38:25 -0000 2.46
+++ rpm/lib/poptQV.c 22 Nov 2007 22:28:14 -0000 2.47
@@ -6,6 +6,7 @@
#include "system.h"
#include <rpmio.h>
+#include <header.h>
#include <rpmcli.h>
#include <rpmgi.h> /* XXX for giFlags */
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/psm.c
============================================================================
$ cvs diff -u -r2.263 -r2.264 psm.c
--- rpm/lib/psm.c 19 Nov 2007 20:55:12 -0000 2.263
+++ rpm/lib/psm.c 22 Nov 2007 22:28:14 -0000 2.264
@@ -10,6 +10,7 @@
#include <rpmmacro.h>
#include <rpmurl.h>
#include <rpmlua.h>
+#include <header.h>
#include <rpmlib.h>
#include "cpio.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/query.c
============================================================================
$ cvs diff -u -r2.192 -r2.193 query.c
--- rpm/lib/query.c 22 Nov 2007 18:50:25 -0000 2.192
+++ rpm/lib/query.c 22 Nov 2007 22:28:14 -0000 2.193
@@ -12,6 +12,7 @@
#endif
#include <rpmio.h>
+#include <header.h>
#include <rpmcli.h>
#include "rpmdb.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmchecksig.c
============================================================================
$ cvs diff -u -r1.193 -r1.194 rpmchecksig.c
--- rpm/lib/rpmchecksig.c 22 Nov 2007 18:50:25 -0000 1.193
+++ rpm/lib/rpmchecksig.c 22 Nov 2007 22:28:14 -0000 1.194
@@ -6,6 +6,7 @@
#include "system.h"
#include "rpmio_internal.h"
+#include <header.h>
#include <rpmcli.h>
#define _RPMEVR_INTERNAL /* XXX RPMSENSE_KEYRING */
#include <rpmevr.h>
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmds.c
============================================================================
$ cvs diff -u -r2.82 -r2.83 rpmds.c
--- rpm/lib/rpmds.c 22 Nov 2007 18:50:25 -0000 2.82
+++ rpm/lib/rpmds.c 22 Nov 2007 22:28:14 -0000 2.83
@@ -78,6 +78,7 @@
#include <rpmio_internal.h> /* XXX fdGetFILE */
#include <rpmcb.h> /* XXX fnpyKey */
#include <rpmmacro.h>
+#include <header.h>
#include <rpmlib.h>
#define _RPMDS_INTERNAL
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmfc.c
============================================================================
$ cvs diff -u -r1.39 -r1.40 rpmfc.c
--- rpm/lib/rpmfc.c 22 Nov 2007 18:50:25 -0000 1.39
+++ rpm/lib/rpmfc.c 22 Nov 2007 22:28:14 -0000 1.40
@@ -4,6 +4,7 @@
#include <rpmio.h>
#include <rpmcb.h> /* XXX fnpyKey */
+#include <header.h>
#define _RPMEVR_INTERNAL
#include <rpmbuild.h>
#include <argv.h>
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmfi.c
============================================================================
$ cvs diff -u -r2.100 -r2.101 rpmfi.c
--- rpm/lib/rpmfi.c 19 Nov 2007 18:57:54 -0000 2.100
+++ rpm/lib/rpmfi.c 22 Nov 2007 22:28:14 -0000 2.101
@@ -8,6 +8,7 @@
#include <rpmio.h>
#include <rpmcb.h> /* XXX fnpyKey */
#include <rpmurl.h> /* XXX urlGetPath */
+#include <header.h>
#include <rpmlib.h>
#include "cpio.h" /* XXX CPIO_FOO */
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmgi.c
============================================================================
$ cvs diff -u -r2.42 -r2.43 rpmgi.c
--- rpm/lib/rpmgi.c 21 Nov 2007 21:58:47 -0000 2.42
+++ rpm/lib/rpmgi.c 22 Nov 2007 22:28:14 -0000 2.43
@@ -7,6 +7,7 @@
#include <rpmio.h>
#include <rpmcb.h> /* XXX fnpyKey */
#include <rpmmacro.h> /* XXX rpmExpand */
+#include <header.h>
#include <rpmlib.h>
#include <rpmte.h> /* XXX rpmElementType */
#include <pkgio.h> /* XXX rpmElementType */
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpminstall.c
============================================================================
$ cvs diff -u -r1.182 -r1.183 rpminstall.c
--- rpm/lib/rpminstall.c 15 Nov 2007 20:26:04 -0000 1.182
+++ rpm/lib/rpminstall.c 22 Nov 2007 22:28:14 -0000 1.183
@@ -5,6 +5,7 @@
#include "system.h"
#include <rpmio.h>
+#include <header.h>
#include <rpmcli.h>
#include "rpmdb.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmrollback.c
============================================================================
$ cvs diff -u -r1.25 -r1.26 rpmrollback.c
--- rpm/lib/rpmrollback.c 10 Nov 2007 18:06:42 -0000 1.25
+++ rpm/lib/rpmrollback.c 22 Nov 2007 22:28:14 -0000 1.26
@@ -5,6 +5,7 @@
#include "system.h"
#include <rpmio.h>
+#include <header.h>
#include <rpmcli.h>
#include "rpmdb.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmte.c
============================================================================
$ cvs diff -u -r2.68 -r2.69 rpmte.c
--- rpm/lib/rpmte.c 19 Nov 2007 18:57:54 -0000 2.68
+++ rpm/lib/rpmte.c 22 Nov 2007 22:28:14 -0000 2.69
@@ -6,6 +6,7 @@
#include <rpmio.h>
#include <rpmcb.h> /* XXX fnpyKey */
+#include <header.h>
#include <rpmlib.h>
#include "rpmds.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmts.c
============================================================================
$ cvs diff -u -r2.122 -r2.123 rpmts.c
--- rpm/lib/rpmts.c 20 Nov 2007 19:48:59 -0000 2.122
+++ rpm/lib/rpmts.c 22 Nov 2007 22:28:14 -0000 2.123
@@ -7,6 +7,7 @@
#include "rpmio_internal.h" /* XXX for pgp and beecrypt */
#include <rpmcb.h> /* XXX fnpyKey */
#include <rpmmacro.h> /* XXX rpmtsOpenDB() needs rpmGetPath */
+#include <header.h>
#include <rpmlib.h>
#define _RPMDB_INTERNAL /* XXX almost opaque sigh */
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/transaction.c
============================================================================
$ cvs diff -u -r1.354 -r1.355 transaction.c
--- rpm/lib/transaction.c 22 Nov 2007 18:50:25 -0000 1.354
+++ rpm/lib/transaction.c 22 Nov 2007 22:28:14 -0000 1.355
@@ -6,7 +6,7 @@
#include <rpmio.h>
#include <rpmmacro.h> /* XXX for rpmExpand */
-
+#include <header.h>
#include "rpmcli.h" /* IDTX prototypes */
#include "fsm.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/verify.c
============================================================================
$ cvs diff -u -r2.177 -r2.178 verify.c
--- rpm/lib/verify.c 22 Nov 2007 18:50:25 -0000 2.177
+++ rpm/lib/verify.c 22 Nov 2007 22:28:14 -0000 2.178
@@ -6,6 +6,7 @@
#include "system.h"
#include <rpmio.h>
+#include <header.h>
#define _RPMPS_INTERNAL /* XXX rpmps needs iterator. */
#include <rpmcli.h>
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/RPM.xs
============================================================================
$ cvs diff -u -r1.23 -r1.24 RPM.xs
--- rpm/perl/RPM.xs 15 Aug 2007 20:35:28 -0000 1.23
+++ rpm/perl/RPM.xs 22 Nov 2007 22:28:16 -0000 1.24
@@ -11,15 +11,15 @@
#include <utime.h>
#include <utime.h>
-#include "rpmlib.h"
#include "rpmio.h"
+#include "rpmlog.h"
+#include "rpmmacro.h"
+#include "header.h"
+#include "rpmdb.h"
#include "rpmcli.h"
#include "rpmts.h"
#include "rpmte.h"
-#include "rpmmacro.h"
#include "rpmevr.h"
-#include "header.h"
-#include "rpmdb.h"
#include "misc.h"
/* The perl callback placeholder for output err messages */
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/RPM_Files.xs
============================================================================
$ cvs diff -u -r1.6 -r1.7 RPM_Files.xs
--- rpm/perl/RPM_Files.xs 12 Sep 2007 07:05:04 -0000 1.6
+++ rpm/perl/RPM_Files.xs 22 Nov 2007 22:28:16 -0000 1.7
@@ -7,14 +7,13 @@
#undef Stat
#include "../config.h"
-#ifdef HAVE_BEECRYPT_API_H
-#include <beecrypt/api.h>
-#endif
+/* XXX artifacts needed to include "rpmio_internal.h" w/o "system.h" */
+void * vmefail(size_t size);
+#define xstrdup(_str) (strcpy((malloc(strlen(_str)+1) ? : vmefail(strlen(_str)+1)), (_str)))
+#include "rpmio_internal.h"
#include "rpmlib.h"
#include "rpmfi.h"
-#include "rpmio_internal.h"
-#include "rpmpgp.h"
MODULE = RPM::Files PACKAGE = RPM::Files
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/RPM_Header.xs
============================================================================
$ cvs diff -u -r1.13 -r1.14 RPM_Header.xs
--- rpm/perl/RPM_Header.xs 21 Nov 2007 00:25:04 -0000 1.13
+++ rpm/perl/RPM_Header.xs 22 Nov 2007 22:28:16 -0000 1.14
@@ -9,9 +9,12 @@
#include <stdio.h>
#include <string.h>
#include <utime.h>
-#include "rpmlib.h"
+
#include <rpmio.h>
+#include <header.h>
+#include "rpmdb.h"
#include "rpmcli.h"
+#include <pkgio.h>
#include "rpmts.h"
#include "rpmte.h"
@@ -19,8 +22,6 @@
#include "rpmds.h"
#include "rpmfi.h"
-#include "header.h"
-#include "rpmdb.h"
#include "misc.h"
#include "rpmxs.h"
@@ -191,7 +192,7 @@
int no_header_magic
PREINIT:
char * string = NULL;
- int offset = 8; /* header magic length */
+ size_t offset = 8; /* header magic length */
char * ptr = NULL;
int hsize = 0;
PPCODE:
@@ -199,8 +200,8 @@
string = headerUnload(h, NULL);
if (! no_header_magic) {
ptr = malloc(hsize);
- memcpy(ptr, header_magic, 8);
- memcpy(ptr + 8, string, hsize - 8);
+ memcpy(ptr, header_magic, offset);
+ memcpy(ptr + offset, string, hsize - 8);
}
XPUSHs(sv_2mortal(newSVpv(ptr ? ptr : string, hsize)));
free(string);
@@ -297,7 +298,7 @@
Header h
PREINIT:
HeaderIterator iterator;
- int tag;
+ rpmTag tag;
PPCODE:
iterator = headerInitIterator(h);
while (headerNextIterator(iterator, &tag, NULL, NULL, NULL)) {
@@ -310,14 +311,14 @@
Header h
SV * sv_tag
PREINIT:
- rpmTag tag = -1;
+ rpmTag tag = 0xffffffff;
CODE:
if (SvIOK(sv_tag)) {
tag = SvIV(sv_tag);
} else if (SvPOK(sv_tag)) {
tag = tagValue(SvPV_nolen(sv_tag));
}
- if (tag > 0)
+ if (tag < 0xffffffff)
RETVAL = headerIsEntry(h, tag);
else
RETVAL = -1;
@@ -413,7 +414,6 @@
Header header
rpmts ts
PREINIT:
- rpmfi fi;
CODE:
if (ts)
ts = rpmtsLink(ts, "RPM::Header::files");
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/RPM_PackageIterator.xs
============================================================================
$ cvs diff -u -r1.2 -r1.3 RPM_PackageIterator.xs
--- rpm/perl/RPM_PackageIterator.xs 14 Aug 2007 01:19:41 -0000 1.2
+++ rpm/perl/RPM_PackageIterator.xs 22 Nov 2007 22:28:16 -0000 1.3
@@ -9,14 +9,14 @@
#include <stdio.h>
#include <string.h>
#include <utime.h>
-#include "rpmlib.h"
+
#include <rpmio.h>
+#include "header.h"
#include "rpmcli.h"
#include "rpmts.h"
#include "rpmte.h"
-#include "header.h"
#include "rpmdb.h"
#include "misc.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/RPM_Spec.xs
============================================================================
$ cvs diff -u -r1.4 -r1.5 RPM_Spec.xs
--- rpm/perl/RPM_Spec.xs 1 Nov 2007 15:49:35 -0000 1.4
+++ rpm/perl/RPM_Spec.xs 22 Nov 2007 22:28:16 -0000 1.5
@@ -97,9 +97,8 @@
srcrpm(spec)
Spec spec
PREINIT:
- const char *name, *version, *release;
- char * srctag;
- char * srcpath;
+ const char * srctag;
+ const char * srcpath;
PPCODE:
srcpath = rpmGetPath("%{_srcrpmdir}", NULL);
srctag = headerSprintf(
@@ -144,7 +143,6 @@
check(spec, ts = NULL)
Spec spec
PREINIT:
- int rc;
rpmts ts = rpmtsCreate();
rpmps ps;
PPCODE:
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/RPM_Transaction.xs
============================================================================
$ cvs diff -u -r1.8 -r1.9 RPM_Transaction.xs
--- rpm/perl/RPM_Transaction.xs 1 Oct 2007 21:06:28 -0000 1.8
+++ rpm/perl/RPM_Transaction.xs 22 Nov 2007 22:28:16 -0000 1.9
@@ -10,12 +10,11 @@
#include <string.h>
#include <utime.h>
-#include "rpmlib.h"
#include "rpmio.h"
+#include "header.h"
#include "rpmcli.h"
#include "rpmts.h"
#include "rpmte.h"
-#include "header.h"
#include "rpmdb.h"
#include "misc.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/perl/rpmxs.c
============================================================================
$ cvs diff -u -r1.5 -r1.6 rpmxs.c
--- rpm/perl/rpmxs.c 20 Nov 2007 17:37:03 -0000 1.5
+++ rpm/perl/rpmxs.c 22 Nov 2007 22:28:16 -0000 1.6
@@ -122,15 +122,16 @@
}
int _headername_vs_dep(Header h, rpmds dep, int nopromote) {
- char *name; int type;
+ rpmTagType type;
+ rpmTagData name;
int rc = 0;
CHECK_RPMDS_IX(dep);
- headerGetEntry(h, RPMTAG_NAME, &type, (void **) &name, NULL);
- if (strcmp(name, rpmdsN(dep)) != 0)
+ headerGetEntry(h, RPMTAG_NAME, &type, &name, NULL);
+ if (strcmp(name.str, rpmdsN(dep)) != 0)
rc = 0;
else
rc = rpmdsNVRMatchesDep(h, dep, nopromote);
- headerFreeData(name, type);
+ name.ptr = headerFreeData(name.ptr, type);
return rc;
/* return 1 if match */
}
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/rpmdb-py.c
============================================================================
$ cvs diff -u -r1.18 -r1.19 rpmdb-py.c
--- rpm/python/rpmdb-py.c 19 Nov 2007 18:57:58 -0000 1.18
+++ rpm/python/rpmdb-py.c 22 Nov 2007 22:28:17 -0000 1.19
@@ -6,6 +6,7 @@
#include <rpmio.h>
#include <rpmcb.h> /* XXX fnpyKey */
+#include <header.h>
#include <rpmlib.h>
#include "rpmdb-py.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/rpmps-py.c
============================================================================
$ cvs diff -u -r1.12 -r1.13 rpmps-py.c
--- rpm/python/rpmps-py.c 19 Nov 2007 18:57:58 -0000 1.12
+++ rpm/python/rpmps-py.c 22 Nov 2007 22:28:17 -0000 1.13
@@ -7,6 +7,7 @@
#include <rpmio.h>
#include <rpmcb.h> /* XXX fnpyKey */
+#include <header.h>
#define _RPMPS_INTERNAL /* XXX rpmps needs iterator */
#include <rpmlib.h>
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/rpmrc-py.c
============================================================================
$ cvs diff -u -r1.20 -r1.21 rpmrc-py.c
--- rpm/python/rpmrc-py.c 3 Nov 2007 15:38:18 -0000 1.20
+++ rpm/python/rpmrc-py.c 22 Nov 2007 22:28:17 -0000 1.21
@@ -7,6 +7,7 @@
#include "structmember.h"
#include <rpmio.h>
+#include <header.h>
#include "rpmdebug-py.c"
#include <rpmcli.h>
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/rpmte-py.c
============================================================================
$ cvs diff -u -r1.22 -r1.23 rpmte-py.c
--- rpm/python/rpmte-py.c 19 Nov 2007 18:57:58 -0000 1.22
+++ rpm/python/rpmte-py.c 22 Nov 2007 22:28:17 -0000 1.23
@@ -6,6 +6,7 @@
#include <rpmio.h>
#include <rpmcb.h> /* XXX fnpyKey */
+#include <header.h>
#include <rpmlib.h>
#include "header-py.h" /* XXX tagNumFromPyObject */
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/hdrfmt.c
============================================================================
$ cvs diff -u -r1.36 -r1.37 hdrfmt.c
--- rpm/rpmdb/hdrfmt.c 22 Nov 2007 18:50:27 -0000 1.36
+++ rpm/rpmdb/hdrfmt.c 22 Nov 2007 22:28:17 -0000 1.37
@@ -5,6 +5,7 @@
#include "system.h"
#include "rpmio_internal.h"
+#include <header.h>
#include <rpmlib.h> /* XXX RPMFILE_FOO, rpmMkdirPath */
#include <rpmmacro.h> /* XXX for %_i18ndomains */
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header.c
============================================================================
$ cvs diff -u -r1.126 -r1.127 header.c
--- rpm/rpmdb/header.c 22 Nov 2007 19:50:18 -0000 1.126
+++ rpm/rpmdb/header.c 22 Nov 2007 22:28:17 -0000 1.127
@@ -120,53 +120,6 @@
/*@=redecl@*/
/**
- * Return tag name from value.
- * @todo This should come from #include <rpmtag.h>.
- * @param tag tag value
- * @return tag name, "(unknown)" on not found
- */
-/*@-redecl@*/
-/*@unused@*/ static inline /*@observer@*/
-const char * tagName(uint32_t tag)
- /*@*/
-{
-/*@-type@*/
- return ((*rpmTags->tagName)(tag));
-/*@=type@*/
-}
-
-/**
- * Return tag data type from value.
- * @todo This should come from #include <rpmtag.h>.
- * @param tag tag value
- * @return tag data type, 0 on not found.
- */
-/*@unused@*/ static inline
-uint32_t tagType(uint32_t tag)
- /*@*/
-{
-/*@-type@*/
- return ((*rpmTags->tagType)(tag));
-/*@=type@*/
-}
-
-/**
- * Return tag value from name.
- * @todo This should come from #include <rpmtag.h>.
- * @param tagstr name of tag
- * @return tag value, -1 on not found
- */
-/*@unused@*/ static inline
-int tagValue(const char * tagstr)
- /*@*/
-{
-/*@-type@*/
- return ((*rpmTags->tagValue)(tagstr));
-/*@=type@*/
-}
-/*@=redecl@*/
-
-/**
* Global header stats enabler.
*/
/*@unchecked@*/
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header.h
============================================================================
$ cvs diff -u -r1.70 -r1.71 header.h
--- rpm/rpmdb/header.h 22 Nov 2007 19:50:18 -0000 1.70
+++ rpm/rpmdb/header.h 22 Nov 2007 22:28:17 -0000 1.71
@@ -80,112 +80,15 @@
/* RPM - Copyright (C) 1995-2001 Red Hat Software */
#include <rpmsw.h>
+#include <rpmtag.h>
#ifdef __cplusplus
extern "C" {
#endif
/** \ingroup header
- */
-typedef const char * errmsg_t;
-
-/** \ingroup header
- */
-typedef /*@abstract@*/ /*@refcounted@*/ struct headerToken_s * Header;
-
-/** \ingroup header
- */
-typedef enum rpmTag_e rpmTag;
-
-/** \ingroup header
- * The basic types of data in tags from headers.
- */
-enum rpmTagType_e {
- /* RPM_NULL_TYPE = 0 - never been used. */
- /* RPM_CHAR_TYPE = 1 - never been used, same as RPM_UINT8_TYPE. */
- RPM_UINT8_TYPE = 2,
- RPM_UINT16_TYPE = 3,
- RPM_UINT32_TYPE = 4,
- RPM_UINT64_TYPE = 5,
- RPM_STRING_TYPE = 6,
- RPM_BIN_TYPE = 7,
- RPM_STRING_ARRAY_TYPE = 8,
- RPM_I18NSTRING_TYPE = 9
- /* RPM_ASN1_TYPE = 10 - never been used. */
- /* RPM_OPENPGP_TYPE= 11 - never been used. */
-};
-#define RPM_MIN_TYPE 2
-#define RPM_MAX_TYPE 9
-#define RPM_MASK_TYPE 0x0000ffff
-
-/** \ingroup header
- */
-typedef enum rpmTagType_e rpmTagType;
-
-/** \ingroup header
- */
-typedef union rpmDataType_u rpmTagData;
-
-/** \ingroup header
- */
-typedef uint32_t rpmTagCount;
-
-/** \ingroup header
- */
-typedef struct _HE_s * HE_t; /* tag container. */
-
-/** \ingroup header
- */
-/*@-typeuse -fielduse@*/
-#if !defined(SWIG)
-union rpmDataType_u {
-/*@null@*/
- void * ptr;
- uint8_t * ui8p; /*!< RPM_INT8_TYPE | RPM_CHAR_TYPE */
- uint16_t * ui16p; /*!< RPM_INT16_TYPE */
- uint32_t * ui32p; /*!< RPM_INT32_TYPE */
- uint64_t * ui64p; /*!< RPM_INT64_TYPE */
- const char * str; /*!< RPM_STRING_TYPE */
- unsigned char * blob; /*!< RPM_BIN_TYPE */
- const char ** argv; /*!< RPM_STRING_ARRAY_TYPE */
- HE_t * he;
-};
-#endif
-/*@=typeuse =fielduse@*/
-
-/** \ingroup header
- */
-typedef uint32_t * hTAG_t;
-typedef rpmTagData * hPTR_t;
-
-/** \ingroup header
- */
-/*@-typeuse -fielduse@*/
-#if !defined(SWIG)
-struct _HE_s {
- uint32_t tag;
- rpmTagType t;
-/*@owned@*/ /*@null@*/
- rpmTagData p;
- rpmTagCount c;
- int ix;
- unsigned int freeData : 1;
- unsigned int avail : 1;
- unsigned int append : 1;
- unsigned int signature : 1;
-};
-typedef struct _HE_s HE_s;
-#endif
-/*@=typeuse =fielduse@*/
-
-/** \ingroup header
- */
-typedef /*@abstract@*/ struct headerIterator_s * HeaderIterator;
-
-/** \ingroup header
* Associate tag names with numeric values.
*/
-typedef /*@abstract@*/ struct headerTagTableEntry_s * headerTagTableEntry;
#if !defined(SWIG)
struct headerTagTableEntry_s {
/*@observer@*/ /*@relnull@*/
@@ -196,142 +99,6 @@
#endif
/**
- */
-typedef /*@abstract@*/ struct headerTagIndices_s * headerTagIndices;
-#if !defined(SWIG)
-struct headerTagIndices_s {
- int (*loadIndex) (headerTagTableEntry ** ipp, int * np,
- int (*cmp) (const void * avp, const void * bvp))
- /*@ modifies *ipp, *np */; /*!< load sorted tag index. */
-/*@relnull@*/
- headerTagTableEntry * byName; /*!< header tags sorted by name. */
- int byNameSize; /*!< no. of entries. */
- int (*byNameCmp) (const void * avp, const void * bvp)
- /*@*/; /*!< compare entries by name. */
- uint32_t (*tagValue) (const char * name)
- /*@*/; /* return value from name. */
-/*@relnull@*/
- headerTagTableEntry * byValue; /*!< header tags sorted by value. */
- int byValueSize; /*!< no. of entries. */
- int (*byValueCmp) (const void * avp, const void * bvp)
- /*@*/; /*!< compare entries by value. */
- const char * (*tagName) (uint32_t value)
- /*@*/; /* Return name from value. */
- uint32_t (*tagType) (uint32_t value)
- /*@*/; /* Return type from value. */
-};
-#endif
-
-/** \ingroup header
- */
-enum headerSprintfExtensionType {
- HEADER_EXT_LAST = 0, /*!< End of extension chain. */
- HEADER_EXT_FORMAT, /*!< headerTagFormatFunction() extension */
- HEADER_EXT_MORE, /*!< Chain to next table. */
- HEADER_EXT_TAG /*!< headerTagTagFunction() extension */
-};
-
-/** \ingroup header
- * HEADER_EXT_TAG format function prototype.
- *
- * @param he tag container
- * @return formatted string
- */
-typedef /*only@*/ char * (*headerTagFormatFunction) (HE_t he)
- /*@modifies he @*/;
-
-/** \ingroup header
- * HEADER_EXT_FORMAT format function prototype.
- * This is allowed to fail, which indicates the tag doesn't exist.
- *
- * @param h header
- * @retval he tag container
- * @return 0 on success
- */
-typedef int (*headerTagTagFunction) (Header h, HE_t he)
- /*@modifies he @*/;
-
-/** \ingroup header
- * Define header tag output formats.
- */
-typedef /*@abstract@*/ struct headerSprintfExtension_s * headerSprintfExtension;
-#if !defined(SWIG)
-struct headerSprintfExtension_s {
- enum headerSprintfExtensionType type; /*!< Type of extension. */
-/*@observer@*/ /*@null@*/
- const char * name; /*!< Name of extension. */
- union {
-/*@observer@*/ /*@null@*/
- void * generic; /*!< Private extension. */
- headerTagFormatFunction fmtFunction; /*!< HEADER_EXT_TAG extension. */
- headerTagTagFunction tagFunction; /*!< HEADER_EXT_FORMAT extension. */
- struct headerSprintfExtension_s * more; /*!< Chained table extension. */
- } u;
-};
-#endif
-
-/** \ingroup header
- * Supported default header tag output formats.
- */
-/*@-redecl@*/
-/*@observer@*/
-extern const struct headerSprintfExtension_s headerDefaultFormats[];
-/*@=redecl@*/
-
-/** \ingroup header
- * Supported default header extension/tag output formats.
- */
-/*@-redecl@*/
-/*@observer@*/
-extern const struct headerSprintfExtension_s headerCompoundFormats[];
-/*@=redecl@*/
-
-/** \ingroup header
- * New rpm data types under consideration/development.
- * These data types may (or may not) be added to rpm at some point. In order
- * to avoid incompatibility with legacy versions of rpm, these data (sub-)types
- * are introduced into the header by overloading RPM_BIN_TYPE, with the binary
- * value of the tag a 16 byte image of what should/will be in the header index,
- * followed by per-tag private data.
- */
-/*@-enummemuse -typeuse @*/
-typedef enum rpmSubTagType_e {
- RPM_REGION_TYPE = -10,
- RPM_BIN_ARRAY_TYPE = -11,
- /*!<@todo Implement, kinda like RPM_STRING_ARRAY_TYPE for known (but variable)
- length binary data. */
- RPM_XREF_TYPE = -12
- /*!<@todo Implement, intent is to to carry a (???,tagNum,valNum) cross
- reference to retrieve data from other tags. */
-} rpmSubTagType;
-/*@=enummemuse =typeuse @*/
-
-/** \ingroup header
- * Identify how to return the header data type.
- */
-/*@-enummemuse -typeuse @*/
-typedef enum rpmTagReturnType_e {
- RPM_ANY_RETURN_TYPE = 0,
- RPM_SCALAR_RETURN_TYPE = 0x00010000,
- RPM_ARRAY_RETURN_TYPE = 0x00020000,
- RPM_MAPPING_RETURN_TYPE = 0x00040000,
- RPM_MASK_RETURN_TYPE = 0xffff0000
-} rpmTagReturnType;
-/*@=enummemuse =typeuse @*/
-
-/**
- * Header private tags.
- * @note General use tags should start at 1000 (RPM's tag space starts there).
- */
-#define HEADER_IMAGE 61
-#define HEADER_SIGNATURES 62
-#define HEADER_IMMUTABLE 63
-#define HEADER_REGIONS 64
-#define HEADER_I18NTABLE 100
-#define HEADER_SIGBASE 256
-#define HEADER_TAGBASE 1000
-
-/**
* Prototype for headerFreeData() vector.
*
* @param data address of data (or NULL)
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/rpmtag.h
============================================================================
$ cvs diff -u -r1.4 -r1.5 rpmtag.h
--- rpm/rpmdb/rpmtag.h 14 Nov 2007 21:13:18 -0000 1.4
+++ rpm/rpmdb/rpmtag.h 22 Nov 2007 22:28:17 -0000 1.5
@@ -1,8 +1,6 @@
#ifndef H_RPMTAG
#define H_RPMTAG
-#include <header.h>
-
/** \ingroup header
* \file rpmdb/rpmtag.h
*/
@@ -11,6 +9,142 @@
extern "C" {
#endif
+/** \ingroup header
+ */
+typedef const char * errmsg_t;
+
+/** \ingroup header
+ */
+typedef /*@abstract@*/ /*@refcounted@*/ struct headerToken_s * Header;
+
+/** \ingroup header
+ * The basic types of data in tags from headers.
+ */
+enum rpmTagType_e {
+ /* RPM_NULL_TYPE = 0 - never been used. */
+ /* RPM_CHAR_TYPE = 1 - never been used, same as RPM_UINT8_TYPE. */
+ RPM_UINT8_TYPE = 2,
+ RPM_UINT16_TYPE = 3,
+ RPM_UINT32_TYPE = 4,
+ RPM_UINT64_TYPE = 5,
+ RPM_STRING_TYPE = 6,
+ RPM_BIN_TYPE = 7,
+ RPM_STRING_ARRAY_TYPE = 8,
+ RPM_I18NSTRING_TYPE = 9
+ /* RPM_ASN1_TYPE = 10 - never been used. */
+ /* RPM_OPENPGP_TYPE= 11 - never been used. */
+};
+#define RPM_MIN_TYPE 2
+#define RPM_MAX_TYPE 9
+#define RPM_MASK_TYPE 0x0000ffff
+
+/** \ingroup header
+ */
+typedef enum rpmTagType_e rpmTagType;
+
+/** \ingroup header
+ */
+typedef union rpmDataType_u rpmTagData;
+
+/** \ingroup header
+ */
+typedef uint32_t rpmTagCount;
+
+/** \ingroup header
+ */
+typedef struct _HE_s * HE_t; /* tag container. */
+
+/** \ingroup header
+ */
+/*@-typeuse -fielduse@*/
+#if !defined(SWIG)
+union rpmDataType_u {
+/*@null@*/
+ void * ptr;
+ uint8_t * ui8p; /*!< RPM_INT8_TYPE | RPM_CHAR_TYPE */
+ uint16_t * ui16p; /*!< RPM_INT16_TYPE */
+ uint32_t * ui32p; /*!< RPM_INT32_TYPE */
+ uint64_t * ui64p; /*!< RPM_INT64_TYPE */
+ const char * str; /*!< RPM_STRING_TYPE */
+ unsigned char * blob; /*!< RPM_BIN_TYPE */
+ const char ** argv; /*!< RPM_STRING_ARRAY_TYPE */
+ HE_t * he;
+};
+#endif
+/*@=typeuse =fielduse@*/
+
+/** \ingroup header
+ */
+typedef uint32_t * hTAG_t;
+typedef rpmTagData * hPTR_t;
+
+/** \ingroup header
+ */
+/*@-typeuse -fielduse@*/
+#if !defined(SWIG)
+struct _HE_s {
+ uint32_t tag;
+ rpmTagType t;
+/*@owned@*/ /*@null@*/
+ rpmTagData p;
+ rpmTagCount c;
+ int ix;
+ unsigned int freeData : 1;
+ unsigned int avail : 1;
+ unsigned int append : 1;
+ unsigned int signature : 1;
+};
+typedef struct _HE_s HE_s;
+#endif
+
+/*@=typeuse =fielduse@*/
+/** \ingroup header
+ */
+/*@-enummemuse -typeuse @*/
+typedef enum rpmSubTagType_e {
+ RPM_REGION_TYPE = -10,
+ RPM_BIN_ARRAY_TYPE = -11,
+ RPM_XREF_TYPE = -12
+} rpmSubTagType;
+/*@=enummemuse =typeuse @*/
+
+/** \ingroup header
+ * Identify how to return the header data type.
+ */
+/*@-enummemuse -typeuse @*/
+typedef enum rpmTagReturnType_e {
+ RPM_ANY_RETURN_TYPE = 0,
+ RPM_SCALAR_RETURN_TYPE = 0x00010000,
+ RPM_ARRAY_RETURN_TYPE = 0x00020000,
+ RPM_MAPPING_RETURN_TYPE = 0x00040000,
+ RPM_MASK_RETURN_TYPE = 0xffff0000
+} rpmTagReturnType;
+/*@=enummemuse =typeuse @*/
+
+/**
+ * Header private tags.
+ * @note General use tags should start at 1000 (RPM's tag space starts there).
+ */
+#define HEADER_IMAGE 61
+#define HEADER_SIGNATURES 62
+#define HEADER_IMMUTABLE 63
+#define HEADER_REGIONS 64
+#define HEADER_I18NTABLE 100
+#define HEADER_SIGBASE 256
+#define HEADER_TAGBASE 1000
+
+/** \ingroup header
+ */
+typedef /*@abstract@*/ struct headerIterator_s * HeaderIterator;
+
+/** \ingroup header
+ */
+typedef /*@abstract@*/ struct headerTagIndices_s * headerTagIndices;
+
+/** \ingroup header
+ */
+typedef /*@abstract@*/ struct headerSprintfExtension_s * headerSprintfExtension;
+
/**
* Automatically generated table of tag name/value pairs.
*/
@@ -327,6 +461,40 @@
RPMSIGTAG_RSA = RPMTAG_RSAHEADER /*!< internal RSA header signature. */
};
+/** \ingroup header
+ */
+typedef enum rpmTag_e rpmTag;
+
+/**
+ */
+typedef /*@abstract@*/ struct headerTagTableEntry_s * headerTagTableEntry;
+
+/**
+ */
+#if !defined(SWIG)
+struct headerTagIndices_s {
+ int (*loadIndex) (headerTagTableEntry ** ipp, int * np,
+ int (*cmp) (const void * avp, const void * bvp))
+ /*@ modifies *ipp, *np */; /*!< load sorted tag index. */
+/*@relnull@*/
+ headerTagTableEntry * byName; /*!< header tags sorted by name. */
+ int byNameSize; /*!< no. of entries. */
+ int (*byNameCmp) (const void * avp, const void * bvp)
+ /*@*/; /*!< compare entries by name. */
+ uint32_t (*tagValue) (const char * name)
+ /*@*/; /* return value from name. */
+/*@relnull@*/
+ headerTagTableEntry * byValue; /*!< header tags sorted by value. */
+ int byValueSize; /*!< no. of entries. */
+ int (*byValueCmp) (const void * avp, const void * bvp)
+ /*@*/; /*!< compare entries by value. */
+ const char * (*tagName) (uint32_t value)
+ /*@*/; /* Return name from value. */
+ uint32_t (*tagType) (uint32_t value)
+ /*@*/; /* Return type from value. */
+};
+#endif
+
#if !defined(SWIG)
/**
* Return tag name from value.
@@ -374,6 +542,69 @@
#endif
+/** \ingroup header
+ */
+enum headerSprintfExtensionType {
+ HEADER_EXT_LAST = 0, /*!< End of extension chain. */
+ HEADER_EXT_FORMAT, /*!< headerTagFormatFunction() extension */
+ HEADER_EXT_MORE, /*!< Chain to next table. */
+ HEADER_EXT_TAG /*!< headerTagTagFunction() extension */
+};
+
+/** \ingroup header
+ * HEADER_EXT_TAG format function prototype.
+ *
+ * @param he tag container
+ * @return formatted string
+ */
+typedef /*only@*/ char * (*headerTagFormatFunction) (HE_t he)
+ /*@modifies he @*/;
+
+/** \ingroup header
+ * HEADER_EXT_FORMAT format function prototype.
+ * This is allowed to fail, which indicates the tag doesn't exist.
+ *
+ * @param h header
+ * @retval he tag container
+ * @return 0 on success
+ */
+typedef int (*headerTagTagFunction) (Header h, HE_t he)
+ /*@modifies he @*/;
+
+/** \ingroup header
+ * Define header tag output formats.
+ */
+#if !defined(SWIG)
+struct headerSprintfExtension_s {
+ enum headerSprintfExtensionType type; /*!< Type of extension. */
+/*@observer@*/ /*@null@*/
+ const char * name; /*!< Name of extension. */
+ union {
+/*@observer@*/ /*@null@*/
+ void * generic; /*!< Private extension. */
+ headerTagFormatFunction fmtFunction; /*!< HEADER_EXT_TAG extension. */
+ headerTagTagFunction tagFunction; /*!< HEADER_EXT_FORMAT extension. */
+ struct headerSprintfExtension_s * more; /*!< Chained table extension. */
+ } u;
+};
+#endif
+
+/** \ingroup header
+ * Supported default header tag output formats.
+ */
+/*@-redecl@*/
+/*@observer@*/
+extern const struct headerSprintfExtension_s headerDefaultFormats[];
+/*@=redecl@*/
+
+/** \ingroup header
+ * Supported default header extension/tag output formats.
+ */
+/*@-redecl@*/
+/*@observer@*/
+extern const struct headerSprintfExtension_s headerCompoundFormats[];
+/*@=redecl@*/
+
#ifdef __cplusplus
}
#endif
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/tagname.c
============================================================================
$ cvs diff -u -r1.13 -r1.14 tagname.c
--- rpm/rpmdb/tagname.c 17 Nov 2007 16:56:21 -0000 1.13
+++ rpm/rpmdb/tagname.c 22 Nov 2007 22:28:17 -0000 1.14
@@ -4,7 +4,7 @@
#include "system.h"
-#include <rpmtag.h>
+#include <header.h>
#include <rpmio.h>
#include "debug.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/tools/rpmcache.c
============================================================================
$ cvs diff -u -r2.23 -r2.24 rpmcache.c
--- rpm/tools/rpmcache.c 22 Nov 2007 18:50:28 -0000 2.23
+++ rpm/tools/rpmcache.c 22 Nov 2007 22:28:18 -0000 2.24
@@ -9,6 +9,7 @@
#include <fts.h>
#include <rpmio.h>
+#include <header.h>
#include <rpmcli.h>
#define _RPMGI_INTERNAL
@@ .
Received on Thu Nov 22 23:28:18 2007