diff --git a/pisi/metadata.py b/pisi/metadata.py index 464824f3..bd9dda6b 100644 --- a/pisi/metadata.py +++ b/pisi/metadata.py @@ -80,7 +80,9 @@ class MetaData(XmlFile): self.package.paths = pkg.paths self.package.history = src.history # FIXME self.package.conflicts = pkg.conflicts - self.package.provides = pkg.provides + self.package.providesComar = pkg.providesComar + self.package.requiresComar = pkg.requiresComar + def read(self, filename): self.readxml(filename) diff --git a/pisi/specfile.py b/pisi/specfile.py index 96e690f3..20449189 100644 --- a/pisi/specfile.py +++ b/pisi/specfile.py @@ -129,6 +129,22 @@ class PathInfo: if not self.pathname: return False return True +class ComarProvide: + def __init__(self, node): + self.om = getNodeText(node) + self.script=getNodeAttribute(node, "script") + + def elt(self, xml): + node = xml.newNode("COMAR") + xml.addText(node, self.om) + node.setAttribute("script", self.script) + return node + + def verify(self): + if not self.om or not self.script: + return False + return True + class SourceInfo: """A structure to hold source information. Source information is located under tag in PSPEC file.""" @@ -223,8 +239,10 @@ class PackageInfo(object): self.history = [UpdateInfo(x) for x in historyElts] conflElts = getAllNodes(node, "Conflicts/Package") self.conflicts = map(getNodeText, conflElts) - provElts = getAllNodes(node, "Provides/OM") - self.provides = map(getNodeText, provElts) + provComarElts = getAllNodes(node, "Provides/COMAR") + self.providesComar = [ComarProvide(x) for x in provComarElts] + reqComarElts = getAllNodes(node, "Requires/COMAR") + self.requiresComar = map(getNodeText, reqComarElts) def elt(self, xml): node = xml.newNode("Package") @@ -247,8 +265,10 @@ class PackageInfo(object): xml.addNodeUnder(node, "History", update.elt(xml)) for conflict in self.conflicts: xml.addTextNodeUnder(node, "Conflicts/Package", conflict) - for om in self.provides: - xml.addTextNodeUnder(node, "Provides/OM", om) + for pcomar in self.providesComar: + xml.addTextNodeUnder(node, "Provides/COMAR", pcomar.elt(xml)) + for rcomar in self.requiresComar: + xml.addTextNodeUnder(node, "Requires/COMAR", rcomar) return node def verify(self):