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)
89 main(
int argc,
char *argv[])
97 #if !defined(__LCLINT__)
105 argvPrint(
"repo->directories", repo->directories, NULL);
108 if (repo->basedir == NULL)
109 repo->basedir =
xstrdup(repo->directories[0]);
112 if (repo->outputdir == NULL) {
113 if (repo->directories != NULL && repo->directories[0] != NULL)
114 repo->outputdir =
xstrdup(repo->directories[0]);
117 if (repo->outputdir == NULL)
122 if (REPO_ISSET(SPLIT) && REPO_ISSET(CHECKTS))
123 rpmrepoError(1,
_(
"--split and --checkts options are mutually exclusive"));
127 if (repo->manifests != NULL) {
128 const char ** av = repo->manifests;
131 while ((fn = *av++) != NULL) {
135 xx =
argvAdd(&repo->pkglist, fn);
142 &repo->excludeMire, &repo->nexcludes))
145 &repo->includeMire, &repo->nincludes))
149 if (repo->directories != NULL) {
159 argvPrint(
"repo->pkglist", repo->pkglist, NULL);
161 repo->pkgcount =
argvCount(repo->pkglist);
170 #if defined(SUPPORT_NOSIGNATURES)
183 if (rc || REPO_ISSET(DRYRUN))
186 if (!REPO_ISSET(SPLIT)) {
189 fprintf(stdout,
_(
"repo is up to date\n"));
int rpmrepoDoFinalMove(rpmrepo repo)
Rename temporary repository to final paths.
int mireLoadPatterns(rpmMireMode mode, int tag, const char **patterns, const unsigned char *table, miRE *mirep, int *nmirep)
Load patterns from string array.
const char bson_timestamp_t * ts
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.