/usr/include/rpm/rpmprob.h is in librpm-dev 4.12.0.1+dfsg1-3build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | #ifndef _RPMPROB_H
#define _RPMPROB_H
/** \ingroup rpmprob
* \file lib/rpmprob.h
* Structures and prototypes used for an rpm problem item.
*/
#include <stdio.h>
#include <rpm/rpmtypes.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct rpmProblem_s * rpmProblem;
/** \ingroup rpmprob
* @todo Generalize filter mechanism.
*/
enum rpmprobFilterFlags_e {
RPMPROB_FILTER_NONE = 0,
RPMPROB_FILTER_IGNOREOS = (1 << 0), /*!< from --ignoreos */
RPMPROB_FILTER_IGNOREARCH = (1 << 1), /*!< from --ignorearch */
RPMPROB_FILTER_REPLACEPKG = (1 << 2), /*!< from --replacepkgs */
RPMPROB_FILTER_FORCERELOCATE= (1 << 3), /*!< from --badreloc */
RPMPROB_FILTER_REPLACENEWFILES= (1 << 4), /*!< from --replacefiles */
RPMPROB_FILTER_REPLACEOLDFILES= (1 << 5), /*!< from --replacefiles */
RPMPROB_FILTER_OLDPACKAGE = (1 << 6), /*!< from --oldpackage */
RPMPROB_FILTER_DISKSPACE = (1 << 7), /*!< from --ignoresize */
RPMPROB_FILTER_DISKNODES = (1 << 8), /*!< from --ignoresize */
RPMPROB_FILTER_DEBIAN = (1 << 9) /*!< from --force-debian */
};
typedef rpmFlags rpmprobFilterFlags;
/** \ingroup rpmprob
* Enumerate transaction set problem types.
*/
typedef enum rpmProblemType_e {
RPMPROB_BADARCH, /*!< package ... is for a different architecture */
RPMPROB_BADOS, /*!< package ... is for a different operating system */
RPMPROB_PKG_INSTALLED, /*!< package ... is already installed */
RPMPROB_BADRELOCATE,/*!< path ... is not relocatable for package ... */
RPMPROB_REQUIRES, /*!< package ... has unsatisfied Requires: ... */
RPMPROB_CONFLICT, /*!< package ... has unsatisfied Conflicts: ... */
RPMPROB_NEW_FILE_CONFLICT, /*!< file ... conflicts between attempted installs of ... */
RPMPROB_FILE_CONFLICT,/*!< file ... from install of ... conflicts with file from package ... */
RPMPROB_OLDPACKAGE, /*!< package ... (which is newer than ...) is already installed */
RPMPROB_DISKSPACE, /*!< installing package ... needs ... on the ... filesystem */
RPMPROB_DISKNODES, /*!< installing package ... needs ... on the ... filesystem */
RPMPROB_OBSOLETES, /*!< package ... is obsoleted by ... */
} rpmProblemType;
/** \ingroup rpmprob
* Create a problem item.
* @param type type of problem
* @param pkgNEVR package name
* @param key filename or python object address
* @param altNEVR related (e.g. through a dependency) package name
* @param str generic string attribute
* @param number generic number attribute
* @return rpmProblem
*/
rpmProblem rpmProblemCreate(rpmProblemType type,
const char * pkgNEVR, fnpyKey key,
const char * altNEVR,
const char * str, uint64_t number);
/** \ingroup rpmprob
* Destroy a problem item.
* @param prob rpm problem
* @return rpm problem (NULL)
*/
rpmProblem rpmProblemFree(rpmProblem prob);
/** \ingroup rpmprob
* Reference an rpmProblem instance
* @param prob rpm problem
* @return rpm problem
*/
rpmProblem rpmProblemLink(rpmProblem prob);
/** \ingroup rpmprob
* Compare two problems for equality.
* @param ap 1st problem
* @param bp 2nd problem
* @return 1 if the problems differ, 0 otherwise
*/
int rpmProblemCompare(rpmProblem ap, rpmProblem bp);
/** \ingroup rpmprob
* Return package NEVR
* @param prob rpm problem
* @return package NEVR
*/
const char * rpmProblemGetPkgNEVR(rpmProblem prob);
/** \ingroup rpmprob
* Return related (e.g. through a dependency) package NEVR
* @param prob rpm problem
* @return related (e.g. through a dependency) package NEVR
*/
const char * rpmProblemGetAltNEVR(rpmProblem prob);
/** \ingroup rpmprob
* Return type of problem (dependency, diskpace etc)
* @param prob rpm problem
* @return type of problem
*/
rpmProblemType rpmProblemGetType(rpmProblem prob);
/** \ingroup rpmprob
* Return filename or python object address of a problem
* @param prob rpm problem
* @return filename or python object address
*/
fnpyKey rpmProblemGetKey(rpmProblem prob);
/** \ingroup rpmprob
* Return a generic data string from a problem
* @param prob rpm problem
* @return a generic data string
* @todo needs a better name
*/
const char * rpmProblemGetStr(rpmProblem prob);
/** \ingroup rpmprob
* 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.
* @param prob rpm problem
* @return disk requirement
*/
rpm_loff_t rpmProblemGetDiskNeed(rpmProblem prob);
/** \ingroup rpmprob
* Return formatted string representation of a problem.
* @param prob rpm problem
* @return formatted string (malloc'd)
*/
char * rpmProblemString(rpmProblem prob);
#ifdef __cplusplus
}
#endif
#endif /* _RPMPROB_H */
|