{
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
HFD_t hfd = headerFreeData;
- const char *name, *version, *release;
- int32_t * epoch;
- const char *pEVR;
- char *p;
+ const char *name;
+ char *pEVR;
rpmsenseFlags pFlags = RPMSENSE_EQUAL;
const char ** provides = NULL;
const char ** providesEVR = NULL;
int bingo = 1;
/* Generate provides for this package name-version-release. */
- xx = headerNVR(h, &name, &version, &release);
- if (!(name && version && release))
+ pEVR = headerGetEVR(h, &name);
+ if (!(name && pEVR))
return;
- pEVR = p = alloca(21 + strlen(version) + 1 + strlen(release) + 1);
- *p = '\0';
- if (hge(h, RPMTAG_EPOCH, NULL, (rpm_data_t *) &epoch, NULL)) {
- sprintf(p, "%d:", *epoch);
- while (*p != '\0')
- p++;
- }
- (void) stpcpy( stpcpy( stpcpy(p, version) , "-") , release);
/*
* Rpm prior to 3.0.3 does not have versioned provides.
xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE,
&pEVR, 1);
}
+ free(pEVR);
}
void legacyRetrofit(Header h)
rpmds rpmdsThis(Header h, rpmTag tagN, rpmsenseFlags Flags)
{
- HGE_t hge = (HGE_t) headerGetEntryMinMemory;
rpmds ds = NULL;
const char * Type;
- const char * n, * v, * r;
- int32_t * ep;
+ const char * n;
char *evr;
- int xx;
if (dsType(tagN, &Type, NULL, NULL))
goto exit;
- xx = headerNVR(h, &n, &v, &r);
- ep = NULL;
- xx = hge(h, RPMTAG_EPOCH, NULL, (rpm_data_t *)&ep, NULL);
-
- if (ep) {
- rasprintf(&evr, "%d:%s-%s", *ep, v, r);
- } else {
- rasprintf(&evr, "%s-%s", v, r);
- }
+ evr = headerGetEVR(h, &n);
ds = xcalloc(1, sizeof(*ds));
ds->h = NULL;
int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
{
- HGE_t hge = (HGE_t)headerGetEntryMinMemory;
- const char * pkgN, * v, * r;
- int32_t * epoch;
- const char * pkgEVR;
- char * t;
+ const char * pkgN;
+ char * pkgEVR;
rpmsenseFlags pkgFlags = RPMSENSE_EQUAL;
rpmds pkg;
int rc = 1; /* XXX assume match, names already match here */
return rc;
/* Get package information from header */
- (void) headerNVR(h, &pkgN, &v, &r);
-
- t = alloca(21 + strlen(v) + 1 + strlen(r) + 1);
- pkgEVR = t;
- *t = '\0';
- if (hge(h, RPMTAG_EPOCH, NULL, (rpm_data_t *) &epoch, NULL)) {
- sprintf(t, "%d:", *epoch);
- while (*t != '\0')
- t++;
- }
- (void) stpcpy( stpcpy( stpcpy(t, v) , "-") , r);
-
+ pkgEVR = headerGetEVR(h, &pkgN);
if ((pkg = rpmdsSingle(RPMTAG_PROVIDENAME, pkgN, pkgEVR, pkgFlags)) != NULL) {
if (nopromote)
(void) rpmdsSetNoPromote(pkg, nopromote);
rc = rpmdsCompare(pkg, req);
pkg = rpmdsFree(pkg);
}
+ free(pkgEVR);
return rc;
}