summaryrefslogtreecommitdiff
path: root/core/libarchive
diff options
context:
space:
mode:
Diffstat (limited to 'core/libarchive')
-rw-r--r--core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch29
-rw-r--r--core/libarchive/PKGBUILD33
-rw-r--r--core/libarchive/libarchive-3.0.x-fix-mtree-writer.patch34
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