# HG changeset patch # User Christopher Rogers # Date 1287493449 0 # Node ID 78b4eabb585c71cf349b14e9216b70f748e64b3b # Parent e198ea52ecc91de9e3d796d28707efcabd108f5b Added libtar. A C library for manipulating POSIX tar files. Needed for hydrogen. diff -r e198ea52ecc9 -r 78b4eabb585c libtar-dev/receipt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtar-dev/receipt Tue Oct 19 13:04:09 2010 +0000 @@ -0,0 +1,20 @@ +# SliTaz package receipt. + +PACKAGE="libtar-dev" +VERSION="1.2.11" +CATEGORY="development" +SHORT_DESC="devel files for libtar" +MAINTAINER="slaxemulator@gmail.com" +DEPENDS="libtar" +TARBALL="$PACKAGE-$VERSION.tar.gz" +WEB_SITE="http://www.feep.net/libtar/" +WANTED="libtar" + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + mkdir -p $fs/usr + cp -a $_pkg/usr/include $fs/usr + cp -a $_pkg/usr/lib $fs/usr +} + diff -r e198ea52ecc9 -r 78b4eabb585c libtar/receipt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtar/receipt Tue Oct 19 13:04:09 2010 +0000 @@ -0,0 +1,32 @@ +# SliTaz package receipt. + +PACKAGE="libtar" +VERSION="1.2.11" +CATEGORY="development" +SHORT_DESC="C library for manipulating POSIX tar files." +MAINTAINER="slaxemulator@gmail.com" +DEPENDS="zlib" +BUILD_DEPENDS="zlib-dev" +TARBALL="$PACKAGE-$VERSION.tar.gz" +WEB_SITE="http://www.feep.net/libtar/" +WGET_URL="ftp://ftp.feep.net/pub/software/$PACKAGE/$TARBALL" + +# Rules to configure and make the package. +compile_rules() +{ + cd $src + ./configure \ + --prefix=/usr \ + --infodir=/usr/share/info \ + --mandir=/usr/share/man \ + $CONFIGURE_ARGS && + make && make DESTDIR=$PWD/_pkg install +} + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + mkdir -p $fs/usr + cp -a $_pkg/usr/bin $fs/usr +} + diff -r e198ea52ecc9 -r 78b4eabb585c libtar/stuff/libtar-1.2.11.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtar/stuff/libtar-1.2.11.patch Tue Oct 19 13:04:09 2010 +0000 @@ -0,0 +1,108 @@ +diff -Naur libtar-1.2.11-orig/lib/decode.c libtar-1.2.11/lib/decode.c +--- libtar-1.2.11-orig/lib/decode.c 2003-01-06 17:40:59.000000000 -0800 ++++ libtar-1.2.11/lib/decode.c 2004-08-13 12:26:34.000000000 -0700 +@@ -26,7 +26,7 @@ + char * + th_get_pathname(TAR *t) + { +- char filename[MAXPATHLEN]; ++ static char filename[MAXPATHLEN]; + + if (t->th_buf.gnu_longname) + return t->th_buf.gnu_longname; +@@ -35,11 +35,11 @@ + { + snprintf(filename, sizeof(filename), "%.155s/%.100s", + t->th_buf.prefix, t->th_buf.name); +- return strdup(filename); ++ return filename; + } + + snprintf(filename, sizeof(filename), "%.100s", t->th_buf.name); +- return strdup(filename); ++ return filename; + } + + +diff -Naur libtar-1.2.11-orig/lib/extract.c libtar-1.2.11/lib/extract.c +--- libtar-1.2.11-orig/lib/extract.c 2003-03-02 15:58:07.000000000 -0800 ++++ libtar-1.2.11/lib/extract.c 2004-08-13 12:26:34.000000000 -0700 +@@ -28,14 +28,6 @@ + #endif + + +-struct linkname +-{ +- char ln_save[MAXPATHLEN]; +- char ln_real[MAXPATHLEN]; +-}; +-typedef struct linkname linkname_t; +- +- + static int + tar_set_file_perms(TAR *t, char *realname) + { +@@ -98,7 +90,9 @@ + tar_extract_file(TAR *t, char *realname) + { + int i; +- linkname_t *lnp; ++ char *lnp; ++ int pathname_len; ++ int realname_len; + + if (t->options & TAR_NOOVERWRITE) + { +@@ -137,11 +131,13 @@ + if (i != 0) + return i; + +- lnp = (linkname_t *)calloc(1, sizeof(linkname_t)); ++ pathname_len = strlen(th_get_pathname(t)) + 1; ++ realname_len = strlen(realname) + 1; ++ lnp = (char *)calloc(1, pathname_len + realname_len); + if (lnp == NULL) + return -1; +- strlcpy(lnp->ln_save, th_get_pathname(t), sizeof(lnp->ln_save)); +- strlcpy(lnp->ln_real, realname, sizeof(lnp->ln_real)); ++ strcpy(&lnp[0], th_get_pathname(t)); ++ strcpy(&lnp[pathname_len], realname); + #ifdef DEBUG + printf("tar_extract_file(): calling libtar_hash_add(): key=\"%s\", " + "value=\"%s\"\n", th_get_pathname(t), realname); +@@ -288,7 +284,7 @@ + { + char *filename; + char *linktgt = NULL; +- linkname_t *lnp; ++ char *lnp; + libtar_hashptr_t hp; + + if (!TH_ISLNK(t)) +@@ -304,8 +300,8 @@ + if (libtar_hash_getkey(t->h, &hp, th_get_linkname(t), + (libtar_matchfunc_t)libtar_str_match) != 0) + { +- lnp = (linkname_t *)libtar_hashptr_data(&hp); +- linktgt = lnp->ln_real; ++ lnp = (char *)libtar_hashptr_data(&hp); ++ linktgt = &lnp[strlen(lnp) + 1]; + } + else + linktgt = th_get_linkname(t); +diff -Naur libtar-1.2.11-orig/lib/libtar.h libtar-1.2.11/lib/libtar.h +--- libtar-1.2.11-orig/lib/libtar.h 2003-01-06 17:40:59.000000000 -0800 ++++ libtar-1.2.11/lib/libtar.h 2004-08-13 12:26:52.000000000 -0700 +@@ -63,9 +63,9 @@ + /***** handle.c ************************************************************/ + + typedef int (*openfunc_t)(const char *, int, ...); +-typedef int (*closefunc_t)(int); +-typedef ssize_t (*readfunc_t)(int, void *, size_t); +-typedef ssize_t (*writefunc_t)(int, const void *, size_t); ++typedef int (*closefunc_t)(long); ++typedef ssize_t (*readfunc_t)(long, void *, size_t); ++typedef ssize_t (*writefunc_t)(long, const void *, size_t); + + typedef struct + {