[arch-commits] Commit in libarchive/trunk (2 files)

Allan McRae allan at archlinux.org
Fri Sep 21 02:02:25 UTC 2012


    Date: Thursday, September 20, 2012 @ 22:02:24
  Author: allan
Revision: 166895

upgpkg: libarchive 3.0.4-2

fix mtree writer and testsuite

Added:
  libarchive/trunk/libarchive-3.0.x-fix-mtree-writer.patch
Modified:
  libarchive/trunk/PKGBUILD

-----------------------------------------+
 PKGBUILD                                |   13 +++++++----
 libarchive-3.0.x-fix-mtree-writer.patch |   34 ++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-09-20 23:57:27 UTC (rev 166894)
+++ PKGBUILD	2012-09-21 02:02:24 UTC (rev 166895)
@@ -3,18 +3,23 @@
 
 pkgname=libarchive
 pkgver=3.0.4
-pkgrel=1
+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")
-md5sums=('af443ca9a10ddbcbf00f7ae34ca7fc16')
-sha256sums=('76e8d7c7b100ec4071e48c1b7d3f3ea1d22b39db3e45b7189f75b5ff4df90fac')
+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
 }

Added: libarchive-3.0.x-fix-mtree-writer.patch
===================================================================
--- libarchive-3.0.x-fix-mtree-writer.patch	                        (rev 0)
+++ libarchive-3.0.x-fix-mtree-writer.patch	2012-09-21 02:02:24 UTC (rev 166895)
@@ -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




More information about the arch-commits mailing list