From 783d5f854c39d4e6c094b38e9bc6e4e63f0a0474 Mon Sep 17 00:00:00 2001 From: Seth Vidal Date: Aug 04 2009 19:11:45 +0000 Subject: minor fix for 512610 and head patch --- diff --git a/createrepo-head.patch b/createrepo-head.patch index 53741e2..059523c 100644 --- a/createrepo-head.patch +++ b/createrepo-head.patch @@ -16,7 +16,7 @@ index facbc5b..c821ae4 100644 $(MAKE) clean diff --git a/createrepo/__init__.py b/createrepo/__init__.py -index 2a880a8..233fa1c 100644 +index 2a880a8..a28433e 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -11,12 +11,12 @@ @@ -92,7 +92,7 @@ index 2a880a8..233fa1c 100644 if not checkAndMakeDir(temp_delta): raise MDError, _('Cannot create/verify %s') % temp_delta self.conf.deltadir = temp_delta -@@ -202,7 +209,8 @@ class MetaDataGenerator: +@@ -202,15 +209,19 @@ class MetaDataGenerator: direcs.append('deltadir') for direc in direcs: @@ -102,7 +102,21 @@ index 2a880a8..233fa1c 100644 if os.path.exists(filepath): if not os.access(filepath, os.W_OK): raise MDError, _('error in must be able to write to metadata dir:\n -> %s') % filepath -@@ -227,7 +235,7 @@ class MetaDataGenerator: + + if self.conf.checkts: +- timestamp = os.path.getctime(filepath) +- if timestamp > self.conf.mdtimestamp: +- self.conf.mdtimestamp = timestamp ++ # checking for repodata/repomd.xml - not just the data dir ++ rxml = filepath + '/repomd.xml' ++ if os.path.exists(rxml): ++ timestamp = os.path.getctime(rxml) ++ if timestamp > self.conf.mdtimestamp: ++ self.conf.mdtimestamp = timestamp + + if self.conf.groupfile: + a = self.conf.groupfile +@@ -227,7 +238,7 @@ class MetaDataGenerator: if self.conf.cachedir: a = self.conf.cachedir if not os.path.isabs(a): @@ -111,7 +125,7 @@ index 2a880a8..233fa1c 100644 if not checkAndMakeDir(a): raise MDError, _('Error: cannot open/write to cache dir %s' % a) -@@ -248,7 +256,6 @@ class MetaDataGenerator: +@@ -248,7 +259,6 @@ class MetaDataGenerator: name = os.path.join(top, name) if os.path.isdir(name): self._os_path_walk(name, func, arg) @@ -119,7 +133,7 @@ index 2a880a8..233fa1c 100644 def getFileList(self, directory, ext): """Return all files in path matching ext, store them in filelist, recurse dirs. Returns a list object""" -@@ -264,7 +271,7 @@ class MetaDataGenerator: +@@ -264,7 +274,7 @@ class MetaDataGenerator: elif fn[-extlen:].lower() == '%s' % (ext): relativepath = dirname.replace(startdir, "", 1) relativepath = relativepath.lstrip("/") @@ -128,7 +142,7 @@ index 2a880a8..233fa1c 100644 filelist = [] startdir = directory + '/' -@@ -276,8 +283,8 @@ class MetaDataGenerator: +@@ -276,8 +286,8 @@ class MetaDataGenerator: errorprint(thing) def checkTimeStamps(self): @@ -139,7 +153,7 @@ index 2a880a8..233fa1c 100644 if self.conf.checkts: dn = os.path.join(self.conf.basedir, self.conf.directory) files = self.getFileList(dn, '.rpm') -@@ -295,14 +302,14 @@ class MetaDataGenerator: +@@ -295,14 +305,14 @@ class MetaDataGenerator: def trimRpms(self, files): badrpms = [] @@ -161,7 +175,7 @@ index 2a880a8..233fa1c 100644 return files def _setup_old_metadata_lookup(self): -@@ -356,7 +363,6 @@ class MetaDataGenerator: +@@ -356,7 +366,6 @@ class MetaDataGenerator: self.writeMetadataDocs(packages) self.closeMetadataDocs() @@ -169,7 +183,7 @@ index 2a880a8..233fa1c 100644 def openMetadataDocs(self): if self.conf.database_only: self.setup_sqlite_dbs() -@@ -369,34 +375,40 @@ class MetaDataGenerator: +@@ -369,34 +378,40 @@ class MetaDataGenerator: def _setupPrimary(self): # setup the primary metadata file @@ -218,7 +232,7 @@ index 2a880a8..233fa1c 100644 fo = _gzipOpen(deltafilepath, 'w') fo.write('\n') fo.write('\n') -@@ -405,7 +417,6 @@ class MetaDataGenerator: +@@ -405,7 +420,6 @@ class MetaDataGenerator: def read_in_package(self, rpmfile, pkgpath=None, reldir=None): """rpmfile == relative path to file from self.packge_dir""" @@ -226,7 +240,7 @@ index 2a880a8..233fa1c 100644 baseurl = self.conf.baseurl if not pkgpath: -@@ -415,7 +426,6 @@ class MetaDataGenerator: +@@ -415,7 +429,6 @@ class MetaDataGenerator: raise MDError, "Blank filename passed in, skipping" if rpmfile.find("://") != -1: @@ -234,7 +248,7 @@ index 2a880a8..233fa1c 100644 if not hasattr(self, 'tempdir'): self.tempdir = tempfile.mkdtemp() -@@ -425,18 +435,20 @@ class MetaDataGenerator: +@@ -425,18 +438,20 @@ class MetaDataGenerator: reldir = self.tempdir dest = os.path.join(self.tempdir, pkgname) if not self.conf.quiet: @@ -258,7 +272,7 @@ index 2a880a8..233fa1c 100644 except Errors.MiscError, e: raise MDError, "Unable to open package: %s" % e # external info we need -@@ -449,7 +461,8 @@ class MetaDataGenerator: +@@ -449,7 +464,8 @@ class MetaDataGenerator: self.rpmlib_reqs[r] = 1 if po.checksum in (None, ""): @@ -268,7 +282,7 @@ index 2a880a8..233fa1c 100644 return po -@@ -459,9 +472,9 @@ class MetaDataGenerator: +@@ -459,9 +475,9 @@ class MetaDataGenerator: pkglist = self.conf.pkglist if not pkgpath: @@ -280,7 +294,7 @@ index 2a880a8..233fa1c 100644 for pkg in pkglist: self.current_pkg += 1 -@@ -492,13 +505,15 @@ class MetaDataGenerator: +@@ -492,13 +508,15 @@ class MetaDataGenerator: if not isinstance(pkg, YumAvailablePackage): try: @@ -298,7 +312,7 @@ index 2a880a8..233fa1c 100644 else: po = pkg -@@ -513,12 +528,13 @@ class MetaDataGenerator: +@@ -513,12 +531,13 @@ class MetaDataGenerator: clog_limit=self.conf.changelog_limit)) else: if self.conf.verbose: @@ -316,7 +330,7 @@ index 2a880a8..233fa1c 100644 if node is None: break output = node.serialize('UTF-8', self.conf.pretty) -@@ -526,17 +542,19 @@ class MetaDataGenerator: +@@ -526,17 +545,19 @@ class MetaDataGenerator: outfile.write(output) else: if self.conf.verbose: @@ -340,7 +354,7 @@ index 2a880a8..233fa1c 100644 else: self.callback.progress(pkg, self.current_pkg, self.pkgcount) -@@ -574,24 +592,36 @@ class MetaDataGenerator: +@@ -574,24 +595,36 @@ class MetaDataGenerator: self.otherfile.close() if self.conf.deltas: @@ -380,7 +394,7 @@ index 2a880a8..233fa1c 100644 for fn in opd[d]: if os.path.basename(fn).startswith(pkg.name): pot_cand.append(fn) -@@ -599,7 +629,8 @@ class MetaDataGenerator: +@@ -599,7 +632,8 @@ class MetaDataGenerator: candidates = [] for fn in pot_cand: try: @@ -390,7 +404,7 @@ index 2a880a8..233fa1c 100644 except Errors.MiscError, e: continue if (thispo.name, thispo.arch) != (pkg.name, pkg.arch): -@@ -615,9 +646,14 @@ class MetaDataGenerator: +@@ -615,9 +649,14 @@ class MetaDataGenerator: for delta_p in candidates[0:self.conf.num_deltas]: #make drpm of pkg and delta_p @@ -407,7 +421,7 @@ index 2a880a8..233fa1c 100644 def _get_old_package_dict(self): if hasattr(self, '_old_package_dict'): -@@ -627,6 +663,12 @@ class MetaDataGenerator: +@@ -627,6 +666,12 @@ class MetaDataGenerator: opl = [] for d in self.conf.oldpackage_paths: for f in self.getFileList(d, 'rpm'): @@ -420,7 +434,7 @@ index 2a880a8..233fa1c 100644 if not self._old_package_dict.has_key(d): self._old_package_dict[d] = [] self._old_package_dict[d].append(d + '/' + f) -@@ -642,24 +684,29 @@ class MetaDataGenerator: +@@ -642,24 +687,29 @@ class MetaDataGenerator: # the tag for the target + each of the drpm infos + closure for the target # tag targets = {} @@ -463,7 +477,7 @@ index 2a880a8..233fa1c 100644 def addArbitraryMetadata(self, mdfile, mdtype, xml_node, compress=True, compress_type='gzip', attribs={}): -@@ -695,7 +742,7 @@ class MetaDataGenerator: +@@ -695,7 +745,7 @@ class MetaDataGenerator: if self.conf.unique_md_filenames: @@ -472,7 +486,7 @@ index 2a880a8..233fa1c 100644 sfile = os.path.basename(outfn) else: if compress: -@@ -721,12 +768,13 @@ class MetaDataGenerator: +@@ -721,12 +771,13 @@ class MetaDataGenerator: timestamp = data.newChild(None, 'timestamp', str(timest)) # add the random stuff @@ -488,7 +502,7 @@ index 2a880a8..233fa1c 100644 repodoc = libxml2.newDoc("1.0") reporoot = repodoc.newChild(None, "repomd", None) repons = reporoot.newNs('http://linux.duke.edu/metadata/repo', None) -@@ -740,7 +788,7 @@ class MetaDataGenerator: +@@ -740,7 +791,7 @@ class MetaDataGenerator: tags = reporoot.newChild(None, 'tags', None) for item in self.conf.content_tags: c_tags = tags.newChild(None, 'content', item) @@ -497,7 +511,7 @@ index 2a880a8..233fa1c 100644 d_tags = tags.newChild(None, 'distro', item) if cpeid: d_tags.newProp('cpeid', cpeid) -@@ -757,10 +805,10 @@ class MetaDataGenerator: +@@ -757,10 +808,10 @@ class MetaDataGenerator: (self.conf.filelistsfile, 'filelists'), (self.conf.primaryfile, 'primary')] db_workfiles = [] @@ -510,7 +524,7 @@ index 2a880a8..233fa1c 100644 if self.conf.database: if not self.conf.quiet: self.callback.log('Generating sqlite DBs') try: -@@ -769,11 +817,16 @@ class MetaDataGenerator: +@@ -769,11 +820,16 @@ class MetaDataGenerator: dbversion = '9' rp = sqlitecachec.RepodataParserSqlite(repopath, repoid, None) @@ -530,7 +544,7 @@ index 2a880a8..233fa1c 100644 zfo.close() csum = misc.checksum(sumtype, complete_path) timestamp = os.stat(complete_path)[8] -@@ -782,8 +835,10 @@ class MetaDataGenerator: +@@ -782,8 +838,10 @@ class MetaDataGenerator: db_compressed_sums = {} if self.conf.database: @@ -543,7 +557,7 @@ index 2a880a8..233fa1c 100644 if ftype == 'primary': rp.getPrimary(complete_path, csum) -@@ -793,54 +848,67 @@ class MetaDataGenerator: +@@ -793,54 +851,67 @@ class MetaDataGenerator: elif ftype == 'other': rp.getOtherdata(complete_path, csum) @@ -655,7 +669,7 @@ index 2a880a8..233fa1c 100644 -@@ -850,6 +918,9 @@ class MetaDataGenerator: +@@ -850,6 +921,9 @@ class MetaDataGenerator: checksum = data.newChild(None, 'checksum', csum) checksum.newProp('type', sumtype) timestamp = data.newChild(None, 'timestamp', str(timestamp)) @@ -665,7 +679,7 @@ index 2a880a8..233fa1c 100644 unchecksum = data.newChild(None, 'open-checksum', uncsum) unchecksum.newProp('type', sumtype) location = data.newChild(None, 'location', None) -@@ -857,19 +928,20 @@ class MetaDataGenerator: +@@ -857,19 +931,20 @@ class MetaDataGenerator: location.newProp('xml:base', self.conf.baseurl) if self.conf.unique_md_filenames: res_file = '%s-%s.xml.gz' % (csum, ftype) @@ -691,7 +705,7 @@ index 2a880a8..233fa1c 100644 for (fn, ftype) in db_workfiles: attribs = {'database_version':dbversion} -@@ -883,7 +955,8 @@ class MetaDataGenerator: +@@ -883,7 +958,8 @@ class MetaDataGenerator: if self.conf.groupfile is not None: self.addArbitraryMetadata(self.conf.groupfile, 'group_gz', reporoot) @@ -701,7 +715,7 @@ index 2a880a8..233fa1c 100644 if self.conf.additional_metadata: for md_type, mdfile in self.conf.additional_metadata.items(): -@@ -900,7 +973,8 @@ class MetaDataGenerator: +@@ -900,7 +976,8 @@ class MetaDataGenerator: try: repodoc.saveFormatFileEnc(repofilepath, 'UTF-8', 1) except: @@ -711,7 +725,7 @@ index 2a880a8..233fa1c 100644 raise MDError, 'Could not save temp file: %s' % repofilepath del repodoc -@@ -918,8 +992,8 @@ class MetaDataGenerator: +@@ -918,8 +995,8 @@ class MetaDataGenerator: try: os.rename(output_final_dir, output_old_dir) except: @@ -722,7 +736,7 @@ index 2a880a8..233fa1c 100644 output_temp_dir = os.path.join(self.conf.outputdir, self.conf.tempdir) -@@ -930,7 +1004,8 @@ class MetaDataGenerator: +@@ -930,7 +1007,8 @@ class MetaDataGenerator: os.rename(output_old_dir, output_final_dir) raise MDError, _('Error moving final metadata into place') @@ -732,7 +746,7 @@ index 2a880a8..233fa1c 100644 if getattr(self.conf, f): fn = os.path.basename(getattr(self.conf, f)) else: -@@ -941,7 +1016,8 @@ class MetaDataGenerator: +@@ -941,7 +1019,8 @@ class MetaDataGenerator: try: os.remove(oldfile) except OSError, e: @@ -742,7 +756,7 @@ index 2a880a8..233fa1c 100644 # Move everything else back from olddir (eg. repoview files) for f in os.listdir(output_old_dir): -@@ -952,7 +1028,8 @@ class MetaDataGenerator: +@@ -952,7 +1031,8 @@ class MetaDataGenerator: 'other.xml.gz','filelists.xml.gz'): os.remove(oldfile) # kill off the old ones continue @@ -752,7 +766,7 @@ index 2a880a8..233fa1c 100644 os.remove(oldfile) continue -@@ -964,7 +1041,8 @@ class MetaDataGenerator: +@@ -964,7 +1044,8 @@ class MetaDataGenerator: else: os.remove(oldfile) except OSError, e: @@ -762,7 +776,7 @@ index 2a880a8..233fa1c 100644 else: try: os.rename(oldfile, finalfile) -@@ -976,7 +1054,8 @@ class MetaDataGenerator: +@@ -976,7 +1057,8 @@ class MetaDataGenerator: try: os.rmdir(output_old_dir) except OSError, e: @@ -772,7 +786,7 @@ index 2a880a8..233fa1c 100644 self.errorlog(_('Error was %s') % e) self.errorlog(_('Please clean up this directory manually.')) -@@ -986,7 +1065,8 @@ class MetaDataGenerator: +@@ -986,7 +1068,8 @@ class MetaDataGenerator: try: self.md_sqlite = MetaDataSqlite(destdir) except sqlite.OperationalError, e: @@ -782,7 +796,7 @@ index 2a880a8..233fa1c 100644 -@@ -1014,11 +1094,11 @@ class SplitMetaDataGenerator(MetaDataGenerator): +@@ -1014,11 +1097,11 @@ class SplitMetaDataGenerator(MetaDataGenerator): for fn in names: if os.path.isdir(fn): continue diff --git a/createrepo.spec b/createrepo.spec index f8890f7..9462d85 100644 --- a/createrepo.spec +++ b/createrepo.spec @@ -3,7 +3,7 @@ Summary: Creates a common metadata repository Name: createrepo Version: 0.9.7 -Release: 13%{?dist} +Release: 14%{?dist} License: GPLv2 Group: System Environment/Base Source: %{name}-%{version}.tar.gz @@ -46,6 +46,9 @@ rm -rf $RPM_BUILD_ROOT %{python_sitelib}/createrepo %changelog +* Tue Aug 4 2009 Seth Vidal - 0.9.7-14 +- minor fix for rh bug 512610 + * Fri Jul 24 2009 Fedora Release Engineering - 0.9.7-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild