diff options
Diffstat (limited to 'core/libarchive')
-rw-r--r-- | core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch | 29 | ||||
-rw-r--r-- | core/libarchive/PKGBUILD | 33 | ||||
-rw-r--r-- | core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch | 34 |
3 files changed, 46 insertions, 50 deletions
diff --git a/core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch b/core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch new file mode 100644 index 000000000..a255f2cf2 --- /dev/null +++ b/core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch @@ -0,0 +1,29 @@ +From e65bf287f0133426b26611fe3e80b51267987106 Mon Sep 17 00:00:00 2001 +From: Dave Reisner <dreisner@archlinux.org> +Date: Thu, 21 Feb 2013 19:01:06 -0500 +Subject: [PATCH] mtree: fix line filename length calculation. Fixes #301. + Signed-off-by: Andres Mejia <amejia004@gmail.com> + +--- + libarchive/archive_write_set_format_mtree.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libarchive/archive_write_set_format_mtree.c b/libarchive/archive_write_set_format_mtree.c +index 9c0613c..f37f723 100644 +--- a/libarchive/archive_write_set_format_mtree.c ++++ b/libarchive/archive_write_set_format_mtree.c +@@ -1855,9 +1855,9 @@ mtree_entry_setup_filenames(struct archive_write *a, struct mtree_entry *file, + return (ret); + } + +- /* Make a basename from dirname and slash */ ++ /* Make a basename from file->parentdir.s and slash */ + *slash = '\0'; +- file->parentdir.length = slash - dirname; ++ file->parentdir.length = slash - file->parentdir.s; + archive_strcpy(&(file->basename), slash + 1); + return (ret); + } +-- +1.8.1.4 + diff --git a/core/libarchive/PKGBUILD b/core/libarchive/PKGBUILD index 1b87145a3..05902ecef 100644 --- a/core/libarchive/PKGBUILD +++ b/core/libarchive/PKGBUILD @@ -1,37 +1,38 @@ -# $Id: PKGBUILD 167058 2012-09-25 03:07:21Z allan $ +# $Id: PKGBUILD 179100 2013-03-03 17:28:26Z dreisner $ # Maintainer: Dan McGee <dan@archlinux.org> pkgname=libarchive -pkgver=3.0.4 -pkgrel=2 +pkgver=3.1.2 +pkgrel=1 pkgdesc="library that can create and read several streaming archive formats" arch=('i686' 'x86_64') -url="http://libarchive.googlecode.com/" +url="http://libarchive.org/" 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') - +depends=('acl' 'attr' 'bzip2' 'expat' 'lzo2' 'openssl' 'xz' 'zlib') +source=("http://libarchive.org/downloads/$pkgname-$pkgver.tar.gz" + '0001-mtree-fix-line-filename-length-calculation.patch') +md5sums=('efad5a503f66329bb9d2f4308b5de98a' + 'fda89c145bbcd793a96b06b463ef6a72') build() { - cd "$srcdir/$pkgname-$pkgver" - patch -Np1 -i $srcdir/libarchive-3.0.x-fix-mtree-writer.patch + cd "$pkgname-$pkgver" + + # https://code.google.com/p/libarchive/issues/detail?id=301 + # upstream commit e65bf287f0133426b26611fe3e80b51267987106 + patch -Np1 -i "$srcdir/0001-mtree-fix-line-filename-length-calculation.patch" + ./configure --prefix=/usr --without-xml2 make } check() { - cd "$srcdir/$pkgname-$pkgver" + cd "$pkgname-$pkgver" make check } package() { - cd "$srcdir/$pkgname-$pkgver" + cd "$pkgname-$pkgver" make DESTDIR="$pkgdir" install install -D -m644 COPYING "$pkgdir"/usr/share/licenses/libarchive/COPYING diff --git a/core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch b/core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch deleted file mode 100644 index dbc89686a..000000000 --- a/core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- 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 |