RPM Community Forums

Mailing List Message of <rpm-devel>

Re: [CVS] RPM: rpm/ CHANGES rpm/build/ files.c pack.c parsePreamble.c rpm/...

From: Jeff Johnson <n3npq@mac.com>
Date: Tue 23 Dec 2008 - 17:03:08 CET
Message-id: <A71FACC6-3AF7-4CF1-8624-A361863B00D1@mac.com>
Put the under a "RPM_VENDOR_FOO" (or any other AutoFu enabler,
default behavior is "disabled").

I do not see __ANY__ consensus @rpm5.org that the patch is desired,
in fact quite the opposite, you have 2 negative comments on your  
proposal.

I'm strongly opposed to the patch because I have __ALREADY__ seen
Epoch: and then Arch: and Disttag: and Repotag: being added to packaging
for "identification" purposes (I did the implementations) and no  
problem was
usefully solved.

Noone (until now, yes you are using Disttag:, but you are still only a
single person) finds the functionality useful. The homily
	Build and they shall use.
does not apply in this case there is no consensus on the intended
"identification".

73 de Jeff
On Dec 22, 2008, at 10:46 AM, Per Řyvind Karlsen wrote:

>   RPM Package Manager, CVS Repository
>   http://rpm5.org/cvs/
>    
> ______________________________________________________________________ 
> ______
>
>   Server: rpm5.org                         Name:   Per Řyvind Karlsen
>   Root:   /v/rpm/cvs                       Email:  pkarlsen@rpm5.org
>   Module: rpm                              Date:   22-Dec-2008  
> 16:46:46
>   Branch: HEAD                             Handle: 2008122215464401
>
>   Modified files:
>     rpm                     CHANGES macros.in
>     rpm/build               files.c pack.c parsePreamble.c
>     rpm/lib                 psm.c rpmds.c rpmte.c rpmte.h  
> transaction.c
>     rpm/python              header-py.c
>     rpm/rpmdb               hdrNVR.c rpmevr.c rpmevr.h rpmtag.h
>
>   Log:
>     add new DistEpoch tag
>
>   Summary:
>     Revision    Changes     Path
>     1.2700      +1  -0      rpm/CHANGES
>     1.349       +1  -0      rpm/build/files.c
>     2.304       +13 -4      rpm/build/pack.c
>     2.184       +4  -0      rpm/build/parsePreamble.c
>     2.342       +2  -0      rpm/lib/psm.c
>     2.115       +23 -6      rpm/lib/rpmds.c
>     2.89        +13 -0      rpm/lib/rpmte.c
>     2.56        +11 -0      rpm/lib/rpmte.h
>     1.392       +4  -1      rpm/lib/transaction.c
>     1.265       +6  -2      rpm/macros.in
>     1.100       +1  -0      rpm/python/header-py.c
>     1.46        +1  -0      rpm/rpmdb/hdrNVR.c
>     1.13        +19 -4      rpm/rpmdb/rpmevr.c
>     1.4         +2  -0      rpm/rpmdb/rpmevr.h
>     1.56        +2  -0      rpm/rpmdb/rpmtag.h
>    
> ______________________________________________________________________ 
> ______
>
>   patch -p0 <<'@@ .'
>   Index: rpm/CHANGES
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.2699 -r1.2700 CHANGES
>   --- rpm/CHANGES	21 Dec 2008 17:16:47 -0000	1.2699
>   +++ rpm/CHANGES	22 Dec 2008 15:46:45 -0000	1.2700
>   @@ -1,5 +1,6 @@
>
>    5.2a2 -> 5.2a3:
>   +    - proyvind: add new DistEpoch tag.
>        - jbj: merge "support-wildcards-in-EVR-comparison" patch  
> (OpenPKG).
>        - jbj: invert the sense of a <-> b comparison, change sign  
> of Mandriva override.
>        - jbj: bury MDV file triggers under RPM_VENDOR_MANDRIVA.
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/build/files.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.348 -r1.349 files.c
>   --- rpm/build/files.c	19 Dec 2008 02:51:10 -0000	1.348
>   +++ rpm/build/files.c	22 Dec 2008 15:46:44 -0000	1.349
>   @@ -2537,6 +2537,7 @@
>    	case RPMTAG_NAME:
>    	case RPMTAG_VERSION:
>    	case RPMTAG_RELEASE:
>   +	case RPMTAG_DISTEPOCH:
>    	case RPMTAG_EPOCH:
>    	case RPMTAG_SUMMARY:
>    	case RPMTAG_DESCRIPTION:
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/build/pack.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r2.303 -r2.304 pack.c
>   --- rpm/build/pack.c	15 Dec 2008 22:43:43 -0000	2.303
>   +++ rpm/build/pack.c	22 Dec 2008 15:46:44 -0000	2.304
>   @@ -449,9 +449,9 @@
>    void providePackageNVR(Header h)
>    {
>        HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
>   -    const char *N, *V, *R;
>   +    const char *N, *V, *R, *D;
>        rpmuint32_t E;
>   -    int gotE;
>   +    int gotE, gotD;
>        const char *pEVR;
>        char *p;
>        rpmuint32_t pFlags = RPMSENSE_EQUAL;
>   @@ -466,7 +466,12 @@
>        xx = headerNEVRA(h, &N, NULL, &V, &R, NULL);
>        if (!(N && V && R))
>    	return;
>   -    pEVR = p = alloca(21 + strlen(V) + 1 + strlen(R) + 1);
>   +
>   +    he->tag = RPMTAG_DISTEPOCH;
>   +    gotD = headerGet(h, he, 0);
>   +    D = (he->p.str ? he->p.str : NULL);
>   +
>   +    pEVR = p = alloca(21 + strlen(V) + 1 + strlen(R) + 1 +  
> (gotD ? strlen(D) + 1 : 0));
>        *p = '\0';
>        he->tag = RPMTAG_EPOCH;
>        gotE = headerGet(h, he, 0);
>   @@ -476,7 +481,11 @@
>    	sprintf(p, "%d:", E);
>    	p += strlen(p);
>        }
>   -    (void) stpcpy( stpcpy( stpcpy(p, V) , "-") , R);
>   +    p = stpcpy( stpcpy( stpcpy(p, V) , "-") , R);
>   +    if (gotD) {
>   +	p = stpcpy( stpcpy( p, ":"), D);
>   +    	D = _free(D);
>   +    }
>        V = _free(V);
>        R = _free(R);
>
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/build/parsePreamble.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r2.183 -r2.184 parsePreamble.c
>   --- rpm/build/parsePreamble.c	19 Dec 2008 01:13:19 -0000	2.183
>   +++ rpm/build/parsePreamble.c	22 Dec 2008 15:46:44 -0000	2.184
>   @@ -26,6 +26,7 @@
>        RPMTAG_EPOCH,
>        RPMTAG_VERSION,
>        RPMTAG_RELEASE,
>   +    RPMTAG_DISTEPOCH,
>        RPMTAG_LICENSE,
>        RPMTAG_GROUP,		/* XXX permissive. */
>        RPMTAG_SUMMARY,		/* XXX permissive. */
>   @@ -363,6 +364,7 @@
>    } optionalTags[] = {
>        { RPMTAG_VENDOR,		"%{vendor}" },
>        { RPMTAG_PACKAGER,		"%{packager}" },
>   +    { RPMTAG_DISTEPOCH,	"%{distepoch}" },
>        { RPMTAG_DISTRIBUTION,	"%{distribution}" },
>        { RPMTAG_DISTTAG,		"%{disttag}" },
>        { RPMTAG_DISTURL,		"%{disturl}" },
>   @@ -609,6 +611,7 @@
>        case RPMTAG_NAME:
>        case RPMTAG_VERSION:
>        case RPMTAG_RELEASE:
>   +    case RPMTAG_DISTEPOCH:
>        case RPMTAG_URL:
>        case RPMTAG_DISTTAG:
>        case RPMTAG_REPOTAG:
>   @@ -881,6 +884,7 @@
>        {RPMTAG_NAME,		0, 0, "name"},
>        {RPMTAG_VERSION,		0, 0, "version"},
>        {RPMTAG_RELEASE,		0, 0, "release"},
>   +    {RPMTAG_DISTEPOCH,		0, 0, "distepoch"},
>        {RPMTAG_EPOCH,		0, 0, "epoch"},
>        {RPMTAG_EPOCH,		0, 1, "serial"},
>        {RPMTAG_SUMMARY,		1, 0, "summary"},
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/lib/psm.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r2.341 -r2.342 psm.c
>   --- rpm/lib/psm.c	15 Dec 2008 22:43:44 -0000	2.341
>   +++ rpm/lib/psm.c	22 Dec 2008 15:46:44 -0000	2.342
>   @@ -2018,6 +2018,8 @@
>    			rpmteV(psm->te));
>    		xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_RELEASE, RPMMIRE_STRCMP,
>    			rpmteR(psm->te));
>   +		xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_DISTEPOCH,  
> RPMMIRE_STRCMP,
>   +			rpmteD(psm->te));
>    		if (tscolor) {
>    		    xx = rpmdbSetIteratorRE(psm->mi,RPMTAG_ARCH, RPMMIRE_STRCMP,
>    			rpmteA(psm->te));
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/lib/rpmds.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r2.114 -r2.115 rpmds.c
>   --- rpm/lib/rpmds.c	15 Dec 2008 22:43:44 -0000	2.114
>   +++ rpm/lib/rpmds.c	22 Dec 2008 15:46:44 -0000	2.115
>   @@ -524,7 +524,7 @@
>        HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
>        rpmds ds = NULL;
>        const char * Type;
>   -    const char * Name, * V, * R;
>   +    const char * Name, * V, * R, * D;
>        rpmuint32_t E;
>        const char ** N, ** EVR;
>        char * t;
>   @@ -540,6 +540,9 @@
>        E = (he->p.ui32p ? he->p.ui32p[0] : 0);
>        he->p.ptr = _free(he->p.ptr);
>
>   +    he->tag = RPMTAG_DISTEPOCH;
>   +    xx = headerGet(h, he, 0);
>   +    D = (he->p.str ? he->p.str : NULL);
>    /*@-mods@*/
>        xx = headerNEVRA(h, &Name, NULL, &V, &R, NULL);
>    /*@=mods@*/
>   @@ -552,14 +555,17 @@
>        t = stpcpy(t, Name);
>        Name = _free(Name);
>
>   -    t = xmalloc(sizeof(*EVR) + 20 + strlen(V) + strlen(R) +  
> sizeof("-"));
>   +    t = xmalloc(sizeof(*EVR) + 20 + strlen(V) + strlen(R) +  
> sizeof("-") + (D ? strlen(D) + sizeof(":") : 0));
>        EVR = (const char **) t;
>        t += sizeof(*EVR);
>        *t = '\0';
>        EVR[0] = t;
>   -    sprintf(t, "%d:", E);
>        t += strlen(t);
>        t = stpcpy( stpcpy( stpcpy( t, V), "-"), R);
>   +    if (D != NULL) {
>   +	t = stpcpy( stpcpy( t, ":"), D);
>   +	D = _free(D);
>   +    }
>        V = _free(V);
>        R = _free(R);
>
>   @@ -3638,6 +3644,8 @@
>    /*@i@*/	sense = EVRcmp(a->V, b->V);
>    	if (sense == 0 && a->R && *a->R && b->R && *b->R)
>    /*@i@*/	    sense = EVRcmp(a->R, b->R);
>   +	if (sense == 0 && a->D && *a->D && b->D && *b->D)
>   +/*@i@*/	    sense = EVRcmp(a->D, b->D);
>        }
>        a->str = _free(a->str);
>        b->str = _free(b->str);
>   @@ -3762,9 +3770,9 @@
>    int rpmdsNVRMatchesDep(const Header h, const rpmds req, int  
> nopromote)
>    {
>        HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
>   -    const char * pkgN, * V, * R;
>   +    const char * pkgN, * V, * R, * D;
>        rpmuint32_t E;
>   -    int gotE = 0;
>   +    int gotE = 0, gotD = 0;
>        const char * pkgEVR;
>        char * t;
>        evrFlags reqFlags = req->ns.Flags;
>   @@ -3790,16 +3798,25 @@
>        E = (he->p.ui32p ? he->p.ui32p[0] : 0);
>        he->p.ptr = _free(he->p.ptr);
>
>   +    he->tag = RPMTAG_DISTEPOCH;
>   +    gotD = headerGet(h, he, 0);
>   +    D = (he->p.str ? he->p.str : NULL);
>   +
>        nb = 21 + 1 + 1;
>        if (V) nb += strlen(V);
>        if (R) nb += strlen(R);
>   +    if (D) nb += strlen(D) + 1;
>        pkgEVR = t = alloca(nb);
>        *t = '\0';
>        if (gotE) {
>    	sprintf(t, "%d:", E);
>    	t += strlen(t);
>        }
>   -    (void) stpcpy( stpcpy( stpcpy(t, V) , "-") , R);
>   +    t = stpcpy( stpcpy( stpcpy(t, V) , "-") , R);
>   +    if (gotD) {
>   +	t =  stpcpy( stpcpy( t, ":"), D);
>   +	D = _free(D);
>   +    }
>        V = _free(V);
>        R = _free(R);
>
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/lib/rpmte.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r2.88 -r2.89 rpmte.c
>   --- rpm/lib/rpmte.c	2 Aug 2008 00:38:04 -0000	2.88
>   +++ rpm/lib/rpmte.c	22 Dec 2008 15:46:44 -0000	2.89
>   @@ -57,6 +57,7 @@
>        p->name = _free(p->name);
>        p->version = _free(p->version);
>        p->release = _free(p->release);
>   +    p->distepoch = _free(p->distepoch);
>        p->NEVR = _free(p->NEVR);
>        p->NEVRA = _free(p->NEVRA);
>        p->pkgid = _free(p->pkgid);
>   @@ -164,6 +165,13 @@
>        } else
>    	p->epoch = NULL;
>
>   +    he->tag = RPMTAG_DISTEPOCH;
>   +    xx = headerGet(h, he, 0);
>   +    if (he->p.str != NULL) {
>   +	p->distepoch = (char*)(xx ? he->p.str : xstrdup("? 
> RPMTAG_DISTEPOCH?"));
>   +    } else
>   +	p->distepoch = NULL;
>   +
>        p->installed = 0;
>
>        p->relocs = rpmfiDupeRelocations(relocs, &p->nrelocs);
>   @@ -288,6 +296,11 @@
>        return (te != NULL ? te->release : NULL);
>    }
>
>   +const char * rpmteD(rpmte te)
>   +{
>   +    return (te != NULL ? te->distepoch : NULL);
>   +}
>   +
>    const char * rpmteA(rpmte te)
>    {
>        return (te != NULL ? te->arch : NULL);
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/lib/rpmte.h
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r2.55 -r2.56 rpmte.h
>   --- rpm/lib/rpmte.h	8 Dec 2008 04:04:24 -0000	2.55
>   +++ rpm/lib/rpmte.h	22 Dec 2008 15:46:44 -0000	2.56
>   @@ -112,6 +112,8 @@
>    /*@only@*/ /*@null@*/
>        char * release;		/*!< Release: */
>    /*@only@*/ /*@null@*/
>   +    char * distepoch;
>   +/*@only@*/ /*@null@*/
>        const char * arch;		/*!< Architecture hint. */
>    /*@only@*/ /*@null@*/
>        const char * os;		/*!< Operating system hint. */
>   @@ -284,6 +286,15 @@
>    	/*@*/;
>
>    /** \ingroup rpmte
>   + * Retrieve distepoch string of transaction element.
>   + * @param te		transaction element
>   + * @return		distepoch string
>   + */
>   +/*@observer@*/ /*@null@*/
>   +extern const char * rpmteD(rpmte te)
>   +	/*@*/;
>   +
>   +/** \ingroup rpmte
>     * Retrieve arch string of transaction element.
>     * @param te		transaction element
>     * @return		arch string
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/lib/transaction.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.391 -r1.392 transaction.c
>   --- rpm/lib/transaction.c	20 Dec 2008 23:14:51 -0000	1.391
>   +++ rpm/lib/transaction.c	22 Dec 2008 15:46:44 -0000	1.392
>   @@ -619,7 +619,7 @@
>        if (p == NULL || h == NULL)
>    	return 1;
>
>   -    nb = strlen(rpmteNEVR(p)) + (rpmteE(p) != NULL ? strlen 
> (rpmteE(p)) : 0) + 1;
>   +    nb = strlen(rpmteNEVR(p)) + (rpmteE(p) != NULL ? strlen 
> (rpmteE(p)) : 0) + (rpmteD(p) != NULL ? strlen(rpmteD(p)) + 1 : 0)  
> + 1;
>        t = alloca(nb);
>        *t = '\0';
>        reqEVR = t;
>   @@ -627,6 +627,7 @@
>        if (rpmteV(p) != NULL)	t = stpcpy(t, rpmteV(p));
>        *t++ = '-';
>        if (rpmteR(p) != NULL)	t = stpcpy(t, rpmteR(p));
>   +    if (rpmteD(p) != NULL)	*t++ = ':', t = stpcpy(t, rpmteD(p));
>
>        req = rpmdsSingle(RPMTAG_REQUIRENAME, rpmteN(p), reqEVR,  
> reqFlags);
>        rc = rpmdsNVRMatchesDep(h, req, _rpmds_nopromote);
>   @@ -1277,6 +1278,8 @@
>    				rpmteV(p));
>    	    xx = rpmdbSetIteratorRE(mi, RPMTAG_RELEASE, RPMMIRE_STRCMP,
>    				rpmteR(p));
>   +	    xx = rpmdbSetIteratorRE(mi, RPMTAG_DISTEPOCH, RPMMIRE_STRCMP,
>   +				rpmteD(p));
>    	    if (tscolor) {
>    		xx = rpmdbSetIteratorRE(mi, RPMTAG_ARCH, RPMMIRE_STRCMP,
>    				rpmteA(p));
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/macros.in
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.264 -r1.265 macros.in
>   --- rpm/macros.in	18 Dec 2008 17:11:34 -0000	1.264
>   +++ rpm/macros.in	22 Dec 2008 15:46:45 -0000	1.265
>   @@ -1,7 +1,7 @@
>    #/*! \page config_macros Default configuration: @USRLIBRPM@/macros
>    # \verbatim
>    #
>   -# $Id: macros.in,v 1.264 2008/12/18 17:11:34 afb Exp $
>   +# $Id: macros.in,v 1.265 2008/12/22 15:46:45 pkarlsen Exp $
>    #
>    # This is a global RPM configuration file. All changes made here  
> will
>    # be lost when the rpm package is upgraded. Any per-system  
> configuration
>   @@ -857,7 +857,7 @@
>    #	binary packages.
>    #
>    # XXX	Note: escaped %% for use in headerSprintf()
>   -%_build_name_fmt	%%{ARCH}/%{___NVRA}.rpm
>   +%_build_name_fmt	%%{ARCH}/%{___NVRDA}.rpm
>
>    #	The default transaction color. This value is a set of bits to
>    #	determine file and dependency affinity for this arch.
>   @@ -1009,6 +1009,10 @@
>    # Default query format string for displaying package names  
> everywhere
>    %___NVRA	%%{NAME}-%%{VERSION}-%%{RELEASE}%%|ARCH?{.%%|SOURCERPM? 
> {%%{ARCH}}:{src}|}:{}|
>
>   +# Format string including DistTag & DistEpoch if defined
>   +%___NVRDA	%%{NAME}-%%{VERSION}-%%{RELEASE}%%|DISTTAG?{-%% 
> {DISTTAG}%%|DISTEPOCH?{%%{DISTEPOCH}}|}|%%|ARCH?{.%%|SOURCERPM?{%% 
> {ARCH}}:{src}|}:{}|
>   +
>   +
>    # Default headerSprintf() output format string for rpm -qa
>    #
>    # XXX	Note: escaped %% for use in headerSprintf()
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/python/header-py.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.99 -r1.100 header-py.c
>   --- rpm/python/header-py.c	8 Dec 2008 01:46:36 -0000	1.99
>   +++ rpm/python/header-py.c	22 Dec 2008 15:46:45 -0000	1.100
>   @@ -405,6 +405,7 @@
>    	    case RPMTAG_NAME:
>    	    case RPMTAG_VERSION:
>    	    case RPMTAG_RELEASE:
>   +	    case RPMTAG_DISTEPOCH:
>    	    case RPMTAG_ARCH:
>    	    case RPMTAG_OS:
>    		Py_INCREF(Py_None);
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/rpmdb/hdrNVR.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.45 -r1.46 hdrNVR.c
>   --- rpm/rpmdb/hdrNVR.c	1 Aug 2008 18:24:55 -0000	1.45
>   +++ rpm/rpmdb/hdrNVR.c	22 Dec 2008 15:46:45 -0000	1.46
>   @@ -25,6 +25,7 @@
>        { "name",		RPMTAG_NAME },
>        { "version",	RPMTAG_VERSION },
>        { "release",	RPMTAG_RELEASE },
>   +    { "distepoch",	RPMTAG_DISTEPOCH },
>        { "epoch",		RPMTAG_EPOCH },
>        { "arch",		RPMTAG_ARCH },
>        { "os",		RPMTAG_OS },
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/rpmdb/rpmevr.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.12 -r1.13 rpmevr.c
>   --- rpm/rpmdb/rpmevr.c	21 Dec 2008 17:16:48 -0000	1.12
>   +++ rpm/rpmdb/rpmevr.c	22 Dec 2008 15:46:45 -0000	1.13
>   @@ -110,15 +110,15 @@
>    	/*@modifies evrstr, evr @*/
>    {
>        char *s = xstrdup(evrstr);
>   -    char *se;
>   +    char *se, *se2;
>
>   -    evr->str = se = s;
>   +    evr->str = se2 = se = s;
>        while (*se && xisdigit((int)*se)) se++;	/* se points to  
> epoch terminator */
>
>        if (*se == ':') {
>    	evr->E = s;
>    	*se++ = '\0';
>   -	evr->V = se;
>   +	evr->V = se2 = se;
>    	if (*evr->E == '\0') evr->E = "0";
>    	evr->Elong = strtoul(evr->E, NULL, 10);
>        } else {
>   @@ -126,7 +126,14 @@
>    	evr->V = s;
>    	evr->Elong = 0;
>        }
>   -    se = strrchr(se, '-');		/* se points to version terminator */
>   +    se = strrchr(se, ':');		/* se points to release terminator */
>   +    if (se) {
>   +	*se++ = '\0';
>   +	evr->D = se;
>   +    } else {
>   +	evr->D = NULL;
>   +    }
>   +    se = strrchr(se2, '-');		/* se points to version terminator */
>        if (se) {
>    	*se++ = '\0';
>    	evr->R = se;
>   @@ -255,6 +262,14 @@
>        two = he->p.str;
>        rc = rpmvercmp(one, two);
>
>   +    he->tag = RPMTAG_DISTEPOCH;
>   +    xx = headerGet(first, he, 0);
>   +    one = he->p.str;
>   +    he->tag = RPMTAG_DISTEPOCH;
>   +    xx = headerGet(second, he, 0);
>   +    two = he->p.str;
>   +    rc = rpmvercmp(one, two);
>   +
>    exit:
>        one = _free(one);
>    /*@-usereleased@*/
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/rpmdb/rpmevr.h
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.3 -r1.4 rpmevr.h
>   --- rpm/rpmdb/rpmevr.h	2 Aug 2008 16:36:10 -0000	1.3
>   +++ rpm/rpmdb/rpmevr.h	22 Dec 2008 15:46:45 -0000	1.4
>   @@ -88,6 +88,8 @@
>        const char * V;		/*!< Version */
>    /*@observer@*/ /*@null@*/
>        const char * R;		/*!< Release */
>   +/*@observer@*/ /*@null@*/
>   +    const char * D;		/*!< DistEpoch */
>        evrFlags Flags;		/*!< EVR comparison flags. */
>    };
>
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/rpmdb/rpmtag.h
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.55 -r1.56 rpmtag.h
>   --- rpm/rpmdb/rpmtag.h	11 Dec 2008 23:31:57 -0000	1.55
>   +++ rpm/rpmdb/rpmtag.h	22 Dec 2008 15:46:45 -0000	1.56
>   @@ -421,6 +421,8 @@
>        RPMTAG_PACKAGEDIGEST	= 1215,	/* s */
>        RPMTAG_PACKAGESTAT		= 1216,	/* x */
>        RPMTAG_PACKAGEBASEURL	= 1217,	/* s */
>   +    RPMTAG_DISTEPOCH		= 1218, /* s */
>   +#define	RPMTAG_D	RPMTAG_DISTEPOCH	/* s */
>
>    /*@-enummemuse@*/
>        RPMTAG_FIRSTFREE_TAG,	/*!< internal */
>   @@ .
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> CVS Sources Repository                                rpm-cvs@rpm5.org
Received on Tue Dec 23 17:03:18 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.