From: Bill Nottingham Date: Mon, 14 Sep 2009 20:35:54 +0000 (-0400) Subject: createrepo patch to use the new deltarpm python bindings X-Git-Tag: upstream/0.9.9~38 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c31855f2c4edf17358c4acea909768275818a27d;p=tools%2Fcreaterepo.git createrepo patch to use the new deltarpm python bindings --- diff --git a/createrepo/deltarpms.py b/createrepo/deltarpms.py index 26a6715..d14d3fa 100644 --- a/createrepo/deltarpms.py +++ b/createrepo/deltarpms.py @@ -18,7 +18,7 @@ import os.path import commands from yum import misc -import gzip +import deltarpm from utils import MDError class DeltaRPMPackage: @@ -44,17 +44,16 @@ class DeltaRPMPackage: os.lseek(fd, 0, 0) fo = os.fdopen(fd, 'rb') self.csum = misc.checksum(self.csum_type, fo) - fo.seek(int(self.po.hdrend)) - self._getOldInfo(fo) del fo del fd + self._getDRPMInfo(os.path.join(basedir, filename)) def _stringToNEVR(self, string): i = string.rfind("-", 0, string.rfind("-")-1) name = string[:i] (epoch, ver, rel) = self._stringToVersion(string[i+1:]) return (name, epoch, ver, rel) - + def _getLength(self, in_data): length = 0 for val in in_data: @@ -62,27 +61,12 @@ class DeltaRPMPackage: length += ord(val) return length - def _getOldInfo(self, fo): - try: - compobj = gzip.GzipFile("", "rb", 9, fo) - except: - raise zlibError("Data not stored in gzip format") - - if compobj.read(4)[:3] != "DLT": - raise Exception("Not a deltarpm") + def _getDRPMInfo(self, filename): + d = deltarpm.readDeltaRPM(filename) + self.oldnevrstring = d['old_nevr'] + self.oldnevr = self._stringToNEVR(d['old_nevr']) + self.sequence = d['seq'] - nevr_length = self._getLength(compobj.read(4)) - nevr = compobj.read(nevr_length).strip("\x00") - seq_length = self._getLength(compobj.read(4)) - seq = compobj.read(seq_length) - hex_seq = "" - for char in seq: - hex_seq += str("%02x" % ord(char)) - self.oldnevrstring = nevr - self.oldnevr = self._stringToNEVR(nevr) - self.sequence = hex_seq - compobj.close() - def _stringToVersion(self, strng): i = strng.find(':') if i != -1: