RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/build/ rpmbuild.h rpm/lib/ depends.c forma...

From: Jeff Johnson <jbj@rpm5.org>
Date: Thu 22 Nov 2007 - 23:28:18 CET
Message-Id: <20071122222818.4797834845C@rpm5.org>
  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
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.