SHA256
3
0
forked from pool/rpm
rpm/buildcounter.diff

113 lines
4.2 KiB
Diff

Index: rpm-4.4.2.3/lib/rpmlib.h
===================================================================
--- rpm-4.4.2.3.orig/lib/rpmlib.h 2009-07-20 10:50:09.000000000 +0200
+++ rpm-4.4.2.3/lib/rpmlib.h 2009-07-20 10:57:40.000000000 +0200
@@ -461,6 +461,7 @@ typedef enum rpmTag_e {
RPMTAG_SCRIPTMETRICS = 1175, /*!< i scriptlet execution times */
RPMTAG_BUILDCPUCLOCK = 1176, /*!< i */
+ RPMTAG_SUSEBUILDCNT = 1177, /* s */
/*@-enummemuse@*/
RPMTAG_FIRSTFREE_TAG /*!< internal */
/*@=enummemuse@*/
Index: rpm-4.4.2.3/build/parsePreamble.c
===================================================================
--- rpm-4.4.2.3.orig/build/parsePreamble.c 2009-07-20 10:50:10.000000000 +0200
+++ rpm-4.4.2.3/build/parsePreamble.c 2009-07-20 11:17:14.000000000 +0200
@@ -32,6 +32,7 @@ static rpmTag copyTagsDuringParse[] = {
RPMTAG_RHNPLATFORM,
RPMTAG_DISTTAG,
RPMTAG_CVSID,
+ RPMTAG_SUSEBUILDCNT,
0
};
@@ -335,6 +336,7 @@ static struct optionalTag {
{ RPMTAG_DISTRIBUTION, "%{distribution}" },
{ RPMTAG_DISTURL, "%{disturl}" },
{ RPMTAG_DISTTAG, "%{disttag}" },
+ { RPMTAG_SUSEBUILDCNT, "%{susebuildcnt}" },
{ -1, NULL }
};
@@ -522,6 +524,7 @@ static int handlePreambleTag(Spec spec,
case RPMTAG_RHNPLATFORM:
case RPMTAG_DISTTAG:
case RPMTAG_CVSID:
+ case RPMTAG_SUSEBUILDCNT:
SINGLE_TOKEN_ONLY;
/* These macros are for backward compatibility */
if (tag == RPMTAG_VERSION) {
@@ -759,6 +762,7 @@ static struct PreambleRec_s preambleList
{RPMTAG_NAME, 0, 0, 0, "name"},
{RPMTAG_VERSION, 0, 0, 0, "version"},
{RPMTAG_RELEASE, 0, 0, 0, "release"},
+ {RPMTAG_SUSEBUILDCNT, 0, 0, 0, "susebuildcnt"},
{RPMTAG_EPOCH, 0, 0, 0, "epoch"},
{RPMTAG_EPOCH, 0, 0, 1, "serial"},
{RPMTAG_SUMMARY, 0, 1, 0, "summary"},
Index: rpm-4.4.2.3/lib/psm.c
===================================================================
--- rpm-4.4.2.3.orig/lib/psm.c 2009-07-20 10:50:09.000000000 +0200
+++ rpm-4.4.2.3/lib/psm.c 2009-07-20 11:04:46.000000000 +0200
@@ -103,6 +103,7 @@ static struct tagMacro {
{ "version", RPMTAG_VERSION },
{ "release", RPMTAG_RELEASE },
{ "epoch", RPMTAG_EPOCH },
+ { "susebuildcnt", RPMTAG_SUSEBUILDCNT },
{ NULL, 0 }
};
Index: rpm-4.4.2.3/build/pack.c
===================================================================
--- rpm-4.4.2.3.orig/build/pack.c 2009-07-20 10:50:09.000000000 +0200
+++ rpm-4.4.2.3/build/pack.c 2009-07-20 16:36:16.000000000 +0200
@@ -41,7 +41,7 @@ static inline int genSourceRpmName(Spec
const char *name, *version, *release;
char fileName[BUFSIZ];
- (void) headerNVR(spec->packages->header, &name, &version, &release);
+ (void) headerNVR(spec->sourceHeader, &name, &version, &release);
sprintf(fileName, "%s-%s-%s.%ssrc.rpm", name, version, release,
spec->noSource ? "no" : "");
spec->sourceRpmName = xstrdup(fileName);
@@ -849,6 +849,26 @@ int packageBinaries(Spec spec)
(void) headerAddEntry(pkg->header, RPMTAG_BUILDTIME,
RPM_INT32_TYPE, getBuildTime(), 1);
+ {
+ int type, count;
+ char *ap = NULL;
+ char *rp = NULL;
+ char *bp = NULL;
+ if ((!headerGetEntry(pkg->header, RPMTAG_ARCH, &type, (void **)&ap, &count)
+ || (type == RPM_STRING_TYPE && count == 1
+ && strcmp (ap, "noarch") != 0))
+ && headerGetEntry(pkg->header, RPMTAG_RELEASE, &type, (void **) &rp, &count)
+ && type == RPM_STRING_TYPE && count == 1
+ && headerGetEntry(pkg->header, RPMTAG_SUSEBUILDCNT, &type, (void **) &bp, &count)
+ && type == RPM_STRING_TYPE && count == 1)
+ {
+ char tmp[1024];
+ snprintf (tmp, 1024, "%s.%s", rp, bp);
+ headerModifyEntry (pkg->header, RPMTAG_RELEASE, RPM_STRING_TYPE,
+ strdup (tmp), 1);
+ }
+ }
+
providePackageNVR(pkg->header);
{ const char * optflags = rpmExpand("%{optflags}", NULL);
Index: rpm-4.4.2.3/build/files.c
===================================================================
--- rpm-4.4.2.3.orig/build/files.c 2009-07-23 11:50:30.000000000 +0200
+++ rpm-4.4.2.3/build/files.c 2009-07-23 11:51:05.000000000 +0200
@@ -2608,6 +2608,7 @@ static rpmTag copyTagsForDebug[] = {
RPMTAG_DISTTAG,
RPMTAG_CVSID,
RPMTAG_ARCH,
+ RPMTAG_SUSEBUILDCNT,
0
};