Skip to content

Commit 926244b

Browse files
committed
Really add code to set dbpath in rpmdb2solv
Should have been in commit f74c5b7
1 parent c78a330 commit 926244b

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

tools/rpmdb2solv.c

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
#include <string.h>
2121
#include <unistd.h>
2222

23+
#ifdef ENABLE_RPMDB_LIBRPM
24+
#include <rpm/rpmmacro.h>
25+
#endif
26+
27+
2328
#include "pool.h"
2429
#include "repo.h"
2530
#include "repo_rpmdb.h"
@@ -64,6 +69,7 @@ main(int argc, char **argv)
6469
int nopacks = 0;
6570
int add_changelog = 0;
6671
const char *root = 0;
72+
const char *dbpath = 0;
6773
const char *refname = 0;
6874
#ifdef ENABLE_SUSEREPO
6975
char *proddir = 0;
@@ -83,7 +89,7 @@ main(int argc, char **argv)
8389
* parse arguments
8490
*/
8591

86-
while ((c = getopt(argc, argv, "ACPhnkxXr:p:o:")) >= 0)
92+
while ((c = getopt(argc, argv, "ACD:PhnkxXr:p:o:")) >= 0)
8793
switch (c)
8894
{
8995
case 'h':
@@ -92,6 +98,9 @@ main(int argc, char **argv)
9298
case 'r':
9399
root = optarg;
94100
break;
101+
case 'D':
102+
dbpath = optarg;
103+
break;
95104
case 'n':
96105
nopacks = 1;
97106
break;
@@ -160,6 +169,21 @@ main(int argc, char **argv)
160169

161170
if (root && *root)
162171
pool_set_rootdir(pool, root);
172+
#ifdef ENABLE_PUBKEY
173+
if (dbpath && *dbpath && (!nopacks || pubkeys))
174+
#else
175+
if (dbpath && *dbpath && !nopacks)
176+
#endif
177+
{
178+
#ifdef ENABLE_RPMDB_LIBRPM
179+
char *macro = solv_dupjoin("_dbpath ", dbpath, 0);
180+
rpmDefineMacro(NULL, macro, 0);
181+
free(macro);
182+
#else
183+
fprintf(stderr, "cannot set dbpath without librpm\n");
184+
exit(1);
185+
#endif
186+
}
163187

164188
repo = repo_create(pool, "installed");
165189
data = repo_add_repodata(repo, 0);

0 commit comments

Comments
 (0)