aboutsummaryrefslogtreecommitdiffstats
path: root/packages/ipkg
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.ne>2005-09-12 18:54:35 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-09-12 18:54:35 +0000
commitc32ba862411fb894178838a355f099dfa30178a0 (patch)
treee2bc6b89cb1f67eb806329b3dcb6d991b5d27826 /packages/ipkg
parent7dd46b63799ebfef24ecb476dc7303f3dc32d903 (diff)
downloadopenembedded-c32ba862411fb894178838a355f099dfa30178a0.tar.gz
ipkg: add gnu tar extensions for 0.99.151
Diffstat (limited to 'packages/ipkg')
-rw-r--r--packages/ipkg/ipkg-0.99.151/libbb_tar_gnu_extensions.patch124
-rw-r--r--packages/ipkg/ipkg_0.99.151.bb5
2 files changed, 127 insertions, 2 deletions
diff --git a/packages/ipkg/ipkg-0.99.151/libbb_tar_gnu_extensions.patch b/packages/ipkg/ipkg-0.99.151/libbb_tar_gnu_extensions.patch
new file mode 100644
index 0000000000..9a7f9c7931
--- /dev/null
+++ b/packages/ipkg/ipkg-0.99.151/libbb_tar_gnu_extensions.patch
@@ -0,0 +1,124 @@
+Index: libbb/all_read.c
+===================================================================
+RCS file: /cvs/familiar/dist/ipkg/C/libbb/all_read.c,v
+retrieving revision 1.1
+diff -u -r1.1 all_read.c
+--- C/libbb/all_read.c 5 Feb 2005 21:51:36 -0000 1.1
++++ C/libbb/all_read.c 21 Feb 2005 23:46:39 -0000
+@@ -24,11 +24,11 @@
+ #include <errno.h>
+ #include "libbb.h"
+
+-extern void archive_xread_all(int fd , char *buf, size_t count)
++extern void archive_xread_all(FILE *f, char *buf, size_t count)
+ {
+ ssize_t size;
+
+- size = full_read(fd, buf, count);
++ size = full_read(f, buf, count);
+ if (size != count) {
+ perror_msg_and_die("Short read");
+ }
+@@ -41,7 +41,7 @@
+ * Returns the amount read, or -1 on an error.
+ * A short read is returned on an end of file.
+ */
+-ssize_t full_read(int fd, char *buf, int len)
++ssize_t full_read(FILE *f, char *buf, int len)
+ {
+ ssize_t cc;
+ ssize_t total;
+@@ -49,7 +49,7 @@
+ total = 0;
+
+ while (len > 0) {
+- cc = safe_read(fd, buf, len);
++ cc = safe_read(f, buf, len);
+
+ if (cc < 0)
+ return cc; /* read() returns -1 on failure. */
+@@ -66,12 +66,12 @@
+ }
+
+
+-ssize_t safe_read(int fd, void *buf, size_t count)
++ssize_t safe_read(FILE *f, void *buf, size_t count)
+ {
+ ssize_t n;
+
+ do {
+- n = read(fd, buf, count);
++ n = fread(buf, 1, count, f);
+ } while (n < 0 && errno == EINTR);
+
+ return n;
+Index: libbb/libbb.h
+===================================================================
+RCS file: /cvs/familiar/dist/ipkg/C/libbb/libbb.h,v
+retrieving revision 1.4
+diff -u -r1.4 libbb.h
+--- C/libbb/libbb.h 7 Feb 2005 23:14:12 -0000 1.4
++++ C/libbb/libbb.h 21 Feb 2005 23:46:39 -0000
+@@ -95,7 +95,7 @@
+ extern void vherror_msg(const char *s, va_list p);
+ extern void herror_msg(const char *s, ...);
+ extern void herror_msg_and_die(const char *s, ...) __attribute__ ((noreturn));
+-extern void archive_xread_all(int fd, char *buf, size_t count);
++extern void archive_xread_all(FILE *f, char *buf, size_t count);
+
+ /* These two are used internally -- you shouldn't need to use them */
+ extern void verror_msg(const char *s, va_list p);
+@@ -114,9 +114,9 @@
+ char *getChunk(int size);
+ char *chunkstrdup(const char *str);
+ void freeChunks(void);
+-ssize_t safe_read(int fd, void *buf, size_t count);
++ssize_t safe_read(FILE *f, void *buf, size_t count);
+ ssize_t full_write(int fd, const char *buf, int len);
+-ssize_t full_read(int fd, char *buf, int len);
++ssize_t full_read(FILE *f, char *buf, int len);
+ int recursive_action(const char *fileName, int recurse, int followLinks, int depthFirst,
+ int (*fileAction) (const char *fileName, struct stat* statbuf, void* userData),
+ int (*dirAction) (const char *fileName, struct stat* statbuf, void* userData),
+Index: libbb/unarchive.c
+===================================================================
+RCS file: /cvs/familiar/dist/ipkg/C/libbb/unarchive.c,v
+retrieving revision 1.5
+diff -u -r1.5 unarchive.c
+--- C/libbb/unarchive.c 5 Feb 2005 21:58:19 -0000 1.5
++++ C/libbb/unarchive.c 21 Feb 2005 23:46:40 -0000
+@@ -28,7 +28,7 @@
+ #include "libbb.h"
+
+ #define CONFIG_FEATURE_TAR_OLDGNU_COMPATABILITY 1
+-// #define CONFIG_FEATURE_TAR_GNU_EXTENSIONS
++#define CONFIG_FEATURE_TAR_GNU_EXTENSIONS 1
+
+ #ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS
+ static char *longname = NULL;
+@@ -84,7 +84,6 @@
+ char *full_link_name = NULL;
+ char *buffer = NULL;
+ struct utimbuf t;
+- int res;
+
+
+ /* prefix doesnt have to be a proper path it may prepend
+@@ -657,7 +656,7 @@
+ # ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS
+ case 'L': {
+ longname = xmalloc(tar_entry->size + 1);
+- archive_xread_all((int) tar_stream, longname, tar_entry->size);
++ archive_xread_all(tar_stream, longname, tar_entry->size);
+ longname[tar_entry->size] = '\0';
+ archive_offset += tar_entry->size;
+
+@@ -665,7 +664,7 @@
+ }
+ case 'K': {
+ linkname = xmalloc(tar_entry->size + 1);
+- archive_xread_all((int) tar_stream, longname, tar_entry->size);
++ archive_xread_all(tar_stream, longname, tar_entry->size);
+ linkname[tar_entry->size] = '\0';
+ archive_offset += tar_entry->size;
+
diff --git a/packages/ipkg/ipkg_0.99.151.bb b/packages/ipkg/ipkg_0.99.151.bb
index 684ff784b3..36e6b532cb 100644
--- a/packages/ipkg/ipkg_0.99.151.bb
+++ b/packages/ipkg/ipkg_0.99.151.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Itsy Package Manager"
DESCRIPTION_libipkg = "Itsy Package Manager Library"
LICENSE = "GPL"
PROVIDES = "virtual/ipkg libipkg"
-PR = "r0"
+PR = "r1"
PACKAGES =+ "libipkg-dev libipkg"
FILES_libipkg-dev = "${libdir}/*.a ${libdir}/*.la ${libdir}/*.so"
@@ -11,7 +11,8 @@ FILES_libipkg = "${libdir}"
AUTO_LIBNAME_PKGS = "libipkg"
SRC_URI = "${HANDHELDS_CVS};module=familiar/dist/ipkg;tag=${@'V' + bb.data.getVar('PV',d,1).replace('.', '-')} \
- file://terse.patch;patch=1 "
+ file://terse.patch;patch=1 \
+ file://libbb_tar_gnu_extensions.patch;patch=1 "
S = "${WORKDIR}/ipkg/C"