diff options
author | Otavio Salvador <otavio@ossystems.com.br> | 2011-06-16 20:02:46 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-07-08 17:20:16 +0100 |
commit | 292a45064aa9926868c798341dc72f183c5de076 (patch) | |
tree | 176d929370e08bf276a7633a69cac602986ef57e /meta/recipes-extended/libarchive | |
parent | 0fd46295920c33d8f35bf266f62762f2ef86f17b (diff) | |
download | openembedded-core-292a45064aa9926868c798341dc72f183c5de076.tar.gz openembedded-core-292a45064aa9926868c798341dc72f183c5de076.tar.bz2 openembedded-core-292a45064aa9926868c798341dc72f183c5de076.zip |
libarchive: add 2.8.4 version
This recipe has been imported from OpenEmbedded (rev
6db4b9050e0e8b963e2a6b63790e48e3042ea99e).
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'meta/recipes-extended/libarchive')
8 files changed, 284 insertions, 0 deletions
diff --git a/meta/recipes-extended/libarchive/libarchive/0001-Patch-from-upstream-revision-1990.patch b/meta/recipes-extended/libarchive/libarchive/0001-Patch-from-upstream-revision-1990.patch new file mode 100644 index 0000000000..f65f89f46b --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0001-Patch-from-upstream-revision-1990.patch @@ -0,0 +1,42 @@ +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 + diff --git a/meta/recipes-extended/libarchive/libarchive/0002-Patch-from-upstream-revision-1991.patch b/meta/recipes-extended/libarchive/libarchive/0002-Patch-from-upstream-revision-1991.patch new file mode 100644 index 0000000000..6ece7f3899 --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0002-Patch-from-upstream-revision-1991.patch @@ -0,0 +1,31 @@ +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 + diff --git a/meta/recipes-extended/libarchive/libarchive/0003-Patch-from-upstream-rev-2516.patch b/meta/recipes-extended/libarchive/libarchive/0003-Patch-from-upstream-rev-2516.patch new file mode 100644 index 0000000000..0193a07d19 --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0003-Patch-from-upstream-rev-2516.patch @@ -0,0 +1,63 @@ +libarchive: Backport patch from upstream (rev 2516) + +Fix Issue 100: Allow a zero for the Type M Path Table Location, since +WinISO (and probably other programs) set it this way. + +http://code.google.com/p/libarchive/source/detail?r=2516 + +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 0c640c8..fdef3fb 100644 +--- a/libarchive/archive_read_support_format_iso9660.c ++++ b/libarchive/archive_read_support_format_iso9660.c +@@ -714,11 +714,13 @@ isSVD(struct iso9660 *iso9660, const unsigned char *h) + if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) + return (0); + +- /* Location of Occurrence of Type M Path Table must be +- * available location, ++ /* The Type M Path Table must be at a valid location (WinISO ++ * and probably other programs omit this, so we allow zero) ++ * + * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ + location = archive_be32dec(h+SVD_type_M_path_table_offset); +- if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) ++ if ((location > 0 && location <= SYSTEM_AREA_BLOCK+2) ++ || location >= volume_block) + return (0); + + /* Read Root Directory Record in Volume Descriptor. */ +@@ -790,7 +792,8 @@ isEVD(struct iso9660 *iso9660, const unsigned char *h) + * available location, + * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ + location = archive_be32dec(h+PVD_type_m_path_table_offset); +- if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) ++ if ((location > 0 && location <= SYSTEM_AREA_BLOCK+2) ++ || location >= volume_block) + return (0); + + /* Reserved field must be 0. */ +@@ -865,11 +868,14 @@ isPVD(struct iso9660 *iso9660, const unsigned char *h) + if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) + return (0); + +- /* Location of Occurrence of Type M Path Table must be +- * available location, ++ /* The Type M Path Table must also be at a valid location ++ * (although ECMA 119 requires a Type M Path Table, WinISO and ++ * probably other programs omit it, so we permit a zero here) ++ * + * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ + location = archive_be32dec(h+PVD_type_m_path_table_offset); +- if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) ++ if ((location > 0 && location <= SYSTEM_AREA_BLOCK+2) ++ || location >= volume_block) + return (0); + + /* Reserved field must be 0. */ +-- +1.7.1 + diff --git a/meta/recipes-extended/libarchive/libarchive/0004-Patch-from-upstream-rev-2514.patch b/meta/recipes-extended/libarchive/libarchive/0004-Patch-from-upstream-rev-2514.patch new file mode 100644 index 0000000000..eaa9ad0813 --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0004-Patch-from-upstream-rev-2514.patch @@ -0,0 +1,33 @@ +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 + diff --git a/meta/recipes-extended/libarchive/libarchive/0005-Patch-from-upstream-rev-2520.patch b/meta/recipes-extended/libarchive/libarchive/0005-Patch-from-upstream-rev-2520.patch new file mode 100644 index 0000000000..dd8ac6a876 --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0005-Patch-from-upstream-rev-2520.patch @@ -0,0 +1,31 @@ +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 + diff --git a/meta/recipes-extended/libarchive/libarchive/0006-Patch-from-upstream-rev-2521.patch b/meta/recipes-extended/libarchive/libarchive/0006-Patch-from-upstream-rev-2521.patch new file mode 100644 index 0000000000..b55ae1701a --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0006-Patch-from-upstream-rev-2521.patch @@ -0,0 +1,28 @@ +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 + diff --git a/meta/recipes-extended/libarchive/libarchive/0007-Ignore-ENOSYS-error-when-setting-up-xattrs.-Closes-5.patch b/meta/recipes-extended/libarchive/libarchive/0007-Ignore-ENOSYS-error-when-setting-up-xattrs.-Closes-5.patch new file mode 100644 index 0000000000..b5465a3385 --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0007-Ignore-ENOSYS-error-when-setting-up-xattrs.-Closes-5.patch @@ -0,0 +1,31 @@ +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 + diff --git a/meta/recipes-extended/libarchive/libarchive_2.8.4.bb b/meta/recipes-extended/libarchive/libarchive_2.8.4.bb new file mode 100644 index 0000000000..6d4fb39d1e --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive_2.8.4.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats" +HOMEPAGE = "http://code.google.com/p/libarchive/" +SECTION = "devel" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=4255e2e6f0349a4ac8fbd68459296e46" +PR = "r0" + +DEPENDS = "libxml2" + +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://0003-Patch-from-upstream-rev-2516.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[md5sum] = "83b237a542f27969a8d68ac217dc3796" +SRC_URI[sha256sum] = "86cffa3eaa28d3116f5d0b20284026c3762cf4a2b52b9844df2b494d4a89f688" + +inherit autotools lib_package + +BBCLASSEXTEND = "nativesdk" |