1 #ifndef _RPMTS_INTERNAL_H
2 #define _RPMTS_INTERNAL_H
6 #include "lib/rpmal.h" /* XXX availablePackage */
7 #include "lib/rpmhash.h" /* XXX hashTable */
8 #include "lib/fprint.h"
10 typedef struct diskspaceInfo_s * rpmDiskSpaceInfo;
12 /* Transaction set elements information */
13 typedef struct tsMembers_s {
14 int * removedPackages; /*!< Set of packages being removed. */
15 int numRemovedPackages; /*!< No. removed package instances. */
16 int allocedRemovedPackages; /*!< Size of removed packages array. */
18 rpmal addedPackages; /*!< Set of packages being installed. */
19 int numAddedPackages; /*!< No. added package instances. */
21 rpmte * order; /*!< Packages sorted by dependencies. */
22 int orderCount; /*!< No. of transaction elements. */
23 int orderAlloced; /*!< No. of allocated transaction elements. */
24 int delta; /*!< Delta for reallocation. */
28 * The set of packages to be installed/removed atomically.
31 rpmtransFlags transFlags; /*!< Bit(s) to control operation. */
33 int (*solve) (rpmts ts, rpmds key, const void * data);
34 /*!< Search for NEVRA key. */
35 const void * solveData; /*!< Solve callback data */
37 rpmCallbackFunction notify; /*!< Callback function. */
38 rpmCallbackData notifyData; /*!< Callback private data. */
40 rpmps probs; /*!< Current problems in transaction. */
41 rpmprobFilterFlags ignoreSet;
42 /*!< Bits to filter current problems. */
44 rpmDiskSpaceInfo dsi; /*!< Per filesystem disk/inode usage. */
46 rpmdb rdb; /*!< Install database handle. */
47 int dbmode; /*!< Install database open mode. */
49 tsMembers members; /*!< Transaction set member info (order etc) */
51 int selinuxEnabled; /*!< Is SE linux enabled? */
52 int chrootDone; /*!< Has chroot(2) been been done? */
53 char * rootDir; /*!< Path to top of install tree. */
54 char * currDir; /*!< Current working directory. */
55 FD_t scriptFd; /*!< Scriptlet stdout/stderr. */
56 rpm_tid_t tid; /*!< Transaction id. */
58 rpm_color_t color; /*!< Transaction color bits. */
59 rpm_color_t prefcolor; /*!< Preferred file color. */
61 rpmVSFlags vsflags; /*!< Signature/digest verification flags. */
63 rpmKeyring keyring; /*!< Keyring in use. */
65 ARGV_t netsharedPaths; /*!< From %{_netsharedpath} */
66 ARGV_t installLangs; /*!< From %{_install_langs} */
68 struct rpmop_s ops[RPMTS_OP_MAX];
70 rpmSpec spec; /*!< Spec file control structure. */
72 int nrefs; /*!< Reference count. */
76 tsMembers rpmtsMembers(rpmts ts);
78 #endif /* _RPMTS_INTERNAL_H */