@@ -0,0 +1,72 @@
+--- dumpMetadata.py
++++ dumpMetadata.py
+@@ -18,6 +18,7 @@
+
+ # $Id$
+
++import glob
+ import os
+ import rpm
+ import exceptions
+@@ -629,7 +630,7 @@
+
+
+
+-def generateXML(doc, node, formatns, rpmObj, sumtype):
++def generateXML(doc, node, formatns, susens, rpmObj, sumtype):
+ """takes an xml doc object and a package metadata entry node, populates a
+ package node with the md information"""
+ ns = node.ns()
+@@ -663,6 +664,27 @@
+ if rpmObj.localurl is not None:
+ location.newProp('xml:base', rpmObj.localurl)
+ location.newProp('href', rpmObj.relativepath)
++
++ eulas = glob.glob("%s.eula.*" % os.path.join(rpmObj.options['basedir'], rpmObj.relativepath))
++ if eulas is not None:
++ for eula in eulas:
++ match = re.match("(.*eula)\.(.*)", eula)
++ lang = match.group(2)
++
++ eulaContent = None
++
++ try:
++ fd = open(eula, "r")
++ eulaContent = fd.read()
++ fd.close()
++ except IOError:
++ raise MDError, "Failed read contents of %s" % eula
++
++ if eulaContent is not None:
++ eulaNode = pkgNode.newChild(susens, 'license-to-confirm', None)
++ eulaNode.newProp('lang', lang)
++ eulaNode.addContent(utf8String(eulaContent))
++
+ format = pkgNode.newChild(ns, 'format', None)
+ for tag in ['license', 'vendor', 'group', 'buildhost', 'sourcerpm']:
+ value = rpmObj.tagByName(tag)
+--- genpkgmetadata.py
++++ genpkgmetadata.py
+@@ -181,11 +181,12 @@
+ self.baseroot = self.basedoc.newChild(None, "metadata", None)
+ basens = self.baseroot.newNs('http://linux.duke.edu/metadata/common', None)
+ self.formatns = self.baseroot.newNs('http://linux.duke.edu/metadata/rpm', 'rpm')
++ self.susens = self.baseroot.newNs('http://novell.com/package/metadata/suse/common', 'suse')
+ self.baseroot.setNs(basens)
+ basefilepath = os.path.join(self.cmds['outputdir'], self.cmds['tempdir'], self.cmds['primaryfile'])
+ self.basefile = _gzipOpen(basefilepath, 'w')
+ self.basefile.write('<?xml version="1.0" encoding="UTF-8"?>\n')
+- self.basefile.write('<metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="%s">\n' %
++ self.basefile.write('<metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" xmlns:suse="http://novell.com/package/metadata/suse/common" packages="%s">\n' %
+ self.pkgcount)
+
+ def _setupFilelists(self):
+@@ -223,7 +224,7 @@
+ errorprint('\n%s - %s' % (e, file))
+ return None
+ try:
+- basenode = dumpMetadata.generateXML(self.basedoc, self.baseroot, self.formatns, mdobj, self.cmds['sumtype'])
++ basenode = dumpMetadata.generateXML(self.basedoc, self.baseroot, self.formatns, self.susens, mdobj, self.cmds['sumtype'])
+ except dumpMetadata.MDError, e:
+ errorprint(_('\nAn error occurred creating primary metadata: %s') % e)
+ return None
|