From owner-p4-projects@FreeBSD.ORG Fri Jul 13 00:06:27 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 47EAF16A474; Fri, 13 Jul 2007 00:06:27 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EFF4216A46B for ; Fri, 13 Jul 2007 00:06:26 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2CD6513C44B for ; Fri, 13 Jul 2007 00:06:24 +0000 (UTC) (envelope-from gcooper@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l6D06OV0040783 for ; Fri, 13 Jul 2007 00:06:24 GMT (envelope-from gcooper@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l6D06NPV040780 for perforce@freebsd.org; Fri, 13 Jul 2007 00:06:23 GMT (envelope-from gcooper@FreeBSD.org) Date: Fri, 13 Jul 2007 00:06:23 GMT Message-Id: <200707130006.l6D06NPV040780@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 Cc: Subject: PERFORCE change 123411 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: Fri, 13 Jul 2007 00:06:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=123411 Change 123411 by gcooper@optimus-revised_pkgtools on 2007/07/13 00:06:05 Not sure why but existing file never made it to the depot.. Affected files ... .. //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/file.c#2 edit Differences ... ==== //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/file.c#2 (text+ko) ==== @@ -268,6 +268,10 @@ { char cmd[FILENAME_MAX]; + static struct timespec before, after, time_diff; + + clock_gettime(CLOCK_REALTIME, &before); + if (fname[0] == '/') snprintf(cmd, FILENAME_MAX, "/bin/cp -r %s %s", fname, to); else @@ -276,6 +280,15 @@ cleanup(0); errx(2, "%s: could not perform '%s'", __func__, cmd); } + + clock_gettime(CLOCK_REALTIME, &after); + + time_diff.tv_nsec = after.tv_nsec - before.tv_nsec; + + time_diff.tv_sec = after.tv_sec - before.tv_sec; + + printf( "(%s) Difference: %3.20lf secs\n", "copy_file", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 ) ); + } void @@ -283,6 +296,10 @@ { char cmd[FILENAME_MAX]; + static struct timespec before, after, time_diff; + + clock_gettime(CLOCK_REALTIME, &before); + if (fname[0] == '/') snprintf(cmd, FILENAME_MAX, "/bin/mv %s %s", fname, to); else @@ -291,6 +308,15 @@ cleanup(0); errx(2, "%s: could not perform '%s'", __func__, cmd); } + + clock_gettime(CLOCK_REALTIME, &after); + + time_diff.tv_nsec = after.tv_nsec - before.tv_nsec; + + time_diff.tv_sec = after.tv_sec - before.tv_sec; + + printf( "(%s) Difference: %3.20lf secs\n", "move_file", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 ) ); + } /* @@ -306,16 +332,22 @@ { char cmd[FILENAME_MAX * 3]; + static struct timespec before, after, time_diff; + + clock_gettime(CLOCK_REALTIME, &before); + if (!to) { /* If absolute path, use it */ if (*fname == '/') dir = "/"; + snprintf(cmd, FILENAME_MAX * 3, "/usr/bin/tar cf - -C %s %s | /usr/bin/tar xpf -", dir, fname); } else snprintf(cmd, FILENAME_MAX * 3, "/usr/bin/tar cf - %s | /usr/bin/tar xpf - -C %s", fname, dir); + #ifdef DEBUG printf("Using '%s' to copy trees.\n", cmd); #endif @@ -323,16 +355,33 @@ cleanup(0); errx(2, "%s: could not perform '%s'", __func__, cmd); } + + clock_gettime(CLOCK_REALTIME, &after); + + time_diff.tv_nsec = after.tv_nsec - before.tv_nsec; + + time_diff.tv_sec = after.tv_sec - before.tv_sec; + + printf( "(%s) Difference: %3.20lf secs\n", "copy_heirarchy", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 ) ); + } /* Unpack a tar file */ int unpack(const char *pkg, const char *flist) { + + static struct timespec before, after, time_diff; + + clock_gettime(CLOCK_REALTIME, &before); + const char *comp, *cp; char suff[80]; - comp = ""; + int ret_code = 0; + + comp = "-j"; + /* * Figure out by a crude heuristic whether this or not this is probably * compressed and whichever compression utility was used (gzip or bzip2). @@ -341,25 +390,27 @@ cp = strrchr(pkg, '.'); if (cp) { strcpy(suff, cp + 1); - if (strchr(suff, 'z') || strchr(suff, 'Z')) { - if (strchr(suff, 'b')) - comp = "-j"; - else - comp = "-z"; + if ((strchr(suff, 'z') || strchr(suff, 'Z')) && !strchr(suff, 'b')) { + comp = "-z"; } } } - else -#if defined(__FreeBSD_version) && __FreeBSD_version >= 500039 - comp = "-j"; -#else - comp = "-z"; -#endif + if (vsystem("/usr/bin/tar -xp %s -f '%s' %s", comp, pkg, flist ? flist : "")) { warnx("tar extract of %s failed!", pkg); - return 1; + ret_code = 1; } - return 0; + + clock_gettime(CLOCK_REALTIME, &after); + + time_diff.tv_nsec = after.tv_nsec - before.tv_nsec; + + time_diff.tv_sec = after.tv_sec - before.tv_sec; + + printf( "(%s) Difference: %3.20lf secs\n", "unpack", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 ) ); + + return ret_code; + } /*