createrepo: Implement --dbpath command line option --dbpath option allows to specify path to the directory with rpm database. By default createrepo uses or creates rpm database in /var/lib/rpm/ Upstream-Status: Pending Signed-off-by: Ed Bartosh --- createrepo-0.4.11.orig/genpkgmetadata.py 2015-03-30 22:18:19.904000000 +0300 +++ createrepo-0.4.11/genpkgmetadata.py 2015-03-30 22:28:49.208000000 +0300 @@ -65,6 +65,7 @@ -p, --pretty = output xml files in pretty format. --update = update existing metadata (if present) -d, --database = generate the sqlite databases. + --dbpath = specify path to rpm db directory. """) sys.exit(retval) @@ -72,10 +73,13 @@ class MetaDataGenerator: def __init__(self, cmds): self.cmds = cmds - self.ts = rpm.TransactionSet() self.pkgcount = 0 self.files = [] + if self.cmds['dbpath']: + rpm.addMacro("_dbpath", self.cmds['dbpath']) + self.ts = rpm.TransactionSet() + def _os_path_walk(self, top, func, arg): """Directory tree walk with callback function. copy of os.path.walk, fixes the link/stating problem @@ -435,6 +439,7 @@ cmds['dir-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*'] cmds['skip-symlinks'] = False cmds['pkglist'] = [] + cmds['dbpath'] = None try: gopts, argsleft = getopt.getopt(args, 'phqVvndg:s:x:u:c:o:CSi:', ['help', 'exclude=', @@ -442,7 +447,7 @@ 'baseurl=', 'groupfile=', 'checksum=', 'version', 'pretty', 'split', 'outputdir=', 'noepoch', 'checkts', 'database', 'update', - 'skip-symlinks', 'pkglist=']) + 'skip-symlinks', 'pkglist=', 'dbpath=']) except getopt.error, e: errorprint(_('Options Error: %s.') % e) usage() @@ -516,6 +521,8 @@ cmds['skip-symlinks'] = True elif arg in ['-i', '--pkglist']: cmds['pkglist'] = a + elif arg == '--dbpath': + cmds['dbpath'] = os.path.realpath(a) except ValueError, e: errorprint(_('Options Error: %s') % e)