ipkg-utils: Make arfile.py handle six digit UIDs
authorScott Anderson <o2e@saaworld.com>
Mon, 4 Oct 2010 04:57:04 +0000 (21:57 -0700)
committerGrazvydas Ignotas <notasas@gmail.com>
Mon, 6 Jul 2015 20:37:21 +0000 (23:37 +0300)
Essentially, the problem is that arfile.py is splitting the ar header with
white-space instead of fixed-width fields, so two fields would get treated
as a single field.  This makes things better than before as it now honors
the fixed field widths.

Signed-off-by: Scott Anderson <o2e@saaworld.com>
Acked-by: Tom Rini <tom_rini@mentor.com>
Conflicts:
recipes/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb

recipes/ipkg-utils/ipkg-utils/arfile_header_split.patch [new file with mode: 0644]
recipes/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb

diff --git a/recipes/ipkg-utils/ipkg-utils/arfile_header_split.patch b/recipes/ipkg-utils/ipkg-utils/arfile_header_split.patch
new file mode 100644 (file)
index 0000000..ce1993b
--- /dev/null
@@ -0,0 +1,16 @@
+--- ipkg-utils/arfile.py.orig  2010-09-29 13:38:15.000000000 -0700
++++ ipkg-utils/arfile.py       2010-10-01 16:06:00.000000000 -0700
+@@ -74,7 +74,12 @@
+             if l == "\n":
+                 l = self.f.readline()
+                 if not l: break
+-            descriptor = l.split()
++            # Field lengths from /usr/include/ar.h:
++            ar_field_lens = [ 16, 12, 6, 6, 8, 10, 2 ]
++            descriptor = []
++            for field_len in ar_field_lens:
++                descriptor.append(l[:field_len].strip())
++                l = l[field_len:]
+ #            print descriptor
+             size = int(descriptor[5])
+             memberName = descriptor[0][:-1]
index cdb8355..54ed52f 100644 (file)
@@ -5,7 +5,7 @@ LICENSE = "GPL"
 CONFLICTS = "ipkg-link"
 RDEPENDS_${PN} = "python"
 SRCDATE = "20050930"
-PR = "r27"
+PR = "r28"
 
 TARGET_CC_ARCH += "${LDFLAGS}"
 
@@ -17,6 +17,7 @@ SRC_URI = "${HANDHELDS_CVS};module=ipkg-utils \
            file://ipkg-make-index-track-stamps.patch;patch=1 \
            file://fields_tweaks.patch;patch=1 \
            file://ipkg-env.patch;patch=1 \
+           file://arfile_header_split.patch;patch=1 \
           "
 
 S = "${WORKDIR}/ipkg-utils"