From b5bc388ee38de77691b63aa7f48b4928fe60c4e5 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Wed, 2 Sep 2009 12:06:34 +0300 Subject: [PATCH] Eliminate uses of headerNVR() and friends in librpm (and python) code --- lib/depends.c | 4 ++-- lib/legacy.c | 8 +++----- lib/package.c | 2 +- lib/psm.c | 10 +++------- lib/rpmdb.c | 8 ++++---- lib/rpmds.c | 11 ++++------- lib/rpminstall.c | 9 +++------ lib/rpmlead.c | 2 +- lib/rpmte.c | 31 +++++++++---------------------- lib/rpmts.c | 2 +- lib/tagexts.c | 6 ++---- lib/transaction.c | 4 ++-- lib/verify.c | 2 +- python/rpmts-py.c | 4 +--- 14 files changed, 37 insertions(+), 66 deletions(-) diff --git a/lib/depends.c b/lib/depends.c index bf1aec7..7d4609e 100644 --- a/lib/depends.c +++ b/lib/depends.c @@ -326,7 +326,7 @@ addheader: */ if (rpmdsEVR(obsoletes) == NULL || rpmdsAnyMatchesDep(oh, obsoletes, _rpmds_nopromote)) { - char * ohNEVRA = headerGetNEVRA(oh, NULL); + char * ohNEVRA = headerGetAsString(oh, RPMTAG_NEVRA); #ifdef DYING /* XXX see http://bugzilla.redhat.com #134497 */ if (rpmVersionCompare(h, oh)) #endif @@ -648,7 +648,7 @@ static int checkPackageSet(rpmts ts, const char * dep, rpmds requires, conflicts; int rc; - pkgNEVRA = headerGetNEVRA(h, NULL); + pkgNEVRA = headerGetAsString(h, RPMTAG_NEVRA); requires = rpmdsNew(h, RPMTAG_REQUIRENAME, 0); (void) rpmdsSetNoPromote(requires, _rpmds_nopromote); conflicts = rpmdsNew(h, RPMTAG_CONFLICTNAME, 0); diff --git a/lib/legacy.c b/lib/legacy.c index b5ecf70..f06b3a5 100644 --- a/lib/legacy.c +++ b/lib/legacy.c @@ -133,15 +133,14 @@ static void expandFilelist(Header h) */ static void providePackageNVR(Header h) { - const char *name; - char *pEVR; + const char *name = headerGetString(h, RPMTAG_NAME); + char *pEVR = headerGetAsString(h, RPMTAG_EVR); rpmsenseFlags pFlags = RPMSENSE_EQUAL; int bingo = 1; struct rpmtd_s pnames; rpmds hds, nvrds; /* Generate provides for this package name-version-release. */ - pEVR = headerGetEVR(h, &name); if (!(name && pEVR)) return; @@ -178,9 +177,8 @@ static void providePackageNVR(Header h) exit: if (bingo) { - const char *evr = pEVR; headerPutString(h, RPMTAG_PROVIDENAME, name); - headerPutString(h, RPMTAG_PROVIDEVERSION, evr); + headerPutString(h, RPMTAG_PROVIDEVERSION, pEVR); headerPutUint32(h, RPMTAG_PROVIDEFLAGS, &pFlags, 1); } rpmtdFreeData(&pnames); diff --git a/lib/package.c b/lib/package.c index d5c3f87..a7c3a1b 100644 --- a/lib/package.c +++ b/lib/package.c @@ -793,7 +793,7 @@ rpmRC headerCheckPayloadFormat(Header h) { if (payloadfmt && rstreq(payloadfmt, "cpio")) { rc = RPMRC_OK; } else { - char *nevra = headerGetNEVRA(h, NULL); + char *nevra = headerGetAsString(h, RPMTAG_NEVRA); if (payloadfmt && rstreq(payloadfmt, "drpm")) { rpmlog(RPMLOG_ERR, _("%s is a Delta RPM and cannot be directly installed\n"), diff --git a/lib/psm.c b/lib/psm.c index 2bee270..3ca7b80 100644 --- a/lib/psm.c +++ b/lib/psm.c @@ -224,7 +224,7 @@ static int rpmlibDeps(Header h) continue; if (rpmdsSearch(rpmlib, req) < 0) { if (!nvr) { - nvr = headerGetNEVRA(h, NULL); + nvr = headerGetAsString(h, RPMTAG_NEVRA); rpmlog(RPMLOG_ERR, _("Missing rpmlib features for %s:\n"), nvr); } rpmlog(RPMLOG_ERR, "\t%s\n", rpmdsDNEVR(req)+2); @@ -882,15 +882,11 @@ static rpmRC handleOneTrigger(const rpmpsm psm, { const rpmts ts = psm->ts; rpmds trigger = NULL; - const char * sourceName; - const char * triggerName; + const char * sourceName = headerGetString(sourceH, RPMTAG_NAME); + const char * triggerName = headerGetString(trigH, RPMTAG_NAME); rpmRC rc = RPMRC_OK; - int xx; int i; - xx = headerNVR(sourceH, &sourceName, NULL, NULL); - xx = headerNVR(trigH, &triggerName, NULL, NULL); - trigger = rpmdsInit(rpmdsNew(trigH, RPMTAG_TRIGGERNAME, 0)); if (trigger == NULL) return rc; diff --git a/lib/rpmdb.c b/lib/rpmdb.c index 78ea149..c405fa5 100644 --- a/lib/rpmdb.c +++ b/lib/rpmdb.c @@ -2516,7 +2516,7 @@ int rpmdbRemove(rpmdb db, int rid, unsigned int hdrNum, } { - char *nevra = headerGetNEVRA(h, NULL); + char *nevra = headerGetAsString(h, RPMTAG_NEVRA); rpmlog(RPMLOG_DEBUG, " --- h#%8u %s\n", hdrNum, nevra); free(nevra); } @@ -3217,11 +3217,11 @@ int rpmdbRebuild(const char * prefix, rpmts ts, /* Filter duplicate entries ? (bug in pre rpm-3.0.4) */ if (_db_filter_dups || newdb->db_filter_dups) { - const char * name, * version, * release; + const char *name = headerGetString(h, RPMTAG_NAME); + const char *version = headerGetString(h, RPMTAG_VERSION); + const char *release = headerGetString(h, RPMTAG_RELEASE); int skip = 0; - (void) headerNVR(h, &name, &version, &release); - { rpmdbMatchIterator mi; mi = rpmdbInitIterator(newdb, RPMTAG_NAME, name, 0); (void) rpmdbSetIteratorRE(mi, RPMTAG_VERSION, diff --git a/lib/rpmds.c b/lib/rpmds.c index f2e9107..a6f1786 100644 --- a/lib/rpmds.c +++ b/lib/rpmds.c @@ -218,12 +218,8 @@ char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds) rpmds rpmdsThis(Header h, rpmTag tagN, rpmsenseFlags Flags) { - rpmds ds; - const char * n; - char *evr; - - evr = headerGetEVR(h, &n); - ds = rpmdsSingle(tagN, n, evr, Flags); + char *evr = headerGetAsString(h, RPMTAG_EVR); + rpmds ds = rpmdsSingle(tagN, headerGetString(h, RPMTAG_NAME), evr, Flags); free(evr); return ds; } @@ -894,7 +890,8 @@ int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote) return rc; /* Get package information from header */ - pkgEVR = headerGetEVR(h, &pkgN); + pkgN = headerGetString(h, RPMTAG_NAME); + pkgEVR = headerGetAsString(h, RPMTAG_EVR); if ((pkg = rpmdsSingle(RPMTAG_PROVIDENAME, pkgN, pkgEVR, pkgFlags)) != NULL) { if (nopromote) (void) rpmdsSetNoPromote(pkg, nopromote); diff --git a/lib/rpminstall.c b/lib/rpminstall.c index c050290..6b3dde7 100644 --- a/lib/rpminstall.c +++ b/lib/rpminstall.c @@ -360,11 +360,10 @@ static int tryReadHeader(rpmts ts, struct rpmEIU * eiu, rpmVSFlags vsflags) static int checkFreshenStatus(rpmts ts, struct rpmEIU * eiu) { rpmdbMatchIterator mi = NULL; - const char * name = NULL; + const char * name = headerGetString(eiu->h, RPMTAG_NAME); Header oldH; int count; - headerNVR(eiu->h, &name, NULL, NULL); if (name != NULL) mi = rpmtsInitIterator(ts, RPMTAG_NAME, name, 0); count = rpmdbGetIteratorCount(mi); @@ -542,10 +541,8 @@ restart: eiu->relocations->oldPath = xstrdup(rpmtdGetString(&prefixes)); rpmtdFreeData(&prefixes); } else { - const char * name; - headerNVR(eiu->h, &name, NULL, NULL); - rpmlog(RPMLOG_ERR, - _("package %s is not relocatable\n"), name); + rpmlog(RPMLOG_ERR, _("package %s is not relocatable\n"), + headerGetString(eiu->h, RPMTAG_NAME)); eiu->numFailed++; goto exit; } diff --git a/lib/rpmlead.c b/lib/rpmlead.c index 14487f2..22c29c8 100644 --- a/lib/rpmlead.c +++ b/lib/rpmlead.c @@ -62,7 +62,7 @@ rpmlead rpmLeadFromHeader(Header h) rpmlead l = rpmLeadNew(); l->type = (headerIsSource(h) ? 1 : 0); - nevr = headerGetNEVR(h, NULL); + nevr = headerGetAsString(h, RPMTAG_NEVR); rstrlcpy(l->name, nevr, sizeof(l->name)); free(nevr); diff --git a/lib/rpmte.c b/lib/rpmte.c index cea004e..f25af12 100644 --- a/lib/rpmte.c +++ b/lib/rpmte.c @@ -233,35 +233,22 @@ static void addTE(rpmts ts, rpmte p, Header h, fnpyKey key, rpmRelocation * relocs) { - const char *name, *version, *release, *arch, *os; - struct rpmtd_s td; + p->name = headerGetAsString(h, RPMTAG_NAME); + p->version = headerGetAsString(h, RPMTAG_VERSION); + p->release = headerGetAsString(h, RPMTAG_RELEASE); - name = version = release = arch = NULL; - headerNEVRA(h, &name, NULL, &version, &release, &arch); + p->epoch = headerGetAsString(h, RPMTAG_EPOCH); + p->arch = headerGetAsString(h, RPMTAG_ARCH); + p->archScore = p->arch ? rpmMachineScore(RPM_MACHTABLE_INSTARCH, p->arch) : 0; - p->name = xstrdup(name); - p->version = xstrdup(version); - p->release = xstrdup(release); - - if (headerGet(h, RPMTAG_EPOCH, &td, HEADERGET_MINMEM)) { - p->epoch = rpmtdFormat(&td, RPMTD_FORMAT_STRING, NULL); - } else { - p->epoch = NULL; - } - - p->arch = arch ? xstrdup(arch) : NULL; - p->archScore = arch ? rpmMachineScore(RPM_MACHTABLE_INSTARCH, arch) : 0; - - headerGet(h, RPMTAG_OS, &td, HEADERGET_MINMEM); - os = rpmtdGetString(&td); - p->os = os ? xstrdup(os) : NULL; + p->os = headerGetAsString(h, RPMTAG_OS); p->osScore = p->os ? rpmMachineScore(RPM_MACHTABLE_INSTOS, p->os) : 0; p->isSource = headerIsSource(h); - p->NEVR = headerGetNEVR(h, NULL); - p->NEVRA = headerGetNEVRA(h, NULL); + p->NEVR = headerGetAsString(h, RPMTAG_NEVR); + p->NEVRA = headerGetAsString(h, RPMTAG_NEVRA); p->nrelocs = 0; p->relocs = NULL; diff --git a/lib/rpmts.c b/lib/rpmts.c index b259abe..ce5a7be 100644 --- a/lib/rpmts.c +++ b/lib/rpmts.c @@ -321,7 +321,7 @@ static int loadKeyringFromDB(rpmts ts) if (b64decode(key, (void **) &pkt, &pktlen) == 0) { rpmPubkey key = rpmPubkeyNew(pkt, pktlen); if (rpmKeyringAddKey(ts->keyring, key) == 0) { - char *nvr = headerGetNEVR(h, NULL); + char *nvr = headerGetAsString(h, RPMTAG_NVR); rpmlog(RPMLOG_DEBUG, "added key %s to keyring\n", nvr); free(nvr); nkeys++; diff --git a/lib/tagexts.c b/lib/tagexts.c index 8ccc98f..ba93b83 100644 --- a/lib/tagexts.c +++ b/lib/tagexts.c @@ -489,11 +489,9 @@ static int i18nTag(Header h, rpmTag tag, rpmtd td, headerGetFlags hgflags) const char * langval; char * msgkey; const char * msgid; - const char * n; - int xx; - xx = headerNVR(h, &n, NULL, NULL); - rasprintf(&msgkey, "%s(%s)", n, rpmTagGetName(tag)); + rasprintf(&msgkey, "%s(%s)", headerGetString(h, RPMTAG_NAME), + rpmTagGetName(tag)); /* change to en_US for msgkey -> msgid resolution */ langval = getenv(language); diff --git a/lib/transaction.c b/lib/transaction.c index 98b4503..1ccabcd 100644 --- a/lib/transaction.c +++ b/lib/transaction.c @@ -99,7 +99,7 @@ static int handleInstInstalledFile(const rpmts ts, rpmte p, rpmfi fi, } if (rConflicts) { - char *altNEVR = headerGetNEVRA(otherHeader, NULL); + char *altNEVR = headerGetAsString(otherHeader, RPMTAG_NEVRA); rpmps ps = rpmtsProblems(ts); rpmpsAppend(ps, RPMPROB_FILE_CONFLICT, rpmteNEVRA(p), rpmteKey(p), @@ -367,7 +367,7 @@ static int ensureOlder(const rpmte p, const Header h, rpmps ps) req = rpmdsFree(req); if (rc == 0) { - char * altNEVR = headerGetNEVRA(h, NULL); + char * altNEVR = headerGetAsString(h, RPMTAG_NEVRA); rpmpsAppend(ps, RPMPROB_OLDPACKAGE, rpmteNEVRA(p), rpmteKey(p), NULL, NULL, diff --git a/lib/verify.c b/lib/verify.c index c8ea8d7..09547a5 100644 --- a/lib/verify.c +++ b/lib/verify.c @@ -418,7 +418,7 @@ static int verifyDependencies(QVA_t qva, rpmts ts, psi = rpmpsInitIterator(ps); if (rpmpsNumProblems(ps) > 0) { - char *nevra = headerGetNEVRA(h, NULL); + char *nevra = headerGetAsString(h, RPMTAG_NEVRA); rpmlog(RPMLOG_NOTICE, _("Unsatisfied dependencies for %s:\n"), nevra); free(nevra); while (rpmpsNextIterator(psi) >= 0) { diff --git a/python/rpmts-py.c b/python/rpmts-py.c index 795c87c..033e77d 100644 --- a/python/rpmts-py.c +++ b/python/rpmts-py.c @@ -808,9 +808,7 @@ rpmtsCallback(const void * hd, const rpmCallbackType what, /* Synthesize a python object for callback (if necessary). */ if (pkgObj == NULL) { if (h) { - const char * n = NULL; - (void) headerNVR(h, &n, NULL, NULL); - pkgObj = Py_BuildValue("s", n); + pkgObj = Py_BuildValue("s", headerGetString(h, RPMTAG_NAME)); } else { pkgObj = Py_None; Py_INCREF(pkgObj); -- 2.7.4