libarchive: Upgrade to v3.1.2

All patches against libarchive in oe-core appear to be merged into the latest
release. The license checksum has changed because a couple of referenced files
have been renamed but there is no change to the license terms themselves.

(From OE-Core rev: f3fd24badd189bbb083dba9397598e1566d1e4be)

Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Barker 2014-01-06 11:55:14 +00:00 committed by Richard Purdie
parent 0509a60ba5
commit 8d8bcc4284
7 changed files with 4 additions and 206 deletions

View File

@ -1,42 +0,0 @@
libarchive: Backport patch from upstream (revision 1990)
Upstream-Status: Backport
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c
index 7473c50..27671df 100644
--- a/libarchive/archive_read_disk_entry_from_file.c
+++ b/libarchive/archive_read_disk_entry_from_file.c
@@ -163,15 +163,26 @@ archive_read_disk_entry_from_file(struct archive *_a,
#ifdef HAVE_READLINK
if (S_ISLNK(st->st_mode)) {
- char linkbuffer[PATH_MAX + 1];
- int lnklen = readlink(path, linkbuffer, PATH_MAX);
+ size_t linkbuffer_len = st->st_size + 1;
+ char *linkbuffer;
+ int lnklen;
+
+ linkbuffer = malloc(linkbuffer_len);
+ if (linkbuffer == NULL) {
+ archive_set_error(&a->archive, ENOMEM,
+ "Couldn't read link data");
+ return (ARCHIVE_FAILED);
+ }
+ lnklen = readlink(path, linkbuffer, linkbuffer_len);
if (lnklen < 0) {
archive_set_error(&a->archive, errno,
"Couldn't read link data");
+ free(linkbuffer);
return (ARCHIVE_FAILED);
}
linkbuffer[lnklen] = 0;
archive_entry_set_symlink(entry, linkbuffer);
+ free(linkbuffer);
}
#endif
--
1.7.1

View File

@ -1,31 +0,0 @@
libarchive: Backport patch from upstream (revision 1991)
Upstream-Status: Backport
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
diff --git a/libarchive/archive_write_disk.c b/libarchive/archive_write_disk.c
index caf958e..60699e0 100644
--- a/libarchive/archive_write_disk.c
+++ b/libarchive/archive_write_disk.c
@@ -434,7 +434,7 @@ _archive_write_header(struct archive *_a, struct archive_entry *entry)
if (ret != ARCHIVE_OK)
goto done;
}
-#ifdef HAVE_FCHDIR
+#if defined(HAVE_FCHDIR) && defined(PATH_MAX)
/* If path exceeds PATH_MAX, shorten the path. */
edit_deep_directories(a);
#endif
@@ -866,7 +866,7 @@ archive_write_disk_new(void)
* object creation is likely to fail, but any error will get handled
* at that time.
*/
-#ifdef HAVE_FCHDIR
+#if defined(HAVE_FCHDIR) && defined(PATH_MAX)
static void
edit_deep_directories(struct archive_write_disk *a)
{
--
1.7.1

View File

@ -1,33 +0,0 @@
libarchive: Backport patch from upstream (rev 2514)
Enable version stripping code in joliet extension support for iso9660.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=587316
Upstream-Status: Backport
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c
index fdef3fb..8dcfeb4 100644
--- a/libarchive/archive_read_support_format_iso9660.c
+++ b/libarchive/archive_read_support_format_iso9660.c
@@ -1755,7 +1755,6 @@ parse_file_info(struct archive_read *a, struct file_info *parent,
}
*wp = L'\0';
-#if 0 /* untested code, is it at all useful on Joliet? */
/* trim trailing first version and dot from filename.
*
* Remember we where in UTF-16BE land!
@@ -1775,7 +1774,6 @@ parse_file_info(struct archive_read *a, struct file_info *parent,
/* Chop off trailing '.' from filenames. */
if (*(wp-1) == '.')
*(--wp) = L'\0';
-#endif
/* store the result in the file name field. */
archive_strappend_w_utf8(&file->name, wbuff);
--
1.7.1

View File

@ -1,31 +0,0 @@
libarchive: Backport patch from upstream (rev 2520)
Fix version/dot stripping code in joliet extension of iso9660.
Upstream-Status: Backport
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c
index 8dcfeb4..2d3a855 100644
--- a/libarchive/archive_read_support_format_iso9660.c
+++ b/libarchive/archive_read_support_format_iso9660.c
@@ -1766,13 +1766,13 @@ parse_file_info(struct archive_read *a, struct file_info *parent,
* *, /, :, ;, ? and \.
*/
/* Chop off trailing ';1' from files. */
- if (*(wp-2) == ';' && *(wp-1) == '1') {
+ if (*(wp-2) == L';' && *(wp-1) == L'1') {
wp-=2;
*wp = L'\0';
}
/* Chop off trailing '.' from filenames. */
- if (*(wp-1) == '.')
+ if (*(wp-1) == L'.')
*(--wp) = L'\0';
/* store the result in the file name field. */
--
1.7.1

View File

@ -1,28 +0,0 @@
libarchive: Backport patch from upstream (rev 2521).
Disable dot stripping code since it's still broken
and noone has been able to figure it out (yet).
Upstream-Status: Backport
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c
index 2d3a855..8661532 100644
--- a/libarchive/archive_read_support_format_iso9660.c
+++ b/libarchive/archive_read_support_format_iso9660.c
@@ -1771,9 +1771,11 @@ parse_file_info(struct archive_read *a, struct file_info *parent,
*wp = L'\0';
}
+#if 0 /* XXX: this somehow manages to strip of single-character file extensions, like '.c'. */
/* Chop off trailing '.' from filenames. */
if (*(wp-1) == L'.')
*(--wp) = L'\0';
+#endif
/* store the result in the file name field. */
archive_strappend_w_utf8(&file->name, wbuff);
--
1.7.1

View File

@ -1,31 +0,0 @@
libarchive: Ignore ENOSYS error when setting up xattrs. (Closes: #588925)
Modestas Vainius found out that HPPA returns errno ENOSYS
on listxattrs. Currently, ENOTSUP is ignored so we'll do the
same for ENOSYS as well.
For full debug info about this see Modestas Vainius awesome
report at:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=588925#10
Upstream-Status: Pending
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c
index 27671df..c49e755 100644
--- a/libarchive/archive_read_disk_entry_from_file.c
+++ b/libarchive/archive_read_disk_entry_from_file.c
@@ -398,7 +398,7 @@ setup_xattrs(struct archive_read_disk *a,
list_size = listxattr(path, NULL, 0);
if (list_size == -1) {
- if (errno == ENOTSUP)
+ if (errno == ENOTSUP || errno == ENOSYS)
return (ARCHIVE_OK);
archive_set_error(&a->archive, errno,
"Couldn't list extended attributes");
--
1.7.1

View File

@ -3,7 +3,7 @@ DESCRIPTION = "C library and command-line tools for reading and writing tar, cpi
HOMEPAGE = "http://www.libarchive.org/"
SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=4255e2e6f0349a4ac8fbd68459296e46"
LIC_FILES_CHKSUM = "file://COPYING;md5=b4e3ffd607d6686c6cb2f63394370841"
PACKAGECONFIG ?= "libxml2 zlib bz2"
@ -25,17 +25,11 @@ PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,"
PACKAGECONFIG[libxml2] = "--with-xml2,--without-xml2,libxml2,"
PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat,"
SRC_URI = "http://libarchive.googlecode.com/files/libarchive-${PV}.tar.gz \
file://0001-Patch-from-upstream-revision-1990.patch \
file://0002-Patch-from-upstream-revision-1991.patch \
file://0004-Patch-from-upstream-rev-2514.patch \
file://0005-Patch-from-upstream-rev-2520.patch \
file://0006-Patch-from-upstream-rev-2521.patch \
file://0007-Ignore-ENOSYS-error-when-setting-up-xattrs.-Closes-5.patch \
SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \
"
SRC_URI[md5sum] = "9caf51dcf6213e9c9f5a1c27448b9c90"
SRC_URI[sha256sum] = "13993e0ffbd121ccda46ea226b1f8eac218de0fa8da7d8b1f998093d5c32a72d"
SRC_URI[md5sum] = "efad5a503f66329bb9d2f4308b5de98a"
SRC_URI[sha256sum] = "eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e"
inherit autotools lib_package