backend/server/importlib/debPackage.py | 20 ++++++++++++++++----
backend/spacewalk/common/rhn_deb.py | 18 +++++++++++++++---
2 files changed, 31 insertions(+), 7 deletions(-)
New commits:
commit 7bd77c392ab2037348b0f558758c8f8ebe956ca4
Author: Lukáš Ďurfina <lukas.durfina(a)gmail.com>
Date: Sat May 1 20:22:36 2010 +0200
add dependency information for DEB packages
diff --git a/backend/server/importlib/debPackage.py
b/backend/server/importlib/debPackage.py
index ed22ca7..7417e95 100644
--- a/backend/server/importlib/debPackage.py
+++ b/backend/server/importlib/debPackage.py
@@ -128,10 +128,22 @@ class debBinaryPackage(headerSource.rpmBinaryPackage):
}
for k, dclass in mapping.items():
l = []
- #for dinfo in header.get(k, []):
- # finst = dclass()
- # finst.populate(dinfo)
- # l.append(finst)
+ values = header[k]
+ if values != None:
+ val = string.join(values.split(), "") # remove whitespaces
+ val = val.split(',') # split packages
+ for v in val:
+ nv = v.split('(')
+ name = nv[0]
+ # TODO FIX VERSION AND FLAGS
+ if (len(nv) > 1):
+ version = nv[1].rstrip(')')
+ else:
+ version = ''
+ hash = {'name' : name, 'version' : version,
'flags' : 0}
+ finst = dclass()
+ finst.populate(hash)
+ l.append(finst)
self[k] = l
def _populateChangeLog(self, header):
diff --git a/backend/spacewalk/common/rhn_deb.py b/backend/spacewalk/common/rhn_deb.py
index b108ecb..d7728af 100644
--- a/backend/spacewalk/common/rhn_deb.py
+++ b/backend/spacewalk/common/rhn_deb.py
@@ -129,10 +129,22 @@ class deb_Header:
return self.deb.debcontrol().get_as_string('Maintainer')
elif name == 'package_group':
return self.deb.debcontrol().get_as_string('Section')
- if self.deb.debcontrol().has_key(name):
+ elif name == 'requires':
+ if self.deb.debcontrol().has_key('Depends'):
+ return self.deb.debcontrol().get_as_string('Depends')
+ elif name == 'provides':
+ if self.deb.debcontrol().has_key('Provides'):
+ return self.deb.debcontrol().get_as_string('Provides')
+ elif name == 'conflicts':
+ if self.deb.debcontrol().has_key('Conflicts'):
+ return self.deb.debcontrol().get_as_string('Conflicts')
+ elif name == 'obsoletes':
+ if self.deb.debcontrol().has_key('Replaces'):
+ return self.deb.debcontrol().get_as_string('Replaces')
+ elif self.deb.debcontrol().has_key(name):
return self.deb.debcontrol().get_as_string(name)
- else:
- return None
+
+ return None
"""
def __setitem__(self, name, item):
self.hdr[name] = item
Show replies by thread