From owner-cvs-all@FreeBSD.ORG Sat Aug 18 21:53:26 2007 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4903D16A417; Sat, 18 Aug 2007 21:53:26 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 39BFC13C45B; Sat, 18 Aug 2007 21:53:26 +0000 (UTC) (envelope-from kientzle@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 l7ILrPMp094060; Sat, 18 Aug 2007 21:53:25 GMT (envelope-from kientzle@repoman.freebsd.org) Received: (from kientzle@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7ILrPeP094052; Sat, 18 Aug 2007 21:53:25 GMT (envelope-from kientzle) Message-Id: <200708182153.l7ILrPeP094052@repoman.freebsd.org> From: Tim Kientzle Date: Sat, 18 Aug 2007 21:53:25 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/lib/libarchive archive_read_support_format_tar.c src/lib/libarchive/test test_read_format_gtar_sparse.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Aug 2007 21:53:26 -0000 kientzle 2007-08-18 21:53:25 UTC FreeBSD src repository Modified files: lib/libarchive archive_read_support_format_tar.c lib/libarchive/test test_read_format_gtar_sparse.c Log: This commit updates libarchive to be compatible with GNU tar 1.17's implementation of --posix --sparse, at the cost of losing compatibility with GNU tar 1.16. Fortunately, the 1.17 implementation actually makes sense, so the libarchive code is now a bit more straightforward than before. Background: GNU tar 1.16 defined a new way to store sparse files in --posix archives. Unfortunately, the implementation incorrectly inserted several blocks of null padding after each such entry. As a result, non-GNU tar implementations saw the archive as truncated after any sparse entry. This was fixed in GNU tar 1.17 at the cost of losing compatibility with GNU tar 1.16 for this new format (which is not the default, so hopefully rarely used). Libarchive recently gained support for reading the GNU tar 1.16 formats; this commit updates it to read the GNU tar 1.17 variant instead. Approved by: re (ksmith for libarchive portion) Approved by: re (blanket for libarchive_test portion) MFC after: 5 days Revision Changes Path 1.61 +63 -47 src/lib/libarchive/archive_read_support_format_tar.c 1.6 +534 -133 src/lib/libarchive/test/test_read_format_gtar_sparse.c