&& !headerIsEntry(h, RPMTAG_CONFLICTNAME))
return 0;
- rc = rpmtransAddPackage(ts, h, NULL, NULL, 0, NULL);
+ rc = rpmtransAddPackage(ts, h, NULL, 0, NULL);
rc = rpmdepCheck(ts, &conflicts, &numConflicts);
/*@-branchstate@*/
}
{ TFI_t fi = xcalloc(1, sizeof(*fi));
+ int scareMem = 1;
char * a, * d;
/* XXX FIXME drill rpmTransactionSet ts all the way down here */
/*@i@*/ fi->te = xcalloc(1, sizeof(*fi->te));
/*@i@*/ fi->te->type = TR_ADDED;
- loadFi(NULL, fi, h, 1);
+ fi = fiNew(NULL, fi, h, RPMTAG_BASENAMES, scareMem);
fi->dnl = _free(fi->dnl);
fi->bnl = _free(fi->bnl);
if (pkg->cpioList) {
TFI_t fi = pkg->cpioList;
pkg->cpioList = NULL;
- freeFi(fi);
+ fi = fiFree(fi, 1);
+#ifdef DYING
/*@-refcounttrans@*/ /* FIX: fi needs to be only */
fi = _free(fi);
/*@=refcounttrans@*/
+#endif
}
pkg->specialDoc = freeStringBuf(pkg->specialDoc);
if (spec->sourceCpioList) {
TFI_t fi = spec->sourceCpioList;
spec->sourceCpioList = NULL;
- freeFi(fi);
+ fi = fiFree(fi, 1);
+#ifdef DYING
/*@-refcounttrans@*/ /* FIX: fi needs to be only */
fi = _free(fi);
/*@=refcounttrans@*/
+#endif
}
spec->buildRestrictions = headerFree(spec->buildRestrictions, "spec->>buildRestrictions");
p->requires = dsFree(p->requires);
p->conflicts = dsFree(p->conflicts);
p->obsoletes = dsFree(p->obsoletes);
- p->fns = fnsFree(p->fns);
+ p->fns = fiFree(p->fns, 1);
- /*@-type@*/ /* FIX: cast? */
+ /*@-type@*/ /* FIX: cast? Fclose? */
if (p->fd != NULL)
p->fd = fdFree(p->fd, "alAddPackage (delTE)");
/*@=type@*/
/*@=nullstate@*/
}
-static void addTE(transactionElement p, Header h,
+static void addTE(rpmTransactionSet ts, transactionElement p, Header h,
+#ifdef DYING
/*@null@*/ FD_t fd,
+#endif
/*@null@*/ fnpyKey key,
/*@null@*/ rpmRelocation * relocs)
- /*@modifies p, h @*/
+ /*@modifies ts, p, h @*/
{
int scareMem = _DS_SCAREMEM;
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
p->this = dsThis(h, RPMTAG_PROVIDENAME, RPMSENSE_EQUAL);
p->provides = dsNew(h, RPMTAG_PROVIDENAME, scareMem);
- p->fns = fnsNew(h, RPMTAG_BASENAMES, scareMem);
+ p->fns = fiNew(ts, NULL, h, RPMTAG_BASENAMES, scareMem);
p->requires = dsNew(h, RPMTAG_REQUIRENAME, scareMem);
p->conflicts = dsNew(h, RPMTAG_CONFLICTNAME, scareMem);
p->obsoletes = dsNew(h, RPMTAG_OBSOLETENAME, scareMem);
p->key = key;
/*@=assignexpose =temptrans @*/
+#ifdef DYING
/*@-type@*/ /* FIX: cast? */
p->fd = (fd != NULL ? fdLink(fd, "addTE") : NULL);
/*@=type@*/
+#else
+ p->fd = NULL;
+#endif
if (relocs != NULL) {
rpmRelocation * r;
memset(p, 0, sizeof(*p));
- addTE(p, h, NULL, NULL, NULL);
+ /* XXX FIXME: what should a TR_REMOVED key be ??? */
+ addTE(ts, p, h, NULL, NULL);
p->type = TR_REMOVED;
p->u.removed.dboffset = dboffset;
return 0;
}
-int rpmtransAddPackage(rpmTransactionSet ts, Header h, FD_t fd,
+int rpmtransAddPackage(rpmTransactionSet ts, Header h,
fnpyKey key, int upgrade, rpmRelocation * relocs)
{
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
p = ts->order + oc;
memset(p, 0, sizeof(*p));
- addTE(p, h, fd, key, relocs);
+ addTE(ts, p, h, key, relocs);
p->type = TR_ADDED;
pkgKey = alAddPackage(ts->addedPackages, pkgKey, p->key,
{
int scareMem = _DS_SCAREMEM;
rpmDepSet provides = dsNew(h, RPMTAG_PROVIDENAME, scareMem);
- rpmFNSet fns = fnsNew(h, RPMTAG_BASENAMES, scareMem);
+ rpmFNSet fns = fiNew(ts, NULL, h, RPMTAG_BASENAMES, scareMem);
/* XXX FIXME: return code RPMAL_NOMATCH is error */
(void) alAddPackage(ts->availablePackages, RPMAL_NOMATCH, key,
provides, fns);
- fns = fnsFree(fns);
+ fns = fiFree(fns, 1);
provides = dsFree(provides);
}
int dbmode; /*!< Database open mode. */
/*@refcounted@*/ /*@null@*/
rpmdb rpmdb; /*!< Database handle. */
-/*@only@*/ hashTable ht; /*!< Fingerprint hash table. */
-
/*@only@*/
+ hashTable ht; /*!< Fingerprint hash table. */
+
+/*@only@*/ /*@null@*/
int * removedPackages; /*!< Set of packages being removed. */
int numRemovedPackages; /*!< No. removed package instances. */
int allocedRemovedPackages; /*!< Size of removed packages array. */
#include "debug.h"
/*@unchecked@*/
-int _fi_debug = 0;
+static int _fi_debug = 0;
/*@access Header@*/ /* compared with NULL */
/*@access rpmdbMatchIterator@*/ /* compared with NULL */
/*@-refcounttrans@*/ return fi; /*@=refcounttrans@*/
}
-void loadFi(const rpmTransactionSet ts, TFI_t fi, Header h, int keep_header)
-{
- HGE_t hge;
- HFD_t hfd;
- uint_32 * uip;
- int len;
- int rc;
- int i;
-
- if (fi->fsm == NULL)
- fi->fsm = newFSM();
-
- /* XXX avoid gcc noise on pointer (4th arg) cast(s) */
- hge = (keep_header && fi->te->type == TR_ADDED)
- ? (HGE_t) headerGetEntryMinMemory : (HGE_t) headerGetEntry;
- fi->hge = hge;
- fi->hae = (HAE_t) headerAddEntry;
- fi->hme = (HME_t) headerModifyEntry;
- fi->hre = (HRE_t) headerRemoveEntry;
- fi->hfd = hfd = headerFreeData;
-
- /*@-branchstate@*/
- if (h && fi->h == NULL) fi->h = headerLink(h, "loadFi");
- /*@=branchstate@*/
-
- /* 0 means unknown */
- rc = hge(fi->h, RPMTAG_ARCHIVESIZE, NULL, (void **) &uip, NULL);
- fi->archiveSize = (rc ? *uip : 0);
-
- if (!hge(fi->h, RPMTAG_BASENAMES, NULL, (void **) &fi->bnl, &fi->fc)) {
- fi->dc = 0;
- fi->fc = 0;
- return;
- }
-
- rc = hge(fi->h, RPMTAG_DIRNAMES, NULL, (void **) &fi->dnl, &fi->dc);
-
- rc = hge(fi->h, RPMTAG_DIRINDEXES, NULL, (void **) &fi->dil, NULL);
- rc = hge(fi->h, RPMTAG_FILEMODES, NULL, (void **) &fi->fmodes, NULL);
- rc = hge(fi->h, RPMTAG_FILEFLAGS, NULL, (void **) &fi->fflags, NULL);
- rc = hge(fi->h, RPMTAG_FILESIZES, NULL, (void **) &fi->fsizes, NULL);
-
- /* XXX initialized to NULL for TR_ADDED? */
- rc = hge(fi->h, RPMTAG_FILESTATES, NULL, (void **) &fi->fstates, NULL);
-
- fi->action = FA_UNKNOWN;
- fi->flags = 0;
-
- /* actions is initialized earlier for added packages */
- if (fi->actions == NULL)
- fi->actions = xcalloc(fi->fc, sizeof(*fi->actions));
-
- fi->keep_header = keep_header;
- switch (fi->te->type) {
- case TR_ADDED:
- fi->mapflags =
- CPIO_MAP_PATH | CPIO_MAP_MODE | CPIO_MAP_UID | CPIO_MAP_GID;
- rc = hge(fi->h, RPMTAG_FILELINKTOS, NULL, (void **) &fi->flinks, NULL);
- rc = hge(fi->h, RPMTAG_FILELANGS, NULL, (void **) &fi->flangs, NULL);
-
- rc = hge(fi->h, RPMTAG_FILEMD5S, NULL, (void **) &fi->fmd5s, NULL);
-
- rc = hge(fi->h, RPMTAG_FILEMTIMES, NULL, (void **) &fi->fmtimes, NULL);
- rc = hge(fi->h, RPMTAG_FILERDEVS, NULL, (void **) &fi->frdevs, NULL);
-
- /* 0 makes for noops */
- fi->replacedSizes = xcalloc(fi->fc, sizeof(*fi->replacedSizes));
-
- if (ts != NULL && fi->h != NULL)
- { Header foo = relocateFileList(ts, fi, fi->h, fi->actions);
- foo = headerFree(foo, "loadFi TR_ADDED relocate");
- }
-
- if (!fi->keep_header) {
- fi->fmtimes = memcpy(xmalloc(fi->fc * sizeof(*fi->fmtimes)),
- fi->fmtimes, fi->fc * sizeof(*fi->fmtimes));
- fi->frdevs = memcpy(xmalloc(fi->fc * sizeof(*fi->frdevs)),
- fi->frdevs, fi->fc * sizeof(*fi->frdevs));
-
- fi->fsizes = memcpy(xmalloc(fi->fc * sizeof(*fi->fsizes)),
- fi->fsizes, fi->fc * sizeof(*fi->fsizes));
- fi->fflags = memcpy(xmalloc(fi->fc * sizeof(*fi->fflags)),
- fi->fflags, fi->fc * sizeof(*fi->fflags));
- fi->fmodes = memcpy(xmalloc(fi->fc * sizeof(*fi->fmodes)),
- fi->fmodes, fi->fc * sizeof(*fi->fmodes));
- /* XXX there's a tedious segfault here for some version(s) of rpm */
- if (fi->fstates)
- fi->fstates = memcpy(xmalloc(fi->fc * sizeof(*fi->fstates)),
- fi->fstates, fi->fc * sizeof(*fi->fstates));
- else
- fi->fstates = xcalloc(1, fi->fc * sizeof(*fi->fstates));
- fi->dil = memcpy(xmalloc(fi->fc * sizeof(*fi->dil)),
- fi->dil, fi->fc * sizeof(*fi->dil));
- fi->h = headerFree(fi->h, "loadFi TR_ADDED");
- }
-
- break;
- case TR_REMOVED:
- fi->mapflags =
- CPIO_MAP_ABSOLUTE | CPIO_MAP_ADDDOT | CPIO_ALL_HARDLINKS |
- CPIO_MAP_PATH | CPIO_MAP_MODE | CPIO_MAP_UID | CPIO_MAP_GID;
- rc = hge(fi->h, RPMTAG_FILEMD5S, NULL, (void **) &fi->fmd5s, NULL);
- rc = hge(fi->h, RPMTAG_FILELINKTOS, NULL, (void **) &fi->flinks, NULL);
- fi->fsizes = memcpy(xmalloc(fi->fc * sizeof(*fi->fsizes)),
- fi->fsizes, fi->fc * sizeof(*fi->fsizes));
- fi->fflags = memcpy(xmalloc(fi->fc * sizeof(*fi->fflags)),
- fi->fflags, fi->fc * sizeof(*fi->fflags));
- fi->fmodes = memcpy(xmalloc(fi->fc * sizeof(*fi->fmodes)),
- fi->fmodes, fi->fc * sizeof(*fi->fmodes));
- /* XXX there's a tedious segfault here for some version(s) of rpm */
- if (fi->fstates)
- fi->fstates = memcpy(xmalloc(fi->fc * sizeof(*fi->fstates)),
- fi->fstates, fi->fc * sizeof(*fi->fstates));
- else
- fi->fstates = xcalloc(1, fi->fc * sizeof(*fi->fstates));
- fi->dil = memcpy(xmalloc(fi->fc * sizeof(*fi->dil)),
- fi->dil, fi->fc * sizeof(*fi->dil));
- fi->h = headerFree(fi->h, "loadFi TR_REMOVED");
- break;
- }
-
- fi->dnlmax = -1;
- for (i = 0; i < fi->dc; i++) {
- if ((len = strlen(fi->dnl[i])) > fi->dnlmax)
- fi->dnlmax = len;
- }
-
- fi->bnlmax = -1;
- for (i = 0; i < fi->fc; i++) {
- if ((len = strlen(fi->bnl[i])) > fi->bnlmax)
- fi->bnlmax = len;
- }
-
- fi->dperms = 0755;
- fi->fperms = 0644;
-
- return;
-}
-
-void freeFi(TFI_t fi)
-{
- HFD_t hfd = (fi->hfd ? fi->hfd : headerFreeData);
-
- switch (fi->te->type) {
- case TR_ADDED:
- if (!fi->keep_header) {
- fi->fmtimes = hfd(fi->fmtimes, -1);
- fi->frdevs = hfd(fi->frdevs, -1);
- fi->fsizes = hfd(fi->fsizes, -1);
- fi->fflags = hfd(fi->fflags, -1);
- fi->fmodes = hfd(fi->fmodes, -1);
- fi->fstates = hfd(fi->fstates, -1);
- fi->dil = hfd(fi->dil, -1);
- }
- break;
- case TR_REMOVED:
- fi->fsizes = hfd(fi->fsizes, -1);
- fi->fflags = hfd(fi->fflags, -1);
- fi->fmodes = hfd(fi->fmodes, -1);
- fi->fstates = hfd(fi->fstates, -1);
- fi->dil = hfd(fi->dil, -1);
- break;
- }
-
- fi->fsm = freeFSM(fi->fsm);
-
- fi->apath = _free(fi->apath);
- fi->fuids = _free(fi->fuids);
- fi->fgids = _free(fi->fgids);
- fi->fmapflags = _free(fi->fmapflags);
-
- fi->bnl = hfd(fi->bnl, -1);
- fi->dnl = hfd(fi->dnl, -1);
- fi->obnl = hfd(fi->obnl, -1);
- fi->odnl = hfd(fi->odnl, -1);
- fi->flinks = hfd(fi->flinks, -1);
- fi->fmd5s = hfd(fi->fmd5s, -1);
- fi->fuser = hfd(fi->fuser, -1);
- fi->fgroup = hfd(fi->fgroup, -1);
- fi->flangs = hfd(fi->flangs, -1);
-
- fi->actions = _free(fi->actions);
- fi->replacedSizes = _free(fi->replacedSizes);
- fi->replaced = _free(fi->replaced);
-
- fi->h = headerFree(fi->h, "freeFi");
-
- /*@-nullstate@*/ /* FIX: fi->{name,version,release,actions,...,h} NULL */
- return;
- /*@=nullstate@*/
-}
-
/*@observer@*/ const char *const fiTypeString(TFI_t fi)
{
switch(fi->te->type) {
rpmCallbackFunction notify, rpmCallbackData notifyData,
const char ** cookie)
{
- TFI_t fi = xcalloc(sizeof(*fi), 1);
+ int scareMem = 1;
+ TFI_t fi = NULL;
const char * _sourcedir = NULL;
const char * _specdir = NULL;
const char * specFile = NULL;
goto exit;
}
- /* XXX don't bother with fd, linked directly into fi below. */
- (void) rpmtransAddPackage(ts, h, NULL, NULL, 0, NULL);
-
- fi->te = ts->order;
+ (void) rpmtransAddPackage(ts, h, NULL, 0, NULL);
+#ifdef DYING
+ fi = xcalloc(1, sizeof(*fi));
fi->h = headerLink(h, "InstallSourcePackage");
-
-/*@i@*/ fi->te->fd = fd;
-
/* XXX header arg unused. */
loadFi(ts, fi, fi->h, 1);
- hge = fi->hge;
- hfd = (fi->hfd ? fi->hfd : headerFreeData);
+#else
+ fi = fiNew(ts, fi, h, RPMTAG_BASENAMES, scareMem);
+#endif
h = headerFree(h, "InstallSourcePackage");
+ if (fi == NULL) { /* XXX can't happen */
+ rc = RPMRC_FAIL;
+ goto exit;
+ }
+
+ fi->te = ts->order;
+/*@i@*/ fi->te->fd = fd;
+ hge = fi->hge;
+ hfd = fi->hfd;
- (void) rpmInstallLoadMacros(fi, fi->h);
+/*@i@*/ (void) rpmInstallLoadMacros(fi, fi->h);
memset(psm, 0, sizeof(*psm));
- /*@-assignexpose@*/
+ /*@-assignexpose -usereleased @*/
psm->ts = rpmtsLink(ts, "InstallSourcePackage");
psm->fi = fi;
psm->te = fi->te;
- /*@=assignexpose@*/
+ /*@=assignexpose =usereleased @*/
if (cookie) {
*cookie = NULL;
}
/* XXX FIXME: can't do endian neutral MD5 verification yet. */
- fi->fmd5s = hfd(fi->fmd5s, -1);
+/*@i@*/ fi->fmd5s = hfd(fi->fmd5s, -1);
/* XXX FIXME: don't do per-file mapping, force global flags. */
fi->fmapflags = _free(fi->fmapflags);
int sourcelen = strlen(_sourcedir) + 2;
char * t;
- fi->dnl = hfd(fi->dnl, -1);
+/*@i@*/ fi->dnl = hfd(fi->dnl, -1);
fi->dc = 2;
fi->dnl = xmalloc(fi->dc * sizeof(*fi->dnl) + fi->fc * sizeof(*fi->dil) +
if (h) h = headerFree(h, "InstallSourcePackage exit");
+ /*@-branchstate@*/
if (fi) {
- freeFi(fi);
+ fi = fiFree(fi, 1);
+#ifdef DYING
/*@-refcounttrans@*/ /* FIX: fi needs to be only */
fi = _free(fi);
/*@=refcounttrans@*/
+#endif
}
+ /*@=branchstate@*/
psm->fi = NULL;
psm->te = NULL;
#include "depends.h"
#include "rpmds.h"
-/*@unchecked@*/
-/*@-exportlocal@*/
-extern int _fi_debug;
-/*@=exportlocal@*/
-
/**
*/
#define PSM_VERBOSE 0x8000
extern "C" {
#endif
-#ifdef DYING
-/**
- * Return (malloc'd) transaction element name-version-release string.
- * @param fi transaction element file info
- * @return name-version-release string
- */
-/*@only@*/ /*@null@*/
-char * fiGetNEVR(/*@null@*/const TFI_t fi)
- /*@*/;
-#endif
-
/**
* Return file type from mode_t.
* @param mode file mode bits (from header)
/*@modifies ts, fi, origH, actions @*/;
/**
- * Load data from header into transaction file element info.
- * @param ts transaction set
- * @param fi transaction element file info
- * @param h header
- * @param keep_header use header memory?
- */
-void loadFi(/*@null@*/ const rpmTransactionSet ts, TFI_t fi,
- Header h, int keep_header)
- /*@modifies ts, fi, h @*/;
-
-/**
- * Destroy transaction element file info.
- * @param fi transaction element file info
- */
-void freeFi(TFI_t fi)
- /*@modifies fi @*/;
-
-/**
* Retrieve key from transaction element file info
* @param fi transaction element file info
* @return transaction element file info key
if ((alp = al->list) != NULL)
for (i = 0; i < al->size; i++, alp++) {
alp->provides = dsFree(alp->provides);
- alp->fns = fnsFree(alp->fns);
+ alp->fns = fiFree(alp->fns, 1);
}
if ((die = al->dirs) != NULL)
}
alp->provides = dsFree(alp->provides);
- alp->fns = fnsFree(alp->fns);
+ alp->fns = fiFree(alp->fns, 1);
memset(alp, 0, sizeof(*alp)); /* XXX trash and burn */
/*@-nullstate@*/ /* FIX: al->list->h may be NULL */
* \file lib/rpmds.c
*/
#include "system.h"
-#include <rpmlib.h>
#ifdef DYING
+#include <rpmlib.h>
#include "rpmds.h"
#else
-#include "depends.h" /* XXX rpmTransactionType */
+#include "psm.h" /* XXX rpmTransactionType */
#endif
#include "debug.h"
/*@access alKey@*/
/*@access rpmFNSet @*/
+/*@access transactionElement @*/
/*@unchecked@*/
-static int _fns_debug = 0;
+static int _fi_debug = -1;
+
+/**
+ * Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
+ * @param p memory to free
+ * @return NULL always
+ */
+/*@unused@*/ static /*@null@*/
+void * _xfree(/*@only@*/ /*@null@*/ /*@out@*/ const void * p)
+ /*@modifies p @*/
+{
+ if (p != NULL) free((void *)p);
+ return NULL;
+}
rpmFNSet XrpmfnsUnlink(rpmFNSet fns, const char * msg, const char * fn, unsigned ln)
{
if (fns == NULL) return NULL;
/*@-modfilesystem@*/
-if (_fns_debug && msg != NULL)
+if (_fi_debug && msg != NULL)
fprintf(stderr, "--> fi %p -- %d %s at %s:%u\n", fns, fns->nrefs, msg, fn, ln);
/*@=modfilesystem@*/
fns->nrefs--;
if (fns == NULL) return NULL;
fns->nrefs++;
/*@-modfilesystem@*/
-if (_fns_debug && msg != NULL)
+if (_fi_debug && msg != NULL)
fprintf(stderr, "--> fi %p ++ %d %s at %s:%u\n", fns, fns->nrefs, msg, fn, ln);
/*@=modfilesystem@*/
/*@-refcounttrans@*/ return fns; /*@=refcounttrans@*/
}
-rpmFNSet fnsFree(rpmFNSet fns)
+rpmFNSet fiFree(rpmFNSet fi, int freefimem)
{
HFD_t hfd = headerFreeData;
- if (fns == NULL) return NULL;
+ if (fi == NULL) return NULL;
- if (fns->nrefs > 1)
- return rpmfnsUnlink(fns, fns->Type);
+ if (fi->nrefs > 1)
+ return rpmfnsUnlink(fi, fi->Type);
/*@-modfilesystem@*/
-if (_fns_debug < 0)
-fprintf(stderr, "*** fi %p\t%s[%d]\n", fns, fns->Type, fns->fc);
+if (_fi_debug < 0)
+fprintf(stderr, "*** fi %p\t%s[%d]\n", fi, fi->Type, fi->fc);
/*@=modfilesystem@*/
/*@-branchstate@*/
- if (fns->fc > 0) {
- fns->bnl = hfd(fns->bnl, -1);
- fns->dnl = hfd(fns->dnl, -1);
+ if (fi->fc > 0) {
+ fi->bnl = hfd(fi->bnl, -1);
+ fi->dnl = hfd(fi->dnl, -1);
- fns->flinks = hfd(fns->flinks, -1);
- fns->flangs = hfd(fns->flangs, -1);
- fns->fmd5s = hfd(fns->fmd5s, -1);
+ fi->flinks = hfd(fi->flinks, -1);
+ fi->flangs = hfd(fi->flangs, -1);
+ fi->fmd5s = hfd(fi->fmd5s, -1);
- fns->fuser = hfd(fns->fuser, -1);
- fns->fuids = _free(fns->fuids);
- fns->fgroup = hfd(fns->fgroup, -1);
- fns->fgids = _free(fns->fgids);
+ fi->fuser = hfd(fi->fuser, -1);
+ fi->fuids = _xfree(fi->fuids);
+ fi->fgroup = hfd(fi->fgroup, -1);
+ fi->fgids = _xfree(fi->fgids);
- fns->fstates = _free(fns->fstates);
+ fi->fstates = _xfree(fi->fstates);
/*@-evalorder@*/
- if (fns->h != NULL) {
- fns->h = headerFree(fns->h, fns->Type);
- } else {
- fns->fmtimes = _free(fns->fmtimes);
- fns->fmodes = _free(fns->fmodes);
- fns->fflags = _free(fns->fflags);
- fns->fsizes = _free(fns->fsizes);
- fns->frdevs = _free(fns->frdevs);
- fns->dil = _free(fns->dil);
+ if (!fi->keep_header && fi->h == NULL) {
+ fi->fmtimes = _xfree(fi->fmtimes);
+ fi->fmodes = _xfree(fi->fmodes);
+ fi->fflags = _xfree(fi->fflags);
+ fi->fsizes = _xfree(fi->fsizes);
+ fi->frdevs = _xfree(fi->frdevs);
+ fi->dil = _xfree(fi->dil);
}
/*@=evalorder@*/
}
/*@=branchstate@*/
- /*@-refcounttrans -usereleased@*/
- (void) rpmfnsUnlink(fns, fns->Type);
- memset(fns, 0, sizeof(*fns)); /* XXX trash and burn */
- fns = _free(fns);
- /*@=refcounttrans =usereleased@*/
+ fi->fsm = freeFSM(fi->fsm);
+
+ fi->apath = _xfree(fi->apath);
+ fi->fmapflags = _xfree(fi->fmapflags);
+
+ fi->obnl = hfd(fi->obnl, -1);
+ fi->odnl = hfd(fi->odnl, -1);
+
+ fi->actions = _xfree(fi->actions);
+ fi->replacedSizes = _xfree(fi->replacedSizes);
+ fi->replaced = _xfree(fi->replaced);
+
+ fi->h = headerFree(fi->h, fi->Type);
+
+ /*@-nullstate -refcounttrans -usereleased@*/
+ (void) rpmfnsUnlink(fi, fi->Type);
+ memset(fi, 0, sizeof(*fi)); /* XXX trash and burn */
+ /*@-branchstate@*/
+ if (freefimem)
+ fi = _xfree(fi);
+ /*@=branchstate@*/
+ /*@=nullstate =refcounttrans =usereleased@*/
+
return NULL;
}
-#define _fdupe(_fns, _data) \
- if ((_fns)->_data != NULL) \
- (_fns)->_data = memcpy(xmalloc((_fns)->fc * sizeof(*(_fns)->_data)), \
- (_fns)->_data, (_fns)->fc * sizeof(*(_fns)->_data))
+#define _fdupe(_fi, _data) \
+ if ((_fi)->_data != NULL) \
+ (_fi)->_data = memcpy(xmalloc((_fi)->fc * sizeof(*(_fi)->_data)), \
+ (_fi)->_data, (_fi)->fc * sizeof(*(_fi)->_data))
-rpmFNSet fnsNew(Header h, rpmTag tagN, int scareMem)
+rpmFNSet fiNew(rpmTransactionSet ts, rpmFNSet fi,
+ Header h, rpmTag tagN, int scareMem)
{
HGE_t hge =
(scareMem ? (HGE_t) headerGetEntryMinMemory : (HGE_t) headerGetEntry);
- rpmFNSet fns = NULL;
const char * Type;
- const char ** N;
- rpmTagType Nt;
- int_32 Count;
+ uint_32 * uip;
+ int malloced = 0;
+ int len;
+ int xx;
+ int i;
if (tagN == RPMTAG_BASENAMES) {
Type = "Files";
- } else
+ } else {
+ Type = "?Type?";
goto exit;
+ }
/*@-branchstate@*/
- if (hge(h, tagN, &Nt, (void **) &N, &Count)
- && N != NULL && Count > 0)
- {
- int xx;
+ if (fi == NULL) {
+ fi = xcalloc(1, sizeof(*fi));
+ malloced = 0; /* XXX always return with memory alloced. */
+ }
+ /*@=branchstate@*/
- fns = xcalloc(1, sizeof(*fns));
- fns->Type = Type;
- fns->h = headerLink(h, fns->Type);
- fns->i = -1;
- fns->tagN = tagN;
- fns->bnl = N;
- fns->fc = Count;
-
- xx = hge(h, RPMTAG_DIRNAMES, NULL, (void **) &fns->dnl, &fns->dc);
-
- xx = hge(h, RPMTAG_FILELINKTOS, NULL, (void **) &fns->flinks, NULL);
- xx = hge(h, RPMTAG_FILELANGS, NULL, (void **) &fns->flangs, NULL);
- xx = hge(h, RPMTAG_FILEMD5S, NULL, (void **) &fns->fmd5s, NULL);
-
- xx = hge(h, RPMTAG_FILEMTIMES, NULL, (void **) &fns->fmtimes, NULL);
- xx = hge(h, RPMTAG_FILEMODES, NULL, (void **) &fns->fmodes, NULL);
- xx = hge(h, RPMTAG_FILEFLAGS, NULL, (void **) &fns->fflags, NULL);
- xx = hge(h, RPMTAG_FILESIZES, NULL, (void **) &fns->fsizes, NULL);
- xx = hge(h, RPMTAG_FILERDEVS, NULL, (void **) &fns->frdevs, NULL);
- xx = hge(h, RPMTAG_DIRINDEXES, NULL, (void **) &fns->dil, NULL);
-
- xx = hge(h, RPMTAG_FILEUSERNAME, NULL, (void **) &fns->fuser, NULL);
- fns->fuids = NULL;
- xx = hge(h, RPMTAG_FILEGROUPNAME, NULL, (void **) &fns->fgroup, NULL);
- fns->fgids = NULL;
-
- xx = hge(h, RPMTAG_FILESTATES, NULL, (void **) &fns->fstates, NULL);
- _fdupe(fns, fstates);
-
- if (xx == 0 || fns->fstates == NULL)
- fns->fstates = xcalloc(fns->fc, sizeof(*fns->fstates));
-
- if (!scareMem) {
- _fdupe(fns, fmtimes);
- _fdupe(fns, fmodes);
- _fdupe(fns, fflags);
- _fdupe(fns, fsizes);
- _fdupe(fns, frdevs);
- _fdupe(fns, dil);
- fns->h = headerFree(fns->h, fns->Type);
+ fi->magic = TFIMAGIC;
+ fi->Type = Type;
+ fi->i = -1;
+ fi->tagN = tagN;
+
+ fi->hge = hge;
+ fi->hae = (HAE_t) headerAddEntry;
+ fi->hme = (HME_t) headerModifyEntry;
+ fi->hre = (HRE_t) headerRemoveEntry;
+ fi->hfd = headerFreeData;
+
+ fi->h = (scareMem ? headerLink(h, fi->Type) : NULL);
+
+ if (fi->fsm == NULL)
+ fi->fsm = newFSM();
+
+ /* 0 means unknown */
+ xx = hge(h, RPMTAG_ARCHIVESIZE, NULL, (void **) &uip, NULL);
+ fi->archiveSize = (xx ? *uip : 0);
+
+ if (!hge(h, RPMTAG_BASENAMES, NULL, (void **) &fi->bnl, &fi->fc)) {
+ /*@-branchstate@*/
+ if (malloced) {
+ if (scareMem && fi->h)
+ fi->h = headerFree(fi->h, fi->Type);
+ fi->fsm = freeFSM(fi->fsm);
+ /*@-refcounttrans@*/
+ fi = _xfree(fi);
+ /*@=refcounttrans@*/
+ } else {
+ fi->fc = 0;
+ fi->dc = 0;
}
+ /*@=branchstate@*/
+ goto exit;
+ }
+ xx = hge(h, RPMTAG_DIRNAMES, NULL, (void **) &fi->dnl, &fi->dc);
+ xx = hge(h, RPMTAG_DIRINDEXES, NULL, (void **) &fi->dil, NULL);
+ xx = hge(h, RPMTAG_FILEMODES, NULL, (void **) &fi->fmodes, NULL);
+ xx = hge(h, RPMTAG_FILEFLAGS, NULL, (void **) &fi->fflags, NULL);
+ xx = hge(h, RPMTAG_FILESIZES, NULL, (void **) &fi->fsizes, NULL);
+ xx = hge(h, RPMTAG_FILESTATES, NULL, (void **) &fi->fstates, NULL);
+ if (xx == 0 || fi->fstates == NULL)
+ fi->fstates = xcalloc(fi->fc, sizeof(*fi->fstates));
+ else if (!scareMem)
+ _fdupe(fi, fstates);
+
+ fi->action = FA_UNKNOWN;
+ fi->flags = 0;
+ if (fi->actions == NULL)
+ fi->actions = xcalloc(fi->fc, sizeof(*fi->actions));
+ fi->keep_header = (scareMem ? 1 : 0);
+
+ /* XXX TR_REMOVED needs CPIO_MAP_{ABSOLUTE,ADDDOT} CPIO_ALL_HARDLINKS */
+ fi->mapflags =
+ CPIO_MAP_PATH | CPIO_MAP_MODE | CPIO_MAP_UID | CPIO_MAP_GID;
+
+ xx = hge(h, RPMTAG_FILELINKTOS, NULL, (void **) &fi->flinks, NULL);
+ xx = hge(h, RPMTAG_FILELANGS, NULL, (void **) &fi->flangs, NULL);
+
+ xx = hge(h, RPMTAG_FILEMD5S, NULL, (void **) &fi->fmd5s, NULL);
+
+ /* XXX TR_REMOVED doesn;t need fmtimes or frdevs */
+ xx = hge(h, RPMTAG_FILEMTIMES, NULL, (void **) &fi->fmtimes, NULL);
+ xx = hge(h, RPMTAG_FILERDEVS, NULL, (void **) &fi->frdevs, NULL);
+ fi->replacedSizes = xcalloc(fi->fc, sizeof(*fi->replacedSizes));
+
+ xx = hge(h, RPMTAG_FILEUSERNAME, NULL, (void **) &fi->fuser, NULL);
+ fi->fuids = NULL;
+ xx = hge(h, RPMTAG_FILEGROUPNAME, NULL, (void **) &fi->fgroup, NULL);
+ fi->fgids = NULL;
+
+ if (ts != NULL)
+ if (fi != NULL)
+ if (fi->te != NULL && fi->te->type == TR_ADDED) {
+ Header foo;
+ fi->actions = xcalloc(fi->fc, sizeof(*fi->actions));
+ /*@-type@*/
+ foo = relocateFileList(ts, fi, h, fi->actions);
+ /*@=type@*/
+ fi->h = headerFree(fi->h, "fiNew fi->h");
+ fi->h = headerLink(foo, "fiNew fi->h = foo");
+ foo = headerFree(foo, "fiNew foo");
+ }
-/*@-modfilesystem@*/
-if (_fns_debug < 0)
-fprintf(stderr, "*** fi %p\t%s[%d]\n", fns, fns->Type, fns->fc);
-/*@=modfilesystem@*/
+ if (!scareMem) {
+ _fdupe(fi, fmtimes);
+ _fdupe(fi, frdevs);
+ _fdupe(fi, fsizes);
+ _fdupe(fi, fflags);
+ _fdupe(fi, fmodes);
+ _fdupe(fi, dil);
+ fi->h = headerFree(fi->h, fi->Type);
+ }
+ fi->dnlmax = -1;
+ for (i = 0; i < fi->dc; i++) {
+ if ((len = strlen(fi->dnl[i])) > fi->dnlmax)
+ fi->dnlmax = len;
}
- /*@=branchstate@*/
+ fi->bnlmax = -1;
+ for (i = 0; i < fi->fc; i++) {
+ if ((len = strlen(fi->bnl[i])) > fi->bnlmax)
+ fi->bnlmax = len;
+ }
+ fi->dperms = 0755;
+ fi->fperms = 0644;
exit:
+/*@-modfilesystem@*/
+if (_fi_debug < 0)
+fprintf(stderr, "*** fi %p\t%s[%d]\n", fi, Type, (fi ? fi->fc : 0));
+/*@=modfilesystem@*/
+
/*@-nullstate@*/ /* FIX: TFI/rpmFNSet null annotations */
- return rpmfnsLink(fns, (fns ? fns->Type : NULL));
+ return rpmfnsLink(fi, (fi ? fi->Type : NULL));
/*@=nullstate@*/
}
rpmTag tagN; /*!< Header tag. */
/*@refcounted@*/ /*@null@*/
- Header h; /*!< Header for file name set (or NULL) */
+ Header h; /*!< Header for file set (or NULL) */
/*@only@*/ /*?null?*/
const char ** bnl; /*!< Base name(s) (from header) */
#define rpmfnsLink(_fns, _msg) XrpmfnsLink(_fns, _msg, __FILE__, __LINE__)
/**
- * Destroy a file name set.
- * @param ds file name set
+ * Destroy a file set.
+ * @param fi file set
+ * @param freefimem free fi memory too?
* @return NULL always
*/
/*@null@*/
-rpmFNSet fnsFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmFNSet fns)
- /*@modifies fns@*/;
+rpmFNSet fiFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmFNSet fi, int freefimem)
+ /*@modifies fi@*/;
/**
- * Create and load a file name set.
+ * Create and load a file set.
+ * @param ts transaction set
+ * @param fi file set (NULL if creating)
* @param h header
* @param tagN RPMTAG_BASENAMES
* @param scareMem Use pointers to refcounted header memory?
- * @return new file name set
+ * @return new file set
*/
/*@null@*/
-rpmFNSet fnsNew(Header h, rpmTag tagN, int scareMem)
- /*@modifies h @*/;
+rpmFNSet fiNew(rpmTransactionSet ts, /*@null@*/ rpmFNSet fi,
+ Header h, rpmTag tagN, int scareMem)
+ /*@modifies ts, fi, h @*/;
/**
* Unreference a dependency set instance.
/*@-nullstate@*/ /* FIX: ts->rootDir may be NULL? */
/*@-abstract@*/
- rc = rpmtransAddPackage(ts, eiu->h, NULL, (fnpyKey)fileName,
+ rc = rpmtransAddPackage(ts, eiu->h, (fnpyKey)fileName,
(interfaceFlags & INSTALL_UPGRADE) != 0,
relocations);
/*@=abstract@*/
* used, otherwise fd is only needed (and only opened) for actual package
* installation.
*
+ * @warning The fd argument has been eliminated, and is assumed always NULL.
+ *
* @param ts transaction set
* @param h package header
- * @param fd package file handle
* @param key package private data
* @param upgrade is package being upgraded?
* @param relocs package file relocations
* @return 0 on success, 1 on I/O error, 2 needs capabilities
*/
-int rpmtransAddPackage(rpmTransactionSet ts, Header h, /*@null@*/ FD_t fd,
+int rpmtransAddPackage(rpmTransactionSet ts, Header h,
/*@null@*/ /*@owned@*/ const fnpyKey key, int upgrade,
/*@null@*/ rpmRelocation * relocs)
/*@globals fileSystem, internalState @*/
- /*@modifies fd, h, ts, fileSystem, internalState @*/;
+ /*@modifies ts, h, fileSystem, internalState @*/;
/** \ingroup rpmtrans
* Add package to universe of possible packages to install in transaction set.
int oc;
/*@-usereleased -onlytrans @*/ /* FIX: fi needs to be only */
+ /*@-branchstate@*/
for (oc = 0, fi = flList; oc < ts->orderCount; oc++, fi++)
- freeFi(fi);
+ (void) fiFree(fi, 0);
+ /*@=branchstate@*/
flList = _free(flList);
/*@=usereleased =onlytrans @*/
}
case TR_ADDED:
fi->record = 0;
+#ifdef DYING
/*@i@*/ fi->h = headerLink(p->h, "xfer to fi->h");
p->h = headerFree(p->h, "xfer to fi->h");
/* XXX header arg unused. */
loadFi(ts, fi, fi->h, keep_header);
+#else
+ /* XXX header arg unused. */
+ /*@-nullpass@*/
+ (void) fiNew(ts, fi, p->h, RPMTAG_BASENAMES, keep_header);
+ /*@=nullpass@*/
+ p->h = NULL;
+#endif
if (fi->fc == 0)
continue;
case TR_REMOVED:
fi->record = p->u.removed.dboffset;
/* Retrieve erased package header from the database. */
+#ifdef DYING
{ rpmdbMatchIterator mi;
mi = rpmtsInitIterator(ts, RPMDBI_PACKAGES,
}
/* XXX header arg unused. */
loadFi(ts, fi, fi->h, 0);
+#else
+ { rpmdbMatchIterator mi;
+
+ mi = rpmtsInitIterator(ts, RPMDBI_PACKAGES,
+ &fi->record, sizeof(fi->record));
+ if ((p->h = rpmdbNextIterator(mi)) != NULL)
+ p->h = headerLink(p->h, "TR_REMOVED loadFi");
+ mi = rpmdbFreeIterator(mi);
+ }
+ if (p->h == NULL) {
+ /* ACK! */
+ continue;
+ }
+ (void) fiNew(ts, fi, p->h, RPMTAG_BASENAMES, 0);
+ p->h = NULL;
+#endif
/*@switchbreak@*/ break;
}
/*@=branchstate@*/
/* Is this file from a package being removed? */
beingRemoved = 0;
+ if (ts->removedPackages != NULL)
for (j = 0; j < ts->numRemovedPackages; j++) {
if (ts->removedPackages[j] != shared->otherPkg)
/*@innercontinue@*/ continue;
pkgKey = p->u.addedKey;
rpmMessage(RPMMESS_DEBUG, "========== +++ %s\n", p->NEVR);
+#ifdef DYING
h = (fi->h ? headerLink(fi->h, "TR_ADDED install") : NULL);
/*@-branchstate@*/
- if (p->fd == NULL) {
+ if (p->fd == NULL)
+#else
+ h = NULL;
+#endif
+ {
/*@-noeffectuncon @*/ /* FIX: ??? */
p->fd = ts->notify(fi->h, RPMCALLBACK_INST_OPEN_FILE, 0, 0,
p->key, ts->notifyData);
if (p->fd != NULL) {
rpmRC rpmrc;
- h = headerFree(h, "TR_ADDED install");
-
/*@-mustmod@*/ /* LCL: segfault */
rpmrc = rpmReadPackageFile(ts, p->fd,
"rpmRunTransactions", &h);
/*@=noeffectuncon @*/
p->fd = NULL;
ourrc++;
- } else if (fi->h != NULL) {
+ }
+#ifdef DYING
+ else {
Header foo = relocateFileList(ts, fi, h, NULL);
h = headerFree(h, "TR_ADDED read free");
h = headerLink(foo, "TR_ADDED relocate xfer");
foo = headerFree(foo, "TR_ADDED relocate");
}
+#endif
if (p->fd != NULL) gotfd = 1;
}
}
/*@=branchstate@*/
+ /*@-branchstate@*/
if (p->fd != NULL) {
- Header hsave = NULL;
-
- if (fi->h) {
- hsave = headerLink(fi->h, "TR_ADDED fi->h hsave");
- fi->h = headerFree(fi->h, "TR_ADDED fi->h free");
- fi->h = headerLink(h, "TR_ADDED fi->h link");
- } else {
+#ifdef DYING
+ fi->h = headerLink(h, "TR_ADDED fi->h link");
+#endif
+ {
char * fstates = fi->fstates;
fileAction * actions = fi->actions;
fi->fstates = NULL;
fi->actions = NULL;
- freeFi(fi);
+ (void) fiFree(fi, 0);
+/*@-usereleased@*/
fi->magic = TFIMAGIC;
fi->te = p;
fi->record = 0;
- loadFi(ts, fi, h, 1);
+ (void) fiNew(ts, fi, h, RPMTAG_BASENAMES, 1);
fi->fstates = _free(fi->fstates);
fi->fstates = fstates;
fi->actions = _free(fi->actions);
fi->actions = actions;
+/*@=usereleased@*/
}
if (p->multiLib)
ourrc++;
lastKey = pkgKey;
}
+#ifdef DYING
fi->h = headerFree(fi->h, "TR_ADDED fi->h free");
- if (hsave) {
- fi->h = headerLink(hsave, "TR_ADDED fi->h restore");
- hsave = headerFree(hsave, "TR_ADDED hsave free");
- }
+#endif
} else {
ourrc++;
lastKey = pkgKey;
}
+ /*@=branchstate@*/
h = headerFree(h, "TR_ADDED h free");
/*@=noeffectuncon @*/
p->fd = NULL;
}
-fi->h = headerFree(fi->h, "TR_ADDED fini");
- freeFi(fi);
+ (void) fiFree(fi, 0);
/*@switchbreak@*/ break;
case TR_REMOVED:
rpmMessage(RPMMESS_DEBUG, "========== --- %s\n", p->NEVR);
if (psmStage(psm, PSM_PKGERASE))
ourrc++;
}
-fi->h = headerFree(fi->h, "TR_REMOVED fini");
- freeFi(fi);
+ (void) fiFree(fi, 0);
/*@switchbreak@*/ break;
}
xx = rpmdbSync(ts->rpmdb);
- (void) rpmfiUnlink(fi, "tsInstall");
+ (void) rpmfiUnlink(psm->fi, "tsInstall");
psm->fi = NULL;
psm->te = NULL;
}
indent * (fts->fts_level < 0 ? 0 : fts->fts_level), "",
n, v, r);
#ifdef NOTYET
- xx = rpmtransAddPackage(ts, h, NULL, fts->fts_path, 1, NULL);
+ xx = rpmtransAddPackage(ts, h, fts->fts_path, 1, NULL);
#endif
break;
/*@modifies ts, h, rpmGlobalMacroContext,
fileSystem, internalState @*/
{
- TFI_t fi = xcalloc(1, sizeof(*fi));
+#ifdef DYING
+ TFI_t fi;
+#endif
PSM_t psm = memset(alloca(sizeof(*psm)), 0, sizeof(*psm));
int rc;
ts->scriptFd = fdLink(scriptFd, "rpmVerifyScript");
/*@=type@*/
}
+#ifdef DYING
fi->magic = TFIMAGIC;
+ fi = xcalloc(1, sizeof(*fi));
loadFi(ts, fi, h, 1);
- memset(psm, 0, sizeof(*psm));
/*@-assignexpose@*/
psm->fi = fi;
/*@=assignexpose@*/
- psm->stepName = "verify";
- psm->scriptTag = RPMTAG_VERIFYSCRIPT;
- psm->progTag = RPMTAG_VERIFYSCRIPTPROG;
- rc = psmStage(psm, PSM_SCRIPT);
- freeFi(fi);
+#else
+ /*@-type@*/
+ psm->fi = fiNew(ts, NULL, h, RPMTAG_BASENAMES, 1);
+ /*@=type@*/
+#endif
+ if (psm->fi != NULL) { /* XXX can't happen */
+ psm->stepName = "verify";
+ psm->scriptTag = RPMTAG_VERIFYSCRIPT;
+ psm->progTag = RPMTAG_VERIFYSCRIPTPROG;
+ rc = psmStage(psm, PSM_SCRIPT);
+ }
+ /*@-type@*/
+ psm->fi = fiFree(psm->fi, 1);
+ /*@=type@*/
+#ifdef DYING
/*@-refcounttrans@*/ /* FIX: fi needs to be only */
fi = _free(fi);
/*@=refcounttrans@*/
+#endif
if (scriptFd != NULL) {
/*@-type@*/ /* FIX: ??? */
int i;
rpmtransClean(ts);
- (void) rpmtransAddPackage(ts, h, NULL, NULL, 0, NULL);
+ (void) rpmtransAddPackage(ts, h, NULL, 0, NULL);
(void) rpmdepCheck(ts, &conflicts, &numConflicts);
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-11-11 10:55-0500\n"
+"POT-Creation-Date: 2001-11-11 15:31-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Symlink points to BuildRoot: %s -> %s\n"
msgstr ""
-#: build/files.c:1501
+#: build/files.c:1502
#, c-format
msgid "File doesn't match prefix (%s): %s\n"
msgstr ""
-#: build/files.c:1525
+#: build/files.c:1526
#, c-format
msgid "File not found: %s\n"
msgstr ""
-#: build/files.c:1568 build/files.c:2180 build/parsePrep.c:50
+#: build/files.c:1569 build/files.c:2181 build/parsePrep.c:50
#, c-format
msgid "Bad owner/group: %s\n"
msgstr ""
-#: build/files.c:1580
+#: build/files.c:1581
#, c-format
msgid "File %4d: %07o %s.%s\t %s\n"
msgstr ""
-#: build/files.c:1684
+#: build/files.c:1685
#, c-format
msgid "File needs leading \"/\": %s\n"
msgstr ""
-#: build/files.c:1707
+#: build/files.c:1708
#, c-format
msgid "Glob not permitted: %s\n"
msgstr ""
-#: build/files.c:1722
+#: build/files.c:1723
#, c-format
msgid "File not found by glob: %s\n"
msgstr ""
-#: build/files.c:1784
+#: build/files.c:1785
#, c-format
msgid "Could not open %%files file %s: %s\n"
msgstr ""
-#: build/files.c:1795 build/pack.c:146
+#: build/files.c:1796 build/pack.c:146
#, c-format
msgid "line: %s\n"
msgstr ""
-#: build/files.c:2168
+#: build/files.c:2169
#, c-format
msgid "Bad file: %s: %s\n"
msgstr ""
#. XXX this error message is probably not seen.
-#: build/files.c:2242
+#: build/files.c:2243
#, c-format
msgid "Couldn't exec %s: %s\n"
msgstr ""
-#: build/files.c:2247
+#: build/files.c:2248
#, c-format
msgid "Couldn't fork %s: %s\n"
msgstr ""
-#: build/files.c:2331
+#: build/files.c:2332
#, c-format
msgid "%s failed\n"
msgstr ""
-#: build/files.c:2335
+#: build/files.c:2336
#, c-format
msgid "failed to write all data to %s\n"
msgstr ""
-#: build/files.c:2471
+#: build/files.c:2472
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
-#: build/files.c:2497 build/files.c:2511
+#: build/files.c:2498 build/files.c:2512
#, c-format
msgid "Failed to find %s:\n"
msgstr ""
-#: build/files.c:2632
+#: build/files.c:2633
#, c-format
msgid "Processing files: %s-%s-%s\n"
msgstr ""
msgid "Could not open %s: %s\n"
msgstr ""
-#: build/pack.c:603 lib/psm.c:2101
+#: build/pack.c:603 lib/psm.c:1920
#, c-format
msgid "Unable to write package: %s\n"
msgstr ""
msgid "Unable to write payload to %s: %s\n"
msgstr ""
-#: build/pack.c:683 lib/psm.c:2366
+#: build/pack.c:683 lib/psm.c:2185
#, c-format
msgid "Wrote: %s\n"
msgstr ""
msgid "lookup i18N strings in specfile catalog"
msgstr ""
-#: build/spec.c:230
+#: build/spec.c:232
#, c-format
msgid "line %d: Bad number: %s\n"
msgstr ""
-#: build/spec.c:236
+#: build/spec.c:238
#, c-format
msgid "line %d: Bad no%s number: %d\n"
msgstr ""
-#: build/spec.c:297
+#: build/spec.c:299
#, c-format
msgid "line %d: Bad %s number: %s\n"
msgstr ""
msgid "cannot open Packages database in %s\n"
msgstr ""
-#: lib/depends.c:414
+#: lib/depends.c:421
#, c-format
msgid "package %s was already added, replacing with %s\n"
msgstr ""
-#: lib/depends.c:683
+#: lib/depends.c:690
msgid "(cached)"
msgstr ""
-#: lib/depends.c:708
+#: lib/depends.c:715
msgid "(rpmrc provides)"
msgstr ""
-#: lib/depends.c:724
+#: lib/depends.c:731
msgid "(rpmlib provides)"
msgstr ""
-#: lib/depends.c:745
+#: lib/depends.c:752
msgid "(db files)"
msgstr ""
-#: lib/depends.c:757
+#: lib/depends.c:764
msgid "(db provides)"
msgstr ""
-#: lib/depends.c:770
+#: lib/depends.c:777
msgid "(db package)"
msgstr ""
-#: lib/depends.c:809
+#: lib/depends.c:816
#, c-format
msgid "%9s: (%s, %s) added to Depends cache.\n"
msgstr ""
-#: lib/depends.c:811 lib/rpmds.c:569 lib/rpmds.c:727
+#: lib/depends.c:818 lib/rpmds.c:667 lib/rpmds.c:825
msgid "NO "
msgstr ""
-#: lib/depends.c:811 lib/rpmds.c:569 lib/rpmds.c:727
+#: lib/depends.c:818 lib/rpmds.c:667 lib/rpmds.c:825
msgid "YES"
msgstr ""
-#: lib/depends.c:1153
+#: lib/depends.c:1160
#, c-format
msgid "removing %s \"%s\" from tsort relations.\n"
msgstr ""
#. Record all relations.
-#: lib/depends.c:1386
+#: lib/depends.c:1393
msgid "========== recording tsort relations\n"
msgstr ""
#. T4. Scan for zeroes.
-#: lib/depends.c:1457
+#: lib/depends.c:1464
msgid ""
"========== tsorting packages (order, #predecessors, #succesors, depth)\n"
msgstr ""
-#: lib/depends.c:1532
+#: lib/depends.c:1539
msgid "========== successors only (presentation order)\n"
msgstr ""
-#: lib/depends.c:1592
+#: lib/depends.c:1599
msgid "LOOP:\n"
msgstr ""
-#: lib/depends.c:1627
+#: lib/depends.c:1634
msgid "========== continuing tsort ...\n"
msgstr ""
#. Return no. of packages that could not be ordered.
-#: lib/depends.c:1632
+#: lib/depends.c:1639
#, c-format
msgid "rpmdepOrder failed, %d elements remain\n"
msgstr ""
msgstr ""
#. @-modfilesys@
-#: lib/header.c:384 lib/header_internal.c:161 lib/psm.c:922
+#: lib/header.c:384 lib/header_internal.c:161 lib/psm.c:730
#, c-format
msgid "Data type %d not supported\n"
msgstr ""
msgid "relocating directory %s to %s\n"
msgstr ""
-#: lib/psm.c:1119
+#: lib/psm.c:927
#, c-format
msgid "cannot create %%%s %s\n"
msgstr ""
-#: lib/psm.c:1125
+#: lib/psm.c:933
#, c-format
msgid "cannot write to %%%s %s\n"
msgstr ""
-#: lib/psm.c:1165
+#: lib/psm.c:974
msgid "source package expected, binary found\n"
msgstr ""
-#: lib/psm.c:1280
+#: lib/psm.c:1095
msgid "source package contains no .spec file\n"
msgstr ""
-#: lib/psm.c:1392
+#: lib/psm.c:1211
#, c-format
msgid "%s: running %s scriptlet\n"
msgstr ""
-#: lib/psm.c:1560
+#: lib/psm.c:1379
#, c-format
msgid "execution of %s scriptlet from %s-%s-%s failed, waitpid returned %s\n"
msgstr ""
-#: lib/psm.c:1567
+#: lib/psm.c:1386
#, c-format
msgid "execution of %s scriptlet from %s-%s-%s failed, exit status %d\n"
msgstr ""
-#: lib/psm.c:1909
+#: lib/psm.c:1728
#, c-format
msgid "%s: %s has %d files, test = %d\n"
msgstr ""
-#: lib/psm.c:2026
+#: lib/psm.c:1845
#, c-format
msgid "%s: %s scriptlet failed (%d), skipping %s\n"
msgstr ""
-#: lib/psm.c:2137
+#: lib/psm.c:1956
#, c-format
msgid "user %s does not exist - using root\n"
msgstr ""
-#: lib/psm.c:2146
+#: lib/psm.c:1965
#, c-format
msgid "group %s does not exist - using root\n"
msgstr ""
-#: lib/psm.c:2187
+#: lib/psm.c:2006
#, c-format
msgid "unpacking of archive failed%s%s: %s\n"
msgstr ""
-#: lib/psm.c:2188
+#: lib/psm.c:2007
msgid " on file "
msgstr ""
-#: lib/psm.c:2374
+#: lib/psm.c:2193
#, c-format
msgid "%s failed on file %s: %s\n"
msgstr ""
-#: lib/psm.c:2377
+#: lib/psm.c:2196
#, c-format
msgid "%s failed: %s\n"
msgstr ""
msgstr ""
#. XXX legacy epoch-less requires/conflicts compatibility
-#: lib/rpmds.c:697
+#: lib/rpmds.c:795
#, c-format
msgid ""
"the \"B\" dependency needs an epoch (assuming same as \"A\")\n"
"\tA %s\tB %s\n"
msgstr ""
-#: lib/rpmds.c:726
+#: lib/rpmds.c:824
#, c-format
msgid " %s A %s\tB %s\n"
msgstr ""
#. @=branchstate@
-#: lib/rpmds.c:750
+#: lib/rpmds.c:848
#, c-format
msgid "package %s has unsatisfied %s: %s\n"
msgstr ""
msgid "Signature: UNKNOWN (%d)\n"
msgstr ""
-#: lib/transaction.c:209
+#: lib/transaction.c:211
#, c-format
msgid "%s skipped due to missingok flag\n"
msgstr ""
#. @innercontinue@
-#: lib/transaction.c:880
+#: lib/transaction.c:882
#, c-format
msgid "excluding directory %s\n"
msgstr ""
msgid "package lacks both group name and id lists (this should never happen)\n"
msgstr ""
-#: lib/verify.c:421
+#: lib/verify.c:435
#, c-format
msgid "missing %s"
msgstr ""
-#: lib/verify.c:518
+#: lib/verify.c:532
#, c-format
msgid "Unsatisifed dependencies for %s: "
msgstr ""
-#: lib/verify.c:556
+#: lib/verify.c:570
#, c-format
msgid "%s-%s-%s: immutable header region digest check failed\n"
msgstr ""
if (how && !strcmp(how, "a"))
rpmtransAvailablePackage(s->ts, h->h, key);
else
- rpmtransAddPackage(s->ts, h->h, NULL, key, isUpgrade, NULL);
+ rpmtransAddPackage(s->ts, h->h, key, isUpgrade, NULL);
/* This should increment the usage count for me */
if (key) {
}
if (rc == 0) {
- rc = rpmtransAddPackage(ts, h, NULL, fileName, 0, NULL);
+ rc = rpmtransAddPackage(ts, h, (fnpyKey)fileName, 0, NULL);
headerFree(h, "do_tsort");
continue;
}