Search
j0ke.net Open Build Service
>
Projects
>
J0KE.NET
:
infrastructure
>
createrepo
> createrepo-license-to-confirm.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
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