diff options
Diffstat (limited to 'rpm-find-leaves.c')
-rw-r--r-- | rpm-find-leaves.c | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/rpm-find-leaves.c b/rpm-find-leaves.c deleted file mode 100644 index 45e2e29..0000000 --- a/rpm-find-leaves.c +++ /dev/null @@ -1,50 +0,0 @@ -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <rpm/rpmlib.h> -#include <rpm/header.h> - -static Header header; - -#define die(f) { perror(f); exit(1); } - -rpmdb open_rpmdb(void) { - rpmdb db; - if (rpmdbOpen("", &db, O_RDONLY, 0644)) die("rpmdbOpen"); - return db; -} - -char *get(int_32 tag) { - int_32 type, count; - char *s; - if (headerGetEntry(header, tag, &type, (void **) &s, &count) != 1) die("bad header ??"); - return s; -} - - -int main() { - rpmTransactionSet trans; - struct rpmDependencyConflict *conflicts; - int numConflicts; - rpmdb db; - int i; - rpmdbMatchIterator mi; - - rpmReadConfigFiles(NULL, NULL); - - db = open_rpmdb(); - - while(header = rpmdbNextIterator(mi)) { - trans = rpmtransCreateSet(db, NULL); - i=rpmdbGetIteratorOffset(mi); - rpmtransRemovePackage(trans, i); - if (rpmdepCheck(trans, &conflicts, &numConflicts)) die("rpmdepCheck"); - if (numConflicts == 0) { - printf("%s-%s-%s\n", get(RPMTAG_NAME), get(RPMTAG_VERSION), get(RPMTAG_RELEASE)); - headerFree(header); - } - rpmdepFreeConflicts(conflicts, numConflicts); - rpmtransFree(trans); - } - exit(0); -} |