Discussion:
createrepo/__init__.py
s***@osuosl.org
2011-10-28 17:24:28 UTC
Permalink
createrepo/__init__.py | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)

New commits:
commit c42fc5a12315ee2abc60b0fdc1c8292e11b3a48e
Author: Seth Vidal <***@fedoraproject.org>
Date: Fri Oct 28 13:23:21 2011 -0400

- when we read deltarpms - if a pkg is unreadable -just skip it and report the error on stderr
- when we make the repodata:
1. we need to append the right compression string to delta (and other) metadata files
2. make sure the files get renamed properly with unique-md-names.

diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index 61694f9..014765a 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -686,8 +686,12 @@ 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
@@ -933,8 +937,9 @@ class MetaDataGenerator:
# 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 = compressOpen(complete_path)
# This is misc.checksum() done locally so we can get the size too.
data = misc.Checksums([sumtype])
@@ -1029,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)

Loading...