From 2b8395148ff378e52a5e00c0d2ac0123258b759b Mon Sep 17 00:00:00 2001 From: kientzle Date: Sun, 30 Dec 2007 04:58:22 +0000 Subject: Update libarchive to 2.4.10. This includes a number of improvements that I've been working on but put off committing until after the RELENG_7 branch, including: * New manpages: cpio.5 mtree.5 * New archive_entry_strmode() * New archive_entry_link_resolver() * New read support: mtree format * Internal API change: read format auction only runs once * Running the auction only once allowed simplifying a lot of bid logic. * Cpio robustness: search for next header after a sync error * Support device nodes on ISO9660 images * Eliminate a lot of unnecessary copies for uncompressed archives * Corrected handling of new GNU --sparse --posix formats * Correctly handle a zero-byte write to a compressed archive * Fixed memory leaks Many of these improvements were motivated by the upcoming bsdcpio front-end. There have also been extensive improvements to the libarchive_test test harness, which I'll commit separately. --- lib/libarchive/Makefile | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'lib/libarchive/Makefile') diff --git a/lib/libarchive/Makefile b/lib/libarchive/Makefile index 1ebc8e1..c6c8bab 100644 --- a/lib/libarchive/Makefile +++ b/lib/libarchive/Makefile @@ -9,22 +9,16 @@ LDADD= -lbz2 -lz # Major: Bumped ONLY when API/ABI breakage happens (see SHLIB_MAJOR) # Minor: Bumped when significant new features are added # Revision: Bumped on any notable change -VERSION= 2.2.4 -ARCHIVE_API_MAJOR!= echo ${VERSION} | sed -e 's/[^0-9]/./g' -e 's/\..*//' -ARCHIVE_API_MINOR!= echo ${VERSION} | sed -e 's/[^0-9]/./g' -e 's/[0-9]*\.//' -e 's/\..*//' -ARCHIVE_API_REV!= echo ${VERSION} | sed -e 's/[^0-9]/./g' -e 's/.*\.//' - -# Can't use /usr/bin/printf to format the version stamp here, because -# that's not available during installworld. Fortunately, awk is. -ARCHIVE_VERSION_STAMP!= echo ${ARCHIVE_API_MAJOR} ${ARCHIVE_API_MINOR} ${ARCHIVE_API_REV} | awk '{printf("%d%03d%03d",$$1,$$2,$$3)}' +# The useful version number (one integer, easy to compare) +LIBARCHIVE_VERSION= 2004010 +# The pretty version string +LIBARCHIVE_VERSION_STRING!= echo $$((${LIBARCHIVE_VERSION} / 1000000)).$$((${LIBARCHIVE_VERSION} / 1000 % 1000)).$$((${LIBARCHIVE_VERSION} % 1000)) # FreeBSD SHLIB_MAJOR value is managed as part of the FreeBSD system. # It has no real relation to the version number above. SHLIB_MAJOR= 4 -CFLAGS+= -DPACKAGE_NAME=\"lib${LIB}\" -CFLAGS+= -DPACKAGE_VERSION=\"${VERSION}\" CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\" CFLAGS+= -I${.OBJDIR} @@ -37,11 +31,9 @@ INCS= archive.h archive_entry.h # Note: FreeBSD has inttypes.h, so enable that include in archive.h.in archive.h: archive.h.in Makefile cat ${.CURDIR}/archive.h.in | sed \ - -e 's/@ARCHIVE_VERSION@/${VERSION}/g' \ + -e 's/@LIBARCHIVE_VERSION@/${LIBARCHIVE_VERSION}/g' \ + -e 's/@LIBARCHIVE_VERSION_STRING@/${LIBARCHIVE_VERSION_STRING}/g' \ -e 's/@SHLIB_MAJOR@/${SHLIB_MAJOR}/g' \ - -e 's/@ARCHIVE_API_MAJOR@/${ARCHIVE_API_MAJOR}/g' \ - -e 's/@ARCHIVE_API_MINOR@/${ARCHIVE_API_MINOR}/g' \ - -e 's/@ARCHIVE_VERSION_STAMP@/${ARCHIVE_VERSION_STAMP}/g' \ -e 's|@ARCHIVE_H_INCLUDE_INTTYPES_H@|#include /* For int64_t */|g' \ > archive.h @@ -54,6 +46,8 @@ SRCS= archive.h \ archive_entry.c \ archive_entry_copy_stat.c \ archive_entry_stat.c \ + archive_entry_strmode.c \ + archive_entry_link_resolver.c \ archive_read.c \ archive_read_data_into_fd.c \ archive_read_extract.c \ @@ -72,6 +66,7 @@ SRCS= archive.h \ archive_read_support_format_cpio.c \ archive_read_support_format_empty.c \ archive_read_support_format_iso9660.c \ + archive_read_support_format_mtree.c \ archive_read_support_format_tar.c \ archive_read_support_format_zip.c \ archive_string.c \ @@ -105,8 +100,10 @@ MAN= archive_entry.3 \ archive_util.3 \ archive_write.3 \ archive_write_disk.3 \ + cpio.5 \ libarchive.3 \ libarchive-formats.5 \ + mtree.5 \ tar.5 # Symlink the man pages under each function name. @@ -246,7 +243,7 @@ MLINKS+= archive_write_disk.3 archive_write_disk_set_standard_lookup.3 MLINKS+= archive_write_disk.3 archive_write_disk_set_user_lookup.3 MLINKS+= libarchive.3 archive.3 -test: +check: cd ${.CURDIR}/test && make test .include -- cgit v1.1