File createrepo-license-to-confirm.patch of Package createrepo

--- 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
openSUSE Build Service is sponsored by