summaryrefslogtreecommitdiffstats
path: root/usr.sbin/portsnap
diff options
context:
space:
mode:
authorsimon <simon@FreeBSD.org>2010-12-19 23:09:42 +0000
committersimon <simon@FreeBSD.org>2010-12-19 23:09:42 +0000
commitb19345a9d730c11fed5875fae4fc96a257111477 (patch)
treea12c5ed665a5a66b961fb925e155898120b70fb2 /usr.sbin/portsnap
parent3d12be787fdae0e84c692063b0c36fbecee858b2 (diff)
downloadFreeBSD-src-b19345a9d730c11fed5875fae4fc96a257111477.zip
FreeBSD-src-b19345a9d730c11fed5875fae4fc96a257111477.tar.gz
Add --numeric-owner to tar extract operations in portsnap.
This is done to speed up extraction significantly (both for portsnap extract and update) in the case of slow NSS modules (like nss_ldap) as it avoids having to look up uid and gid for root / wheel. The reason this is a bigger problem for portsnap than for many other system operations, is that portsnap executes tar(1) once for each port so the internal uid/gid caching in tar(1) only helps a bit, resulting in many user lookup calls. Discussed with: cperciva
Diffstat (limited to 'usr.sbin/portsnap')
-rw-r--r--usr.sbin/portsnap/portsnap/portsnap.sh10
1 files changed, 5 insertions, 5 deletions
diff --git a/usr.sbin/portsnap/portsnap/portsnap.sh b/usr.sbin/portsnap/portsnap/portsnap.sh
index f554809..60b20a0 100644
--- a/usr.sbin/portsnap/portsnap/portsnap.sh
+++ b/usr.sbin/portsnap/portsnap/portsnap.sh
@@ -632,7 +632,7 @@ fetch_snapshot() {
fetch -r http://${SERVERNAME}/s/${SNAPSHOTHASH}.tgz || return 1
echo -n "Extracting snapshot... "
- tar -xzf ${SNAPSHOTHASH}.tgz snap/ || return 1
+ tar -xz --numeric-owner -f ${SNAPSHOTHASH}.tgz snap/ || return 1
rm ${SNAPSHOTHASH}.tgz
echo "done."
@@ -896,12 +896,12 @@ extract_run() {
*/)
rm -rf ${PORTSDIR}/${FILE%/}
mkdir -p ${PORTSDIR}/${FILE}
- tar -xzf ${WORKDIR}/files/${HASH}.gz \
+ tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \
-C ${PORTSDIR}/${FILE}
;;
*)
rm -f ${PORTSDIR}/${FILE}
- tar -xzf ${WORKDIR}/files/${HASH}.gz \
+ tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \
-C ${PORTSDIR} ${FILE}
;;
esac
@@ -966,11 +966,11 @@ update_run() {
case ${FILE} in
*/)
mkdir -p ${PORTSDIR}/${FILE}
- tar -xzf ${WORKDIR}/files/${HASH}.gz \
+ tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \
-C ${PORTSDIR}/${FILE}
;;
*)
- tar -xzf ${WORKDIR}/files/${HASH}.gz \
+ tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \
-C ${PORTSDIR} ${FILE}
;;
esac
OpenPOWER on IntegriCloud