blob: c8d47ad0cba092817b41f9033df6c976440e8b87 (
plain)
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
|
#ifndef _RPMTS_INTERNAL_H
#define _RPMTS_INTERNAL_H
#include <rpm/rpmts.h>
#include <rpm/rpmal.h> /* XXX availablePackage/relocateFileList ,*/
#include "rpmdb/rpmhash.h" /* XXX hashTable */
#include "lib/rpmtsscore.h" /* for rpmtsScore */
extern int _cacheDependsRC;
/** \ingroup rpmts
*/
typedef struct diskspaceInfo_s * rpmDiskSpaceInfo;
/** \ingroup rpmts
*/
struct diskspaceInfo_s {
dev_t dev; /*!< File system device number. */
signed long bneeded; /*!< No. of blocks needed. */
signed long ineeded; /*!< No. of inodes needed. */
int bsize; /*!< File system block size. */
signed long long bavail; /*!< No. of blocks available. */
signed long long iavail; /*!< No. of inodes available. */
};
/** \ingroup rpmts
* Adjust for root only reserved space. On linux e2fs, this is 5%.
*/
#define adj_fs_blocks(_nb) (((_nb) * 21) / 20)
/* argon thought a shift optimization here was a waste of time... he's
probably right :-( */
#define BLOCK_ROUND(size, block) (((size) + (block) - 1) / (block))
/** \ingroup rpmts
* The set of packages to be installed/removed atomically.
*/
struct rpmts_s {
rpmtransFlags transFlags; /*!< Bit(s) to control operation. */
rpmtsType type; /*!< default, rollback, autorollback */
rpmdb sdb; /*!< Solve database handle. */
int sdbmode; /*!< Solve database open mode. */
int (*solve) (rpmts ts, rpmds key, const void * data);
/*!< Search for NEVRA key. */
const void * solveData; /*!< Solve callback data */
int nsuggests; /*!< No. of depCheck suggestions. */
const void ** suggests; /*!< Possible depCheck suggestions. */
rpmCallbackFunction notify; /*!< Callback function. */
rpmCallbackData notifyData; /*!< Callback private data. */
rpmps probs; /*!< Current problems in transaction. */
rpmprobFilterFlags ignoreSet;
/*!< Bits to filter current problems. */
unsigned int filesystemCount; /*!< No. of mounted filesystems. */
const char ** filesystems; /*!< Mounted filesystem names. */
rpmDiskSpaceInfo dsi; /*!< Per filesystem disk/inode usage. */
rpmdb rdb; /*!< Install database handle. */
int dbmode; /*!< Install database open mode. */
hashTable ht; /*!< Fingerprint hash table. */
int * removedPackages; /*!< Set of packages being removed. */
int numRemovedPackages; /*!< No. removed package instances. */
int allocedRemovedPackages; /*!< Size of removed packages array. */
rpmal addedPackages; /*!< Set of packages being installed. */
int numAddedPackages; /*!< No. added package instances. */
#ifndef DYING
rpmal availablePackages; /*!< Universe of available packages. */
int numAvailablePackages; /*!< No. available package instances. */
#endif
rpmte relocateElement; /*!< Element to use when relocating packages. */
rpmte * order; /*!< Packages sorted by dependencies. */
int orderCount; /*!< No. of transaction elements. */
int orderAlloced; /*!< No. of allocated transaction elements. */
int unorderedSuccessors; /*!< Index of 1st element of successors. */
int ntrees; /*!< No. of dependency trees. */
int maxDepth; /*!< Maximum depth of dependency tree(s). */
int selinuxEnabled; /*!< Is SE linux enabled? */
int chrootDone; /*!< Has chroot(2) been been done? */
char * rootDir; /*!< Path to top of install tree. */
char * currDir; /*!< Current working directory. */
FD_t scriptFd; /*!< Scriptlet stdout/stderr. */
int delta; /*!< Delta for reallocation. */
rpm_tid_t tid; /*!< Transaction id. */
rpm_color_t color; /*!< Transaction color bits. */
rpm_color_t prefcolor; /*!< Preferred file color. */
rpmVSFlags vsflags; /*!< Signature/digest verification flags. */
const char * fn; /*!< Current package fn. */
rpm_tag_t sigtag; /*!< Current package signature tag. */
rpm_tagtype_t sigtype; /*!< Current package signature data type. */
rpm_data_t sig; /*!< Current package signature. */
size_t siglen; /*!< Current package signature length. */
uint8_t * pkpkt;/*!< Current pubkey packet. */
size_t pkpktlen; /*!< Current pubkey packet length. */
pgpKeyID_t pksignid; /*!< Current pubkey fingerprint. */
struct rpmop_s ops[RPMTS_OP_MAX];
pgpDig dig; /*!< Current signature/pubkey parameters. */
rpmSpec spec; /*!< Spec file control structure. */
rpmtsScore score; /*!< Transaction Score (autorollback). */
int nrefs; /*!< Reference count. */
};
#endif /* _RPMTS_INTERNAL_H */
|