Merge pull request #15 from akozumpl/pullreq
[platform/upstream/libsolv.git] / ext / repo_rpmdb.h
1 /*
2  * Copyright (c) 2007-2008, Novell Inc.
3  *
4  * This program is licensed under the BSD license, read LICENSE.BSD
5  * for further information
6  */
7
8 #include "queue.h"
9 #include "repo.h"
10
11 struct headerToken_s;
12
13 extern int repo_add_rpmdb(Repo *repo, Repo *ref, const char *rootdir, int flags);
14 extern Id repo_add_rpm(Repo *repo, const char *rpm, int flags);
15 extern int repo_add_rpmdb_pubkeys(Repo *repo, const char *rootdir, int flags);
16 extern Id repo_add_pubkey(Repo *repo, const char *key, int flags);
17
18 #define RPMDB_REPORT_PROGRESS   (1 << 8)
19 #define RPM_ADD_WITH_PKGID      (1 << 9)
20 #define RPM_ADD_NO_FILELIST     (1 << 10)
21 #define RPM_ADD_NO_RPMLIBREQS   (1 << 11)
22 #define RPM_ADD_WITH_SHA1SUM    (1 << 12)
23 #define RPM_ADD_WITH_SHA256SUM  (1 << 13)
24 #define RPM_ADD_TRIGGERS        (1 << 14)
25 #define RPM_ADD_WITH_HDRID      (1 << 15)
26
27 #define RPM_ITERATE_FILELIST_ONLYDIRS   (1 << 0)
28 #define RPM_ITERATE_FILELIST_WITHMD5    (1 << 1)
29 #define RPM_ITERATE_FILELIST_WITHCOL    (1 << 2)
30 #define RPM_ITERATE_FILELIST_NOGHOSTS   (1 << 3)
31
32 extern void *rpm_byrpmdbid(Id rpmdbid, const char *rootdir, void **statep);
33 extern void *rpm_byfp(FILE *fp, const char *name, void **statep);
34 extern void *rpm_byrpmh(struct headerToken_s *h, void **statep);
35
36
37 extern char *rpm_query(void *rpmhandle, Id what);
38 extern void rpm_iterate_filelist(void *rpmhandle, int flags, void (*cb)(void *, const char *, int, const char *), void *cbdata);
39 extern int  rpm_installedrpmdbids(const char *rootdir, const char *index, const char *match, Queue *rpmdbidq);