From 56140dc8cacd341dc5b30f411057a507a11715ed Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Tue, 28 Jan 2014 13:44:56 +0100 Subject: [PATCH] support ADD_NO_AUTOPRODUCTS in repo_autopattern, use in rpmdb2solv --- ext/repo_autopattern.c | 7 +++++-- ext/repo_autopattern.h | 2 ++ tools/rpmdb2solv.c | 3 +-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ext/repo_autopattern.c b/ext/repo_autopattern.c index 88db3597..10289476 100644 --- a/ext/repo_autopattern.c +++ b/ext/repo_autopattern.c @@ -73,6 +73,9 @@ repo_add_autopattern(Repo *repo, int flags) queue_init(&prdq); queue_init(&prdq2); + if (repo == pool->installed) + flags |= ADD_NO_AUTOPRODUCTS; /* no auto products for installed repos */ + pattern_id = pool_str2id(pool, "pattern()", 9); product_id = pool_str2id(pool, "product()", 9); FOR_REPO_SOLVABLES(repo, p, s) @@ -226,8 +229,8 @@ repo_add_autopattern(Repo *repo, int flags) queue_free(&patq); queue_free(&patq2); - if (repo == pool->installed) - queue_empty(&prdq2); /* no auto products for installed repos */ + if ((flags & ADD_NO_AUTOPRODUCTS) != 0) + queue_empty(&prdq2); for (i = 0; i < prdq2.count; i += 2) { diff --git a/ext/repo_autopattern.h b/ext/repo_autopattern.h index 2e048b61..b9cbada8 100644 --- a/ext/repo_autopattern.h +++ b/ext/repo_autopattern.h @@ -5,4 +5,6 @@ * for further information */ +#define ADD_NO_AUTOPRODUCTS (1 << 8) + extern int repo_add_autopattern(Repo *repo, int flags); diff --git a/tools/rpmdb2solv.c b/tools/rpmdb2solv.c index 72e95ad1..2fbf558b 100644 --- a/tools/rpmdb2solv.c +++ b/tools/rpmdb2solv.c @@ -163,7 +163,6 @@ main(int argc, char **argv) pool_set_rootdir(pool, root); repo = repo_create(pool, "installed"); - pool_set_installed(pool, repo); data = repo_add_repodata(repo, 0); if (!nopacks) @@ -217,7 +216,7 @@ main(int argc, char **argv) #ifdef SUSE if (add_auto) - repo_add_autopattern(repo, 0); + repo_add_autopattern(repo, ADD_NO_AUTOPRODUCTS); #endif tool_write(repo, basefile, 0); -- 2.47.2