#include "system.h"
#include <rpmcli.h>
#include <rpmmacro.h>
#include "rpmdb.h"
#include "rpmds.h"
#include "rpmfi.h"
#include "rpmte.h"
#include "rpmts.h"
#include "debug.h"
Go to the source code of this file.
Data Structures | |
struct | badDeps_s |
struct | orderListIndex_s |
Defines | |
#define | _RPMTE_INTERNAL |
#define | _RPMTS_INTERNAL |
Typedefs | |
typedef orderListIndex_s * | orderListIndex |
Functions | |
int | intcmp (const void *a, const void *b) |
Compare removed package instances (qsort/bsearch). More... | |
int | removePackage (rpmts ts, Header h, int dboffset, alKey depends) |
Add removed package instance to ordered transaction set. More... | |
int | rpmtsAddInstallElement (rpmts ts, Header h, fnpyKey key, int upgrade, rpmRelocation *relocs) |
int | rpmtsAddEraseElement (rpmts ts, Header h, int dboffset) |
int | unsatisfiedDepend (rpmts ts, rpmds dep, int adding) |
Check dep for an unsatisfied dependency. More... | |
int | checkPackageDeps (rpmts ts, const char *pkgNEVR, rpmds requires, rpmds conflicts, const char *depName, uint_32 multiLib, int adding) |
Check added requires/conflicts against against installed+added packages. More... | |
int | checkPackageSet (rpmts ts, const char *dep, rpmdbMatchIterator mi, int adding) |
Check dependency against installed packages. More... | |
int | checkDependentPackages (rpmts ts, const char *dep) |
Check to-be-erased dependencies against installed requires. More... | |
int | checkDependentConflicts (rpmts ts, const char *dep) |
Check to-be-added dependencies against installed conflicts. More... | |
void | freeBadDeps (void) |
int | ignoreDep (const rpmte p, const rpmte q) |
Check for dependency relations to be ignored. More... | |
void | markLoop (tsortInfo tsi, rpmte q) |
Recursively mark all nodes with their predecessors. More... | |
const char *const | identifyDepend (int_32 f) |
const char * | zapRelation (rpmte q, rpmte p, rpmds requires, int zap, int *nzaps) |
Find (and eliminate co-requisites) "q <- p" relation in dependency loop. More... | |
int | addRelation (rpmts ts, rpmte p, unsigned char *selected, rpmds requires) |
Record next "q <- p" relation (i.e. More... | |
int | orderListIndexCmp (const void *one, const void *two) |
Compare ordered list entries by index (qsort/bsearch). More... | |
void | addQ (rpmte p, rpmte *qp, rpmte *rp) |
Add element to list sorting by tsi_qcnt. More... | |
int | rpmtsOrder (rpmts ts) |
int | rpmtsCheck (rpmts ts) |
Variables | |
int | _cacheDependsRC = 1 |
const char * | rpmNAME = PACKAGE |
const char * | rpmEVR = VERSION |
int | rpmFLAGS = RPMSENSE_EQUAL |
int | badDepsInitialized = 0 |
badDeps_s * | badDeps = NULL |
Definition in file depends.c.
|
|
|
|
|
|
|
Add element to list sorting by tsi_qcnt.
Definition at line 1104 of file depends.c. References rpmte, and rpmteTSI. Referenced by rpmtsOrder. |
|
Record next "q <- p" relation (i.e. "p" requires "q").
Definition at line 1004 of file depends.c. References alKey, ignoreDep, RPMAL_NOMATCH, rpmalSatisfiesDepend, rpmds, rpmdsIx, rpmdsN, rpmte, rpmteAddedKey, rpmteDepth, rpmteSetDepth, rpmteTSI, rpmteType, rpmts, rpmtsi, rpmtsiFree, rpmtsiInit, rpmtsiNext, TR_REMOVED, tsortInfo, and xcalloc. Referenced by rpmtsOrder. |
|
Check to-be-added dependencies against installed conflicts.
Definition at line 737 of file depends.c. References checkPackageSet, RPMTAG_CONFLICTNAME, rpmts, rpmtsGetRdb, and rpmtsInitIterator. Referenced by rpmtsCheck. |
|
Check to-be-erased dependencies against installed requires.
Definition at line 722 of file depends.c. References checkPackageSet, RPMTAG_REQUIRENAME, rpmts, and rpmtsInitIterator. Referenced by rpmtsCheck. |
|
Check added requires/conflicts against against installed+added packages.
Definition at line 576 of file depends.c. References int_32, isDependsMULTILIB, rpmalAllSatisfiesDepend, rpmds, rpmdsFlags, rpmdsInit, rpmdsN, rpmdsNext, rpmdsProblem, rpmts, uint_32, 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 680 of file depends.c. References _free, checkPackageDeps, hGetNEVR, rpmdbFreeIterator, rpmdbNextIterator, rpmdbPruneIterator, rpmds, rpmdsFree, rpmdsNew, rpmdsSetNoPromote, RPMTAG_CONFLICTNAME, RPMTAG_REQUIRENAME, and rpmts. Referenced by checkDependentConflicts, and checkDependentPackages. |
|
Definition at line 799 of file depends.c. References _free, badDepsInitialized, badDeps_s::pname, and badDeps_s::qname. Referenced by rpmtsOrder. |
|
Definition at line 901 of file depends.c. References _notpre, int_32, isLegacyPreReq, RPMSENSE_FIND_REQUIRES, RPMSENSE_SCRIPT_POST, RPMSENSE_SCRIPT_POSTUN, RPMSENSE_SCRIPT_PRE, RPMSENSE_SCRIPT_PREUN, and RPMSENSE_SCRIPT_VERIFY. |
|
Check for dependency relations to be ignored.
Definition at line 821 of file depends.c. References _, _free, badDepsInitialized, badDeps_s::pname, poptParseArgvString, badDeps_s::qname, rpmExpand, rpmte, rpmteN, xcalloc, and xstrdup. Referenced by addRelation. |
|
Compare removed package instances (qsort/bsearch).
Definition at line 62 of file depends.c. Referenced by removePackage. |
|
Recursively mark all nodes with their predecessors.
Definition at line 880 of file depends.c. References rpmte, rpmteTSI, and tsortInfo. Referenced by rpmtsOrder. |
|
Compare ordered list entries by index (qsort/bsearch).
Definition at line 1087 of file depends.c. References orderListIndexCmp. Referenced by orderListIndexCmp, and rpmtsOrder. |
|
Add removed package instance to ordered transaction set.
Definition at line 79 of file depends.c. References alKey, intcmp, rpmte, rpmteNew, rpmts, TR_REMOVED, and xrealloc. Referenced by rpmtsAddEraseElement, and rpmtsAddInstallElement. |
|
Check dep for an unsatisfied dependency.
Definition at line 334 of file depends.c. References _, _cacheDependsRC, alloca, _dbiIndex::dbi_txnid, dbiCclose, dbiCopen, dbiGet, dbiOpen, dbiPut, int_32, rpmalMakeIndex, rpmalSatisfiesDepend, rpmCheckRpmlibProvides, rpmdbFreeIterator, RPMDBI_DEPENDS, rpmdbNextIterator, rpmdbPruneIterator, rpmds, rpmdsAnyMatchesDep, rpmdsDNEVR, rpmdsFlags, rpmdsN, rpmdsNotify, rpmGetVar, RPMSENSE_SENSEMASK, RPMTAG_BASENAMES, RPMTAG_NAME, RPMTAG_PROVIDENAME, RPMTRANS_FLAG_NOSUGGEST, rpmts, rpmtsFlags, rpmtsGetRdb, rpmtsInitIterator, RPMVAR_PROVIDES, and xisspace. Referenced by checkPackageDeps. |
|
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 937 of file depends.c. References _, _free, identifyDepend, int_32, rpmds, rpmdsFlags, rpmdsNewDNEVR, rpmdsSetIx, RPMSENSE_PREREQ, rpmte, rpmteNEVR, rpmteTSI, and tsortInfo. Referenced by rpmtsOrder. |
|
Definition at line 45 of file depends.c. Referenced by hGetNEVR, and unsatisfiedDepend. |
|
|
|
Definition at line 790 of file depends.c. Referenced by freeBadDeps, and ignoreDep. |
|
|
|
|
|
|