#include "system.h"#include "rpmio_internal.h"#include <rpmcli.h>#include <rpmmacro.h>#include <envvar.h>#include <ugid.h>#include "rpmdb.h"#include "rpmds.h"#include "rpmfi.h"#include "rpmte.h"#include "rpmts.h"#include "debug.h"Include dependency graph for depends.c:

Go to the source code of this file.
Data Structures | |
| struct | orderListIndex_s |
| struct | badDeps_s |
Defines | |
| #define | _RPMDB_INTERNAL |
| #define | _RPMEVR_INTERNAL |
| #define | _RPMTE_INTERNAL |
| #define | _RPMTS_INTERNAL |
| #define | isAuto(_x) (1) |
Typedefs | |
| typedef orderListIndex_s * | orderListIndex |
Functions | |
| static int | intcmp (const void *a, const void *b) |
| Compare removed package instances (qsort/bsearch). | |
| static int | removePackage (rpmts ts, Header h, int dboffset, int *indexp, alKey depends) |
| Add removed package instance to ordered transaction set. | |
| static int | rpmHeadersIdentical (Header first, Header second) |
| Are two headers identical? | |
| int | rpmtsAddInstallElement (rpmts ts, Header h, fnpyKey key, int upgrade, rpmRelocation relocs) |
| Add package to be installed to transaction set. | |
| int | rpmtsAddEraseElement (rpmts ts, Header h, int dboffset) |
| Add package to be erased to transaction set. | |
| static int | unsatisfiedDepend (rpmts ts, rpmds dep, int adding) |
| Check dep for an unsatisfied dependency. | |
| static int | checkPackageDeps (rpmts ts, const char *pkgNEVRA, rpmds requires, rpmds conflicts, rpmds dirnames, rpmds linktos, const char *depName, uint_32 tscolor, int adding) |
| Check added requires/conflicts against against installed+added packages. | |
| static int | checkPackageSet (rpmts ts, const char *depName, rpmdbMatchIterator mi, int adding) |
| Check dependency against installed packages. | |
| static int | checkDependentPackages (rpmts ts, const char *depName) |
| Check to-be-erased dependencies against installed requires. | |
| static int | checkDependentConflicts (rpmts ts, const char *depName) |
| Check to-be-added dependencies against installed conflicts. | |
| static void | freeBadDeps (void) |
| static int | ignoreDep (const rpmts ts, const rpmte p, const rpmte q) |
| Check for dependency relations to be ignored. | |
| static void | markLoop (tsortInfo tsi, rpmte q) |
| Recursively mark all nodes with their predecessors. | |
| static const char * | identifyDepend (int_32 f) |
| static const char * | zapRelation (rpmte q, rpmte p, int zap, int *nzaps, int msglvl) |
| Find (and eliminate co-requisites) "q <- p" relation in dependency loop. | |
| static int | addRelation (rpmts ts, rpmte p, unsigned char *selected, rpmds requires) |
| Record next "q <- p" relation (i.e. | |
| static int | orderListIndexCmp (const void *one, const void *two) |
| Compare ordered list entries by index (qsort/bsearch). | |
| static void | addQ (rpmte p, rpmte *qp, rpmte *rp, uint_32 prefcolor) |
| Add element to list sorting by tsi_qcnt. | |
| int | rpmtsOrder (rpmts ts) |
| Determine package order in a transaction set according to dependencies. | |
| int | rpmtsCheck (rpmts ts) |
| Check that all dependencies can be resolved. | |
Variables | |
| int | _cacheDependsRC = 1 |
| const char * | rpmNAME = PACKAGE |
| const char * | rpmEVR = VERSION |
| int | rpmFLAGS = RPMSENSE_EQUAL |
| static int | badDepsInitialized = 0 |
| static struct badDeps_s * | badDeps = NULL |
| static uint32_t | _autobits = 0xffffffff |
Definition in file depends.c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 1812 of file depends.c. Referenced by rpmtsOrder(). |
|
|
|
|
||||||||||||||||||||
|
Add element to list sorting by tsi_qcnt.
Definition at line 1754 of file depends.c. References rpmteColor(), rpmteTSI(), rpmteType(), and TR_REMOVED. Referenced by rpmtsOrder(). |
|
||||||||||||||||||||
|
Record next "q <- p" relation (i.e. "p" requires "q").
Definition at line 1640 of file depends.c. References ignoreDep(), RPMAL_NOMATCH, rpmalSatisfiesDepend(), rpmdsIx(), rpmdsN(), rpmdsTagN(), rpmteAddedKey(), rpmteDepth(), rpmteSetDepth(), rpmteTSI(), rpmteType(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), TR_ADDED, TR_REMOVED, and xcalloc(). Referenced by rpmtsOrder(). |
|
||||||||||||
|
Check to-be-added dependencies against installed conflicts.
Definition at line 1361 of file depends.c. References checkPackageSet(), RPMTAG_CONFLICTNAME, rpmtsGetRdb(), and rpmtsInitIterator(). Referenced by rpmtsCheck(). |
|
||||||||||||
|
Check to-be-erased dependencies against installed requires.
Definition at line 1340 of file depends.c. References checkPackageSet(), RPMTAG_REQUIRENAME, rpmtsGetRdb(), and rpmtsInitIterator(). Referenced by rpmtsCheck(). |
|
||||||||||||||||||||||||||||||||||||||||
|
Check added requires/conflicts against against installed+added packages.
Definition at line 1087 of file depends.c. References rpmalAllSatisfiesDepend(), rpmdsColor(), rpmdsInit(), rpmdsN(), rpmdsNext(), rpmdsProblem(), rpmpsFree(), rpmtsProblems(), and unsatisfiedDepend(). Referenced by checkPackageSet(), and rpmtsCheck(). |
|
||||||||||||||||||||
|
Check dependency against installed packages. Adding: check name/provides dep against each conflict match, Erasing: check name/provides/filename dep against each requiredby match.
Definition at line 1278 of file depends.c. References _free(), _rpmds_nopromote, checkPackageDeps(), hGetNEVRA(), rpmdbFreeIterator(), rpmdbNextIterator(), rpmdbPruneIterator(), RPMDEPS_FLAG_NOCONFLICTS, RPMDEPS_FLAG_NOLINKTOS, RPMDEPS_FLAG_NOPARENTDIRS, RPMDEPS_FLAG_NOREQUIRES, rpmdsFree(), rpmdsNew(), rpmdsSetNoPromote(), RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_REQUIRENAME, rpmtsColor(), and rpmtsDFlags(). Referenced by checkDependentConflicts(), and checkDependentPackages(). |
|
|
Definition at line 1424 of file depends.c. References _free(), badDepsInitialized, badDeps_s::pname, and badDeps_s::qname. Referenced by rpmtsOrder(). |
|
|
Definition at line 1535 of file depends.c. Referenced by zapRelation(). |
|
||||||||||||||||
|
Check for dependency relations to be ignored.
Definition at line 1447 of file depends.c. References _, _free(), badDepsInitialized, badDeps_s::pname, badDeps_s::qname, RPMDEPS_FLAG_ANACONDA, RPMDEPS_FLAG_DEPLOOPS, rpmExpand(), RPMMESS_DEBUG, RPMMESS_WARNING, rpmMessage, rpmteN(), rpmtsDFlags(), xcalloc(), and xstrdup(). Referenced by addRelation(). |
|
||||||||||||
|
Compare removed package instances (qsort/bsearch).
Definition at line 67 of file depends.c. Referenced by removePackage(). |
|
||||||||||||
|
Recursively mark all nodes with their predecessors.
Definition at line 1509 of file depends.c. References rpmteTSI(). Referenced by rpmtsOrder(). |
|
||||||||||||
|
Compare ordered list entries by index (qsort/bsearch).
Definition at line 1736 of file depends.c. Referenced by rpmtsOrder(). |
|
||||||||||||||||||||||||
|
Add removed package instance to ordered transaction set.
Definition at line 85 of file depends.c. References intcmp(), rpmteNew(), TR_REMOVED, and xrealloc(). Referenced by rpmtsAddEraseElement(), and rpmtsAddInstallElement(). |
|
||||||||||||
|
Are two headers identical?
Definition at line 150 of file depends.c. References headerGetEntry(), rpmdsCompare(), rpmdsFree(), rpmdsThis(), RPMSENSE_EQUAL, RPMTAG_HDRID, and RPMTAG_REQUIRENAME. Referenced by rpmtsAddInstallElement(). |
|
||||||||||||||||
|
||||||||||||||||||||||||
|
Find (and eliminate co-requisites) "q <- p" relation in dependency loop. Search all successors of q for instance of p. Format the specific relation, (e.g. p contains "Requires: q"). Unlink and free co-requisite (i.e. pure Requires: dependencies) successor node(s).
Definition at line 1571 of file depends.c. References _, _free(), identifyDepend(), rpmdsFlags(), rpmdsNewDNEVR(), rpmdsSetIx(), rpmMessage, rpmteDS(), rpmteNEVRA(), rpmteTSI(), rpmteType(), and TR_REMOVED. Referenced by rpmtsOrder(). |
|
|
Definition at line 1811 of file depends.c. Referenced by rpmtsOrder(). |
|
|
Definition at line 50 of file depends.c. Referenced by rpmtsCheck(), and unsatisfiedDepend(). |
|
|
|
|
|
Definition at line 1415 of file depends.c. Referenced by freeBadDeps(), and ignoreDep(). |
|
|
Definition at line 56 of file depends.c. Referenced by printVersion(). |
|
|
|
|
|
|
1.4.4