diff options
Diffstat (limited to 'lib/rpmps.c')
-rw-r--r-- | lib/rpmps.c | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/lib/rpmps.c b/lib/rpmps.c index 031a5a0ed..46e4a0866 100644 --- a/lib/rpmps.c +++ b/lib/rpmps.c @@ -12,20 +12,6 @@ #include "debug.h" -/** - */ -struct rpmProblem_s { - char * pkgNEVR; - char * altNEVR; - fnpyKey key; - rpmProblemType type; - char * str1; - uint64_t num1; - int nrefs; -}; - -/** - */ struct rpmps_s { int numProblems; /*!< Current probs array size. */ int numProblemsAlloced; /*!< Allocated probs array size. */ @@ -198,200 +184,6 @@ int rpmpsTrim(rpmps ps, rpmps filter) return gotProblems; } -rpmProblem rpmProblemCreate(rpmProblemType type, - const char * pkgNEVR, - fnpyKey key, - const char * dn, const char * bn, - const char * altNEVR, - uint64_t number) -{ - rpmProblem p = xcalloc(1, sizeof(*p)); - char *t; - - p->type = type; - p->key = key; - p->num1 = number; - - p->pkgNEVR = (pkgNEVR ? xstrdup(pkgNEVR) : NULL); - p->altNEVR = (altNEVR ? xstrdup(altNEVR) : NULL); - - p->str1 = NULL; - if (dn != NULL || bn != NULL) { - t = xcalloc(1, (dn != NULL ? strlen(dn) : 0) + - (bn != NULL ? strlen(bn) : 0) + 1); - p->str1 = t; - if (dn != NULL) t = stpcpy(t, dn); - if (bn != NULL) t = stpcpy(t, bn); - } - return rpmProblemLink(p); -} - -rpmProblem rpmProblemFree(rpmProblem prob) -{ - if (prob == NULL) return NULL; - - if (prob->nrefs > 1) { - return rpmProblemUnlink(prob); - } - prob->pkgNEVR = _free(prob->pkgNEVR); - prob->altNEVR = _free(prob->altNEVR); - prob->str1 = _free(prob->str1); - free(prob); - return NULL; -} - -rpmProblem rpmProblemLink(rpmProblem prob) -{ - if (prob) { - prob->nrefs++; - } - return prob; -} - -rpmProblem rpmProblemUnlink(rpmProblem prob) -{ - if (prob) { - prob->nrefs--; - } - return NULL; -} - -const char * rpmProblemGetPkgNEVR(const rpmProblem p) -{ - return (p->pkgNEVR); -} - -const char * rpmProblemGetAltNEVR(const rpmProblem p) -{ - return (p->altNEVR); -} - -fnpyKey rpmProblemGetKey(const rpmProblem p) -{ - return (p->key); -} - -rpmProblemType rpmProblemGetType(const rpmProblem p) -{ - return (p->type); -} - -const char * rpmProblemGetStr(const rpmProblem p) -{ - return (p->str1); -} - -rpm_loff_t rpmProblemGetDiskNeed(const rpmProblem p) -{ - return (p->num1); -} - -char * rpmProblemString(const rpmProblem prob) -{ - const char * pkgNEVR = (prob->pkgNEVR ? prob->pkgNEVR : "?pkgNEVR?"); - const char * altNEVR = (prob->altNEVR ? prob->altNEVR : "? ?altNEVR?"); - const char * str1 = (prob->str1 ? prob->str1 : N_("different")); - char * buf = NULL; - int rc; - - switch (prob->type) { - case RPMPROB_BADARCH: - rc = rasprintf(&buf, _("package %s is intended for a %s architecture"), - pkgNEVR, str1); - break; - case RPMPROB_BADOS: - rc = rasprintf(&buf, - _("package %s is intended for a %s operating system"), - pkgNEVR, str1); - break; - case RPMPROB_PKG_INSTALLED: - rc = rasprintf(&buf, _("package %s is already installed"), - pkgNEVR); - break; - case RPMPROB_BADRELOCATE: - rc = rasprintf(&buf, _("path %s in package %s is not relocatable"), - str1, pkgNEVR); - break; - case RPMPROB_NEW_FILE_CONFLICT: - rc = rasprintf(&buf, - _("file %s conflicts between attempted installs of %s and %s"), - str1, pkgNEVR, altNEVR); - break; - case RPMPROB_FILE_CONFLICT: - rc = rasprintf(&buf, - _("file %s from install of %s conflicts with file from package %s"), - str1, pkgNEVR, altNEVR); - break; - case RPMPROB_OLDPACKAGE: - rc = rasprintf(&buf, - _("package %s (which is newer than %s) is already installed"), - altNEVR, pkgNEVR); - break; - case RPMPROB_DISKSPACE: - rc = rasprintf(&buf, - _("installing package %s needs %" PRIu64 "%cB on the %s filesystem"), - pkgNEVR, - prob->num1 > (1024*1024) - ? (prob->num1 + 1024 * 1024 - 1) / (1024 * 1024) - : (prob->num1 + 1023) / 1024, - prob->num1 > (1024*1024) ? 'M' : 'K', - str1); - break; - case RPMPROB_DISKNODES: - rc = rasprintf(&buf, - _("installing package %s needs %" PRIu64 " inodes on the %s filesystem"), - pkgNEVR, prob->num1, str1); - break; - case RPMPROB_REQUIRES: - rc = rasprintf(&buf, _("%s is needed by %s%s"), - altNEVR+2, - (prob->num1 ? "" : _("(installed) ")), pkgNEVR); - break; - case RPMPROB_CONFLICT: - rc = rasprintf(&buf, _("%s conflicts with %s%s"), - altNEVR+2, - (prob->num1 ? "" : _("(installed) ")), pkgNEVR); - break; - case RPMPROB_OBSOLETES: - rc = rasprintf(&buf, _("%s is obsoleted by %s%s"), - altNEVR+2, - (prob->num1 ? "" : _("(installed) ")), pkgNEVR); - break; - default: - rc = rasprintf(&buf, - _("unknown error %d encountered while manipulating package %s"), - prob->type, pkgNEVR); - break; - } - - return buf; -} - -static int cmpStr(const char *s1, const char *s2) -{ - if (s1 == s2) return 0; - if (s1 && s2) return strcmp(s1, s2); - return 1; -} - -int rpmProblemCompare(rpmProblem ap, rpmProblem bp) -{ - if (ap->type != bp->type) - return 1; - if (ap->key != bp->key) - return 1; - if (ap->num1 != bp->num1) - return 1; - if (cmpStr(ap->pkgNEVR, bp->pkgNEVR)) - return 1; - if (cmpStr(ap->altNEVR, bp->altNEVR)) - return 1; - if (cmpStr(ap->str1, bp->str1)) - return 1; - - return 0; -} - void rpmpsPrint(FILE *fp, rpmps ps) { char * msg = NULL; |