From owner-p4-projects@FreeBSD.ORG Sun Jun 1 15:41:04 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 63A081065670; Sun, 1 Jun 2008 15:41:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2496B106564A for ; Sun, 1 Jun 2008 15:41:04 +0000 (UTC) (envelope-from strauss@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0907D8FC1A for ; Sun, 1 Jun 2008 15:41:04 +0000 (UTC) (envelope-from strauss@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m51Ff4u2026650 for ; Sun, 1 Jun 2008 15:41:04 GMT (envelope-from strauss@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m51Ff4Kj026646 for perforce@freebsd.org; Sun, 1 Jun 2008 15:41:04 GMT (envelope-from strauss@FreeBSD.org) Date: Sun, 1 Jun 2008 15:41:04 GMT Message-Id: <200806011541.m51Ff4Kj026646@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to strauss@FreeBSD.org using -f From: Anselm Strauss To: Perforce Change Reviews Cc: Subject: PERFORCE change 142709 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Jun 2008 15:41:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=142709 Change 142709 by strauss@strauss_daredevil on 2008/06/01 15:40:31 parent integration Affected files ... .. //depot/projects/soc2008/strauss_libarchive/COPYING#4 integrate .. //depot/projects/soc2008/strauss_libarchive/Makefile#4 delete .. //depot/projects/soc2008/strauss_libarchive/Makefile.am#3 integrate .. //depot/projects/soc2008/strauss_libarchive/Makefile.in#2 delete .. //depot/projects/soc2008/strauss_libarchive/NEWS#2 integrate .. //depot/projects/soc2008/strauss_libarchive/README#4 integrate .. //depot/projects/soc2008/strauss_libarchive/aclocal.m4#2 delete .. //depot/projects/soc2008/strauss_libarchive/autogen.sh#1 branch .. //depot/projects/soc2008/strauss_libarchive/config.h.in#2 delete .. //depot/projects/soc2008/strauss_libarchive/configure.ac#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/Makefile#3 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/bsdcpio.1#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/cmdline.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/config_freebsd.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/cpio.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/cpio.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/cpio_platform.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/err.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/matching.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/matching.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/pathmatch.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/pathmatch.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/Makefile#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/main.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_0.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_basic.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_format_newc.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat_ref.bin.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat_ref.crc.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat_ref.newc.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat_ref.ustar.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_B.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_L.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_a.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_c.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_d.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_ell.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_f.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_f.cpio.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_help.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_m.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_m.cpio.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_t.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_t.cpio.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_t.stdout.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_tv.stdout.uu#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_u.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_version.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_y.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_z.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_owner_parse.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/cpio/test/test_pathmatch.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/Makefile#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive.h#1 branch .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive.h.in#3 delete .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_endian.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_entry.3#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_entry.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_entry.h#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_entry_link_resolver.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_entry_private.h#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_entry_strmode.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_platform.h#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read.3#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_data_into_fd.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_extract.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_support_compression_bzip2.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_support_compression_program.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_support_format_ar.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_support_format_iso9660.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_support_format_mtree.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_support_format_tar.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_read_support_format_zip.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_string.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_string.h#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_util.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_windows.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_windows.h#1 branch .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write.3#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write_disk.3#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write_disk.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write_set_compression_program.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write_set_format_ar.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write_set_format_pax.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write_set_format_ustar.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/config_freebsd.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/config_windows.h#1 branch .. //depot/projects/soc2008/strauss_libarchive/libarchive/cpio.5#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/filter_fork.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/libarchive-formats.5#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/mtree.5#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/tar.5#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/Makefile#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/main.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_acl_pax.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_archive_api_feature.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_entry.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_link_resolver.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_pax_filename_encoding.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_read_format_mtree.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_read_format_tar_empty_filename.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_read_format_tar_empty_filename.tar.uu#1 branch .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_tar_filenames.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_tar_large.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_ustar_filenames.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_write_disk_hardlink.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_write_format_ar.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/libarchive/test/test_write_format_tar_ustar.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/release.sh#1 branch .. //depot/projects/soc2008/strauss_libarchive/tar/Makefile#3 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/bsdtar.1#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/bsdtar.c#3 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/bsdtar.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/config_freebsd.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/matching.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/read.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/siginfo.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/tar/subst.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/tar/test/Makefile#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/main.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/test.h#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_0.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_basic.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_copy.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_getdate.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_help.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_option_T.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_patterns.c#1 branch .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_stdio.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/test/test_version.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/util.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/tar/write.c#2 integrate .. //depot/projects/soc2008/strauss_libarchive/upload.sh#2 delete .. //depot/projects/soc2008/strauss_libarchive/version#2 integrate .. //depot/projects/soc2008/strauss_libarchive/windows/mvcpp.nt#1 branch .. //depot/projects/soc2008/strauss_libarchive/windows/wccpp.nt#1 branch Differences ... ==== //depot/projects/soc2008/strauss_libarchive/COPYING#4 (text+ko) ==== @@ -1,7 +1,41 @@ -All of the C source code and documentation in this package is subject -to the following: +The libarchive distribution as a whole is Copyright by Tim Kientzle +and is subject to the copyright notice reproduced at the bottom of +this file. + +Each individual file in this distribution should have a clear +copyright/licensing statement at the beginning of the file. If any do +not, please let me know and I will rectify it. The following is +intended to summarize the copyright status of the individual files; +the actual statements in the files are controlling. + +* Except as listed below, all C sources (including .c and .h files) + and documentation files are subject to the copyright notice reproduced + at the bottom of this file. + +* The following source files are also subject in whole or in part to + a 3-clause UC Regents copyright; please read the individual source + files for details: + libarchive/archive_entry.c + libarchive/archive_read_support_compression_compress.c + libarchive/archive_write_set_compression_compress.c + libarchive/mtree.5 + tar/matching.c + +* The following source files are in the public domain: + tar/getdate.y + +* The build files---including Makefiles, configure scripts, + and auxiliary scripts used as part of the compile process---have + widely varying licensing terms. Please check individual files before + distributing them to see if those restrictions apply to you. + +I intend for all new source code to use the license below and hope over +time to replace code with other licenses with new implementations that +do use the license below. The varying licensing of the build scripts +seems to be an unavoidable mess. + -Copyright (c) 2003-2006 Tim Kientzle +Copyright (c) 2003-2008 All rights reserved. Redistribution and use in source and binary forms, with or without ==== //depot/projects/soc2008/strauss_libarchive/Makefile.am#3 (text+ko) ==== @@ -25,8 +25,9 @@ # EXTRA_DIST= version \ contrib \ + doc \ examples \ - doc \ + windows \ $(libarchive_EXTRA_DIST) \ $(libarchive_test_EXTRA_DIST) \ $(bsdtar_EXTRA_DIST) \ @@ -43,7 +44,7 @@ rm -f `find $(distdir) -name '*.out'` rm -f `find $(distdir) -name '*.core'` -rm -f $(distdir)/*/Makefile $(distdir)/*/*/Makefile - cd $(distdir)/doc && ./update.sh + cd $(distdir)/doc && /bin/sh update.sh # # Extra rules for cleanup @@ -69,10 +70,7 @@ # # -include_HEADERS= libarchive/archive_entry.h -# Note: archive.h is built from archive.h.in, so don't -# include archive.h in the distfile, but do install it. -nodist_include_HEADERS= libarchive/archive.h +include_HEADERS= libarchive/archive.h libarchive/archive_entry.h libarchive_la_SOURCES= \ libarchive/archive_check_magic.c \ @@ -140,8 +138,6 @@ libarchive/filter_fork.c \ libarchive/filter_fork.h -# archive.h ends up in the build directory, so make sure we can find it. -libarchive_la_CPPFLAGS= -I$(top_builddir)/libarchive # cygwin barfs without -no-undefined; I don't know what it does or # whether it helps or hurts other platforms... libarchive_la_LDFLAGS= -no-undefined -version-info $(ARCHIVE_LIBTOOL_VERSION) @@ -161,8 +157,10 @@ libarchive/tar.5 # Additional libarchive files to include in the distribution -libarchive_EXTRA_DIST= \ - libarchive/test/list.h \ +libarchive_EXTRA_DIST= \ + libarchive/test/list.h \ + libarchive/archive_windows.c \ + libarchive/archive_windows.h \ $(libarchive_man_MANS) # @@ -272,14 +270,14 @@ tar/getdate.y \ tar/matching.c \ tar/read.c \ + tar/siginfo.c \ + tar/subst.c \ tar/tree.c \ tar/tree.h \ tar/util.c \ tar/write.c -bsdtar_DEPENDENCIES= libarchive.la \ - libarchive/archive_entry.h \ - libarchive/archive.h +bsdtar_DEPENDENCIES= libarchive.la if STATIC_BSDTAR bsdtar_static= -static @@ -314,6 +312,8 @@ tar/test/test_copy.c \ tar/test/test_getdate.c \ tar/test/test_help.c \ + tar/test/test_option_T.c \ + tar/test/test_patterns.c \ tar/test/test_stdio.c \ tar/test/test_version.c @@ -348,9 +348,7 @@ cpio/pathmatch.c \ cpio/pathmatch.h -bsdcpio_DEPENDENCIES = libarchive.la \ - libarchive/archive_entry.h \ - libarchive/archive.h +bsdcpio_DEPENDENCIES = libarchive.la if STATIC_BSDCPIO ==== //depot/projects/soc2008/strauss_libarchive/NEWS#2 (text+ko) ==== @@ -1,4 +1,54 @@ +May 25, 2008: libarchive 2.5.4b released +May 21, 2008: Joerg Sonnenberger: fix bsdtar hardlink handling for newc format + +May 21, 2008: More progress on Windows building. Thanks to "Scott" + for the Windows makefiles, thanks to Kees Zeelenberg for + code contributions. + +May 21, 2008: Fix a number of non-exploitable integer and buffer overflows, + thanks to David Remahl at Apple for pointing these out. + +May 21, 2008: Colin Percival: SIGINFO or SIGUSR1 to bsdtar prints progress info + +May 16, 2008: bsdtar's test harness no longer depends on file ordering. + This was causing spurious test failures on a lot of systems. + Thanks to Bernhard R. Link for the diagnosis. + +May 14, 2008: Joerg Sonnenberger: -s substitution support for bsdtar + +May 13, 2008: Joerg Sonnenberger: Many mtree improvements + +May 11, 2008: Joerg Sonnenberger: fix hardlink extraction when + hardlinks have different permissions from original file + +April 30, 2008: Primary libarchive work has been moved into the FreeBSD + project's Perforce repository: http://perforce.freebsd.org/ + The libarchive project can be browsed at + //depot/user/kientzle/libarchive-portable + Direct link: http://preview.tinyurl.com/46mdgr + +May 04, 2008: libarchive 2.5.3b released + * libarchive: Several fixes to link resolver to address bsdcpio crashes + * bsdcpio: -p hardlink handling fixes + * tar/pax: Ensure ustar dirnames end in '/'; be more careful about + measuring filenames when deciding what pathname fields to use + * libarchive: Mark which entry strings are set; be accurate about + distinguishing empty strings ("") from unset ones (NULL) + * tar: Don't crash reading entries with empty filenames + * libarchive_test, bsdtar_test, bsdcpio_test: Better detaults: + run all tests, delete temp dirs, summarize repeated failures + * -no-undefined to libtool for Cygwin + * libarchive_test: Skip large file tests on systems with 32-bit off_t + * iso9660: Don't bother trying to find the body of an empty file; + this works around strange behavior from some ISO9660 writers + * tar: allow -r -T to be used together + * tar: allow --format with -r or -u + * libarchive: Don't build archive.h + +May 04, 2008: Simplified building: archive.h is no longer constructed + This may require additional #if conditionals on some platforms. + Mar 30, 2008: libarchive 2.5.1b released Mar 15, 2008: libarchive 2.5.0b released ==== //depot/projects/soc2008/strauss_libarchive/README#4 (text+ko) ==== @@ -69,6 +69,7 @@ The library can write: * gzip compression * bzip2 compression + * compress/LZW compression * POSIX ustar * POSIX pax interchange format * "restricted" pax format, which will create ustar archives except for ==== //depot/projects/soc2008/strauss_libarchive/configure.ac#2 (text+ko) ==== @@ -4,13 +4,13 @@ dnl In particular, this allows the version macro to be used in AC_INIT dnl These first two version numbers are updated automatically on each release. -m4_define([LIBARCHIVE_VERSION_S],[2.5.1b]) -m4_define([LIBARCHIVE_VERSION_N],[2005001]) +m4_define([LIBARCHIVE_VERSION_S],[2.5.4b]) +m4_define([LIBARCHIVE_VERSION_N],[2005004]) dnl bsdtar versioning tracks libarchive m4_define([BSDTAR_VERSION_S],LIBARCHIVE_VERSION_S()) dnl bsdcpio is still versioning separately -m4_define([BSDCPIO_VERSION_S],[0.9.9a]) +m4_define([BSDCPIO_VERSION_S],[0.9.10a]) # # Now starts the "real" configure script. @@ -63,7 +63,6 @@ AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) -AC_CONFIG_FILES([libarchive/archive.h]) # Checks for programs. AC_PROG_CC @@ -174,7 +173,7 @@ AC_CHECK_HEADER(inttypes.h, [AC_SUBST(ARCHIVE_H_INCLUDE_INTTYPES_H,['#include /* For int64_t */'])], [AC_SUBST(ARCHIVE_H_INCLUDE_INTTYPES_H,[''])]) -AC_CHECK_HEADERS([locale.h paths.h poll.h pwd.h stdarg.h]) +AC_CHECK_HEADERS([locale.h paths.h poll.h pwd.h regex.h stdarg.h]) AC_CHECK_HEADERS([stdint.h stdlib.h string.h sys/acl.h sys/ioctl.h]) AC_CHECK_HEADERS([sys/param.h sys/poll.h sys/select.h sys/time.h sys/utime.h]) AC_CHECK_HEADERS([time.h unistd.h utime.h wchar.h zlib.h]) @@ -240,13 +239,13 @@ AC_FUNC_STRERROR_R AC_FUNC_STRFTIME AC_FUNC_VPRINTF -AC_CHECK_FUNCS([chflags chown fchdir fchflags fchmod fchown fstat]) -AC_CHECK_FUNCS([ftruncate futimes geteuid getopt_long getpid]) +AC_CHECK_FUNCS([chflags chown fchdir fchflags fchmod fchown fcntl fork]) +AC_CHECK_FUNCS([fstat ftruncate futimes geteuid getopt_long getpid]) AC_CHECK_FUNCS([lchflags lchmod lchown]) AC_CHECK_FUNCS([lutimes memmove memset mkdir mkfifo mknod]) -AC_CHECK_FUNCS([nl_langinfo poll select setenv setlocale]) +AC_CHECK_FUNCS([nl_langinfo pipe poll select setenv setlocale]) AC_CHECK_FUNCS([strchr strdup strerror strrchr timegm]) -AC_CHECK_FUNCS([tzset unsetenv utime utimes]) +AC_CHECK_FUNCS([tzset unsetenv utime utimes vfork]) AC_CHECK_FUNCS([wcscpy wcslen wmemcmp wmemcpy]) # FreeBSD's nl_langinfo supports an option to specify whether the ==== //depot/projects/soc2008/strauss_libarchive/cpio/Makefile#3 (text+ko) ==== @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= bsdcpio -BSDCPIO_VERSION_STRING=0.9.9a +BSDCPIO_VERSION_STRING=0.9.10a SRCS= cpio.c cmdline.c err.c matching.c pathmatch.c WARNS?= 6 DPADD= ${LIBARCHIVE} ${LIBZ} ${LIBBZ2} ==== //depot/projects/soc2008/strauss_libarchive/cpio/bsdcpio.1#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/cmdline.c#2 (text+ko) ==== @@ -66,7 +66,7 @@ */ -static const char *cpio_opts = "AaBC:F:O:cdE:f:H:hijLlmopR:rtuvW:yZz"; +static const char *cpio_opts = "0AaBC:F:O:cdE:f:H:hijLlmopR:rtuvW:yZz"; /* * On systems that lack getopt_long, long options can be specified @@ -86,6 +86,7 @@ { "format", required_argument, NULL, 'H' }, { "help", no_argument, NULL, 'h' }, { "insecure", no_argument, NULL, OPTION_INSECURE }, + { "null", no_argument, NULL, '0' }, { "owner", required_argument, NULL, 'R' }, { "quiet", no_argument, NULL, OPTION_QUIET }, { "verbose", no_argument, NULL, 'v' }, ==== //depot/projects/soc2008/strauss_libarchive/cpio/config_freebsd.h#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/cpio.c#2 (text+ko) ==== @@ -101,6 +101,7 @@ cpio->gid_override = -1; cpio->argv = argv; cpio->argc = argc; + cpio->line_separator = '\n'; cpio->mode = '\0'; cpio->verbose = 0; cpio->compress = '\0'; @@ -116,6 +117,9 @@ while ((opt = cpio_getopt(cpio)) != -1) { switch (opt) { + case '0': /* GNU convention: --null, -0 */ + cpio->line_separator = '\0'; + break; case 'A': /* NetBSD/OpenBSD */ cpio->option_append = 1; break; @@ -341,8 +345,10 @@ static void mode_out(struct cpio *cpio) { + unsigned long blocks; struct archive_entry *entry, *spare; - unsigned long blocks; + struct line_reader *lr; + const char *p; int r; if (cpio->option_append) @@ -375,7 +381,10 @@ r = archive_write_open_file(cpio->archive, cpio->filename); if (r != ARCHIVE_OK) cpio_errc(1, 0, archive_error_string(cpio->archive)); - process_lines(cpio, "-", file_to_archive); + lr = process_lines_init("-", cpio->line_separator); + while ((p = process_lines_next(lr)) != NULL) + file_to_archive(cpio, p); + process_lines_free(lr); /* * The hardlink detection may have queued up a couple of entries @@ -793,6 +802,8 @@ static void mode_pass(struct cpio *cpio, const char *destdir) { + struct line_reader *lr; + const char *p; int r; /* Ensure target dir has a trailing '/' to simplify path surgery. */ @@ -809,7 +820,10 @@ cpio_errc(1, 0, archive_error_string(cpio->archive)); cpio->linkresolver = archive_entry_linkresolver_new(); archive_write_disk_set_standard_lookup(cpio->archive); - process_lines(cpio, "-", file_to_archive); + lr = process_lines_init("-", cpio->line_separator); + while ((p = process_lines_next(lr)) != NULL) + file_to_archive(cpio, p); + process_lines_free(lr); archive_entry_linkresolver_free(cpio->linkresolver); r = archive_write_close(cpio->archive); @@ -868,79 +882,119 @@ * terminated with newlines. * * This uses a self-sizing buffer to handle arbitrarily-long lines. - * If the "process" function returns non-zero for any line, this - * function will return non-zero after attempting to process all - * remaining lines. */ -int -process_lines(struct cpio *cpio, const char *pathname, - int (*process)(struct cpio *, const char *)) -{ +struct line_reader { FILE *f; char *buff, *buff_end, *line_start, *line_end, *p; - size_t buff_length, bytes_read, bytes_wanted; + char *pathname; + size_t buff_length; int separator; int ret; +}; - separator = cpio->option_null ? '\0' : '\n'; - ret = 0; +struct line_reader * +process_lines_init(const char *pathname, char separator) +{ + struct line_reader *lr; + + lr = calloc(1, sizeof(*lr)); + if (lr == NULL) + cpio_errc(1, ENOMEM, "Can't open %s", pathname); + + lr->separator = separator; + lr->pathname = strdup(pathname); if (strcmp(pathname, "-") == 0) - f = stdin; + lr->f = stdin; else - f = fopen(pathname, "r"); - if (f == NULL) + lr->f = fopen(pathname, "r"); + if (lr->f == NULL) cpio_errc(1, errno, "Couldn't open %s", pathname); - buff_length = 8192; - buff = malloc(buff_length); - if (buff == NULL) + lr->buff_length = 8192; + lr->buff = malloc(lr->buff_length); + if (lr->buff == NULL) cpio_errc(1, ENOMEM, "Can't read %s", pathname); - line_start = line_end = buff_end = buff; + lr->line_start = lr->line_end = lr->buff_end = lr->buff; + + return (lr); +} + +const char * +process_lines_next(struct line_reader *lr) +{ + size_t bytes_wanted, bytes_read, new_buff_size; + char *line_start, *p; + for (;;) { - /* Get some more data into the buffer. */ - bytes_wanted = buff + buff_length - buff_end; - bytes_read = fread(buff_end, 1, bytes_wanted, f); - buff_end += bytes_read; - /* Process all complete lines in the buffer. */ - while (line_end < buff_end) { - if (*line_end == separator) { - *line_end = '\0'; - if ((*process)(cpio, line_start) != 0) - ret = -1; - line_start = line_end + 1; - line_end = line_start; + /* If there's a line in the buffer, return it immediately. */ + while (lr->line_end < lr->buff_end) { + if (*lr->line_end == lr->separator) { + *lr->line_end = '\0'; + line_start = lr->line_start; + lr->line_start = lr->line_end + 1; + lr->line_end = lr->line_start; + return (line_start); } else - line_end++; + lr->line_end++; + } + + /* If we're at end-of-file, process the final data. */ + if (lr->f == NULL) { + /* If there's more text, return one last line. */ + if (lr->line_end > lr->line_start) { + *lr->line_end = '\0'; + line_start = lr->line_start; + lr->line_start = lr->line_end + 1; + lr->line_end = lr->line_start; + return (line_start); + } + /* Otherwise, we're done. */ + return (NULL); } - if (feof(f)) - break; - if (ferror(f)) - cpio_errc(1, errno, "Can't read %s", pathname); - if (line_start > buff) { + + /* Buffer only has part of a line. */ + if (lr->line_start > lr->buff) { /* Move a leftover fractional line to the beginning. */ - memmove(buff, line_start, buff_end - line_start); - buff_end -= line_start - buff; - line_end -= line_start - buff; - line_start = buff; + memmove(lr->buff, lr->line_start, + lr->buff_end - lr->line_start); + lr->buff_end -= lr->line_start - lr->buff; + lr->line_end -= lr->line_start - lr->buff; + lr->line_start = lr->buff; } else { /* Line is too big; enlarge the buffer. */ - p = realloc(buff, buff_length *= 2); + new_buff_size = lr->buff_length * 2; + if (new_buff_size <= lr->buff_length) + cpio_errc(1, ENOMEM, + "Line too long in %s", lr->pathname); + lr->buff_length = new_buff_size; + p = realloc(lr->buff, new_buff_size); if (p == NULL) cpio_errc(1, ENOMEM, - "Line too long in %s", pathname); - buff_end = p + (buff_end - buff); - line_end = p + (line_end - buff); - line_start = buff = p; + "Line too long in %s", lr->pathname); + lr->buff_end = p + (lr->buff_end - lr->buff); + lr->line_end = p + (lr->line_end - lr->buff); + lr->line_start = lr->buff = p; + } + + /* Get some more data into the buffer. */ + bytes_wanted = lr->buff + lr->buff_length - lr->buff_end; + bytes_read = fread(lr->buff_end, 1, bytes_wanted, lr->f); + lr->buff_end += bytes_read; + + if (ferror(lr->f)) + cpio_errc(1, errno, "Can't read %s", lr->pathname); + if (feof(lr->f)) { + if (lr->f != stdin) + fclose(lr->f); + lr->f = NULL; } } - /* At end-of-file, handle the final line. */ - if (line_end > line_start) { - *line_end = '\0'; - if ((*process)(cpio, line_start) != 0) - ret = -1; - } - free(buff); - if (f != stdin) - fclose(f); - return (ret); +} + +void +process_lines_free(struct line_reader *lr) +{ + free(lr->buff); + free(lr->pathname); + free(lr); } ==== //depot/projects/soc2008/strauss_libarchive/cpio/cpio.h#2 (text+ko) ==== @@ -53,12 +53,12 @@ int extract_flags; /* Flags for extract operation */ char symlink_mode; /* H or L, per BSD conventions */ const char *compress_program; + char line_separator; /* --null ? '\0' : '\n' */ int option_append; /* -A, only relevant for -o */ int option_atime_restore; /* -a */ int option_follow_links; /* -L */ int option_link; /* -l */ int option_list; /* -t */ - int option_null; /* -0 --null */ int option_rename; /* -r */ char *destdir; size_t pass_destpath_alloc; @@ -98,9 +98,13 @@ OPTION_VERSION }; +struct line_reader; + +struct line_reader *process_lines_init(const char *, char separator); +const char *process_lines_next(struct line_reader *); +void process_lines_free(struct line_reader *); + int cpio_getopt(struct cpio *cpio); -int process_lines(struct cpio *cpio, const char *pathname, - int (*process)(struct cpio *, const char *)); int include_from_file(struct cpio *, const char *); #endif ==== //depot/projects/soc2008/strauss_libarchive/cpio/cpio_platform.h#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/err.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/matching.c#2 (text+ko) ==== @@ -107,7 +107,16 @@ int include_from_file(struct cpio *cpio, const char *pathname) { - return (process_lines(cpio, pathname, &include)); + struct line_reader *lr; + const char *p; + int ret = 0; + + lr = process_lines_init(pathname, '\n'); + while ((p = process_lines_next(lr)) != NULL) + if (include(cpio, p) != 0) + ret = -1; + process_lines_free(lr); + return (ret); } static void ==== //depot/projects/soc2008/strauss_libarchive/cpio/matching.h#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/pathmatch.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/pathmatch.h#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/Makefile#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/main.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test.h#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_0.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_basic.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_format_newc.c#2 (text+ko) ==== @@ -66,7 +66,7 @@ int fd, list; int r; int devmajor, devminor, ino, gid; - time_t t, now; + time_t t, t2, now; char *p, *e; size_t s; mode_t oldmask; @@ -159,7 +159,9 @@ assertEqualInt(from_hex(e + 22, 8), getuid()); /* uid */ assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000001", 8); /* nlink */ - assertEqualInt(t, from_hex(e + 46, 8)); /* mtime */ + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000005", 8); /* File size */ assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */ @@ -179,7 +181,9 @@ assertEqualInt(from_hex(e + 22, 8), getuid()); /* uid */ assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000002", 8); /* nlink */ - assertEqualInt(t, from_hex(e + 46, 8)); /* mtime */ + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000000", 8); /* File size */ assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */ @@ -203,7 +207,9 @@ assertEqualInt(from_hex(e + 22, 8), getuid()); /* uid */ assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ - assertEqualInt(t, from_hex(e + 46, 8)); /* mtime */ + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualInt(10, from_hex(e + 54, 8)); /* File size */ assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */ ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat_ref.bin.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat_ref.crc.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat_ref.newc.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_gcpio_compat_ref.ustar.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_B.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_L.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_a.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_c.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_d.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_ell.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_f.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_f.cpio.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_help.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_m.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_m.cpio.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_t.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_t.cpio.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_t.stdout.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_tv.stdout.uu#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_u.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_version.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_y.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_option_z.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_owner_parse.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/cpio/test/test_pathmatch.c#2 (text+ko) ==== ==== //depot/projects/soc2008/strauss_libarchive/libarchive/Makefile#3 (text+ko) ==== @@ -1,22 +1,11 @@ -# $FreeBSD: src/lib/libarchive/Makefile,v 1.83 2008/03/21 11:10:20 kaiw Exp $ +# $FreeBSD: src/lib/libarchive/Makefile,v 1.84 2008/05/26 17:00:22 kientzle Exp $ LIB= archive DPADD= ${LIBBZ2} ${LIBZ} LDADD= -lbz2 -lz -# The libarchive version stamp. -# Version is three numbers: -# Major: Bumped ONLY when API/ABI breakage happens (see SHLIB_MAJOR) -# Minor: Bumped when significant new features are added -# Revision: Bumped frequently. - -# The useful version number (one integer, easy to compare) -LIBARCHIVE_VERSION_NUMBER=2005001 -# The pretty version string -LIBARCHIVE_VERSION_STRING=2.5.1b - # FreeBSD SHLIB_MAJOR value is managed as part of the FreeBSD system. -# It has no real relation to the version number above. +# It has no real relation to the libarchive version number. SHLIB_MAJOR= 4 CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\" @@ -27,20 +16,8 @@ # Headers to be installed in /usr/include INCS= archive.h archive_entry.h -# Build archive.h from archive.h.in by substituting version information. -# 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/@LIBARCHIVE_VERSION_NUMBER@/${LIBARCHIVE_VERSION_NUMBER}/g' \ - -e 's/@LIBARCHIVE_VERSION_STRING@/${LIBARCHIVE_VERSION_STRING}/g' \ - > archive.h - -# archive.h needs to be cleaned -CLEANFILES+= archive.h - # Sources to be compiled. -SRCS= archive.h \ - archive_check_magic.c \ +SRCS= archive_check_magic.c \ archive_entry.c \ archive_entry_copy_stat.c \ archive_entry_stat.c \ @@ -115,6 +92,7 @@ MLINKS+= archive_entry.3 archive_entry_acl_text_w.3 MLINKS+= archive_entry.3 archive_entry_clear.3 MLINKS+= archive_entry.3 archive_entry_clone.3 +MLINKS+= archive_entry.3 archive_entry_copy_fflags_text.3 MLINKS+= archive_entry.3 archive_entry_copy_fflags_text_w.3 MLINKS+= archive_entry.3 archive_entry_copy_gname.3 MLINKS+= archive_entry.3 archive_entry_copy_gname_w.3 @@ -230,6 +208,7 @@ MLINKS+= archive_write.3 archive_write_set_bytes_per_block.3 MLINKS+= archive_write.3 archive_write_set_callbacks.3 MLINKS+= archive_write.3 archive_write_set_compression_bzip2.3 +MLINKS+= archive_write.3 archive_write_set_compression_compress.3 MLINKS+= archive_write.3 archive_write_set_compression_gzip.3 MLINKS+= archive_write.3 archive_write_set_compression_none.3 MLINKS+= archive_write.3 archive_write_set_compression_program.3 ==== //depot/projects/soc2008/strauss_libarchive/libarchive/archive_endian.h#2 (text+ko) ==== @@ -23,14 +23,28 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libarchive/archive_endian.h,v 1.2 2008/02/26 07:17:47 kientzle Exp $ + * $FreeBSD: src/lib/libarchive/archive_endian.h,v 1.3 2008/05/26 17:00:22 kientzle Exp $ * * Borrowed from FreeBSD's */ +/* Note: This is a purely internal header! */ +/* Do not use this outside of libarchive internal code! */ + #ifndef ARCHIVE_ENDIAN_H_INCLUDED #define ARCHIVE_ENDIAN_H_INCLUDED + +/* Watcom C++ doesn't support 'inline' in C code. (For any version?) */ +#if defined( __WATCOMC__ ) + #define inline +#endif + +/* Visual C++ 6.0 doesn't support 'inline' in C code. (Does VC7? VC8?) */ +#if defined(_MSC_VER) + #define inline +#endif + /* Alignment-agnostic encode/decode bytestream to/from little/big endian. */ static inline uint16_t ==== //depot/projects/soc2008/strauss_libarchive/libarchive/archive_entry.3#3 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<<