Eliminate remaining signature checking bits from rpmts
[platform/upstream/rpm.git] / lib / rpmts_internal.h
1 #ifndef _RPMTS_INTERNAL_H
2 #define _RPMTS_INTERNAL_H
3
4 #include <rpm/rpmts.h>
5 #include <rpm/rpmal.h>  /* XXX availablePackage/relocateFileList ,*/
6
7 #include "rpmio/rpmkeyring.h"
8 #include "lib/rpmhash.h"        /* XXX hashTable */
9
10 /** \ingroup rpmts
11  */
12 typedef struct diskspaceInfo_s * rpmDiskSpaceInfo;
13
14 /** \ingroup rpmts
15  */
16 struct diskspaceInfo_s {
17     dev_t dev;          /*!< File system device number. */
18     int64_t bneeded;    /*!< No. of blocks needed. */
19     int64_t ineeded;    /*!< No. of inodes needed. */
20     int64_t bsize;      /*!< File system block size. */
21     int64_t bavail;     /*!< No. of blocks available. */
22     int64_t iavail;     /*!< No. of inodes available. */
23 };
24
25 /** \ingroup rpmts
26  * Adjust for root only reserved space. On linux e2fs, this is 5%.
27  */
28 #define adj_fs_blocks(_nb)      (((_nb) * 21) / 20)
29
30 /* argon thought a shift optimization here was a waste of time...  he's
31    probably right :-( */
32 #define BLOCK_ROUND(size, block) (((size) + (block) - 1) / (block))
33
34 /** \ingroup rpmts
35  * The set of packages to be installed/removed atomically.
36  */
37 struct rpmts_s {
38     rpmtransFlags transFlags;   /*!< Bit(s) to control operation. */
39
40     rpmdb sdb;                  /*!< Solve database handle. */
41     int sdbmode;                /*!< Solve database open mode. */
42     int (*solve) (rpmts ts, rpmds key, const void * data);
43                                 /*!< Search for NEVRA key. */
44     const void * solveData;     /*!< Solve callback data */
45     int nsuggests;              /*!< No. of depCheck suggestions. */
46     const void ** suggests;     /*!< Possible depCheck suggestions. */
47
48     rpmCallbackFunction notify; /*!< Callback function. */
49     rpmCallbackData notifyData; /*!< Callback private data. */
50
51     rpmps probs;                /*!< Current problems in transaction. */
52     rpmprobFilterFlags ignoreSet;
53                                 /*!< Bits to filter current problems. */
54
55     unsigned int filesystemCount;       /*!< No. of mounted filesystems. */
56     const char ** filesystems;  /*!< Mounted filesystem names. */
57     rpmDiskSpaceInfo dsi;       /*!< Per filesystem disk/inode usage. */
58
59     rpmdb rdb;                  /*!< Install database handle. */
60     int dbmode;                 /*!< Install database open mode. */
61     hashTable ht;               /*!< Fingerprint hash table. */
62
63     int * removedPackages;      /*!< Set of packages being removed. */
64     int numRemovedPackages;     /*!< No. removed package instances. */
65     int allocedRemovedPackages; /*!< Size of removed packages array. */
66
67     rpmal addedPackages;        /*!< Set of packages being installed. */
68     int numAddedPackages;       /*!< No. added package instances. */
69
70 #ifndef DYING
71     rpmal availablePackages;    /*!< Universe of available packages. */
72     int numAvailablePackages;   /*!< No. available package instances. */
73 #endif
74
75     rpmte relocateElement;      /*!< Element to use when relocating packages. */
76
77     rpmte * order;              /*!< Packages sorted by dependencies. */
78     int orderCount;             /*!< No. of transaction elements. */
79     int orderAlloced;           /*!< No. of allocated transaction elements. */
80     int unorderedSuccessors;    /*!< Index of 1st element of successors. */
81     int ntrees;                 /*!< No. of dependency trees. */
82     int maxDepth;               /*!< Maximum depth of dependency tree(s). */
83
84     int selinuxEnabled;         /*!< Is SE linux enabled? */
85     int chrootDone;             /*!< Has chroot(2) been been done? */
86     char * rootDir;             /*!< Path to top of install tree. */
87     char * currDir;             /*!< Current working directory. */
88     FD_t scriptFd;              /*!< Scriptlet stdout/stderr. */
89     int delta;                  /*!< Delta for reallocation. */
90     rpm_tid_t tid;              /*!< Transaction id. */
91
92     rpm_color_t color;          /*!< Transaction color bits. */
93     rpm_color_t prefcolor;      /*!< Preferred file color. */
94
95     rpmVSFlags vsflags;         /*!< Signature/digest verification flags. */
96
97     const char * fn;            /*!< Current package fn. */
98
99     rpmKeyring keyring;         /*!< Keyring in use. */
100
101     struct rpmop_s ops[RPMTS_OP_MAX];
102
103     rpmSpec spec;               /*!< Spec file control structure. */
104
105     int nrefs;                  /*!< Reference count. */
106 };
107
108 #endif /* _RPMTS_INTERNAL_H */