|
|
2ff057 |
#ifndef _RPMTS_INTERNAL_H
|
|
|
2ff057 |
#define _RPMTS_INTERNAL_H
|
|
|
2ff057 |
|
|
|
2ff057 |
#include <rpm/rpmts.h>
|
|
|
2ff057 |
#include <rpm/rpmstrpool.h>
|
|
|
2ff057 |
|
|
|
2ff057 |
#include "lib/rpmal.h" /* XXX availablePackage */
|
|
|
2ff057 |
#include "lib/fprint.h"
|
|
|
2ff057 |
#include "lib/rpmlock.h"
|
|
|
2ff057 |
#include "lib/rpmdb_internal.h"
|
|
|
2ff057 |
#include "lib/rpmscript.h"
|
|
|
2ff057 |
#include "lib/rpmtriggers.h"
|
|
|
2ff057 |
|
|
|
2ff057 |
typedef struct diskspaceInfo_s * rpmDiskSpaceInfo;
|
|
|
2ff057 |
|
|
|
2ff057 |
/* Transaction set elements information */
|
|
|
2ff057 |
typedef struct tsMembers_s {
|
|
|
2ff057 |
rpmstrPool pool; /*!< Global string pool */
|
|
|
2ff057 |
packageHash removedPackages; /*!< Set of packages being removed. */
|
|
|
2ff057 |
packageHash installedPackages; /*!< Set of installed packages */
|
|
|
2ff057 |
rpmal addedPackages; /*!< Set of packages being installed. */
|
|
|
2ff057 |
|
|
|
2ff057 |
rpmds rpmlib; /*!< rpmlib() dependency set. */
|
|
|
2ff057 |
rpmte * order; /*!< Packages sorted by dependencies. */
|
|
|
2ff057 |
int orderCount; /*!< No. of transaction elements. */
|
|
|
2ff057 |
int orderAlloced; /*!< No. of allocated transaction elements. */
|
|
|
2ff057 |
int delta; /*!< Delta for reallocation. */
|
|
|
2ff057 |
} * tsMembers;
|
|
|
2ff057 |
|
|
|
2ff057 |
typedef struct tsTrigger_s {
|
|
|
2ff057 |
unsigned int hdrNum;
|
|
|
2ff057 |
int index;
|
|
|
2ff057 |
} tsTrigger;
|
|
|
2ff057 |
|
|
|
2ff057 |
typedef struct tsTriggers_s {
|
|
|
2ff057 |
tsTrigger *trigger;
|
|
|
2ff057 |
int count;
|
|
|
2ff057 |
int alloced;
|
|
|
2ff057 |
} tsTriggers;
|
|
|
2ff057 |
|
|
|
2ff057 |
/** \ingroup rpmts
|
|
|
2ff057 |
* The set of packages to be installed/removed atomically.
|
|
|
2ff057 |
*/
|
|
|
2ff057 |
struct rpmts_s {
|
|
|
2ff057 |
rpmtransFlags transFlags; /*!< Bit(s) to control operation. */
|
|
|
2ff057 |
|
|
|
2ff057 |
int (*solve) (rpmts ts, rpmds key, const void * data);
|
|
|
2ff057 |
/*!< Search for NEVRA key. */
|
|
|
2ff057 |
const void * solveData; /*!< Solve callback data */
|
|
|
2ff057 |
|
|
|
2ff057 |
rpmCallbackFunction notify; /*!< Callback function. */
|
|
|
2ff057 |
rpmCallbackData notifyData; /*!< Callback private data. */
|
|
|
2ff057 |
|
|
|
2ff057 |
rpmprobFilterFlags ignoreSet;
|
|
|
2ff057 |
/*!< Bits to filter current problems. */
|
|
|
2ff057 |
|
|
|
2ff057 |
rpmDiskSpaceInfo dsi; /*!< Per filesystem disk/inode usage. */
|
|
|
2ff057 |
|
|
|
2ff057 |
rpmdb rdb; /*!< Install database handle. */
|
|
|
2ff057 |
int dbmode; /*!< Install database open mode. */
|
|
|
2ff057 |
|
|
|
2ff057 |
tsMembers members; /*!< Transaction set member info (order etc) */
|
|
|
2ff057 |
|
|
|
2ff057 |
char * rootDir; /*!< Path to top of install tree. */
|
|
|
2ff057 |
char * lockPath; /*!< Transaction lock path */
|
|
|
2ff057 |
rpmlock lock; /*!< Transaction lock file */
|
|
|
2ff057 |
FD_t scriptFd; /*!< Scriptlet stdout/stderr. */
|
|
|
2ff057 |
rpm_tid_t tid; /*!< Transaction id. */
|
|
|
2ff057 |
|
|
|
2ff057 |
rpm_color_t color; /*!< Transaction color bits. */
|
|
|
2ff057 |
rpm_color_t prefcolor; /*!< Preferred file color. */
|
|
|
2ff057 |
|
|
|
2ff057 |
rpmVSFlags vsflags; /*!< Signature/digest verification flags. */
|
|
|
2ff057 |
rpmVSFlags vfyflags; /*!< Package verification flags */
|
|
|
2ff057 |
int vfylevel; /*!< Package verification level */
|
|
|
2ff057 |
rpmKeyring keyring; /*!< Keyring in use. */
|
|
|
2ff057 |
|
|
|
2ff057 |
ARGV_t netsharedPaths; /*!< From %{_netsharedpath} */
|
|
|
2ff057 |
ARGV_t installLangs; /*!< From %{_install_langs} */
|
|
|
2ff057 |
|
|
|
2ff057 |
struct rpmop_s ops[RPMTS_OP_MAX];
|
|
|
2ff057 |
|
|
|
2ff057 |
rpmPlugins plugins; /*!< Transaction plugins */
|
|
|
2ff057 |
|
|
|
2ff057 |
int nrefs; /*!< Reference count. */
|
|
|
2ff057 |
|
|
|
2ff057 |
rpmtriggers trigs2run; /*!< Transaction file triggers */
|
|
|
2ff057 |
|
|
|
2ff057 |
int min_writes; /*!< macro minimize_writes used */
|
|
|
2ff057 |
};
|
|
|
2ff057 |
|
|
|
2ff057 |
#ifdef __cplusplus
|
|
|
2ff057 |
extern "C" {
|
|
|
2ff057 |
#endif
|
|
|
2ff057 |
|
|
|
2ff057 |
/** \ingroup rpmts
|
|
|
2ff057 |
* Return transaction global string pool handle, creating the pool if needed.
|
|
|
2ff057 |
* @param ts transaction set
|
|
|
2ff057 |
* @return string pool handle (weak ref)
|
|
|
2ff057 |
*/
|
|
|
2ff057 |
RPM_GNUC_INTERNAL
|
|
|
2ff057 |
rpmstrPool rpmtsPool(rpmts ts);
|
|
|
2ff057 |
|
|
|
2ff057 |
RPM_GNUC_INTERNAL
|
|
|
2ff057 |
tsMembers rpmtsMembers(rpmts ts);
|
|
|
2ff057 |
|
|
|
2ff057 |
/* Return rpmdb iterator with removals optionally pruned out */
|
|
|
2ff057 |
RPM_GNUC_INTERNAL
|
|
|
2ff057 |
rpmdbMatchIterator rpmtsPrunedIterator(rpmts ts, rpmDbiTagVal tag,
|
|
|
2ff057 |
const char * key, int prune);
|
|
|
2ff057 |
|
|
|
2ff057 |
RPM_GNUC_INTERNAL
|
|
|
2ff057 |
rpmal rpmtsCreateAl(rpmts ts, rpmElementTypes types);
|
|
|
2ff057 |
|
|
|
2ff057 |
/* returns -1 for retry, 0 for ignore and 1 for not found */
|
|
|
2ff057 |
RPM_GNUC_INTERNAL
|
|
|
2ff057 |
int rpmtsSolve(rpmts ts, rpmds key);
|
|
|
2ff057 |
|
|
|
2ff057 |
RPM_GNUC_INTERNAL
|
|
|
2ff057 |
rpmRC rpmtsSetupTransactionPlugins(rpmts ts);
|
|
|
2ff057 |
|
|
|
2ff057 |
RPM_GNUC_INTERNAL
|
|
|
2ff057 |
rpmRC runScript(rpmts ts, rpmte te, Header h, ARGV_const_t prefixes,
|
|
|
2ff057 |
rpmScript script, int arg1, int arg2);
|
|
|
2ff057 |
|
|
|
2ff057 |
#ifdef __cplusplus
|
|
|
2ff057 |
}
|
|
|
2ff057 |
#endif
|
|
|
2ff057 |
#endif /* _RPMTS_INTERNAL_H */
|