rpm
5.4.10
|
![]() |
Files | |
file | rpmds.c |
file | rpmds.h |
Structure(s) used for dependency tag sets. | |
file | rpmlib.h |
In Memoriam: Steve Taylor stayl was here, now he's not. or@r edhat .com | |
file | rpmevr.c |
file | rpmds.c |
Typedefs | |
typedef struct rpmds_s * | rpmds |
Dependency tag sets from a header, so that a header can be discarded early. | |
typedef struct rpmPRCO_s * | rpmPRCO |
Container for commonly extracted dependency set(s). |
Functions | |
int | dpkgEVRcmp (const char *a, const char *b) |
Segmented string compare. | |
int | dpkgEVRparse (const char *evrstr, EVR_t evr) |
Split EVR string into epoch, version, and release components. | |
int | dpkgEVRcompare (const EVR_t a, const EVR_t b) |
Compare EVR containers. | |
EVR_t | rpmEVRnew (uint32_t Flags, int initialize) |
Create a new EVR container. | |
int | rpmEVRcmp (const char *a, const char *b) |
Segmented string compare. | |
int | rpmEVRparse (const char *evrstr, EVR_t evr) |
Split EVR string into epoch, version, and release components. | |
int | rpmEVRcompare (const EVR_t a, const EVR_t b) |
Compare EVR containers for equality. | |
int | rpmEVRoverlap (EVR_t a, EVR_t b) |
Compare EVR containers for overlap. | |
nsType | rpmnsArch (const char *str) |
Is string a known arch suffix? | |
nsType | rpmnsProbe (const char *s, size_t slen) |
Is string a known probe namespace? | |
nsType | rpmnsClassify (const char *s, size_t slen) |
Classify a string as a dependency type. | |
int | rpmnsParse (const char *str, rpmns ns) |
Expand and split NS(N).A string into namespace, name and arch components. |
Variables | |
int | _rpmds_debug |
const char * | _sysinfo_path |
int | _rpmds_nopromote |
int(* | rpmvercmp )(const char *a, const char *b) |
Segmented string compare vector. |
RPMDS | |
rpmds | rpmdsUnlink (rpmds ds, const char *msg) |
Unreference a dependency set instance. | |
rpmds | rpmdsLink (rpmds ds, const char *msg) |
Reference a dependency set instance. | |
rpmds | rpmdsFree (rpmds ds) |
Destroy a dependency set. | |
rpmds | rpmdsNew (Header h, rpmTag tagN, int flags) |
Create and load a dependency set. | |
const char * | rpmdsNewN (rpmds ds) |
Return N string, expanded if necessary. | |
char * | rpmdsNewDNEVR (const char *dspfx, rpmds ds) |
Return new formatted dependency string. | |
rpmds | rpmdsThis (Header h, rpmTag tagN, evrFlags Flags) |
Create, load and initialize a dependency for this header. | |
rpmds | rpmdsSingle (rpmTag tagN, const char *N, const char *EVR, evrFlags Flags) |
Create, load and initialize a dependency set of size 1. | |
int | rpmdsCount (const rpmds ds) |
Return dependency set count. | |
int | rpmdsIx (const rpmds ds) |
Return dependency set index. | |
int | rpmdsSetIx (rpmds ds, int ix) |
Set dependency set index. | |
const char * | rpmdsDNEVR (const rpmds ds) |
Return current formatted dependency string. | |
const char * | rpmdsN (rpmds ds) |
Return current dependency name. | |
const char * | rpmdsEVR (const rpmds ds) |
Return current dependency epoch-version-release. | |
evrFlags | rpmdsFlags (const rpmds ds) |
Return current dependency flags. | |
rpmTag | rpmdsTagN (const rpmds ds) |
Return current dependency type. | |
const char * | rpmdsA (const rpmds ds) |
Return current dependency arch. | |
time_t | rpmdsBT (const rpmds ds) |
Return dependency build time. | |
time_t | rpmdsSetBT (const rpmds ds, time_t BT) |
Set dependency build time. | |
nsType | rpmdsNSType (const rpmds ds) |
Return dependency class type. | |
int | rpmdsNoPromote (const rpmds ds) |
Return current "Don't promote Epoch:" flag. | |
int | rpmdsSetNoPromote (rpmds ds, int nopromote) |
Set "Don't promote Epoch:" flag. | |
void * | rpmdsSetEVRparse (rpmds ds, int(*EVRparse)(const char *everstr, EVR_t evr)) |
Set EVR parsing function. | |
void * | rpmdsSetEVRcmp (rpmds ds, int(*EVRcmp)(const char *a, const char *b)) |
Set EVR comparison function. | |
rpmuint32_t | rpmdsColor (const rpmds ds) |
Return current dependency color. | |
rpmuint32_t | rpmdsSetColor (const rpmds ds, rpmuint32_t color) |
Set current dependency color. | |
void * | rpmdsExclude (const rpmds ds) |
Return dependency exclude patterns. | |
int | rpmdsNExclude (const rpmds ds) |
Return no. | |
void * | rpmdsInclude (const rpmds ds) |
Return dependency include patterns. | |
int | rpmdsNInclude (const rpmds ds) |
Return no. | |
rpmuint32_t | rpmdsRefs (const rpmds ds) |
Return current dependency file refs. | |
rpmuint32_t | rpmdsSetRefs (const rpmds ds, rpmuint32_t refs) |
Set current dependency file refs. | |
rpmint32_t | rpmdsResult (const rpmds ds) |
Return current dependency comparison result. | |
rpmint32_t | rpmdsSetResult (const rpmds ds, rpmint32_t result) |
Set current dependency comparison result. | |
void | rpmdsNotify (rpmds ds, const char *where, int rc) |
Notify of results of dependency match. | |
int | rpmdsNext (rpmds ds) |
Return next dependency set iterator index. | |
rpmds | rpmdsInit (rpmds ds) |
Initialize dependency set iterator. | |
int | rpmdsFind (rpmds ds, const rpmds ods) |
Find a dependency set element using binary search. | |
int | rpmdsMerge (rpmds *dsp, rpmds ods) |
Merge a dependency set maintaining (N,EVR,Flags) sorted order. | |
int | rpmdsSearch (rpmds ds, rpmds ods) |
Search a sorted dependency set for an element that overlaps. | |
int | rpmdsCpuinfo (rpmds *dsp, const char *fn) |
Load /proc/cpuinfo provides into a dependency set. | |
int | rpmdsRpmlib (rpmds *dsp, void *tblp) |
Load rpmlib provides into a dependency set. | |
int | rpmdsSysinfo (rpmPRCO PRCO, const char *fn) |
Load sysinfo dependencies into a dependency set. | |
int | rpmdsGetconf (rpmds *dsp, const char *path) |
Load getconf provides into a dependency set. | |
int | rpmdsMergePRCO (void *context, rpmds ds) |
Merge provides/requires/conflicts/obsoletes dependencies. | |
rpmPRCO | rpmdsFreePRCO (rpmPRCO PRCO) |
Free dependency set(s) container. | |
rpmPRCO | rpmdsNewPRCO (Header h) |
Create dependency set(s) container. | |
rpmds | rpmdsFromPRCO (rpmPRCO PRCO, rpmTag tagN) |
Retrieve a dependency set from container. | |
int | rpmdsELF (const char *fn, int flags, int(*add)(void *context, rpmds ds), void *context) |
Extract ELF dependencies from a file. | |
int | rpmdsLdconfig (rpmPRCO PRCO, const char *fn) |
Load /etc/ld.so.cache provides into a dependency set. | |
int | rpmdsPipe (rpmds *dsp, rpmTag tagN, const char *cmd) |
Load provides from a pipe into a dependency set. | |
int | rpmdsCompare (const rpmds A, const rpmds B) |
Compare two versioned dependency ranges, looking for overlap. | |
int | rpmdsMatch (const rpmds A, rpmds B) |
Compare A against every member of B, looking for 1st match. | |
void | rpmdsProblem (rpmps ps, const char *pkgNEVR, const rpmds ds, const fnpyKey *suggestedKeys, int adding) |
Report a Requires: or Conflicts: dependency problem. | |
int | rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote) |
Compare package provides dependencies from header with a single dependency. | |
int | rpmdsNVRMatchesDep (const Header h, const rpmds req, int nopromote) |
Compare package name-version-release from header with a single dependency. | |
int | rpmdsNegateRC (const rpmds ds, int rc) |
Negate return code for negated comparisons. | |
const char * | rpmdsType (const rpmds ds) |
Return current dependency type name. | |
static int | rpmdsPrint (rpmds ds, FILE *fp) |
Print current dependency set contents. | |
static int | rpmdsPrintResults (rpmds ds, FILE *fp) |
Print current dependency set results. | |
static int | rpmdsPrintClosure (rpmds P, rpmds R, FILE *fp) |
Check Provides: against Requires: and print closure results. |
typedef struct rpmds_s* rpmds |
Dependency tag sets from a header, so that a header can be discarded early.
Definition at line 28 of file rpmtypes.h.
typedef struct rpmPRCO_s* rpmPRCO |
Container for commonly extracted dependency set(s).
Definition at line 33 of file rpmtypes.h.
int dpkgEVRcmp | ( | const char * | a, |
const char * | b | ||
) |
Segmented string compare.
a | 1st string |
b | 2nd string |
Definition at line 33 of file rpmdpkg.c.
References dpkgEVRctype(), and xisdigit().
Referenced by dpkgEVRcompare().
Compare EVR containers.
a | 1st EVR container |
b | 2nd EVR container |
Definition at line 66 of file rpmdpkg.c.
References dpkgEVRcmp().
int dpkgEVRparse | ( | const char * | evrstr, |
EVR_t | evr | ||
) |
Split EVR string into epoch, version, and release components.
evrstr | [epoch:]version[-release] string |
*evr | parse results |
Definition at line 61 of file rpmdpkg.c.
References rpmEVRparse().
const char* rpmdsA | ( | const rpmds | ds | ) |
Compare package provides dependencies from header with a single dependency.
h | header |
req | dependency set |
nopromote | Don't promote Epoch: in comparison? |
Definition at line 4525 of file rpmds.c.
References rpmdsCompare(), rpmdsFlags(), rpmdsFree(), rpmdsInit(), rpmdsNew(), rpmdsNext(), rpmdsSetNoPromote(), RPMNS_TYPE_ARCH, RPMSENSE_SENSEMASK, and RPMTAG_PROVIDENAME.
Referenced by rpmtsAddObsoletes(), rpmtsSolve(), and unsatisfiedDepend().
time_t rpmdsBT | ( | const rpmds | ds | ) |
Return dependency build time.
ds | dependency set |
Definition at line 720 of file rpmds.c.
Referenced by rpmds_BT(), rpmds_BT_get(), and rpmds_BT_set().
rpmuint32_t rpmdsColor | ( | const rpmds | ds | ) |
Return current dependency color.
ds | dependency set |
Definition at line 789 of file rpmds.c.
Referenced by checkPackageDeps(), rpmalAddProvides(), rpmds_Color(), rpmds_Color_get(), rpmds_Color_set(), and rpmtsAddObsoletes().
Compare two versioned dependency ranges, looking for overlap.
A | 1st dependency |
B | 2nd dependency |
Definition at line 4347 of file rpmds.c.
References _, _free(), alloca(), D_, rpmdsEVRorder(), rpmdsFlags(), rpmdsNAcmp(), rpmEVRparse(), rpmlog(), RPMLOG_DEBUG, RPMLOG_WARNING, RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, RPMSENSE_NOTEQUAL, RPMSENSE_SENSEMASK, rpmvercmp, and xstrdup().
Referenced by addReqProv(), cacheStashLatest(), rpmalAllSatisfiesDepend(), rpmds_richcompare(), rpmdsAnyMatchesDep(), rpmdsMatch(), rpmdsNVRMatchesDep(), rpmdsSearch(), rpmfcHelper(), rpmHeadersIdentical(), and rpmtsAddInstallElement().
int rpmdsCount | ( | const rpmds | ds | ) |
Return dependency set count.
ds | dependency set |
Definition at line 636 of file rpmds.c.
Referenced by main(), rpmalMakeIndex(), rpmds_Count(), rpmds_Count_get(), rpmds_length(), rpmfcGenerateDepends(), rpmfcPrint(), and rpmteColorDS().
int rpmdsCpuinfo | ( | rpmds * | dsp, |
const char * | fn | ||
) |
Load /proc/cpuinfo provides into a dependency set.
*dsp | (loaded) depedency set |
fn | path to file (NULL uses /proc/cpuinfo) |
Definition at line 1323 of file rpmds.c.
References _cpuinfo_path, _free(), _isspace, _PROC_CPUINFO, cpuinfo_s::done, cpuinfo_s::name, rpmdsCpuinfoCtagFlags(), rpmdsNSAdd(), rpmExpand(), rpmiobFree(), rpmiobSlurp(), RPMSENSE_EQUAL, and xstrdup().
Referenced by main(), rpmds_Cpuinfo(), rpmShowRC(), and unsatisfiedDepend().
const char* rpmdsDNEVR | ( | const rpmds | ds | ) |
Return current formatted dependency string.
ds | dependency set |
Definition at line 657 of file rpmds.c.
Referenced by addReqProv(), missingokTag(), printDeps(), removeSillyDeps(), rpmdepPrint(), rpmds_DNEVR(), rpmds_DNEVR_get(), rpmds_print(), rpmds_subscript(), rpmdsPrint(), rpmdsPrintResults(), rpmdsProblem(), rpmfcHelper(), rpmfcPrint(), rpmfiBuildFDeps(), rpmShowRC(), rpmts_SolveCallback(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), and unsatisfiedDepend().
int rpmdsELF | ( | const char * | fn, |
int | flags, | ||
int(*)(void *context, rpmds ds) | add, | ||
void * | context | ||
) |
Extract ELF dependencies from a file.
fn | file name |
flags | 1: skip provides 2: skip requires |
*add | add(arg, ds) saves next provide/require elf dependency. |
context | add() callback context |
Extract ELF dependencies from a file.
t | soname dependency |
s | elf string (NULL uses "") |
isElf64 | is this an ELF64 symbol? |
Definition at line 3212 of file rpmds.c.
References _free(), DT_GNU_HASH, memchr(), name, rpmdsFree(), rpmdsSingle(), RPMELF_FLAG_SKIPPROVIDES, RPMELF_FLAG_SKIPREQUIRES, rpmExpandNumeric(), RPMSENSE_EQUAL, RPMTAG_PROVIDENAME, RPMTAG_PROVIDES, RPMTAG_REQUIRENAME, stpcpy(), and xstrdup().
Referenced by main(), rpmdsLdconfig(), rpmfcELF(), and unsatisfiedDepend().
const char* rpmdsEVR | ( | const rpmds | ds | ) |
Return current dependency epoch-version-release.
ds | dependency set |
Definition at line 680 of file rpmds.c.
Referenced by _rpmtsCheck(), rpmds_compare(), rpmds_EVR(), rpmds_EVR_get(), rpmds_iternext(), rpmdsProblem(), rpmfcFileDep(), rpmfcGenerateDepends(), rpmfcHelper(), rpmtsAddObsoletes(), rpmtsSolve(), runImmedTriggers(), and unsatisfiedDepend().
void* rpmdsExclude | ( | const rpmds | ds | ) |
Find a dependency set element using binary search.
ds | dependency set to search |
ods | dependency set element to find. |
Definition at line 1001 of file rpmds.c.
Referenced by rpmds_Find(), rpmdsMerge(), and rpmfcApply().
Return current dependency flags.
ds | dependency set |
Definition at line 691 of file rpmds.c.
Referenced by handleOneTrigger(), missingokTag(), printDeps(), rpmds_Flags(), rpmds_Flags_get(), rpmds_iternext(), rpmdsAnyMatchesDep(), rpmdsCompare(), rpmdsNVRMatchesDep(), rpmfcFileDep(), rpmfcHelper(), rpmtsSolve(), runImmedTriggers(), and unsatisfiedDepend().
Destroy a dependency set.
ds | dependency set |
Referenced by addReqProv(), cacheStashLatest(), checkPackageSet(), ensureOlder(), freeItem(), handleOneTrigger(), main(), missingokTag(), pkgFini(), printDeps(), removeSillyDeps(), rpmalDel(), rpmalFini(), rpmds_dealloc(), rpmds_free(), rpmds_Sort(), rpmdsAnyMatchesDep(), rpmdsELF(), rpmdsFreePRCO(), rpmdsLdconfig(), rpmdsNSAdd(), rpmdsNVRMatchesDep(), rpmdsPipe(), rpmdsRpmlib(), rpmdsSysinfoFile(), rpmfcApply(), rpmfcFini(), rpmfcGenerateDepends(), rpmfcHelper(), rpmfcSCRIPT(), rpmfiBuildFDeps(), rpmHeadersIdentical(), rpmnsClean(), rpmpsmFini(), rpmShowRC(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), runImmedTriggers(), runTriggersLoop(), and unsatisfiedDepend().
Free dependency set(s) container.
PRCO | dependency set(s) container |
Definition at line 2853 of file rpmds.c.
References _free(), and rpmdsFree().
Referenced by main(), rpmds_Ldconfig(), rpmds_Sysinfo(), rpmShowRC(), rpmteCleanDS(), rpmtsFini(), and unsatisfiedDepend().
Retrieve a dependency set from container.
PRCO | dependency set(s) container |
tagN | type of dependency set |
Definition at line 2903 of file rpmds.c.
References RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_NAME, RPMTAG_OBSOLETENAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, and RPMTAG_TRIGGERNAME.
Referenced by _rpmtsCheck(), main(), rpmds_Ldconfig(), rpmds_Sysinfo(), rpmShowRC(), rpmteDS(), and unsatisfiedDepend().
int rpmdsGetconf | ( | rpmds * | dsp, |
const char * | path | ||
) |
Load getconf provides into a dependency set.
*dsp | (loaded) depedency set |
path | getconf path (NULL uses /) |
Definition at line 2718 of file rpmds.c.
References _free(), _GETCONF_PATH, _getconf_path, _conf_s::call, _conf_s::call_name, CONFSTR, errno, EXIT_FAILURE, _conf_s::name, PATHCONF, rpmdsNSAdd(), rpmExpand(), RPMSENSE_EQUAL, SYSCONF, xmalloc, and xstrdup().
Referenced by main(), rpmds_Getconf(), rpmShowRC(), and unsatisfiedDepend().
void* rpmdsInclude | ( | const rpmds | ds | ) |
Initialize dependency set iterator.
ds | dependency set |
Definition at line 943 of file rpmds.c.
Referenced by _rpmtsCheck(), checkPackageDeps(), handleOneTrigger(), missingokTag(), printDeps(), rpmalAddProvides(), rpmdepPrint(), rpmds_iternext(), rpmds_print(), rpmdsAnyMatchesDep(), rpmdsMatch(), rpmdsMerge(), rpmdsPrint(), rpmdsPrintClosure(), rpmdsPrintResults(), rpmShowRC(), rpmteColorDS(), rpmtsAddObsoletes(), runImmedTriggers(), and runTriggersLoop().
int rpmdsIx | ( | const rpmds | ds | ) |
Return dependency set index.
ds | dependency set |
Definition at line 641 of file rpmds.c.
Referenced by rpmalAddProvides(), rpmdepPrint(), rpmds_Find(), rpmds_Ix(), rpmds_Ix_get(), rpmds_Ix_set(), rpmdsPrint(), rpmdsPrintResults(), and rpmdsSearch().
int rpmdsLdconfig | ( | rpmPRCO | PRCO, |
const char * | fn | ||
) |
Load /etc/ld.so.cache provides into a dependency set.
*PRCO | provides/requires/conflicts/obsoletes depedency set(s) |
fn | cache file name (NULL uses /etc/ld.so.cache) |
Definition at line 3816 of file rpmds.c.
References _free(), _isspace, _LD_SO_CACHE, _ldconfig_cache, _SBIN_LDCONFIG_P, rpmdsELF(), rpmdsFree(), rpmdsMerge(), rpmdsMergePRCO(), rpmdsSingle(), rpmExpand(), RPMTAG_PROVIDENAME, and xstrdup().
Referenced by main(), and rpmds_Ldconfig().
Reference a dependency set instance.
ds | dependency set |
msg |
Referenced by handleOneTrigger(), main(), rpmalAdd(), rpmds_Ldconfig(), rpmds_Sysinfo(), rpmdsDup(), rpmdsNew(), rpmdsSingle(), rpmdsThis(), rpmShowRC(), rpmte_DS(), rpmtsAddObsoletes(), and runImmedTriggers().
Compare A against every member of B, looking for 1st match.
A | 1st dependency |
B | 2nd dependency |
Definition at line 4485 of file rpmds.c.
References rpmdsCompare(), rpmdsInit(), and rpmdsNext().
Referenced by handleOneTrigger(), and removeSillyDeps().
Merge a dependency set maintaining (N,EVR,Flags) sorted order.
*dsp | (merged) dependency set |
ods | dependency set to merge |
Definition at line 1033 of file rpmds.c.
References _free(), rpmdsDup(), rpmdsDupArgv(), rpmdsFind(), rpmdsInit(), rpmdsNext(), RPMTAG_BASENAMES, RPMTAG_DIRNAMES, RPMTAG_FILEPATHS, and xmalloc.
Referenced by rpmds_Merge(), rpmds_Sort(), rpmdsLdconfig(), rpmdsMergePRCO(), rpmdsNSAdd(), rpmdsPipe(), rpmdsRpmlib(), rpmfcGenerateDepends(), rpmfcHelper(), rpmfcMergePR(), and rpmfcSCRIPT().
int rpmdsMergePRCO | ( | void * | context, |
rpmds | ds | ||
) |
Merge provides/requires/conflicts/obsoletes dependencies.
context | merge dependency set(s) container |
ds | dependency set to merge |
Definition at line 2816 of file rpmds.c.
References rpmdsMerge(), rpmdsTagN(), rpmdsTagName(), RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_OBSOLETENAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, and RPMTAG_TRIGGERNAME.
Referenced by main(), rpmdsLdconfig(), rpmdsSysinfoFile(), and unsatisfiedDepend().
const char* rpmdsN | ( | rpmds | ds | ) |
Return current dependency name.
ds | dependency set |
Definition at line 668 of file rpmds.c.
References rpmdsNewN().
Referenced by _rpmtsCheck(), checkPackageDeps(), cmpItem(), handleOneTrigger(), rpmalAllFileSatisfiesDepend(), rpmalAllSatisfiesDepend(), rpmds_iternext(), rpmds_N(), rpmds_N_get(), rpmdsProblem(), rpmfcFileDep(), rpmfcGenerateDepends(), rpmtsAddObsoletes(), rpmtsSolve(), runImmedTriggers(), runTriggersLoop(), and unsatisfiedDepend().
int rpmdsNegateRC | ( | const rpmds | ds, |
int | rc | ||
) |
Negate return code for negated comparisons.
ds | dependency set |
rc | positive return code |
Definition at line 4658 of file rpmds.c.
Referenced by _rpmtsCheck(), handleOneTrigger(), and unsatisfiedDepend().
Create and load a dependency set.
h | header |
tagN | type of dependency |
flags | scareMem(0x1), nofilter(0x2) |
Definition at line 238 of file rpmds.c.
References _free(), _rpmds_nopromote, alloca(), rpmDataType_u::argv, argvFree(), _HE_s::c, headerGet(), _HE_s::p, rpmDataType_u::ptr, rpmdsDupArgv(), rpmdsGetPool(), rpmdsLink(), rpmdsTagName(), rpmdsThis(), rpmGenPath(), RPMSENSE_EQUAL, RPMTAG_ARCH, RPMTAG_BASENAMES, RPMTAG_BUILDTIME, RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_ENHANCESFLAGS, RPMTAG_ENHANCESNAME, RPMTAG_ENHANCESVERSION, RPMTAG_FILELINKTOS, RPMTAG_NAME, RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, RPMTAG_SUGGESTSFLAGS, RPMTAG_SUGGESTSNAME, RPMTAG_SUGGESTSVERSION, RPMTAG_TRIGGERFLAGS, RPMTAG_TRIGGERNAME, RPMTAG_TRIGGERVERSION, rpmDataType_u::str, _HE_s::tag, rpmDataType_u::ui32p, urlPath(), xcalloc(), and xstrdup().
Referenced by checkPackageSet(), handleOneTrigger(), hdr_dsFromHeader(), missingokTag(), printDeps(), removeSillyDeps(), rpmds_init(), rpmds_new(), rpmdsAnyMatchesDep(), rpmdsNewPRCO(), rpmfcGenerateDepends(), rpmfiBuildFDeps(), rpmhdr_ds(), rpmpsmStage(), and runTriggersLoop().
char* rpmdsNewDNEVR | ( | const char * | dspfx, |
rpmds | ds | ||
) |
Return new formatted dependency string.
dspfx | formatted dependency string prefix |
ds | dependency set |
Definition at line 434 of file rpmds.c.
References _rpmns_N_at_A, rpmdsNewN(), RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, RPMSENSE_NOTEQUAL, RPMSENSE_SENSEMASK, stpcpy(), and xmalloc.
Referenced by rpmdsNext(), rpmdsSingle(), and rpmdsThis().
const char* rpmdsNewN | ( | rpmds | ds | ) |
Return N string, expanded if necessary.
ds | dependency set |
Definition at line 421 of file rpmds.c.
References rpmnsParse().
Referenced by rpmdsN(), and rpmdsNewDNEVR().
Create dependency set(s) container.
h | header |
Definition at line 2878 of file rpmds.c.
References rpmdsNew(), RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_NAME, RPMTAG_OBSOLETENAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_TRIGGERNAME, and xcalloc().
Referenced by addTE(), main(), rpmds_Ldconfig(), rpmds_Sysinfo(), rpmShowRC(), rpmtsPRCO(), and unsatisfiedDepend().
int rpmdsNExclude | ( | const rpmds | ds | ) |
int rpmdsNext | ( | rpmds | ds | ) |
Return next dependency set iterator index.
ds | dependency set |
Definition at line 912 of file rpmds.c.
References _free(), and rpmdsNewDNEVR().
Referenced by _rpmtsCheck(), checkPackageDeps(), handleOneTrigger(), missingokTag(), printDeps(), rpmalAddProvides(), rpmalAllSatisfiesDepend(), rpmdepPrint(), rpmds_iternext(), rpmds_Ix_set(), rpmds_print(), rpmds_subscript(), rpmdsAnyMatchesDep(), rpmdsMatch(), rpmdsMerge(), rpmdsPrint(), rpmdsPrintClosure(), rpmdsPrintResults(), rpmdsSearch(), rpmfcPrint(), rpmfiBuildFDeps(), rpmShowRC(), rpmteColorDS(), rpmtsAddObsoletes(), runImmedTriggers(), and runTriggersLoop().
int rpmdsNInclude | ( | const rpmds | ds | ) |
int rpmdsNoPromote | ( | const rpmds | ds | ) |
Return current "Don't promote Epoch:" flag.
This flag controls for Epoch: promotion when a dependency set is compared. If the flag is set (for already installed packages), then an unspecified value will be treated as Epoch: 0. Otherwise (for added packages), the Epoch: portion of the comparison is skipped if the value is not specified, i.e. an unspecified Epoch: is assumed to be equal in dependency comparisons.
ds | dependency set |
Definition at line 746 of file rpmds.c.
Referenced by rpmds_NoPromote_get(), and rpmds_NoPromote_set().
void rpmdsNotify | ( | rpmds | ds, |
const char * | where, | ||
int | rc | ||
) |
Notify of results of dependency match.
ds | dependency set |
where | where dependency was resolved (or NULL) |
rc | 0 == YES, otherwise NO |
Definition at line 899 of file rpmds.c.
References _, rpmdsTagName(), rpmlog(), and RPMLOG_DEBUG.
Referenced by rpmalAllFileSatisfiesDepend(), rpmalAllSatisfiesDepend(), rpmds_Notify(), and unsatisfiedDepend().
Return dependency class type.
ds | dependency set |
Definition at line 738 of file rpmds.c.
References RPMNS_TYPE_UNKNOWN.
Referenced by _rpmtsCheck(), and unsatisfiedDepend().
Compare package name-version-release from header with a single dependency.
h | header |
req | dependency set |
nopromote | Don't promote Epoch: in comparison? |
Definition at line 4578 of file rpmds.c.
References _free(), alloca(), headerGet(), headerNEVRA(), _HE_s::p, rpmDataType_u::ptr, rpmdsCompare(), rpmdsFlags(), rpmdsFree(), rpmdsSetNoPromote(), rpmdsSingle(), RPMSENSE_EQUAL, RPMSENSE_SENSEMASK, RPMTAG_DISTEPOCH, RPMTAG_EPOCH, RPMTAG_PROVIDENAME, stpcpy(), rpmDataType_u::str, _HE_s::tag, rpmDataType_u::ui32p, and xstrdup().
Referenced by ensureOlder().
Load provides from a pipe into a dependency set.
*dsp | (loaded) depedency set |
tagN | rpmds tag (0 uses RPMTAG_PROVIDENAME). |
cmd | popen cmd to run (NULL loads perl provides) |
Definition at line 4164 of file rpmds.c.
References _, _free(), _isspace, _PERL_PROVIDES, _perldeps_cmd, rpmdsFree(), rpmdsMerge(), rpmdsSingle(), rpmEVRflags(), rpmExpand(), RPMTAG_PROVIDENAME, xisalnum(), and xstrdup().
Referenced by main().
|
inlinestatic |
Print current dependency set contents.
ds | dependency set |
fp | file handle (NULL uses stderr) |
Definition at line 759 of file rpmds.h.
References rpmdsDNEVR(), rpmdsInit(), rpmdsIx(), rpmdsNext(), and rpmdsType().
Check Provides: against Requires: and print closure results.
P | Provides: dependency set |
R | Requires: dependency set |
fp | file handle (NULL uses stderr) |
Definition at line 803 of file rpmds.h.
References rpmdsInit(), rpmdsNext(), rpmdsPrintResults(), rpmdsSearch(), and rpmdsSetResult().
Referenced by main().
|
inlinestatic |
Print current dependency set results.
ds | dependency set |
fp | file handle (NULL uses stderr) |
Definition at line 778 of file rpmds.h.
References rpmdsDNEVR(), rpmdsInit(), rpmdsIx(), rpmdsNext(), rpmdsResult(), and rpmdsType().
Referenced by rpmdsPrintClosure().
void rpmdsProblem | ( | rpmps | ps, |
const char * | pkgNEVR, | ||
const rpmds | ds, | ||
const fnpyKey * | suggestedKeys, | ||
int | adding | ||
) |
Report a Requires: or Conflicts: dependency problem.
ps | transaction set problems |
pkgNEVR | package name/epoch/version/release |
ds | dependency set |
suggestedKeys | filename or python object address |
adding | dependency problem is from added package set? |
Definition at line 4497 of file rpmds.c.
References D_, rpmdsDNEVR(), rpmdsEVR(), rpmdsN(), rpmlog(), RPMLOG_DEBUG, RPMPROB_CONFLICT, RPMPROB_REQUIRES, and rpmpsAppend().
Referenced by checkPackageDeps().
rpmuint32_t rpmdsRefs | ( | const rpmds | ds | ) |
Return current dependency file refs.
ds | dependency set |
Definition at line 839 of file rpmds.c.
Referenced by rpmds_Refs().
rpmint32_t rpmdsResult | ( | const rpmds | ds | ) |
Return current dependency comparison result.
ds | dependency set |
Definition at line 869 of file rpmds.c.
Referenced by rpmds_Result(), and rpmdsPrintResults().
int rpmdsRpmlib | ( | rpmds * | dsp, |
void * | tblp | ||
) |
Load rpmlib provides into a dependency set.
*dsp | (loaded) depedency set |
tblp | rpmlib provides table (NULL uses internal table) |
Definition at line 1589 of file rpmds.c.
References rpmlibProvides_s::featureEVR, rpmlibProvides_s::featureFlags, rpmlibProvides_s::featureName, rpmdsFree(), rpmdsMerge(), rpmdsSingle(), rpmlibProvides, and RPMTAG_PROVIDENAME.
Referenced by main(), rpmds_new(), rpmds_Rpmlib(), rpmShowRC(), and unsatisfiedDepend().
Search a sorted dependency set for an element that overlaps.
A boolean result is saved (if allocated) and accessible through rpmdsResult(ods) afterwards.
ds | dependency set to search |
ods | dependency set element to find. |
Definition at line 1115 of file rpmds.c.
References rpmdsCompare(), rpmdsIx(), rpmdsNext(), rpmdsSetIx(), and rpmdsSetResult().
Referenced by rpmds_Search(), rpmdsPrintClosure(), rpmfcHelper(), and unsatisfiedDepend().
time_t rpmdsSetBT | ( | const rpmds | ds, |
time_t | BT | ||
) |
Set dependency build time.
ds | dependency set |
BT | build time |
Definition at line 728 of file rpmds.c.
Referenced by rpmds_BT_set().
rpmuint32_t rpmdsSetColor | ( | const rpmds | ds, |
rpmuint32_t | color | ||
) |
Set current dependency color.
ds | dependency set |
color | new dependency color |
Definition at line 800 of file rpmds.c.
References xcalloc().
Referenced by rpmds_Color_set(), and rpmteColorDS().
void* rpmdsSetEVRcmp | ( | rpmds | ds, |
int(*)(const char *a, const char *b) | EVRcmp | ||
) |
Set EVR parsing function.
ds | dependency set |
EVRparse | EVR parsing function (NULL uses default) |
int rpmdsSetIx | ( | rpmds | ds, |
int | ix | ||
) |
Set dependency set index.
ds | dependency set |
ix | new index |
Definition at line 646 of file rpmds.c.
Referenced by rpmalAllSatisfiesDepend(), rpmds_Find(), rpmds_Ix_set(), rpmds_subscript(), rpmdsSearch(), rpmfcHelper(), rpmfcPrint(), and rpmfiBuildFDeps().
int rpmdsSetNoPromote | ( | rpmds | ds, |
int | nopromote | ||
) |
Set "Don't promote Epoch:" flag.
ds | dependency set |
nopromote | Should an unspecified Epoch: be treated as Epoch: 0? |
Definition at line 755 of file rpmds.c.
Referenced by checkPackageSet(), handleOneTrigger(), rpmds_NoPromote_set(), rpmds_SetNoPromote(), rpmdsAnyMatchesDep(), and rpmdsNVRMatchesDep().
rpmuint32_t rpmdsSetRefs | ( | const rpmds | ds, |
rpmuint32_t | refs | ||
) |
Set current dependency file refs.
ds | dependency set |
refs | new dependency refs |
Definition at line 850 of file rpmds.c.
References xcalloc().
Referenced by rpmteColorDS().
rpmint32_t rpmdsSetResult | ( | const rpmds | ds, |
rpmint32_t | result | ||
) |
Set current dependency comparison result.
ds | dependency set |
result | new dependency result |
Definition at line 880 of file rpmds.c.
References xcalloc().
Referenced by rpmdsPrintClosure(), and rpmdsSearch().
Create, load and initialize a dependency set of size 1.
tagN | type of dependency |
N | name |
EVR | epoch:version-release |
Flags | comparison/context flags |
Definition at line 609 of file rpmds.c.
References rpmdsGetPool(), rpmdsLink(), rpmdsNewDNEVR(), rpmdsTagName(), xcalloc(), and xmalloc.
Referenced by addReqProv(), ensureOlder(), removeSillyDeps(), rpmds_iternext(), rpmds_Single(), rpmdsELF(), rpmdsLdconfig(), rpmdsNSAdd(), rpmdsNVRMatchesDep(), rpmdsPipe(), rpmdsRpmlib(), rpmdsSysinfoFile(), rpmfcApply(), rpmfcGenerateDepends(), rpmfcHelper(), rpmfcSCRIPT(), and unsatisfiedDepend().
int rpmdsSysinfo | ( | rpmPRCO | PRCO, |
const char * | fn | ||
) |
Load sysinfo dependencies into a dependency set.
*PRCO | provides/requires/conflicts/obsoletes depedency set(s) |
fn | path to file (NULL uses /etc/rpm/sysinfo) |
Definition at line 1758 of file rpmds.c.
References _ETC_RPM_SYSINFO, _free(), _sysinfo_path, alloca(), rpmdsSysinfoFile(), rpmExpand(), rpmGetPath(), RPMTAG_PROVIDENAME, Stat(), tagValue(), and xstrdup().
Referenced by main(), rpmds_Sysinfo(), rpmShowRC(), and rpmtsPRCO().
Return current dependency type.
ds | dependency set |
Definition at line 702 of file rpmds.c.
Referenced by rpmds_iternext(), rpmds_TagN(), rpmdsMergePRCO(), rpmdsType(), rpmfcFileDep(), rpmfcMergePR(), rpmtsSolve(), and unsatisfiedDepend().
Create, load and initialize a dependency for this header.
h | header |
tagN | type of dependency |
Flags | comparison flags |
Definition at line 513 of file rpmds.c.
References _free(), alloca(), headerGet(), headerNEVRA(), _HE_s::p, rpmDataType_u::ptr, rpmdsGetPool(), rpmdsLink(), rpmdsNewDNEVR(), rpmdsTagName(), RPMTAG_ARCH, RPMTAG_BUILDTIME, RPMTAG_DISTEPOCH, RPMTAG_EPOCH, RPMTAG_NAME, RPMTAG_PROVIDENAME, stpcpy(), rpmDataType_u::str, _HE_s::tag, rpmDataType_u::ui32p, xmalloc, and xstrdup().
Referenced by cacheStashLatest(), hdr_dsOfHeader(), parseSpec(), rpmdsNew(), rpmHeadersIdentical(), and rpmtsAddInstallElement().
const char* rpmdsType | ( | const rpmds | ds | ) |
Return current dependency type name.
ds | dependency set |
Definition at line 162 of file rpmds.c.
References rpmdsTagN(), and rpmdsTagName().
Referenced by rpmdepPrint(), rpmds_Type_get(), rpmdsPrint(), and rpmdsPrintResults().
Unreference a dependency set instance.
ds | dependency set |
msg |
int rpmEVRcmp | ( | const char * | a, |
const char * | b | ||
) |
Segmented string compare.
a | 1st string |
b | 2nd string |
Definition at line 87 of file rpmevr.c.
References _invert_digits_alphas_comparison, MAX, xisdigit(), and xisrpmalpha().
Compare EVR containers for equality.
a | 1st EVR container |
b | 2nd EVR container |
Definition at line 274 of file rpmevr.c.
References _, compare_values(), rpmEVRorder(), rpmlog(), RPMLOG_WARNING, RPMSENSE_EQUAL, RPMSENSE_GREATER, and RPMSENSE_LESS.
Referenced by addReqProv(), evrCompare(), labelCompare(), pointRpmEVR(), rpmEVRoverlap(), and rpmfcHelper().
EVR_t rpmEVRnew | ( | uint32_t | Flags, |
int | initialize | ||
) |
Create a new EVR container.
Flags | EVR inequality flags |
initialize | Should empty defaults be initialized? |
Definition at line 31 of file rpmevr.c.
References xcalloc().
Referenced by addReqProv(), evrCompare(), evrSplit(), labelCompare(), nwlookupTag(), PRCOsqlTag(), rpmfcHelper(), and wnlookupTag().
Compare EVR containers for overlap.
a | 1st EVR container |
b | 2nd EVR container |
Definition at line 333 of file rpmevr.c.
References rpmEVRcompare(), RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, and RPMSENSE_NOTEQUAL.
Referenced by nwlookupTag(), and wnlookupTag().
int rpmEVRparse | ( | const char * | evrstr, |
EVR_t | evr | ||
) |
Split EVR string into epoch, version, and release components.
evrstr | [epoch:]version[-release] string |
*evr | parse results |
Definition at line 179 of file rpmevr.c.
References mireRegexec(), mireSetEOptions(), rpmEVRmire(), and xstrdup().
Referenced by addReqProv(), dpkgEVRparse(), evrCompare(), evrSplit(), nwlookupTag(), parseRCPOT(), pointRpmEVR(), PRCOsqlTag(), rpmdsCompare(), rpmfcHelper(), and wnlookupTag().
nsType rpmnsArch | ( | const char * | str | ) |
Is string a known arch suffix?
str | string |
Definition at line 70 of file rpmns.c.
References _free(), rpmExpand(), RPMNS_TYPE_ARCH, RPMNS_TYPE_UNKNOWN, and xisspace().
Referenced by rpmnsClassify().
nsType rpmnsClassify | ( | const char * | s, |
size_t | slen | ||
) |
Classify a string as a dependency type.
s | string like "bing(bang).boom" |
slen | string length (0 uses strlen(s)) |
Definition at line 197 of file rpmns.c.
References RPMNS_TYPE_ARCH, RPMNS_TYPE_COMPOUND, RPMNS_TYPE_DSO, RPMNS_TYPE_FUNCTION, RPMNS_TYPE_NAMESPACE, RPMNS_TYPE_PATH, RPMNS_TYPE_STRING, RPMNS_TYPE_UNKNOWN, RPMNS_TYPE_VERSION, rpmnsArch(), rpmnsProbe(), _rpmnsProbes_s::Type, and xisdigit().
Referenced by rpmnsParse().
int rpmnsParse | ( | const char * | str, |
rpmns | ns | ||
) |
Expand and split NS(N).A string into namespace, name and arch components.
s | string like "bing(bang).boom" |
*ns | parse results |
Definition at line 236 of file rpmns.c.
References rpmExpand(), RPMNS_TYPE_ACCESS, RPMNS_TYPE_ARCH, RPMNS_TYPE_COMPOUND, RPMNS_TYPE_CONFIG, RPMNS_TYPE_CPUINFO, RPMNS_TYPE_DIGEST, RPMNS_TYPE_DISKSPACE, RPMNS_TYPE_DSO, RPMNS_TYPE_ENVVAR, RPMNS_TYPE_FUNCTION, RPMNS_TYPE_GETCONF, RPMNS_TYPE_GNUPG, RPMNS_TYPE_GROUP, RPMNS_TYPE_MACRO, RPMNS_TYPE_MOUNTED, RPMNS_TYPE_NAMESPACE, RPMNS_TYPE_PATH, RPMNS_TYPE_RPMLIB, RPMNS_TYPE_RUNNING, RPMNS_TYPE_SANITY, RPMNS_TYPE_SIGNATURE, RPMNS_TYPE_SONAME, RPMNS_TYPE_STRING, RPMNS_TYPE_TAG, RPMNS_TYPE_UNAME, RPMNS_TYPE_UNKNOWN, RPMNS_TYPE_USER, RPMNS_TYPE_VCHECK, RPMNS_TYPE_VERIFY, RPMNS_TYPE_VERSION, and rpmnsClassify().
Referenced by rpmdsNewN().
nsType rpmnsProbe | ( | const char * | s, |
size_t | slen | ||
) |
Is string a known probe namespace?
s | string |
slen | string length (0 uses strlen(s)) |
Definition at line 170 of file rpmns.c.
References _rpmnsProbes_s::NS, _rpmnsProbes_s::NSlen, RPMNS_TYPE_UNKNOWN, rpmnsProbes, rpmnsProbesCount, and _rpmnsProbes_s::Type.
Referenced by rpmnsClassify().
const char* _sysinfo_path |
Definition at line 1743 of file rpmds.c.
Referenced by rpmdsSysinfo(), rpmnsClean(), and rpmShowRC().
int(* rpmvercmp)(const char *a, const char *b) |
Segmented string compare vector.
a | 1st string |
b | 2nd string |
Definition at line 373 of file rpmevr.c.
Referenced by compare_values(), rpmdsCompare(), and rpmVersionCompare().