#include "system.h"#include <rpmio_internal.h>#include <rpmlib.h>#include <rpmmacro.h>#include <rpmds.h>#include <argv.h>#include "debug.h"

Go to the source code of this file.
Data Structures | |
| struct | cpuinfo_s |
| struct | rpmlibProvides_s |
| struct | conf |
Defines | |
| #define | DT_GNU_HASH 0x6ffffef5 |
| #define | _RPMDS_INTERNAL |
| #define | _RPMEVR_INTERNAL |
| #define | _RPMPRCO_INTERNAL |
| #define | _isspace(_c) ((_c) == ' ' || (_c) == '\t' || (_c) == '\r' || (_c) == '\n') |
| #define | _PROC_CPUINFO "/proc/cpuinfo" |
| #define | _ETC_RPM_SYSINFO "/etc/rpm/sysinfo" |
| #define | _GETCONF_PATH "/" |
| #define | _SBIN_LDCONFIG_P "/sbin/ldconfig -p" |
| #define | _LD_SO_CACHE "/etc/ld.so.cache" |
| #define | _PERL_PROVIDES "/usr/bin/find /usr/lib/perl5 | /usr/lib/rpm/perl.prov" |
Functions | |
| rpmds | XrpmdsUnlink (rpmds ds, const char *msg, const char *fn, unsigned ln) |
| rpmds | XrpmdsLink (rpmds ds, const char *msg, const char *fn, unsigned ln) |
| rpmds | rpmdsFree (rpmds ds) |
| Destroy a dependency set. | |
| static const char ** | rpmdsDupArgv (const char **argv, int argc) |
| 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, int_32 Flags) |
| Create, load and initialize a dependency for this header. | |
| rpmds | rpmdsSingle (rpmTag tagN, const char *N, const char *EVR, int_32 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 (const rpmds ds) |
| Return current dependency name. | |
| const char * | rpmdsEVR (const rpmds ds) |
| Return current dependency epoch-version-release. | |
| int_32 | 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 *evrstr, EVR_t evr)) |
| void * | rpmdsSetEVRcmp (rpmds ds, int(*EVRcmp)(const char *a, const char *b)) |
| Set EVR comparison function. | |
| uint_32 | rpmdsColor (const rpmds ds) |
| Return current dependency color. | |
| uint_32 | rpmdsSetColor (const rpmds ds, uint_32 color) |
| Set current dependency color. | |
| int_32 | rpmdsRefs (const rpmds ds) |
| Return current dependency file refs. | |
| int_32 | rpmdsSetRefs (const rpmds ds, int_32 refs) |
| Set current dependency file refs. | |
| int_32 | rpmdsResult (const rpmds ds) |
| Return current dependency comparison result. | |
| int_32 | rpmdsSetResult (const rpmds ds, int_32 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. | |
| static rpmds | rpmdsDup (const rpmds ods) |
| 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. | |
| static int | rpmdsCpuinfoCtagFlags (const char *name) |
| Return dependency format to use for a cpuinfo line. | |
| static void | rpmdsNSAdd (rpmds *dsp, const char *NS, const char *N, const char *EVR, int_32 Flags) |
| Merge a single provides, wrapping N as "NS(N)". | |
| 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. | |
| static int | rpmdsSysinfoFile (rpmPRCO PRCO, const char *fn, int tagN) |
| Merge contents of a sysinfo tag file into sysinfo dependencies. | |
| 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. | |
| static char * | sonameDep (char *t, const char *s, int isElf64) |
| Return a soname dependency constructed from an elf string. | |
| 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 | rpmdsUname (rpmds *dsp, const struct utsname *un) |
| Load uname(2) provides into a dependency set. | |
| int | rpmdsPipe (rpmds *dsp, int_32 tagN, const char *cmd) |
| Load provides from a pipe into a dependency set. | |
| static int | rpmdsNAcmp (rpmds A, rpmds B) |
| int | rpmdsCompare (const rpmds A, const rpmds B) |
| Compare two versioned dependency ranges, looking for overlap. | |
| 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. | |
Variables | |
| static int | _noisy_range_comparison_debug_message = 0 |
| Enable noisy range comparison debugging message? | |
| int | _rpmds_debug = 0 |
| int | _rpmds_nopromote = 1 |
| int | _rpmds_unspecified_epoch_noise = 0 |
| static struct cpuinfo_s | ctags [] |
| static const char * | _cpuinfo_path = NULL |
| static struct rpmlibProvides_s | rpmlibProvides [] |
| static const char * | _sysinfo_path = NULL |
| static const char * | _sysinfo_tags [] |
| static struct conf | vars [] |
| static const char * | _getconf_path = NULL |
| static const char * | _ldconfig_cmd = "/sbin/ldconfig -p" |
| static const char * | _ldconfig_cache = NULL |
| static const char * | _perldeps_cmd = NULL |
Definition in file rpmds.c.
| #define _ETC_RPM_SYSINFO "/etc/rpm/sysinfo" |
| #define _GETCONF_PATH "/" |
| #define _isspace | ( | _c | ) | ((_c) == ' ' || (_c) == '\t' || (_c) == '\r' || (_c) == '\n') |
Definition at line 94 of file rpmds.c.
Referenced by rpmdsCpuinfo(), rpmdsLdconfig(), rpmdsPipe(), and rpmdsSysinfoFile().
| #define _LD_SO_CACHE "/etc/ld.so.cache" |
| #define _PERL_PROVIDES "/usr/bin/find /usr/lib/perl5 | /usr/lib/rpm/perl.prov" |
| #define _PROC_CPUINFO "/proc/cpuinfo" |
| #define _SBIN_LDCONFIG_P "/sbin/ldconfig -p" |
| #define DT_GNU_HASH 0x6ffffef5 |
| 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 3751 of file rpmds.c.
References rpmdsCompare(), rpmdsFlags(), rpmdsFree(), rpmdsInit(), rpmdsNew(), rpmdsNext(), rpmdsSetNoPromote(), RPMNS_TYPE_ARCH, RPMSENSE_SENSEMASK, and RPMTAG_PROVIDENAME.
Referenced by handleOneTrigger(), rpmtsAddObsoletes(), rpmtsSolve(), and unsatisfiedDepend().
| time_t rpmdsBT | ( | const rpmds | ds | ) |
Return dependency build time.
| ds | dependency set |
Definition at line 746 of file rpmds.c.
Referenced by rpmds_BT().
Return current dependency color.
| ds | dependency set |
Definition at line 815 of file rpmds.c.
Referenced by checkPackageDeps(), rpmalAddProvides(), rpmds_Color(), and rpmtsAddObsoletes().
Compare two versioned dependency ranges, looking for overlap.
| A | 1st dependency | |
| B | 2nd dependency |
Definition at line 3627 of file rpmds.c.
References _, _free(), alloca(), D_, rpmdsFlags(), rpmdsNAcmp(), rpmEVRparse(), RPMMESS_DEBUG, RPMMESS_WARNING, rpmMessage, RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, RPMSENSE_NOTEQUAL, RPMSENSE_SENSEMASK, rpmvercmp, and xstrdup().
Referenced by rpmalAllSatisfiesDepend(), rpmds_richcompare(), rpmdsAnyMatchesDep(), rpmdsNVRMatchesDep(), rpmdsSearch(), rpmHeadersIdentical(), and rpmtsAddInstallElement().
| int rpmdsCount | ( | const rpmds | ds | ) |
Return dependency set count.
| ds | dependency set |
Definition at line 656 of file rpmds.c.
Referenced by main(), rpmalMakeIndex(), rpmds_Count(), 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 1281 of file rpmds.c.
References _free(), _isspace, _PROC_CPUINFO, cpuinfo_s::done, Fclose(), fdGetFILE, Ferror(), Fopen(), cpuinfo_s::name, rpmdsCpuinfoCtagFlags(), rpmdsNSAdd(), rpmExpand(), RPMSENSE_EQUAL, and xstrdup().
Referenced by main(), rpmds_Cpuinfo(), rpmShowRC(), and unsatisfiedDepend().
| static int rpmdsCpuinfoCtagFlags | ( | const char * | name | ) | [static] |
Return dependency format to use for a cpuinfo line.
| name | field name |
Definition at line 1231 of file rpmds.c.
References cpuinfo_s::done, cpuinfo_s::flags, and cpuinfo_s::name.
Referenced by rpmdsCpuinfo().
| const char* rpmdsDNEVR | ( | const rpmds | ds | ) |
Return current formatted dependency string.
| ds | dependency set |
Definition at line 677 of file rpmds.c.
Referenced by missingokTag(), printDeps(), rpmdepPrint(), rpmds_DNEVR(), rpmds_print(), rpmds_subscript(), rpmdsPrint(), rpmdsPrintResults(), rpmdsProblem(), rpmfcPrint(), rpmfiBuildFDeps(), rpmShowRC(), rpmts_SolveCallback(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), and unsatisfiedDepend().
Definition at line 972 of file rpmds.c.
References headerLink(), rpmdsDupArgv(), rpmdsLink, xcalloc(), and xmalloc().
Referenced by rpmdsMerge().
| static const char** rpmdsDupArgv | ( | const char ** | argv, | |
| int | argc | |||
| ) | [static] |
Definition at line 215 of file rpmds.c.
References stpcpy(), and xmalloc().
Referenced by rpmdsDup(), rpmdsMerge(), and rpmdsNew().
| 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 |
Definition at line 2826 of file rpmds.c.
References _free(), DT_GNU_HASH, rpmdsFree(), rpmdsSingle(), RPMELF_FLAG_SKIPPROVIDES, RPMELF_FLAG_SKIPREQUIRES, rpmExpandNumeric(), RPMTAG_PROVIDENAME, RPMTAG_PROVIDES, RPMTAG_REQUIRENAME, sonameDep(), 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 702 of file rpmds.c.
Referenced by rpmds_compare(), rpmds_EVR(), rpmds_iternext(), rpmdsProblem(), rpmfcFileDep(), rpmfcGenerateDepends(), rpmtsAddObsoletes(), rpmtsCheck(), and unsatisfiedDepend().
Find a dependency set element using binary search.
| ds | dependency set to search | |
| ods | dependency set element to find. |
Definition at line 1020 of file rpmds.c.
Referenced by rpmds_Find(), rpmdsMerge(), and rpmfcApply().
Return current dependency flags.
| ds | dependency set |
Definition at line 715 of file rpmds.c.
Referenced by handleOneTrigger(), missingokTag(), printDeps(), rpmds_Flags(), rpmds_iternext(), rpmdsAnyMatchesDep(), rpmdsCompare(), rpmdsNVRMatchesDep(), rpmfcFileDep(), rpmtsOrder(), unsatisfiedDepend(), and zapRelation().
Destroy a dependency set.
| ds | dependency set |
Definition at line 138 of file rpmds.c.
References _free(), headerFree(), headerFreeData(), rpmdsUnlink, RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, RPMTAG_TRIGGERFLAGS, RPMTAG_TRIGGERNAME, and RPMTAG_TRIGGERVERSION.
Referenced by checkPackageSet(), ensureOlder(), freePackage(), handleOneTrigger(), main(), missingokTag(), printDeps(), rpmalDel(), rpmalFree(), rpmds_dealloc(), rpmds_free(), rpmds_Sort(), rpmdsAnyMatchesDep(), rpmdsELF(), rpmdsFreePRCO(), rpmdsLdconfig(), rpmdsNSAdd(), rpmdsNVRMatchesDep(), rpmdsPipe(), rpmdsRpmlib(), rpmdsSysinfoFile(), rpmfcApply(), rpmfcFindRequiredPackages(), rpmfcFree(), rpmfcGenerateDepends(), rpmfcHelper(), rpmfcSCRIPT(), rpmfiBuildFDeps(), rpmHeadersIdentical(), rpmInstall(), rpmShowRC(), rpmtsAddAvailableElement(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), and unsatisfiedDepend().
Free dependency set(s) container.
| PRCO | dependency set(s) container |
Definition at line 2731 of file rpmds.c.
References _free(), and rpmdsFree().
Referenced by main(), rpmds_Ldconfig(), rpmds_Sysinfo(), rpmShowRC(), rpmteCleanDS(), rpmtsFree(), and unsatisfiedDepend().
Retrieve a dependency set from container.
| PRCO | dependency set(s) container | |
| tagN | type of dependency set |
Definition at line 2779 of file rpmds.c.
References RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_NAME, RPMTAG_OBSOLETENAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, and RPMTAG_TRIGGERNAME.
Referenced by main(), rpmds_Ldconfig(), rpmds_Sysinfo(), rpmShowRC(), rpmteDS(), rpmtsCheck(), rpmtsOrder(), 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 2596 of file rpmds.c.
References _free(), _GETCONF_PATH, conf::call, conf::call_name, conf::CONFSTR, errno, EXIT_FAILURE, conf::name, conf::PATHCONF, rpmdsNSAdd(), rpmExpand(), RPMSENSE_EQUAL, conf::SYSCONF, xmalloc(), and xstrdup().
Referenced by main(), rpmds_Getconf(), rpmShowRC(), and unsatisfiedDepend().
Initialize dependency set iterator.
| ds | dependency set |
Definition at line 961 of file rpmds.c.
Referenced by checkPackageDeps(), handleOneTrigger(), missingokTag(), printDeps(), rpmalAddProvides(), rpmdepPrint(), rpmds_iternext(), rpmds_print(), rpmdsAnyMatchesDep(), rpmdsMerge(), rpmdsPrint(), rpmdsPrintClosure(), rpmdsPrintResults(), rpmShowRC(), rpmteColorDS(), rpmtsAddObsoletes(), rpmtsCheck(), and rpmtsOrder().
| int rpmdsIx | ( | const rpmds | ds | ) |
Return dependency set index.
| ds | dependency set |
Definition at line 661 of file rpmds.c.
Referenced by addRelation(), rpmalAddProvides(), rpmdepPrint(), rpmds_Find(), rpmds_Ix(), 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 3112 of file rpmds.c.
References _free(), _isspace, _LD_SO_CACHE, _SBIN_LDCONFIG_P, rpmdsELF(), rpmdsFree(), rpmdsMerge(), rpmdsMergePRCO(), rpmdsSingle(), rpmExpand(), RPMTAG_PROVIDENAME, and xstrdup().
Referenced by main(), and rpmds_Ldconfig().
Merge a dependency set maintaining (N,EVR,Flags) sorted order.
| *dsp | (merged) dependency set |
| ods | dependency set to merge |
Definition at line 1052 of file rpmds.c.
References _free(), rpmdsDup(), rpmdsDupArgv(), rpmdsFind(), rpmdsInit(), rpmdsNext(), save, and xmalloc().
Referenced by rpmds_Merge(), rpmds_Sort(), rpmdsLdconfig(), rpmdsMergePRCO(), rpmdsNSAdd(), rpmdsPipe(), rpmdsRpmlib(), rpmfcFindRequiredPackages(), 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 2694 of file rpmds.c.
References rpmdsMerge(), rpmdsTagN(), RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_OBSOLETENAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_TRIGGERNAME, and tagName().
Referenced by main(), rpmdsLdconfig(), rpmdsSysinfoFile(), and unsatisfiedDepend().
| const char* rpmdsN | ( | rpmds | ds | ) |
Return current dependency name.
| ds | dependency set |
Definition at line 690 of file rpmds.c.
References rpmdsNewN().
Referenced by addRelation(), checkPackageDeps(), handleOneTrigger(), rpmalAllFileSatisfiesDepend(), rpmalAllSatisfiesDepend(), rpmds_iternext(), rpmds_N(), rpmdsProblem(), rpmfcFileDep(), rpmfcGenerateDepends(), rpmtsAddObsoletes(), rpmtsCheck(), rpmtsSolve(), and unsatisfiedDepend().
| int rpmdsNegateRC | ( | const rpmds | ds, | |
| int | rc | |||
| ) |
Negate return code for negated comparisons.
| ds | dependency set | |
| rc | postive return code |
Definition at line 3855 of file rpmds.c.
Referenced by rpmtsCheck(), and unsatisfiedDepend().
Create and load a dependency set.
| h | header | |
| tagN | type of dependency | |
| flags | scareMem(0x1), nofilter(0x2) |
Definition at line 244 of file rpmds.c.
References _free(), argvFree(), headerFreeData(), headerGetEntry(), headerGetEntryMinMemory(), headerIsEntry(), headerLink(), RPM_INT32_TYPE, rpmdsDupArgv(), rpmdsLink, rpmGenPath(), RPMTAG_ARCH, RPMTAG_BUILDTIME, RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OLDFILENAMES, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, RPMTAG_TRIGGERFLAGS, RPMTAG_TRIGGERNAME, RPMTAG_TRIGGERVERSION, urlPath(), xcalloc(), xmalloc(), and xstrdup().
Referenced by checkPackageSet(), handleOneTrigger(), hdr_dsFromHeader(), missingokTag(), printDeps(), rpmds_init(), rpmdsAnyMatchesDep(), rpmdsNewPRCO(), rpmfcGenerateDepends(), rpmfiBuildFDeps(), and rpmtsAddAvailableElement().
| char* rpmdsNewDNEVR | ( | const char * | dspfx, | |
| rpmds | ds | |||
| ) |
Return new formatted dependency string.
| dspfx | formatted dependency string prefix | |
| ds | dependency set |
Definition at line 418 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(), rpmdsThis(), and zapRelation().
| const char* rpmdsNewN | ( | rpmds | ds | ) |
Return N string, expanded if necessary.
| ds | dependency set |
Definition at line 403 of file rpmds.c.
References rpmnsParse().
Referenced by rpmdsN(), and rpmdsNewDNEVR().
Create dependency set(s) container.
| h | header |
Definition at line 2754 of file rpmds.c.
References rpmdsNew(), rpmdsThis(), RPMSENSE_EQUAL, RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_OBSOLETENAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_TRIGGERNAME, and xcalloc().
Referenced by addTE(), main(), rpmds_Ldconfig(), rpmds_Sysinfo(), rpmShowRC(), rpmtsCreate(), and unsatisfiedDepend().
| int rpmdsNext | ( | rpmds | ds | ) |
Return next dependency set iterator index.
| ds | dependency set |
Definition at line 930 of file rpmds.c.
References _free(), and rpmdsNewDNEVR().
Referenced by checkPackageDeps(), handleOneTrigger(), missingokTag(), printDeps(), rpmalAddProvides(), rpmalAllSatisfiesDepend(), rpmdepPrint(), rpmds_iternext(), rpmds_print(), rpmds_subscript(), rpmdsAnyMatchesDep(), rpmdsMerge(), rpmdsPrint(), rpmdsPrintClosure(), rpmdsPrintResults(), rpmdsSearch(), rpmfcPrint(), rpmfiBuildFDeps(), rpmShowRC(), rpmteColorDS(), rpmtsAddObsoletes(), rpmtsCheck(), and rpmtsOrder().
| 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 |
| 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 917 of file rpmds.c.
References _, RPMMESS_DEBUG, and rpmMessage.
Referenced by rpmalAllFileSatisfiesDepend(), rpmalAllSatisfiesDepend(), rpmds_Notify(), and unsatisfiedDepend().
| static void rpmdsNSAdd | ( | rpmds * | dsp, | |
| const char * | NS, | |||
| const char * | N, | |||
| const char * | EVR, | |||
| int_32 | Flags | |||
| ) | [static] |
Merge a single provides, wrapping N as "NS(N)".
| *dsp | (loaded) dependency set |
| NS | dependency name space | |
| N | name | |
| EVR | epoch:version-release | |
| Flags | comparison/context flags |
Definition at line 1258 of file rpmds.c.
References alloca(), rpmdsFree(), rpmdsMerge(), rpmdsSingle(), RPMTAG_PROVIDENAME, and stpcpy().
Referenced by rpmdsCpuinfo(), rpmdsGetconf(), and rpmdsUname().
Return dependency class type.
| ds | dependency set |
Definition at line 764 of file rpmds.c.
References RPMNS_TYPE_UNKNOWN.
Referenced by addRelation(), 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 3805 of file rpmds.c.
References alloca(), headerGetEntryMinMemory(), headerNVR(), rpmdsCompare(), rpmdsFlags(), rpmdsFree(), rpmdsSetNoPromote(), rpmdsSingle(), RPMSENSE_EQUAL, RPMSENSE_SENSEMASK, RPMTAG_EPOCH, RPMTAG_PROVIDENAME, stpcpy(), and V.
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 3466 of file rpmds.c.
References _, _free(), _isspace, _PERL_PROVIDES, rpmdsFree(), rpmdsMerge(), rpmdsSingle(), rpmEVRflags(), rpmExpand(), RPMTAG_PROVIDENAME, xisalnum(), and xstrdup().
Referenced by main().
| 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 3721 of file rpmds.c.
References D_, rpmdsDNEVR(), rpmdsEVR(), rpmdsN(), RPMMESS_DEBUG, rpmMessage, RPMPROB_CONFLICT, RPMPROB_REQUIRES, and rpmpsAppend().
Referenced by checkPackageDeps().
Return current dependency file refs.
| ds | dependency set |
Definition at line 849 of file rpmds.c.
Referenced by rpmds_Refs().
Return current dependency comparison result.
| ds | dependency set |
Definition at line 883 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 1469 of file rpmds.c.
References rpmlibProvides_s::featureEVR, rpmlibProvides_s::featureFlags, rpmlibProvides_s::featureName, rpmdsFree(), rpmdsMerge(), rpmdsSingle(), and RPMTAG_PROVIDENAME.
Referenced by main(), 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 1132 of file rpmds.c.
References rpmdsCompare(), rpmdsIx(), rpmdsNext(), rpmdsSetIx(), rpmdsSetResult(), and save.
Referenced by rpmds_Search(), rpmdsPrintClosure(), and unsatisfiedDepend().
| time_t rpmdsSetBT | ( | const rpmds | ds, | |
| time_t | BT | |||
| ) |
Set current dependency color.
| ds | dependency set | |
| color | new dependency color |
Definition at line 828 of file rpmds.c.
References xcalloc().
Referenced by rpmteColorDS().
| void* rpmdsSetEVRcmp | ( | rpmds | ds, | |
| int(*)(const char *a, const char *b) | EVRcmp | |||
| ) |
| int rpmdsSetIx | ( | rpmds | ds, | |
| int | ix | |||
| ) |
Set dependency set index.
| ds | dependency set | |
| ix | new index |
Definition at line 666 of file rpmds.c.
Referenced by rpmalAllSatisfiesDepend(), rpmds_Find(), rpmds_subscript(), rpmdsSearch(), rpmfcPrint(), rpmfiBuildFDeps(), and zapRelation().
| 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 781 of file rpmds.c.
Referenced by checkPackageSet(), handleOneTrigger(), rpmds_SetNoPromote(), rpmdsAnyMatchesDep(), and rpmdsNVRMatchesDep().
Set current dependency file refs.
| ds | dependency set | |
| refs | new dependency refs |
Definition at line 862 of file rpmds.c.
References xcalloc().
Referenced by rpmteColorDS().
Set current dependency comparison result.
| ds | dependency set | |
| result | new dependency result |
Definition at line 896 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 599 of file rpmds.c.
References rpmdsLink, rpmdsNewDNEVR(), RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_OBSOLETENAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_TRIGGERNAME, xcalloc(), and xmalloc().
Referenced by ensureOlder(), rpmds_iternext(), rpmds_Single(), rpmdsELF(), rpmdsLdconfig(), rpmdsNSAdd(), rpmdsNVRMatchesDep(), rpmdsPipe(), rpmdsRpmlib(), rpmdsSysinfoFile(), rpmfcApply(), rpmfcFindRequiredPackages(), rpmfcGenerateDepends(), rpmfcHelper(), rpmfcSCRIPT(), rpmInstall(), 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 1633 of file rpmds.c.
References _ETC_RPM_SYSINFO, _free(), alloca(), rpmdsSysinfoFile(), rpmExpand(), rpmGetPath(), RPMTAG_PROVIDENAME, Stat(), and tagValue().
Referenced by main(), rpmds_Sysinfo(), rpmShowRC(), and rpmtsCreate().
| static int rpmdsSysinfoFile | ( | rpmPRCO | PRCO, | |
| const char * | fn, | |||
| int | tagN | |||
| ) | [static] |
Merge contents of a sysinfo tag file into sysinfo dependencies.
| *PRCO | provides/requires/conflicts/obsoletes depedency set(s) |
| fn | path to file | |
| tagN | dependency set tag |
Definition at line 1494 of file rpmds.c.
References _, _isspace, Fclose(), fdGetFILE, Ferror(), Fopen(), rpmdsFree(), rpmdsMergePRCO(), rpmdsSingle(), rpmEVRflags(), RPMTAG_DIRNAMES, RPMTAG_FILELINKTOS, RPMTAG_PROVIDENAME, and xisalnum().
Referenced by rpmdsSysinfo().
Return current dependency type.
| ds | dependency set |
Definition at line 728 of file rpmds.c.
Referenced by addRelation(), rpmds_iternext(), rpmds_TagN(), rpmdsMergePRCO(), rpmdsTagName(), 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 501 of file rpmds.c.
References headerGetEntryMinMemory(), headerNVR(), RPM_INT32_TYPE, rpmdsLink, rpmdsNewDNEVR(), RPMTAG_ARCH, RPMTAG_BUILDTIME, RPMTAG_CONFLICTNAME, RPMTAG_DIRNAMES, RPMTAG_EPOCH, RPMTAG_FILELINKTOS, RPMTAG_OBSOLETENAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_TRIGGERNAME, stpcpy(), xcalloc(), xmalloc(), and xstrdup().
Referenced by hdr_dsOfHeader(), parseSpec(), rpmdsNewPRCO(), rpmHeadersIdentical(), and rpmtsAddInstallElement().
| int rpmdsUname | ( | rpmds * | dsp, | |
| const struct utsname * | un | |||
| ) |
Load uname(2) provides into a dependency set.
| *dsp | (loaded) depedency set |
| un | utsname struct (NULL calls uname(2)) |
Definition at line 3422 of file rpmds.c.
References rpmdsNSAdd(), and RPMSENSE_EQUAL.
Referenced by main(), rpmShowRC(), and unsatisfiedDepend().
| static char* sonameDep | ( | char * | t, | |
| const char * | s, | |||
| int | isElf64 | |||
| ) | [static] |
Return a soname dependency constructed from an elf string.
| t | soname dependency |
| s | elf string (NULL uses "") | |
| isElf64 | is this an ELF64 symbol? |
Definition at line 2810 of file rpmds.c.
References stpcpy().
Referenced by rpmdsELF().
const char* _cpuinfo_path = NULL [static] |
const char* _getconf_path = NULL [static] |
const char* _ldconfig_cache = NULL [static] |
const char* _ldconfig_cmd = "/sbin/ldconfig -p" [static] |
int _noisy_range_comparison_debug_message = 0 [static] |
const char* _perldeps_cmd = NULL [static] |
| int _rpmds_debug = 0 |
Definition at line 104 of file rpmds.c.
Referenced by rpmds_alloc(), rpmds_Debug(), rpmds_free(), rpmds_init(), and rpmds_new().
| int _rpmds_nopromote = 1 |
Definition at line 107 of file rpmds.c.
Referenced by checkPackageSet(), ensureOlder(), rpmtsAddObsoletes(), setEpochPromote(), and unsatisfiedDepend().
| int _rpmds_unspecified_epoch_noise = 0 |
const char* _sysinfo_path = NULL [static] |
const char* _sysinfo_tags[] [static] |
Initial value:
{
{ "processor", 0, 0 },
{ "vendor_id", 0, 0 },
{ "cpu_family", 0, 1 },
{ "model", 0, 1 },
{ "model_name", 0, 0 },
{ "stepping", 0, 1 },
{ "cpu_MHz", 0, 1 },
{ "cache_size", 0, 1 },
{ "physical_id", 0, 0 },
{ "siblings", 0, 0 },
{ "core_id", 0, 0 },
{ "cpu_cores", 0, 0 },
{ "fdiv_bug", 0, 3 },
{ "hlt_bug", 0, 3 },
{ "f00f_bug", 0, 3 },
{ "coma_bug", 0, 3 },
{ "fpu", 0, 0 },
{ "fpu_exception", 0, 3 },
{ "cpuid_level", 0, 0 },
{ "wp", 0, 3 },
{ "flags", 0, 4 },
{ "bogomips", 0, 1 },
{ NULL, 0, -1 }
}
struct rpmlibProvides_s rpmlibProvides[] [static] |
1.5.7.1