[Rpm-metadata] createrepo/__init__.py createrepo/yumbased.py
Seth Vidal
skvidal at linux.duke.edu
Mon Mar 3 15:59:54 UTC 2008
createrepo/__init__.py | 18 ++++++++++++++----
createrepo/yumbased.py | 2 ++
2 files changed, 16 insertions(+), 4 deletions(-)
New commits:
commit 3af3197ed1b42c829f0d6fb8bff9503056eb45a0
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Mar 3 10:58:52 2008 -0500
exclude rpmlib requires from metadata b/c they are silly
store them in the repomd.xml per-repo so we have them if we ever actually need them
diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index e91cf85..7c46346 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -104,7 +104,8 @@ class MetaDataGenerator:
self.ts = rpmUtils.transaction.initReadOnlyTransaction()
self.pkgcount = 0
self.files = []
-
+ self.rpmlib_reqs = {}
+
if not self.conf.directory and not self.conf.directories:
raise MDError, "No directory given on which to run."
@@ -394,9 +395,12 @@ class MetaDataGenerator:
po.crp_cachedir = self.conf.cachedir
po.crp_baseurl = baseurl
po.crp_reldir = reldir
-
+ for r in po.requires_print:
+ if r.startswith('rpmlib('):
+ self.rpmlib_reqs[r] = 1
+
if po.checksum in (None, ""):
- raise MDError, "No Package ID found for package %s, not going to add it" % e
+ raise MDError, "No Package ID found for package %s, not going to add it" % po
return po
@@ -677,7 +681,13 @@ class MetaDataGenerator:
if self.conf.groupfile is not None:
self.addArbitraryMetadata(self.conf.groupfile, 'group_gz', reporoot)
self.addArbitraryMetadata(self.conf.groupfile, 'group', reporoot, compress=False)
-
+
+ if self.rpmlib_reqs:
+ rpmlib = reporoot.newChild(None, 'rpmlib_requirements', None)
+ for r in self.rpmlib_reqs.keys():
+ req = rpmlib.newChild(None, 'requires', r)
+
+
# save it down
try:
repodoc.saveFormatFileEnc(repofilepath, 'UTF-8', 1)
diff --git a/createrepo/yumbased.py b/createrepo/yumbased.py
index 17af4e6..58d2405 100644
--- a/createrepo/yumbased.py
+++ b/createrepo/yumbased.py
@@ -338,6 +338,8 @@ class CreateRepoPackage(YumLocalPackage):
if mylist: msg = "\n <rpm:requires>\n"
for (name, flags, (e,v,r),pre) in mylist:
+ if name.startswith('rpmlib('):
+ continue
prcostring = ''' <rpm:entry name="%s"''' % name
if flags:
prcostring += ''' flags="%s"''' % flags
More information about the Rpm-metadata
mailing list