Files | |
file | rpmps.h |
Structures and prototypes used for an "rpmps" problem set. | |
Typedefs | |
typedef enum rpmprobFilterFlags_e | rpmprobFilterFlags |
typedef struct rpmps_s * | rpmps |
Transaction problems found while processing a transaction set/. | |
typedef enum rpmProblemType_e | rpmProblemType |
Enumerate transaction set problem types. | |
Enumerations | |
enum | rpmprobFilterFlags_e { RPMPROB_FILTER_NONE = 0, RPMPROB_FILTER_IGNOREOS = (1 << 0), RPMPROB_FILTER_IGNOREARCH = (1 << 1), RPMPROB_FILTER_REPLACEPKG = (1 << 2), RPMPROB_FILTER_FORCERELOCATE = (1 << 3), RPMPROB_FILTER_REPLACENEWFILES = (1 << 4), RPMPROB_FILTER_REPLACEOLDFILES = (1 << 5), RPMPROB_FILTER_OLDPACKAGE = (1 << 6), RPMPROB_FILTER_DISKSPACE = (1 << 7), RPMPROB_FILTER_DISKNODES = (1 << 8) } |
enum | rpmProblemType_e { RPMPROB_BADARCH, RPMPROB_BADOS, RPMPROB_PKG_INSTALLED, RPMPROB_BADRELOCATE, RPMPROB_REQUIRES, RPMPROB_CONFLICT, RPMPROB_NEW_FILE_CONFLICT, RPMPROB_FILE_CONFLICT, RPMPROB_OLDPACKAGE, RPMPROB_DISKSPACE, RPMPROB_DISKNODES } |
Enumerate transaction set problem types. More... | |
Functions | |
rpmProblem | rpmProblemCreate (rpmProblemType type, const char *pkgNEVR, fnpyKey key, const char *dn, const char *bn, const char *altNEVR, uint64_t number) |
Create a problem item. | |
rpmProblem | rpmProblemFree (rpmProblem prob) |
Destroy a problem item. | |
const char * | rpmProblemGetPkgNEVR (const rpmProblem prob) |
Return package NEVR. | |
const char * | rpmProblemGetAltNEVR (const rpmProblem prob) |
Return related (e.g. | |
rpmProblemType | rpmProblemGetType (const rpmProblem prob) |
Return type of problem (dependency, diskpace etc). | |
fnpyKey | rpmProblemGetKey (const rpmProblem prob) |
Return filename or python object address of a problem. | |
const char * | rpmProblemGetStr (const rpmProblem prob) |
Return a generic data string from a problem. | |
rpm_loff_t | rpmProblemGetDiskNeed (const rpmProblem prob) |
Return disk requirement (needed disk space / number of inodes) depending on problem type. | |
char * | rpmProblemString (const rpmProblem prob) |
Return formatted string representation of a problem. | |
rpmps | rpmpsUnlink (rpmps ps, const char *msg) |
Unreference a problem set instance. | |
rpmps | rpmpsLink (rpmps ps, const char *msg) |
Reference a problem set instance. | |
int | rpmpsNumProblems (rpmps ps) |
Return number of problems in set. | |
rpmpsi | rpmpsInitIterator (rpmps ps) |
Initialize problem set iterator. | |
rpmpsi | rpmpsFreeIterator (rpmpsi psi) |
Destroy problem set iterator. | |
int | rpmpsNextIterator (rpmpsi psi) |
Return next problem set iterator index. | |
rpmProblem | rpmpsGetProblem (rpmpsi psi) |
Return current problem from problem set. | |
rpmps | rpmpsCreate (void) |
Create a problem set. | |
rpmps | rpmpsFree (rpmps ps) |
Destroy a problem set. | |
void | rpmpsPrint (FILE *fp, rpmps ps) |
Print problems to file handle. | |
void | rpmpsAppendProblem (rpmps ps, rpmProblem prob) |
Append a problem to current set of problems. | |
void | rpmpsAppend (rpmps ps, rpmProblemType type, const char *pkgNEVR, fnpyKey key, const char *dn, const char *bn, const char *altNEVR, uint64_t number) |
Append a problem to current set of problems. | |
int | rpmpsTrim (rpmps ps, rpmps filter) |
Filter a problem set. |
typedef enum rpmprobFilterFlags_e rpmprobFilterFlags |
typedef enum rpmProblemType_e rpmProblemType |
Enumerate transaction set problem types.
typedef struct rpmps_s* rpmps |
enum rpmprobFilterFlags_e |
enum rpmProblemType_e |
Enumerate transaction set problem types.
rpmProblem rpmProblemCreate | ( | rpmProblemType | type, | |
const char * | pkgNEVR, | |||
fnpyKey | key, | |||
const char * | dn, | |||
const char * | bn, | |||
const char * | altNEVR, | |||
uint64_t | number | |||
) |
Create a problem item.
type | type of problem | |
pkgNEVR | package name | |
key | filename or python object address | |
dn | directory name | |
bn | file base name | |
altNEVR | related (e.g. through a dependency) package name | |
number | generic number attribute |
rpmProblem rpmProblemFree | ( | rpmProblem | prob | ) |
Destroy a problem item.
prob | rpm problem |
const char* rpmProblemGetAltNEVR | ( | const rpmProblem | prob | ) |
Return related (e.g.
through a dependency) package NEVR
prob | rpm problem |
rpm_loff_t rpmProblemGetDiskNeed | ( | const rpmProblem | prob | ) |
Return disk requirement (needed disk space / number of inodes) depending on problem type.
On problem types other than RPMPROB_DISKSPACE and RPMPROB_DISKNODES return value is undefined.
prob | rpm problem |
fnpyKey rpmProblemGetKey | ( | const rpmProblem | prob | ) |
Return filename or python object address of a problem.
prob | rpm problem |
const char* rpmProblemGetPkgNEVR | ( | const rpmProblem | prob | ) |
Return package NEVR.
prob | rpm problem |
const char* rpmProblemGetStr | ( | const rpmProblem | prob | ) |
Return a generic data string from a problem.
prob | rpm problem |
rpmProblemType rpmProblemGetType | ( | const rpmProblem | prob | ) |
Return type of problem (dependency, diskpace etc).
prob | rpm problem |
char* rpmProblemString | ( | const rpmProblem | prob | ) |
Return formatted string representation of a problem.
prob | rpm problem |
void rpmpsAppend | ( | rpmps | ps, | |
rpmProblemType | type, | |||
const char * | pkgNEVR, | |||
fnpyKey | key, | |||
const char * | dn, | |||
const char * | bn, | |||
const char * | altNEVR, | |||
uint64_t | number | |||
) |
Append a problem to current set of problems.
ps | problem set | |
type | type of problem | |
pkgNEVR | package name | |
key | filename or python object address | |
dn | directory name | |
bn | file base name | |
altNEVR | related (e.g. through a dependency) package name | |
number | generic number attribute |
void rpmpsAppendProblem | ( | rpmps | ps, | |
rpmProblem | prob | |||
) |
Append a problem to current set of problems.
ps | problem set | |
prob | rpmProblem |
rpmps rpmpsCreate | ( | void | ) |
Create a problem set.
Destroy problem set iterator.
psi | problem set iterator |
rpmProblem rpmpsGetProblem | ( | rpmpsi | psi | ) |
Return current problem from problem set.
psi | problem set iterator |
Initialize problem set iterator.
ps | problem set |
Reference a problem set instance.
ps | transaction set | |
msg |
int rpmpsNextIterator | ( | rpmpsi | psi | ) |
Return next problem set iterator index.
psi | problem set iterator |
int rpmpsNumProblems | ( | rpmps | ps | ) |
Return number of problems in set.
ps | problem set |
Referenced by checkSpec().
void rpmpsPrint | ( | FILE * | fp, | |
rpmps | ps | |||
) |
Print problems to file handle.
fp | file handle (NULL uses stderr) | |
ps | problem set |
Referenced by checkSpec().
Filter a problem set.
As the problem sets are generated in an order solely dependent on the ordering of the packages in the transaction, and that ordering can't be changed, the problem sets must be parallel to one another. Additionally, the filter set must be a subset of the target set, given the operations available on transaction set. This is good, as it lets us perform this trim in linear time, rather then logarithmic or quadratic.
ps | problem set | |
filter | problem filter (or NULL) |
Unreference a problem set instance.
ps | problem set | |
msg |