diff --git a/createrepo-head.patch b/createrepo-head.patch index f230f3a..ee14d25 100644 --- a/createrepo-head.patch +++ b/createrepo-head.patch @@ -124,7 +124,7 @@ index 1e491cd..eea7092 100644 - bump to 0.9.9 - add worker.py diff --git a/createrepo/__init__.py b/createrepo/__init__.py -index 8f2538e..61694f9 100644 +index 8f2538e..014765a 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -27,14 +27,14 @@ import stat @@ -382,7 +382,7 @@ index 8f2538e..61694f9 100644 if not self.conf.quiet: self.callback.log("Workers Finished") # finished with workers -@@ -671,7 +679,7 @@ class MetaDataGenerator: +@@ -671,15 +679,19 @@ class MetaDataGenerator: for (fn, fo) in (('primary.xml', self.primaryfile), ('filelists.xml', self.flfile), ('other.xml', self.otherfile)): @@ -391,7 +391,21 @@ index 8f2538e..61694f9 100644 if os.path.exists(fnpath): fo.write(open(fnpath, 'r').read()) -@@ -784,7 +792,6 @@ class MetaDataGenerator: + + for pkgfile in pkgfiles: + if self.conf.deltas: +- po = self.read_in_package(pkgfile, pkgpath=pkgpath, reldir=reldir) +- self._do_delta_rpm_package(po) ++ try: ++ po = self.read_in_package(pkgfile, pkgpath=pkgpath, reldir=reldir) ++ self._do_delta_rpm_package(po) ++ except MDError, e: ++ errorprint(e) ++ continue + self.read_pkgs.append(pkgfile) + + return self.current_pkg +@@ -784,7 +796,6 @@ class MetaDataGenerator: return self._old_package_dict self._old_package_dict = {} @@ -399,7 +413,7 @@ index 8f2538e..61694f9 100644 for d in self.conf.oldpackage_paths: for f in self.getFileList(d, '.rpm'): fp = d + '/' + f -@@ -833,7 +840,7 @@ class MetaDataGenerator: +@@ -833,7 +844,7 @@ class MetaDataGenerator: return ' '.join(results) def _createRepoDataObject(self, mdfile, mdtype, compress=True, @@ -408,7 +422,7 @@ index 8f2538e..61694f9 100644 """return random metadata as RepoData object to be added to RepoMD mdfile = complete path to file mdtype = the metadata type to use -@@ -843,15 +850,13 @@ class MetaDataGenerator: +@@ -843,15 +854,13 @@ class MetaDataGenerator: sfile = os.path.basename(mdfile) fo = open(mdfile, 'r') outdir = os.path.join(self.conf.outputdir, self.conf.tempdir) @@ -430,7 +444,7 @@ index 8f2538e..61694f9 100644 else: outfn = os.path.join(outdir, sfile) output = open(outfn, 'w') -@@ -874,7 +879,6 @@ class MetaDataGenerator: +@@ -874,7 +883,6 @@ class MetaDataGenerator: thisdata = RepoData() thisdata.type = mdtype @@ -438,7 +452,7 @@ index 8f2538e..61694f9 100644 thisdata.location = (self.conf.baseurl, os.path.join(self.conf.finaldir, sfile)) thisdata.checksum = (self.conf.sumtype, csum) if compress: -@@ -925,9 +929,13 @@ class MetaDataGenerator: +@@ -925,9 +933,14 @@ class MetaDataGenerator: rp = sqlitecachec.RepodataParserSqlite(repopath, repomd.repoid, None) for (rpm_file, ftype) in workfiles: @@ -446,14 +460,16 @@ index 8f2538e..61694f9 100644 + # self.conf.compress_type + if ftype in ('other', 'filelists', 'primary'): + rpm_file = rpm_file + '.' + 'gz' ++ elif rpm_file.find('.') != -1 and rpm_file.split('.')[-1] not in _available_compression: ++ rpm_file = rpm_file + '.' + self.conf.compress_type complete_path = os.path.join(repopath, rpm_file) - +- - zfo = _gzipOpen(complete_path) + zfo = compressOpen(complete_path) # This is misc.checksum() done locally so we can get the size too. data = misc.Checksums([sumtype]) while data.read(zfo, 2**16): -@@ -968,12 +976,13 @@ class MetaDataGenerator: +@@ -968,12 +981,13 @@ class MetaDataGenerator: # rename from silly name to not silly name os.rename(tmp_result_path, resultpath) @@ -469,7 +485,7 @@ index 8f2538e..61694f9 100644 # csum the compressed file db_compressed_sums[ftype] = misc.checksum(sumtype, result_compressed) -@@ -983,8 +992,8 @@ class MetaDataGenerator: +@@ -983,8 +997,8 @@ class MetaDataGenerator: os.unlink(resultpath) if self.conf.unique_md_filenames: @@ -480,7 +496,22 @@ index 8f2538e..61694f9 100644 csum_result_compressed = os.path.join(repopath, csum_compressed_name) os.rename(result_compressed, csum_result_compressed) -@@ -1046,7 +1055,7 @@ class MetaDataGenerator: +@@ -1020,7 +1034,13 @@ class MetaDataGenerator: + data.openchecksum = (sumtype, uncsum) + + if self.conf.unique_md_filenames: +- res_file = '%s-%s.xml.gz' % (csum, ftype) ++ if ftype in ('primary', 'filelists', 'other'): ++ compress = 'gz' ++ else: ++ compress = self.conf.compress_type ++ ++ main_name = '.'.join(rpm_file.split('.')[:-1]) ++ res_file = '%s-%s.%s' % (csum, main_name, compress) + orig_file = os.path.join(repopath, rpm_file) + dest_file = os.path.join(repopath, res_file) + os.rename(orig_file, dest_file) +@@ -1046,7 +1066,7 @@ class MetaDataGenerator: if self.conf.additional_metadata: @@ -489,7 +520,7 @@ index 8f2538e..61694f9 100644 mdcontent = self._createRepoDataObject(md_file, md_type) repomd.repoData[mdcontent.type] = mdcontent -@@ -1110,23 +1119,43 @@ class MetaDataGenerator: +@@ -1110,23 +1130,43 @@ class MetaDataGenerator: raise MDError, _( 'Could not remove old metadata file: %s: %s') % (oldfile, e) @@ -547,7 +578,7 @@ index 8f2538e..61694f9 100644 continue if os.path.exists(finalfile): -@@ -1147,14 +1176,19 @@ class MetaDataGenerator: +@@ -1147,14 +1187,19 @@ class MetaDataGenerator: msg += _('Error was %s') % e raise MDError, msg @@ -574,7 +605,7 @@ index 8f2538e..61694f9 100644 # write out the read_pkgs_list file with self.read_pkgs if self.conf.read_pkgs_list: try: -@@ -1167,6 +1201,23 @@ class MetaDataGenerator: +@@ -1167,6 +1212,23 @@ class MetaDataGenerator: % self.conf.read_pkgs_list) self.errorlog(_('Error was %s') % e) @@ -598,7 +629,7 @@ index 8f2538e..61694f9 100644 def setup_sqlite_dbs(self, initdb=True): """sets up the sqlite dbs w/table schemas and db_infos""" destdir = os.path.join(self.conf.outputdir, self.conf.tempdir) -@@ -1240,7 +1291,6 @@ class SplitMetaDataGenerator(MetaDataGenerator): +@@ -1240,7 +1302,6 @@ class SplitMetaDataGenerator(MetaDataGenerator): self.conf.baseurl = self._getFragmentUrl(self.conf.baseurl, mediano) try: self.openMetadataDocs() diff --git a/createrepo.spec b/createrepo.spec index 18c24e4..52a3a4c 100644 --- a/createrepo.spec +++ b/createrepo.spec @@ -3,7 +3,7 @@ Summary: Creates a common metadata repository Name: createrepo Version: 0.9.9 -Release: 8%{?dist} +Release: 9%{?dist} License: GPLv2 Group: System Environment/Base Source: %{name}-%{version}.tar.gz @@ -47,6 +47,10 @@ rm -rf $RPM_BUILD_ROOT %{python_sitelib}/createrepo %changelog +* Fri Oct 28 2011 Seth Vidal - 0.9.9-9 +- 3rd time is the charm +- fix it so prestodelta's get made with the right name and don't traceback + * Wed Oct 26 2011 Seth Vidal - 0.9.9-8 - change how compressOpen() defaults so mash doesn't break - add requires for pyliblzma