duc[3].path = "/etc";
transaction_calc_duchanges(trans, duc, 4);
for (i = 0; i < 4; i++)
- printf("duchanges %s: %d K %d inodes\n", duc[i].path, duc[i].kbytes, duc[i].files);
+ printf("duchanges %s: %lld K %lld inodes\n", duc[i].path, duc[i].kbytes, duc[i].files);
}
#endif
return 0;
}
-
#define MODE_LIST 0
#define MODE_INSTALL 1
#define MODE_ERASE 2
char *rootdir = 0;
char *keyname = 0;
int keyname_depstr = 0;
+ int keyname_alldeps = 0; /* dnf repoquesy --alldeps */
int debuglevel = 0;
int answer, acnt = 0;
char *testcase = 0;
argc--;
argv++;
}
+ else if (argc > 1 && !strcmp(argv[1], "--alldeps"))
+ {
+ keyname_alldeps = 1; /* dnf repoquesy --alldeps */
+ argc--;
+ argv++;
+ }
else if (argc > 1 && !strcmp(argv[1], "--depstr"))
{
- keyname_depstr = 1;
+ keyname_depstr = 1; /* do literal matching instead of dep intersection */
argc--;
argv++;
}
flags |= SELECTION_FILELIST | (mode == MODE_ERASE ? SELECTION_INSTALLED_ONLY : 0);
if (keyname && keyname_depstr)
flags |= SELECTION_MATCH_DEPSTR;
- if (!keyname)
+ if (!keyname || keyname_alldeps)
rflags = selection_make(pool, &job2, argv[i], flags);
else
rflags = selection_make_matchdeps(pool, &job2, argv[i], flags, pool_str2id(pool, keyname, 1), 0);
if (!job2.count)
{
flags |= SELECTION_NOCASE;
- if (!keyname)
+ if (!keyname || keyname_alldeps)
rflags = selection_make(pool, &job2, argv[i], flags);
else
rflags = selection_make_matchdeps(pool, &job2, argv[i], flags, pool_str2id(pool, keyname, 1), 0);
printf("[using file list match for '%s']\n", argv[i]);
if (rflags & SELECTION_PROVIDES)
printf("[using capability match for '%s']\n", argv[i]);
+ if (keyname && keyname_alldeps)
+ {
+ Queue q;
+ queue_init(&q);
+ selection_solvables(pool, &job2, &q);
+ selection_make_matchsolvablelist(pool, &job2, &q, 0, pool_str2id(pool, keyname, 1), 0);
+ queue_free(&q);
+ }
queue_insertn(&job, job.count, job2.count, job2.elements);
queue_free(&job2);
}
#if defined(SUSE)
showdiskusagechanges(trans);
#endif
- printf("install size change: %d K\n", transaction_calc_installsizechange(trans));
+ printf("install size change: %lld K\n", transaction_calc_installsizechange(trans));
printf("\n");
acnt = solver_alternatives_count(solv);