Commit 0364a3f9 authored by Lukas's avatar Lukas

Remove libtar

parent ce8bc720
#
# Chakra Packages for Chakra, part of chakra-project.org
#
# Maintainer: Giuseppe Calà <jiveaxe@gmail.com>
#
pkgname=libtar
pkgver=1.2.11
pkgrel=1
pkgdesc="C library for manipulating POSIX tar files"
arch=('i686' 'x86_64')
url="http://www.feep.net/libtar/"
license=('BSD')
depends=('zlib')
source=(ftp://ftp.feep.net/pub/software/$pkgname/$pkgname-$pkgver.tar.gz \
libtar-$pkgver.patch)
md5sums=('604238e8734ce6e25347a58c4f1a1d7e' 'baef7da841c186e1830566296859c35b')
sha1sums=('9611f23024b0e89aad1cfea301122186b3c160f8' '100c37378faea118c6664cd8958caa91f34633d0')
build() {
cd "$srcdir/$pkgname-$pkgver"
export CFLAGS+=" -fPIC"
patch -Np1 -i ../libtar-$pkgver.patch
./configure --prefix=/usr --mandir=/usr/share/man
make
make DESTDIR="$pkgdir" install
install -D -m644 COPYRIGHT "$pkgdir/usr/share/licenses/$pkgname/COPYRIGHT"
}
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
{
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment