Hello community, here is the log from the commit of package createrepo for openSUSE:Factory checked in at Tue Mar 16 15:44:25 CET 2010. -------- --- createrepo/createrepo.changes 2010-03-16 10:43:52.000000000 +0100 +++ /mounts/work_src_done/STABLE/createrepo/createrepo.changes 2009-05-01 02:19:06.000000000 +0200 @@ -2,13 +1,0 @@ -Mon Mar 15 12:01:39 UTC 2010 - mbarringer@novell.com - -- Updating to the latest source - + Adds repo tags to the generated metadata - + Adds a --repo option to describe this metadata - + Adds bash completion - -------------------------------------------------------------------- -Wed Oct 14 14:11:51 UTC 2009 - dmacvicar@novell.com - -- update to 0.9.8, disable all patches for now - -------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- createrepo-0.9.8.tar.bz2 New: ---- createrepo-0.4.11-cache_utime.patch createrepo-0.4.11-cachefix.patch createrepo-0.4.11-filenamefix.patch createrepo-0.4.11-fixsymlinks.patch createrepo-0.4.11-hashfix.patch createrepo-0.4.11-license-to-confirm.patch createrepo-0.4.11-missing-tags.patch createrepo-0.4.11-modifyrepo-prettyxml.patch createrepo-0.4.11-suse-changelogs.patch createrepo-0.4.11.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ createrepo.spec ++++++ --- /var/tmp/diff_new_pack.INkNGZ/_old 2010-03-16 15:44:16.000000000 +0100 +++ /var/tmp/diff_new_pack.INkNGZ/_new 2010-03-16 15:44:16.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package createrepo (Version 0.9.8) +# spec file for package createrepo (Version 0.4.11) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,26 +20,25 @@ Name: createrepo BuildRequires: python -Version: 0.9.8 -Release: 1 +Version: 0.4.11 +Release: 82 License: GPLv2+ Summary: Creates a Common Metadata Repository Group: System/Packages Source: %{name}-%{version}.tar.bz2 Source1: createrepo-rpmlintrc -#Patch0: createrepo-0.4.11-missing-tags.patch -#Patch1: createrepo-0.4.11-suse-changelogs.patch -#Patch2: createrepo-0.4.11-modifyrepo-prettyxml.patch -#Patch3: createrepo-0.4.11-cache_utime.patch -#Patch4: createrepo-0.4.11-fixsymlinks.patch -#Patch5: createrepo-0.4.11-cachefix.patch -#Patch6: createrepo-0.4.11-license-to-confirm.patch -#Patch7: createrepo-0.4.11-hashfix.patch -#Patch8: createrepo-0.4.11-filenamefix.patch +Patch: createrepo-0.4.11-missing-tags.patch +Patch1: createrepo-0.4.11-suse-changelogs.patch +Patch2: createrepo-0.4.11-modifyrepo-prettyxml.patch +Patch3: createrepo-0.4.11-cache_utime.patch +Patch4: createrepo-0.4.11-fixsymlinks.patch +Patch5: createrepo-0.4.11-cachefix.patch +Patch6: createrepo-0.4.11-license-to-confirm.patch +Patch7: createrepo-0.4.11-hashfix.patch +Patch8: createrepo-0.4.11-filenamefix.patch Url: http://linux.duke.edu/metadata/ BuildRoot: %{_tmppath}/%{name}-%{version}-build -#BuildArch: noarch -Requires: yum-common >= 3.2.23 +BuildArch: noarch Requires: rpm >= 4.1.1 Requires: rpm-python Requires: libxml2-python @@ -60,29 +59,21 @@ %prep %setup -q -#%patch0 -#%patch1 -#%patch2 -#%patch3 -#%patch4 -#%patch5 -#%patch6 -#%patch7 -#%if %{suse_version} > 1100 -#%patch8 -#%endif +%patch +%patch1 +%patch2 +%patch3 +%patch4 +%patch5 +%patch6 +%patch7 +%if %{suse_version} > 1100 +%patch8 +%endif %build %install - -# fix the install paths -cp createrepo/Makefile createrepo/Makefile.old -sed -e 's,PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER),PYLIBDIR = %{py_libdir},g' createrepo/Makefile.old > createrepo/Makefile -cp createrepo/Makefile createrepo/Makefile.old -sed -e 's,PKGDIR = $(PYLIBDIR)/site-packages/$(PKGNAME),PKGDIR = %{py_sitedir}/%{name},g' createrepo/Makefile.old > createrepo/Makefile -rm createrepo/Makefile.old - %if %{suse_version} <= 1010 sed -e "s,rpm.RPMTAG_ENHANCESNAME,1159," \ -e "s,rpm.RPMTAG_ENHANCESFLAGS,1161," \ @@ -94,7 +85,7 @@ dumpMetadata.py > dumpMetadata.py.patched mv dumpMetadata.py.patched dumpMetadata.py %endif -make install DESTDIR=$RPM_BUILD_ROOT sysconfdir=/etc +make install DESTDIR=$RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT @@ -104,10 +95,7 @@ %doc ChangeLog README %{_mandir}/*/* %{_bindir}/* -%config /etc/bash_completion.d/createrepo.bash %dir %{_datadir}/%{name} %{_datadir}/%{name}/* -%dir %{py_sitedir}/createrepo -%{py_sitedir}/createrepo/* %changelog ++++++ createrepo-0.4.11-cache_utime.patch ++++++ Index: dumpMetadata.py =================================================================== --- dumpMetadata.py.orig +++ dumpMetadata.py @@ -618,6 +618,7 @@ class RpmMetaData: csumo = open(csumfile, 'r') checksum = csumo.readline() csumo.close() + os.path.os.utime(csumfile, None) else: checksum = getChecksum(self.options['sumtype'], fo) ++++++ createrepo-0.4.11-cachefix.patch ++++++ Index: dumpMetadata.py =================================================================== --- dumpMetadata.py.orig +++ dumpMetadata.py @@ -605,8 +605,8 @@ class RpmMetaData: t.append("".join(self.hdr[rpm.RPMTAG_SIGGPG])) if type(self.hdr[rpm.RPMTAG_SIGPGP]) is not types.NoneType: t.append("".join(self.hdr[rpm.RPMTAG_SIGPGP])) - if type(self.hdr[rpm.RPMTAG_HDRID]) is not types.NoneType: - t.append("".join(self.hdr[rpm.RPMTAG_HDRID])) + if type(self.hdr[rpm.RPMTAG_SHA1HEADER]) is not types.NoneType: + t.append("".join(self.hdr[rpm.RPMTAG_SHA1HEADER])) key = md5.new("".join(t)).hexdigest() ++++++ createrepo-0.4.11-filenamefix.patch ++++++ Index: dumpMetadata.py =================================================================== --- dumpMetadata.py.orig +++ dumpMetadata.py @@ -44,7 +44,7 @@ class GzipFile(gzip.GzipFile): def _write_gzip_header(self): self.fileobj.write('\037\213') # magic header self.fileobj.write('\010') # compression method - fname = self.filename[:-3] + fname = self.name[:-3] flags = 0 if fname: flags = FNAME ++++++ createrepo-0.4.11-fixsymlinks.patch ++++++ Index: genpkgmetadata.py =================================================================== --- genpkgmetadata.py.orig +++ genpkgmetadata.py @@ -99,9 +99,13 @@ class MetaDataGenerator: def extension_visitor(filelist, dirname, names): for fn in names: - if os.path.isdir(fn): - continue - if self.cmds['skip-symlinks'] and os.path.islink(fn): + if os.path.islink(dirname + '/' + fn): + if self.cmds['skip-symlinks']: + continue + elif os.path.isdir(dirname + '/' + fn): + os.path.walk(dirname + '/' + fn, extension_visitor, filelist) + continue + elif os.path.isdir(dirname + '/' + fn): continue elif fn[-extlen:].lower() == '%s' % (ext): relativepath = dirname.replace(startdir, "", 1) @@ -345,9 +349,15 @@ class SplitMetaDataGenerator(MetaDataGen def extension_visitor(arg, dirname, names): for fn in names: - if os.path.isdir(fn): + if os.path.islink(dirname + '/' + fn): + if self.cmds['skip-symlinks']: + continue + elif os.path.isdir(dirname + '/' + fn): + os.path.walk(dirname + '/' + fn, extension_visitor, arg) + continue + elif os.path.isdir(dirname + '/' + fn): continue - elif string.lower(fn[-extlen:]) == '%s' % (ext): + if string.lower(fn[-extlen:]) == '%s' % (ext): reldir = os.path.basename(dirname) if reldir == os.path.basename(directory): reldir = "" ++++++ createrepo-0.4.11-hashfix.patch ++++++ Index: dumpMetadata.py =================================================================== --- dumpMetadata.py.orig +++ dumpMetadata.py @@ -22,8 +22,6 @@ import glob import os import rpm import exceptions -import md5 -import sha import types import struct import re @@ -124,9 +122,21 @@ def getChecksum(sumtype, file, CHUNK=2** fo = open(file, 'rb', CHUNK) if sumtype == 'md5': - sum = md5.new() + try: + import hashlib + sum = hashlib.md5() + except ImportError: + # for Python < 2.6 + import md5 + sum = md5.new() elif sumtype == 'sha': - sum = sha.new() + try: + import hashlib + sum = hashlib.sha1() + except ImportError: + # for Python < 2.6 + import sha + sum = sha.new() else: raise MDError, 'Error Checksumming file, wrong checksum type %s' % sumtype chunk = fo.read @@ -609,7 +619,13 @@ class RpmMetaData: if type(self.hdr[rpm.RPMTAG_SHA1HEADER]) is not types.NoneType: t.append("".join(self.hdr[rpm.RPMTAG_SHA1HEADER])) - key = md5.new("".join(t)).hexdigest() + try: + import hashlib + key = hashlib.md5("".join(t)).hexdigest() + except ImportError: + # for Python < 2.6 + import md5 + key = md5.new("".join(t)).hexdigest() csumtag = '%s-%s-%s-%s' % (os.path.basename(self.relativepath), self.hdr[rpm.RPMTAG_SHA1HEADER], ++++++ createrepo-0.4.11-license-to-confirm.patch ++++++ Index: dumpMetadata.py =================================================================== --- dumpMetadata.py.orig +++ dumpMetadata.py @@ -18,6 +18,7 @@ # $Id$ +import glob import os import rpm import exceptions @@ -630,7 +631,7 @@ class RpmMetaData: -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() @@ -664,6 +665,27 @@ def generateXML(doc, node, formatns, rpm 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) Index: genpkgmetadata.py =================================================================== --- genpkgmetadata.py.orig +++ genpkgmetadata.py @@ -181,11 +181,12 @@ class MetaDataGenerator: 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 @@ class MetaDataGenerator: 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 ++++++ createrepo-0.4.11-missing-tags.patch ++++++ Index: dumpMetadata.py =================================================================== --- dumpMetadata.py.orig +++ dumpMetadata.py @@ -292,14 +292,10 @@ class RpmMetaData: return returnflags if type(flags) is not types.ListType: - newflag = flags & 0xf - returnflags.append(newflag) + returnflags.append(flags) else: for flag in flags: - newflag = flag - if flag is not None: - newflag = flag & 0xf - returnflags.append(newflag) + returnflags.append(flag) return returnflags def _checkPreReq(self, flags): @@ -541,37 +537,49 @@ class RpmMetaData: if names is not None: lst = zip(names, flags, ver, prereq) return self._uniq(lst) - - def obsoletesList(self): + + def tagsList(self, name, flags, version): lst = [] - names = self.hdr[rpm.RPMTAG_OBSOLETENAME] - tmpflags = self.hdr[rpm.RPMTAG_OBSOLETEFLAGS] + names = self.hdr[name] + tmpflags = self.hdr[flags] flags = self._correctFlags(tmpflags) - ver = self._correctVersion(self.hdr[rpm.RPMTAG_OBSOLETEVERSION]) + ver = self._correctVersion(self.hdr[version]) if names is not None: lst = zip(names, flags, ver) return self._uniq(lst) + def obsoletesList(self): + return self.tagsList(rpm.RPMTAG_OBSOLETENAME, rpm.RPMTAG_OBSOLETEFLAGS, + rpm.RPMTAG_OBSOLETEVERSION) + def conflictsList(self): - lst = [] - names = self.hdr[rpm.RPMTAG_CONFLICTNAME] - tmpflags = self.hdr[rpm.RPMTAG_CONFLICTFLAGS] - flags = self._correctFlags(tmpflags) - ver = self._correctVersion(self.hdr[rpm.RPMTAG_CONFLICTVERSION]) - if names is not None: - lst = zip(names, flags, ver) - return self._uniq(lst) + return self.tagsList(rpm.RPMTAG_CONFLICTNAME, rpm.RPMTAG_CONFLICTFLAGS, + rpm.RPMTAG_CONFLICTVERSION) def providesList(self): - lst = [] - names = self.hdr[rpm.RPMTAG_PROVIDENAME] - tmpflags = self.hdr[rpm.RPMTAG_PROVIDEFLAGS] - flags = self._correctFlags(tmpflags) - ver = self._correctVersion(self.hdr[rpm.RPMTAG_PROVIDEVERSION]) - if names is not None: - lst = zip(names, flags, ver) - return self._uniq(lst) - + return self.tagsList(rpm.RPMTAG_PROVIDENAME, rpm.RPMTAG_PROVIDEFLAGS, + rpm.RPMTAG_PROVIDEVERSION) + + def enhancesList(self): + lst = self.tagsList(rpm.RPMTAG_ENHANCESNAME, rpm.RPMTAG_ENHANCESFLAGS, + rpm.RPMTAG_ENHANCESVERSION) + return [ l for l in lst if not l[1] & rpm.RPMSENSE_STRONG ] + + def supplementsList(self): + lst = self.tagsList(rpm.RPMTAG_ENHANCESNAME, rpm.RPMTAG_ENHANCESFLAGS, + rpm.RPMTAG_ENHANCESVERSION) + return [ l for l in lst if l[1] & rpm.RPMSENSE_STRONG ] + + def suggestsList(self): + lst = self.tagsList(rpm.RPMTAG_SUGGESTSNAME, rpm.RPMTAG_SUGGESTSFLAGS, + rpm.RPMTAG_SUGGESTSVERSION) + return [ l for l in lst if not l[1] & rpm.RPMSENSE_STRONG ] + + def recommendsList(self): + lst = self.tagsList(rpm.RPMTAG_SUGGESTSNAME, rpm.RPMTAG_SUGGESTSFLAGS, + rpm.RPMTAG_SUGGESTSVERSION) + return [ l for l in lst if l[1] & rpm.RPMSENSE_STRONG ] + def changelogLists(self): lst = [] names = self.listTagByName('changelogname') @@ -668,12 +676,18 @@ def generateXML(doc, node, formatns, rpm hr.newProp('end', str(rpmObj.rangeend)) for (lst, nodename) in [(rpmObj.providesList(), 'provides'), (rpmObj.conflictsList(), 'conflicts'), - (rpmObj.obsoletesList(), 'obsoletes')]: + (rpmObj.obsoletesList(), 'obsoletes'), + (rpmObj.enhancesList(), 'enhances'), + (rpmObj.supplementsList(), 'supplements'), + (rpmObj.suggestsList(), 'suggests'), + (rpmObj.recommendsList(), 'recommends')]: if len(lst) > 0: rpconode = format.newChild(formatns, nodename, None) for (name, flags, (e,v,r)) in lst: entry = rpconode.newChild(formatns, 'entry', None) entry.newProp('name', name) + if flags is not None: + flags = flags & 0xf if flags != 0: if flags == 2: arg = 'LT' if flags == 4: arg = 'GT' @@ -695,6 +709,8 @@ def generateXML(doc, node, formatns, rpm for (name, flags, (e,v,r), prereq) in depsList: entry = rpconode.newChild(formatns, 'entry', None) entry.newProp('name', name) + if flags is not None: + flags = flags & 0xf if flags != 0: if flags == 2: arg = 'LT' if flags == 4: arg = 'GT' ++++++ createrepo-0.4.11-modifyrepo-prettyxml.patch ++++++ Index: modifyrepo.py =================================================================== --- modifyrepo.py.orig +++ modifyrepo.py @@ -92,15 +92,22 @@ class RepoMetadata: ## Build the metadata root = self.doc.firstChild + root.appendChild(self.doc.createTextNode(" ")) data = self._insert_element(root, 'data', attrs={ 'type' : mdtype }) + data.appendChild(self.doc.createTextNode("\n ")) self._insert_element(data, 'location', attrs={ 'href' : 'repodata/' + mdname }) + data.appendChild(self.doc.createTextNode("\n ")) self._insert_element(data, 'checksum', attrs={ 'type' : 'sha' }, text=sha.new(newmd).hexdigest()) + data.appendChild(self.doc.createTextNode("\n ")) self._insert_element(data, 'timestamp', text=str(os.stat(destmd).st_mtime)) + data.appendChild(self.doc.createTextNode("\n ")) self._insert_element(data, 'open-checksum', attrs={ 'type' : 'sha' }, text=sha.new(md).hexdigest()) + data.appendChild(self.doc.createTextNode("\n ")) + root.appendChild(self.doc.createTextNode("\n")) print " type =", mdtype print " location =", 'repodata/' + mdname @@ -111,6 +118,7 @@ class RepoMetadata: ## Write the updated repomd.xml outmd = file(self.repomdxml, 'w') self.doc.writexml(outmd) + outmd.write("\n") outmd.close() print "Wrote:", self.repomdxml ++++++ createrepo-0.4.11-suse-changelogs.patch ++++++ Index: dumpMetadata.py =================================================================== --- dumpMetadata.py.orig +++ dumpMetadata.py @@ -785,7 +785,10 @@ def otherXML(doc, node, rpmObj): for (name, time, text) in clogs: clog = pkg.newChild(None, 'changelog', None) clog.addContent(utf8String(text)) - clog.newProp('author', utf8String(name)) + if name == '' or name[0] != '-': + clog.newProp('author', utf8String(name)) + else: + clog.newProp('author', utf8String(name[2:])) clog.newProp('date', str(time)) return pkg ++++++ createrepo-0.9.8.tar.bz2 -> createrepo-0.4.11.tar.bz2 ++++++ ++++ 7143 lines of diff (skipped) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de