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: 14-Oct-2007 20:08:19
Branch: HEAD Handle: 2007101419081900
Modified files:
rpm CHANGES
rpm/build pack.c
Log:
- pack.c: use headerGetExtension everywhere.
Summary:
Revision Changes Path
1.1701 +1 -0 rpm/CHANGES
2.234 +50 -25 rpm/build/pack.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1700 -r1.1701 CHANGES
--- rpm/CHANGES 14 Oct 2007 17:47:22 -0000 1.1700
+++ rpm/CHANGES 14 Oct 2007 18:08:19 -0000 1.1701
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - jbj: pack.c: use headerGetExtension everywhere.
- jbj: files.c: fix: append to pkg->fileList.
- jbj: files.c: use headerGetExtension everywhere.
- jbj: transaction.c: eliminate hge warning.
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/pack.c
============================================================================
$ cvs diff -u -r2.233 -r2.234 pack.c
--- rpm/build/pack.c 14 Oct 2007 00:36:21 -0000 2.233
+++ rpm/build/pack.c 14 Oct 2007 18:08:19 -0000 2.234
@@ -173,14 +173,22 @@
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies h, rpmGlobalMacroContext, fileSystem, internalState @*/
{
- HGE_t hge = (HGE_t)headerGetEntryMinMemory;
+ HGE_t hge = (HGE_t)headerGetExtension;
+ int_32 he_t = 0;
+ hRET_t he_p = { .ptr = NULL };
+ int_32 he_c = 0;
+ HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
+ HE_t he = &he_s;
StringBuf sb = newStringBuf();
- char *s;
+ int xx;
- if (hge(h, tag, NULL, &s, NULL)) {
- appendLineStringBuf(sb, s);
+ he->tag = tag;
+ xx = hge(h, he->tag, he->t, he->p, he->c);
+ if (xx) {
+ appendLineStringBuf(sb, he_p.str);
(void) headerRemoveEntry(h, tag);
}
+ he_p.ptr = _free(he_p.ptr);
if ((sb = addFileToTagAux(spec, file, sb)) == NULL)
return 1;
@@ -431,45 +439,59 @@
void providePackageNVR(Header h)
{
- HGE_t hge = (HGE_t)headerGetEntryMinMemory;
- HFD_t hfd = headerFreeData;
- const char *name, *version, *release;
- int_32 * epoch;
+ HGE_t hge = (HGE_t)headerGetExtension;
+ int_32 he_t = 0;
+ hRET_t he_p = { .ptr = NULL };
+ int_32 he_c = 0;
+ HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
+ HE_t he = &he_s;
+ const char *N, *V, *R;
+ int_32 E;
+ int gotE;
const char *pEVR;
char *p;
int_32 pFlags = RPMSENSE_EQUAL;
const char ** provides = NULL;
const char ** providesEVR = NULL;
- rpmTagType pnt, pvt;
int_32 * provideFlags = NULL;
int providesCount;
int i, xx;
int bingo = 1;
- /* Generate provides for this package name-version-release. */
- xx = headerNEVRA(h, &name, NULL, &version, &release, NULL);
- if (!(name && version && release))
+ /* Generate provides for this package N-V-R. */
+ xx = headerNEVRA(h, &N, NULL, &V, &R, NULL);
+ if (!(N && V && R))
return;
- pEVR = p = alloca(21 + strlen(version) + 1 + strlen(release) + 1);
+ pEVR = p = alloca(21 + strlen(V) + 1 + strlen(R) + 1);
*p = '\0';
- if (hge(h, RPMTAG_EPOCH, NULL, &epoch, NULL)) {
- sprintf(p, "%d:", *epoch);
- while (*p != '\0')
- p++;
+ he->tag = RPMTAG_EPOCH;
+ gotE = hge(h, he->tag, he->t, he->p, he->c);
+ E = (he_p.i32p ? *he_p.i32p : 0);
+ he_p.ptr = _free(he_p.ptr);
+ if (gotE) {
+ sprintf(p, "%d:", E);
+ p += strlen(p);
}
- (void) stpcpy( stpcpy( stpcpy(p, version) , "-") , release);
+ (void) stpcpy( stpcpy( stpcpy(p, V) , "-") , R);
/*
* Rpm prior to 3.0.3 does not have versioned provides.
* If no provides at all are available, we can just add.
*/
- if (!hge(h, RPMTAG_PROVIDENAME, &pnt, &provides, &providesCount))
+ he->tag = RPMTAG_PROVIDENAME;
+ xx = hge(h, he->tag, he->t, he->p, he->c);
+ provides = he_p.argv;
+ providesCount = he_c;
+ if (!xx)
goto exit;
/*
* Otherwise, fill in entries on legacy packages.
*/
- if (!hge(h, RPMTAG_PROVIDEVERSION, &pvt, &providesEVR, NULL)) {
+ he->tag = RPMTAG_PROVIDEVERSION;
+ xx = hge(h, he->tag, he->t, he->p, he->c);
+ providesEVR = he_p.argv;
+ if (!xx) {
for (i = 0; i < providesCount; i++) {
char * vdummy = "";
int_32 fdummy = RPMSENSE_ANY;
@@ -481,7 +503,9 @@
goto exit;
}
- xx = hge(h, RPMTAG_PROVIDEFLAGS, NULL, &provideFlags, NULL);
+ he->tag = RPMTAG_PROVIDEFLAGS;
+ xx = hge(h, he->tag, he->t, he->p, he->c);
+ provideFlags = he_p.i32p;
/*@-nullderef@*/ /* LCL: providesEVR is not NULL */
if (provides && providesEVR && provideFlags)
@@ -489,7 +513,7 @@
if (!(provides[i] && providesEVR[i]))
continue;
if (!(provideFlags[i] == RPMSENSE_EQUAL &&
- !strcmp(name, provides[i]) && !strcmp(pEVR, providesEVR[i])))
+ !strcmp(N, provides[i]) && !strcmp(pEVR, providesEVR[i])))
continue;
bingo = 0;
break;
@@ -497,12 +521,13 @@
/*@=nullderef@*/
exit:
- provides = hfd(provides, pnt);
- providesEVR = hfd(providesEVR, pvt);
+ provides = _free(provides);
+ providesEVR = _free(providesEVR);
+ provideFlags = _free(provideFlags);
if (bingo) {
xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDENAME, RPM_STRING_ARRAY_TYPE,
- &name, 1);
+ &N, 1);
xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEFLAGS, RPM_INT32_TYPE,
&pFlags, 1);
xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE,
@@ .
Received on Sun Oct 14 20:08:19 2007