From owner-p4-projects@FreeBSD.ORG Mon Apr 12 09:54:16 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D52F91065673; Mon, 12 Apr 2010 09:54:15 +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 99FC0106564A for ; Mon, 12 Apr 2010 09:54:15 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6CEDC8FC0C for ; Mon, 12 Apr 2010 09:54:15 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3C9sFjb014871 for ; Mon, 12 Apr 2010 09:54:15 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3C9sFnl014869 for perforce@freebsd.org; Mon, 12 Apr 2010 09:54:15 GMT (envelope-from gcooper@FreeBSD.org) Date: Mon, 12 Apr 2010 09:54:15 GMT Message-Id: <201004120954.o3C9sFnl014869@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gcooper@FreeBSD.org using -f From: Garrett Cooper To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 176827 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 09:54:16 -0000 http://p4web.freebsd.org/@@176827?ac=10 Change 176827 by gcooper@gcooper-bayonetta on 2010/04/12 09:53:17 Fix two bugs and add debug code in unpack. 1. Forgot to add archive_read(3). 2. Didn't delete leftover arguments from previous tar(1) invocation. 3. Add psuedo-tar(1)-like printouts for determining what was extracted (X) and what was skipped (S). Affected files ... .. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#4 edit .. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#9 edit Differences ... ==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#4 (text+ko) ==== @@ -63,7 +63,6 @@ Package Plist; char pkg_fullname[FILENAME_MAX]; char playpen[FILENAME_MAX]; - char extract_contents[FILENAME_MAX]; char *extract; const char *where_to; FILE *cfile; @@ -129,8 +128,7 @@ warnx("can't stat package file '%s'", pkg_fullname); goto bomb; } - sprintf(extract_contents, "--fast-read %s", CONTENTS_FNAME); - extract = extract_contents; + extract = CONTENTS_FNAME; } else { extract = NULL; ==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#9 (text+ko) ==== @@ -355,8 +355,17 @@ if (file_expr == NULL || strcmp("*", file_expr) == 0) extract_whole_archive = TRUE; + if (Verbose) { + if (extract_whole_archive) + printf("%s: will extract whole archive\n", __func__); + else + printf("%s: will extract files that match: %s\n", + __func__, file_expr); + } + pkg_name_humanized = strcmp(pkg, "-") == 0 ? "(stdin)" : pkg; + archive = archive_read_new(); archive_read_support_compression_all(archive); archive_read_support_format_tar(archive); @@ -388,7 +397,14 @@ "%s", __func__, pkg_name_humanized, error); } + if (Verbose) { + printf("X - %s\n", + archive_entry_pathname(archive_entry)); + } + } else if (Verbose) { + printf("S - %s\n", + archive_entry_pathname(archive_entry)); } }