10 #include <sys/types.h>
15 #define _RPMNS_INTERNAL
38 #if defined(_RPMDS_INTERNAL)
65 int (*EVRparse) (
const char *evrstr,
EVR_t evr);
66 int (*EVRcmp) (
const char *a,
const char *
b);
83 #if defined(__LCLINT__)
90 #if defined(_RPMPRCO_INTERNAL)
126 #if defined(__LCLINT__)
150 #define rpmdsUnlink(_ds, _msg) \
151 ((rpmds)rpmioUnlinkPoolItem((rpmioItem)(_ds), _msg, __FILE__, __LINE__))
162 #define rpmdsLink(_ds, _msg) \
163 ((rpmds)rpmioLinkPoolItem((rpmioItem)(_ds), _msg, __FILE__, __LINE__))
173 #define rpmdsFree(_ds) \
174 ((rpmds)rpmioFreePoolItem((rpmioItem)(_ds), __FUNCTION__, __FILE__, __LINE__))
368 int (*EVRparse)(
const char *everstr,
EVR_t evr))
379 int (*EVRcmp)(
const char *a,
const char *
b))
617 int (*add) (
void * context,
rpmds ds),
void * context)
620 #define RPMELF_FLAG_SKIPPROVIDES 0x1
621 #define RPMELF_FLAG_SKIPREQUIRES 0x2
644 int rpmdsRldpath(
rpmPRCO PRCO,
const char * rldp)
656 int rpmdsCrle(
rpmPRCO PRCO,
const char * fn)
const char * _cpuinfo_path
rpmds rpmdsInit(rpmds ds)
Initialize dependency set iterator.
const char * rpmdsA(const rpmds ds)
Return current dependency arch.
rpmds rpmdsThis(Header h, rpmTag tagN, evrFlags Flags)
Create, load and initialize a dependency for this header.
int rpmdsMergePRCO(void *context, rpmds ds)
Merge provides/requires/conflicts/obsoletes dependencies.
int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
Compare package name-version-release from header with a single dependency.
char * rpmdsNewDNEVR(const char *dspfx, rpmds ds)
Return new formatted dependency string.
rpmint32_t rpmdsSetResult(const rpmds ds, rpmint32_t result)
Set current dependency comparison result.
enum nsType_e nsType
Dependency types.
const char const char * cmd
int rpmdsSysinfo(rpmPRCO PRCO, const char *fn)
Load sysinfo dependencies into a dependency set.
int rpmdsPipe(rpmds *dsp, rpmTag tagN, const char *cmd)
Load provides from a pipe into a dependency set.
time_t rpmdsSetBT(const rpmds ds, time_t BT)
Set dependency build time.
int rpmdsSetIx(rpmds ds, int ix)
Set dependency set index.
evrFlags rpmdsFlags(const rpmds ds)
Return current dependency flags.
const char * rpmdsNewN(rpmds ds)
Return N string, expanded if necessary.
int rpmdsNInclude(const rpmds ds)
Return no.
int rpmdsIx(const rpmds ds)
Return dependency set index.
Structure(s) and routine(s) used for classifying and parsing names.
struct rpmps_s * rpmps
Transaction problems found while processing a transaction set/.
struct rpmds_s * rpmds
Dependency tag sets from a header, so that a header can be discarded early.
struct rpmPRCO_s * rpmPRCO
Container for commonly extracted dependency set(s).
int rpmdsELF(const char *fn, int flags, int(*add)(void *context, rpmds ds), void *context)
Extract ELF dependencies from a file.
nsType rpmdsNSType(const rpmds ds)
Return dependency class type.
const char * rpmdsType(const rpmds ds)
Return current dependency type name.
enum evrFlags_e evrFlags
Dependency Attributes.
void * rpmdsInclude(const rpmds ds)
Return dependency include patterns.
int rpmdsFind(rpmds ds, const rpmds ods)
Find a dependency set element using binary search.
#define rpmdsLink(_ds, _msg)
rpmuint32_t rpmdsSetColor(const rpmds ds, rpmuint32_t color)
Set current dependency color.
Structures and prototypes used for an "rpmps" problem set.
int rpmdsCount(const rpmds ds)
Return dependency set count.
rpmTag rpmdsTagN(const rpmds ds)
Return current dependency type.
#define rpmdsUnlink(_ds, _msg)
rpmint32_t rpmdsResult(const rpmds ds)
Return current dependency comparison result.
int rpmdsSearch(rpmds ds, rpmds ods)
Search a sorted dependency set for an element that overlaps.
rpmds rpmdsNew(Header h, rpmTag tagN, int flags)
Create and load a dependency set.
int rpmdsCompare(const rpmds A, const rpmds B)
Compare two versioned dependency ranges, looking for overlap.
int rpmdsNoPromote(const rpmds ds)
Return current "Don't promote Epoch:" flag.
static int rpmdsPrintClosure(rpmds P, rpmds R, FILE *fp)
Check Provides: against Requires: and print closure results.
int rpmdsGetconf(rpmds *dsp, const char *path)
Load getconf provides into a dependency set.
const char * _sysinfo_path
rpmds rpmdsFromPRCO(rpmPRCO PRCO, rpmTag tagN)
Retrieve a dependency set from container.
int rpmdsNExclude(const rpmds ds)
Return no.
int rpmdsNext(rpmds ds)
Return next dependency set iterator index.
int rpmdsLdconfig(rpmPRCO PRCO, const char *fn)
Load /etc/ld.so.cache provides into a dependency set.
const char const bson int mongo_write_concern int flags
rpmds rpmdsSingle(rpmTag tagN, const char *N, const char *EVR, evrFlags Flags)
Create, load and initialize a dependency set of size 1.
rpmuint32_t rpmdsColor(const rpmds ds)
Return current dependency color.
int rpmdsRpmlib(rpmds *dsp, void *tblp)
Load rpmlib provides into a dependency set.
void * rpmdsExclude(const rpmds ds)
Return dependency exclude patterns.
static int rpmdsPrintResults(rpmds ds, FILE *fp)
Print current dependency set results.
int rpmdsMatch(const rpmds A, rpmds B)
Compare A against every member of B, looking for 1st match.
Structure(s) and routine(s) used for EVR parsing and comparison.
void * rpmdsSetEVRcmp(rpmds ds, int(*EVRcmp)(const char *a, const char *b))
Set EVR comparison function.
int rpmdsUname(rpmds *dsp, const struct utsname *un)
int rpmdsSetNoPromote(rpmds ds, int nopromote)
Set "Don't promote Epoch:" flag.
rpmuint32_t rpmdsRefs(const rpmds ds)
Return current dependency file refs.
const char * rpmdsEVR(const rpmds ds)
Return current dependency epoch-version-release.
int rpmdsMerge(rpmds *dsp, rpmds ods)
Merge a dependency set maintaining (N,EVR,Flags) sorted order.
const char * rpmdsDNEVR(const rpmds ds)
Return current formatted dependency string.
time_t rpmdsBT(const rpmds ds)
Return dependency build time.
void rpmdsNotify(rpmds ds, const char *where, int rc)
Notify of results of dependency match.
void * rpmdsSetEVRparse(rpmds ds, int(*EVRparse)(const char *everstr, EVR_t evr))
Set EVR parsing function.
const char * rpmdsN(rpmds ds)
Return current dependency name.
int rpmdsAnyMatchesDep(const Header h, const rpmds req, int nopromote)
Compare package provides dependencies from header with a single dependency.
rpmPRCO rpmdsNewPRCO(Header h)
Create dependency set(s) container.
rpmuint32_t rpmdsSetRefs(const rpmds ds, rpmuint32_t refs)
Set current dependency file refs.
void rpmdsProblem(rpmps ps, const char *pkgNEVR, const rpmds ds, const fnpyKey *suggestedKeys, int adding)
Report a Requires: or Conflicts: dependency problem.
static int rpmdsPrint(rpmds ds, FILE *fp)
Print current dependency set contents.
rpmPRCO rpmdsFreePRCO(rpmPRCO PRCO)
Free dependency set(s) container.
int rpmdsCpuinfo(rpmds *dsp, const char *fn)
Load /proc/cpuinfo provides into a dependency set.
int rpmdsNegateRC(const rpmds ds, int rc)
Negate return code for negated comparisons.