diff options
author | root <root@rshg054.dnsready.net> | 2012-09-21 00:28:31 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-09-21 00:28:31 -0700 |
commit | 7bcc3e9d12b9294024067ecaf8ab28a9fe83ab6c (patch) | |
tree | b3960814ca09f169fed5fd65f01497cb38fc3cf4 /testing/libarchive | |
parent | 005a14f92ef5d35e4c47d970cb7e69367a835958 (diff) |
Fri Sep 21 00:28:30 PDT 2012
Diffstat (limited to 'testing/libarchive')
-rw-r--r-- | testing/libarchive/PKGBUILD | 38 | ||||
-rw-r--r-- | testing/libarchive/libarchive-3.0.x-fix-mtree-writer.patch | 34 |
2 files changed, 72 insertions, 0 deletions
diff --git a/testing/libarchive/PKGBUILD b/testing/libarchive/PKGBUILD new file mode 100644 index 000000000..44fdad7ff --- /dev/null +++ b/testing/libarchive/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 166896 2012-09-21 02:03:06Z allan $ +# Maintainer: Dan McGee <dan@archlinux.org> + +pkgname=libarchive +pkgver=3.0.4 +pkgrel=2 +pkgdesc="library that can create and read several streaming archive formats" +arch=('i686' 'x86_64') +url="http://libarchive.googlecode.com/" +license=('BSD') +depends=('zlib' 'bzip2' 'xz>=5.0.0' 'acl' 'openssl>=1.0.0' 'expat') +source=("https://github.com/downloads/libarchive/libarchive/libarchive-${pkgver}.tar.gz" + libarchive-3.0.x-fix-mtree-writer.patch) +md5sums=('af443ca9a10ddbcbf00f7ae34ca7fc16' + '6d36a50a7282db6576bd1fbc23f08055') +sha256sums=('76e8d7c7b100ec4071e48c1b7d3f3ea1d22b39db3e45b7189f75b5ff4df90fac' + 'f0081c0d7d7875fc91c683b14fe4876d56b6585f45be9181c755eba4b522f5b9') + + +build() { + cd "$srcdir/$pkgname-$pkgver" + patch -Np1 -i $srcdir/libarchive-3.0.x-fix-mtree-writer.patch + ./configure --prefix=/usr --without-xml2 + make +} + +check() { + cd "$srcdir/$pkgname-$pkgver" + + make check +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir" install + + install -D -m644 COPYING "$pkgdir"/usr/share/licenses/libarchive/COPYING +} diff --git a/testing/libarchive/libarchive-3.0.x-fix-mtree-writer.patch b/testing/libarchive/libarchive-3.0.x-fix-mtree-writer.patch new file mode 100644 index 000000000..dbc89686a --- /dev/null +++ b/testing/libarchive/libarchive-3.0.x-fix-mtree-writer.patch @@ -0,0 +1,34 @@ +--- a/libarchive/archive_write_set_format_mtree.c ++++ b/libarchive/archive_write_set_format_mtree.c +@@ -887,6 +887,19 @@ write_entry(struct archive_write *a, struct mtree_entry *me) + + archive_string_empty(&mtree->ebuf); + str = (mtree->indent)? &mtree->ebuf : &mtree->buf; ++ ++ /* If the pathname does not have a path separator, we have to ++ * add "./" to the head of the pathename because mtree reader ++ * will suppose that it is v1(a.k.a classic) mtree format and ++ * change the directory unexpectedly and so it will make a wrong ++ * path. */ ++ if (strchr(me->pathname, '/') == NULL && ++ strcmp(me->pathname, ".") != 0) { ++ archive_strcat(str, "./"); ++ } ++ /* mtree reader does not accept an absolute path. */ ++ else if (me->pathname[0] == '/') ++ archive_strappend_char(str, '.'); + mtree_quote(str, me->pathname); + keys = get_keys(mtree, me); + if ((keys & F_NLINK) != 0 && +--- a/libarchive/test/test_read_format_mtree.c ++++ b/libarchive/test/test_read_format_mtree.c +@@ -37,7 +37,8 @@ test_read_format_mtree1(void) + * without relying on overflow. This assumes that long long + * is at least 64 bits. */ + static const long long max_int64 = ((((long long)1) << 62) - 1) + (((long long)1) << 62); +- time_t min_time, t; ++ time_t min_time; ++ volatile time_t t; + + extract_reference_file(reffile); +
\ No newline at end of file |