diff options
Diffstat (limited to 'extra/libtar')
-rw-r--r-- | extra/libtar/PKGBUILD | 42 | ||||
-rw-r--r-- | extra/libtar/libtar-1.2.11-tar_header.patch | 15 | ||||
-rw-r--r-- | extra/libtar/libtar-1.2.11.patch | 108 | ||||
-rw-r--r-- | extra/libtar/libtar-1.2.20-free.patch | 22 |
4 files changed, 46 insertions, 141 deletions
diff --git a/extra/libtar/PKGBUILD b/extra/libtar/PKGBUILD index e1b54e3ce..ce929d5d6 100644 --- a/extra/libtar/PKGBUILD +++ b/extra/libtar/PKGBUILD @@ -1,40 +1,46 @@ -# $Id: PKGBUILD 155876 2012-04-08 10:03:47Z giovanni $ +# $Id: PKGBUILD 196404 2013-10-12 18:57:59Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Biru Ionut <ionut@archlinux.ro> # Contributor: Eric Belanger <eric@archlinux.org> # Contributor: Aurelien Foret <orelien@chez.com> pkgname=libtar -pkgver=1.2.11 -pkgrel=4 +pkgver=1.2.20 +pkgrel=1 pkgdesc="C library for manipulating POSIX tar files" arch=('i686' 'x86_64') -url="http://www.feep.net/libtar/" +url="http://repo.or.cz/w/libtar.git/" license=('BSD') depends=('zlib') -source=("ftp://ftp.feep.net/pub/software/${pkgname}/${pkgname}-${pkgver}.tar.gz" - 'libtar-1.2.11-tar_header.patch' - 'libtar-1.2.11.patch') -md5sums=('604238e8734ce6e25347a58c4f1a1d7e' - '94b03c0fdee20671e1f6d1ecaf187258' - 'baef7da841c186e1830566296859c35b') +options=('!libtool') +source=("http://pkgbuild.com/~giovanni/${pkgname}/${pkgname}-${pkgver}.tar.gz" + 'libtar-1.2.20-free.patch') +md5sums=('32cd952ff74f1c78c06ffff5c0695b90' + '00c2d03a3c13e4b6bc6c3b30a4db9f64') -build() { - cd "${srcdir}/${pkgname}-${pkgver}" +prepare() { + cd "${srcdir}/${pkgname}" - export CFLAGS+=" -fPIC" + patch -Np0 -i "${srcdir}/libtar-1.2.20-free.patch" + sed -i \ + -e '/INSTALL_PROGRAM/s:-s::' {doc,lib{,tar}}/Makefile.in +} - # Fix FS#29322 - patch -Np1 -i "${srcdir}/libtar-1.2.11-tar_header.patch" +build() { + cd "${srcdir}/${pkgname}" + export CFLAGS+=" -fPIC" - patch -Np1 -i "${srcdir}/libtar-1.2.11.patch" + autoreconf -fi ./configure --prefix=/usr \ - --mandir=/usr/share/man + --mandir=/usr/share/man \ + --disable-static \ + --disable-encap \ + --disable-epkg-install make } package() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "${srcdir}/${pkgname}" make DESTDIR="${pkgdir}" install install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" diff --git a/extra/libtar/libtar-1.2.11-tar_header.patch b/extra/libtar/libtar-1.2.11-tar_header.patch deleted file mode 100644 index 161f7da7b..000000000 --- a/extra/libtar/libtar-1.2.11-tar_header.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -Naur libtar-1.2.11/lib/encode.c libtar-1.2.11.tar_header/lib/encode.c ---- libtar-1.2.11/lib/encode.c 2003-01-07 07:10:59.000000000 +0530 -+++ libtar-1.2.11.tar_header/lib/encode.c 2009-11-20 11:13:25.166756167 +0530 -@@ -30,7 +30,10 @@ - int i, sum = 0; - - if (t->options & TAR_GNU) -- strncpy(t->th_buf.magic, "ustar ", 8); -+ { -+ memcpy(t->th_buf.magic, "ustar ", 6); -+ memcpy(t->th_buf.version, " \0", 2); -+ } - else - { - strncpy(t->th_buf.version, TVERSION, TVERSLEN); diff --git a/extra/libtar/libtar-1.2.11.patch b/extra/libtar/libtar-1.2.11.patch deleted file mode 100644 index 347203dc3..000000000 --- a/extra/libtar/libtar-1.2.11.patch +++ /dev/null @@ -1,108 +0,0 @@ -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 - { diff --git a/extra/libtar/libtar-1.2.20-free.patch b/extra/libtar/libtar-1.2.20-free.patch new file mode 100644 index 000000000..3a7b028d5 --- /dev/null +++ b/extra/libtar/libtar-1.2.20-free.patch @@ -0,0 +1,22 @@ +stdlib.h is required for free() + +--- lib/output.c ++++ lib/output.c +@@ -20,6 +20,7 @@ + #include <sys/param.h> + + #ifdef STDC_HEADERS ++# include <stdlib.h> + # include <string.h> + #endif + +--- lib/wrapper.c ++++ lib/wrapper.c +@@ -18,6 +18,7 @@ + #include <errno.h> + + #ifdef STDC_HEADERS ++# include <stdlib.h> + # include <string.h> + #endif + |