7 #if defined(WITH_DBSQL) 9 #elif defined(WITH_SQLITE) 13 extern const char *sqlite3_errmsg(sqlite3 *db)
15 extern int sqlite3_open(
20 extern int sqlite3_exec(
23 int (*callback)(
void*,
int,
char**,
char**),
28 extern int sqlite3_prepare(
32 sqlite3_stmt **ppStmt,
36 extern int sqlite3_reset(sqlite3_stmt *pStmt)
38 extern int sqlite3_step(sqlite3_stmt *pStmt)
40 extern int sqlite3_finalize( sqlite3_stmt *pStmt)
42 extern int sqlite3_close(sqlite3 * db)
53 #define _RPMREPO_INTERNAL 65 #define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (VERIFY_##_FLAG)) 67 #define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG)) 68 #define VSF_SET(_vsflags, _FLAG) \ 69 (*((unsigned *)&(_vsflags)) |= (RPMVSF_##_FLAG)) 70 #define VSF_CLR(_vsflags, _FLAG) \ 71 (*((unsigned *)&(_vsflags)) &= ~(RPMVSF_##_FLAG)) 75 #define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (VERIFY_##_FLAG)) 77 #define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG)) 78 #define VSF_SET(_vsflags, _FLAG) (_vsflags) |= (RPMVSF_##_FLAG) 79 #define VSF_CLR(_vsflags, _FLAG) (_vsflags) &= ~(RPMVSF_##_FLAG) 86 main(
int argc,
char *argv[])
94 #if !defined(__LCLINT__) 102 argvPrint(
"repo->directories", repo->directories, NULL);
105 if (repo->basedir == NULL)
106 repo->basedir =
xstrdup(repo->directories[0]);
109 if (repo->outputdir == NULL) {
110 if (repo->directories != NULL && repo->directories[0] != NULL)
111 repo->outputdir =
xstrdup(repo->directories[0]);
114 if (repo->outputdir == NULL)
119 if (REPO_ISSET(SPLIT) && REPO_ISSET(CHECKTS))
120 rpmrepoError(1,
_(
"--split and --checkts options are mutually exclusive"));
124 if (repo->manifests != NULL) {
125 const char ** av = repo->manifests;
128 while ((fn = *av++) != NULL) {
132 xx =
argvAdd(&repo->pkglist, fn);
139 &repo->excludeMire, &repo->nexcludes))
142 &repo->includeMire, &repo->nincludes))
146 if (repo->directories != NULL) {
156 argvPrint(
"repo->pkglist", repo->pkglist, NULL);
158 repo->pkgcount =
argvCount(repo->pkglist);
161 {
rpmts ts = repo->_ts;
167 #if defined(SUPPORT_NOSIGNATURES) 180 if (rc || REPO_ISSET(DRYRUN))
183 if (!REPO_ISSET(SPLIT)) {
186 fprintf(stdout,
_(
"repo is up to date\n"));
199 {
rpmts ts = repo->_ts;
int rpmrepoDoFinalMove(rpmrepo repo)
Rename temporary repository to final paths.
void tagClean(headerTagIndices _rpmTags)
Free memory in header tag indices.
int mireLoadPatterns(rpmMireMode mode, int tag, const char **patterns, const unsigned char *table, miRE *mirep, int *nmirep)
Load patterns from string array.
void rpmrepoError(int lvl, const char *fmt,...)
Print an error message and exit (if requested).
char * xstrdup(const char *str)
int argvAppend(ARGV_t *argvp, ARGV_t av)
Append one argv array to another.
const char ** rpmrepoGetFileList(rpmrepo repo, const char *roots[], const char *ext)
Walk file/directory trees, looking for files with an extension.
static rpmVSFlags vsflags
const char * rpmrepoRealpath(const char *lpath)
Return realpath(3) canonicalized absolute path.
int rpmrepoDoRepoMetadata(rpmrepo repo)
Write repository manifest.
int rpmrepoDoPkgMetadata(rpmrepo repo)
Write repository metadata files.
int argvCount(const ARGV_t argv)
Return no.
ARGV_t argvFree(ARGV_t argv)
Destroy an argv array.
int argvAdd(ARGV_t *argvp, ARGstr_t val)
Add a string to an argv array.
pgpVSFlags rpmVSFlags
Bit(s) to control digest and signature verification.
void argvPrint(const char *msg, ARGV_t argv, FILE *fp)
Print argv array elements.
int rpmrepoCheckTimeStamps(rpmrepo repo)
Check that repository time stamp is newer than any contained package.
rpmts rpmtsFree(rpmts ts)
Destroy transaction set, closing the database as well.
rpmts rpmtsCreate(void)
Create an empty transaction set.
Methods to handle package elements.
rpmrepo rpmrepoNew(char **av, int flags)
Create and load a repo wrapper.
rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags)
Set verify signatures flag(s).
struct rpmts_s * rpmts
The RPM Transaction Set.
Structures and prototypes used for an "rpmts" transaction set.
struct rpmrepo_s * rpmrepo
int argvSort(ARGV_t argv, int(*compar)(ARGstr_t *, ARGstr_t *))
Sort an argv array.
rpmrepo rpmrepoFree(rpmrepo repo)
Destroy a repo wrapper.
int rpmrepoTestSetupDirs(rpmrepo repo)
Test for repository sanity.