diff options
-rw-r--r-- | packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb | 2 | ||||
-rw-r--r-- | packages/ipkg-utils/ipkg-utils/ipkg-py-tarfile.patch | 105 | ||||
-rw-r--r-- | packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb | 2 |
3 files changed, 56 insertions, 53 deletions
diff --git a/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb b/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb index 3101ecb3be..ba3c8ecd0c 100644 --- a/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb +++ b/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb @@ -1,7 +1,7 @@ require ipkg-utils_${PV}.bb RDEPENDS = "" -PR = "r15" +PR = "r16" inherit native diff --git a/packages/ipkg-utils/ipkg-utils/ipkg-py-tarfile.patch b/packages/ipkg-utils/ipkg-utils/ipkg-py-tarfile.patch index 25eb2cce6f..389a86018b 100644 --- a/packages/ipkg-utils/ipkg-utils/ipkg-py-tarfile.patch +++ b/packages/ipkg-utils/ipkg-utils/ipkg-py-tarfile.patch @@ -1,13 +1,6 @@ ---- - arfile.py | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - ipkg.py | 106 ++++++++++++++++++++++++++--------------------------- - setup.py | 2 - - 3 files changed, 177 insertions(+), 55 deletions(-) - -Index: ipkg-utils/arfile.py -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ ipkg-utils/arfile.py 2007-05-26 23:46:59.000000000 +0100 +diff -r 720080c24d2f arfile.py +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/arfile.py Sun Jan 27 23:26:35 2008 +0200 @@ -0,0 +1,124 @@ +""" +arfile - A module to parse GNU ar archives. @@ -133,23 +126,10 @@ Index: ipkg-utils/arfile.py + + f2 = tarf.extractfile("control") + print f2.read() -Index: ipkg-utils/setup.py -=================================================================== ---- ipkg-utils.orig/setup.py 2007-05-26 23:45:55.000000000 +0100 -+++ ipkg-utils/setup.py 2007-05-26 23:46:59.000000000 +0100 -@@ -16,6 +16,6 @@ distutils.core.setup( name = 'ipkg-utils - platforms = 'POSIX', - keywords = 'ipkg familiar', - url = 'http://www.handhelds.org/sources.html/', -- py_modules = [ 'ipkg' ], -+ py_modules = [ 'ipkg', 'arfile' ], - scripts = ['ipkg-compare-indexes', 'ipkg-make-index', 'ipkg-update-index', 'ipkg-build', 'ipkg-unbuild', 'ipkg-upload'] - ) -Index: ipkg-utils/ipkg.py -=================================================================== ---- ipkg-utils.orig/ipkg.py 2007-05-26 23:46:55.000000000 +0100 -+++ ipkg-utils/ipkg.py 2007-05-26 23:45:20.000000000 +0100 -@@ -41,6 +41,8 @@ import re +diff -r 720080c24d2f ipkg.py +--- a/ipkg.py Sun Jan 27 23:13:26 2008 +0200 ++++ b/ipkg.py Sun Jan 27 23:26:35 2008 +0200 +@@ -41,6 +41,8 @@ import string import string import commands from stat import ST_SIZE @@ -158,7 +138,7 @@ Index: ipkg-utils/ipkg.py class Version: """A class for holding parsed package version information.""" -@@ -131,78 +133,61 @@ class Package: +@@ -131,77 +133,61 @@ class Package: self.section = None self.filename_header = None self.file_list = [] @@ -198,8 +178,6 @@ Index: ipkg-utils/ipkg.py - self.size = stat[ST_SIZE] + self.filename = os.path.basename(fn) -+ assert self.isdeb == 1, "Old ipk format (non-deb) is unsupported" -+ ## sys.stderr.write(" extracting control.tar.gz from %s\n"% (fn,)) - if self.isdeb: - control = os.popen("ar p "+fn+" control.tar.gz | tar xfzO - './control'","r") @@ -227,15 +205,18 @@ Index: ipkg-utils/ipkg.py - self.__dict__[name] = value - else: - line = control.readline() ++ if self.isdeb: ++ ar = arfile.ArFile(f) ++ tarStream = ar.open("control.tar.gz") ++ tarf = tarfile.open("control.tar.gz", "r", tarStream) ++ ++ try: ++ control = tarf.extractfile("control") ++ except KeyError: ++ control = tarf.extractfile("./control") ++ else: ++ control = os.popen("tar --wildcards -xzO -f " + fn + " '*control.tar.gz' | tar xfzO - './control'", "r") + -+ ar = arfile.ArFile(f) -+ tarStream = ar.open("control.tar.gz") -+ tarf = tarfile.open("control.tar.gz", "r", tarStream) -+ -+ try: -+ control = tarf.extractfile("control") -+ except KeyError: -+ control = tarf.extractfile("./control") + self.read_control(control) control.close() - if self.isdeb: @@ -251,7 +232,7 @@ Index: ipkg-utils/ipkg.py self.scratch_dir = None self.file_dir = None self.meta_dir = None - ++ + def __getattr__(self, name): + if name == "md5": + self._computeFileMD5() @@ -269,11 +250,10 @@ Index: ipkg-utils/ipkg.py + sum.update(data) + f.close() + self.md5 = sum.hexdigest() -+ + def read_control(self, control): import os - -@@ -221,9 +203,15 @@ class Package: +@@ -221,9 +207,15 @@ class Package: value = value + '\n' + line if name == 'size': self.size = int(value) @@ -290,20 +270,43 @@ Index: ipkg-utils/ipkg.py return # consumes one blank line at end of package descriptoin else: line = control.readline() -@@ -314,6 +302,16 @@ class Package: +@@ -314,7 +306,27 @@ class Package: return self.section def get_file_list(self): +- return self.file_list + if not self.fn: + return [] -+ f = open(self.fn, "rb") -+ ar = arfile.ArFile(f) -+ tarStream = ar.open("data.tar.gz") -+ tarf = tarfile.open("data.tar.gz", "r", tarStream) -+ self.file_list = tarf.getnames() ++ ++ if self.isdeb: ++ f = open(self.fn, "rb") ++ ar = arfile.ArFile(f) ++ tarStream = ar.open("data.tar.gz") ++ tarf = tarfile.open("data.tar.gz", "r", tarStream) ++ self.file_list = tarf.getnames() ++ f.close() ++ else: ++ f = os.popen("tar xfzO " + self.fn + " '*data.tar.gz' | tar tfz -","r") ++ while 1: ++ line = f.readline() ++ if not line: break ++ self.file_list.append(string.rstrip(line)) ++ f.close() ++ ++ # Make sure that filelist has consistent format regardless of tar version + self.file_list = map(lambda a: ["./", ""][a.startswith("./")] + a, self.file_list) -+ -+ f.close() - return self.file_list ++ return self.file_list def write_package(self, dirname): + buf = self.render_control() +diff -r 720080c24d2f setup.py +--- a/setup.py Sun Jan 27 23:13:26 2008 +0200 ++++ b/setup.py Sun Jan 27 23:26:35 2008 +0200 +@@ -16,6 +16,6 @@ distutils.core.setup( name = 'ipkg-utils + platforms = 'POSIX', + keywords = 'ipkg familiar', + url = 'http://www.handhelds.org/sources.html/', +- py_modules = [ 'ipkg' ], ++ py_modules = [ 'ipkg', 'arfile' ], + scripts = ['ipkg-compare-indexes', 'ipkg-make-index', 'ipkg-update-index', 'ipkg-build', 'ipkg-unbuild', 'ipkg-upload'] + ) diff --git a/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb b/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb index c089796ccb..febecb0085 100644 --- a/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb +++ b/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb @@ -5,7 +5,7 @@ LICENSE = "GPL" CONFLICTS = "ipkg-link" RDEPENDS = "python" SRCDATE = "20050404" -PR = "r17" +PR = "r18" SRC_URI = "${HANDHELDS_CVS};module=ipkg-utils \ file://ipkg-utils-fix.patch;patch=1 \ |