From owner-svn-src-head@FreeBSD.ORG Tue Nov 20 13:53:07 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DD4309E2; Tue, 20 Nov 2012 13:53:07 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from fallbackmx08.syd.optusnet.com.au (fallbackmx08.syd.optusnet.com.au [211.29.132.10]) by mx1.freebsd.org (Postfix) with ESMTP id D16438FC16; Tue, 20 Nov 2012 13:53:05 +0000 (UTC) Received: from mail28.syd.optusnet.com.au (mail28.syd.optusnet.com.au [211.29.133.169]) by fallbackmx08.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id qAKDqxWW029907; Wed, 21 Nov 2012 00:52:59 +1100 Received: from c122-106-175-26.carlnfd1.nsw.optusnet.com.au (c122-106-175-26.carlnfd1.nsw.optusnet.com.au [122.106.175.26]) by mail28.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id qAKDqlTi023074 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 21 Nov 2012 00:52:50 +1100 Date: Wed, 21 Nov 2012 00:52:47 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: John Hay Subject: Re: svn commit: r243228 - head/etc In-Reply-To: <20121120105858.GA73018@zibbi.meraka.csir.co.za> Message-ID: <20121121002013.S6273@besplex.bde.org> References: <201211181421.qAIEL5KT042019@svn.freebsd.org> <20121120105858.GA73018@zibbi.meraka.csir.co.za> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-Cloudmark-Score: 0 X-Optus-Cloudmark-Analysis: v=2.0 cv=fbv1UDsF c=1 sm=1 a=oqJYCRs2r9kA:10 a=kj9zAlcOel0A:10 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=lBvS7PFwMUkA:10 a=TzaL9rleAAAA:8 a=HdQexq2s1fwZG_iFNzIA:9 a=CjuIK1q_8ugA:10 a=B2ksryrJphYA:10 a=bxQHXO5Py4tHmhUgaywp5w==:117 Cc: Chris Rees , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Nov 2012 13:53:07 -0000 On Tue, 20 Nov 2012, John Hay wrote: > On Sun, Nov 18, 2012 at 02:21:05PM +0000, Chris Rees wrote: >> Log: >> cp -R misses out dotfiles; use pax instead to copy file hierarchies >> >> PR: conf/99721 (based on) >> Submitted by: Florian Zavatzki >> Approved by: hrs >> MFC after: 1 month >> >> Modified: >> head/etc/rc.initdiskless >> >> Modified: head/etc/rc.initdiskless >> ============================================================================== >> --- head/etc/rc.initdiskless Sun Nov 18 14:05:28 2012 (r243227) >> +++ head/etc/rc.initdiskless Sun Nov 18 14:21:05 2012 (r243228) >> @@ -354,7 +354,7 @@ for i in ${templates} ; do >> subdir=${j##*/} >> if [ -d $j -a ! -f $j.cpio.gz ]; then >> create_md $subdir >> - cp -Rp $j/ /$subdir >> + (cd $j && pax -rw . /$subdir) >> fi >> done >> for j in /conf/$i/*.cpio.gz ; do > > Have you tested this on a diskless and readonly system? It looks like pax > need to write something in /tmp and it might not be writeable yet. I got > an error, after the first of /bin/pax not found and having to add that to > the list of files needed. It uses mkstemp(3), normally in /tmp but it honors $TMPDIR. It seems to always create 1 temporary file (even for copying a single regular file), and sometimes 2 temporary files. Both of the temporary files seem to be to hold metadata for file times and hashes, in case it is too large for memory. cp -Rp probably needs to do the same (except it is imperfect to unnecessarily assume that /tmp is writable), to fix its link and timestamp handling. BTW, I think it is a large bug that ed and vi create temporary files even before you change anything. Even view(1) (vi -R) wants to scribble on /var/tmp/vi.recover. At least it doesn't refuse to start if this is not writeable. ed(1) is considerably more broken. It - hard codes /tmp and doesn't use _PATH_TMP or honor $TMPDIR - always scribbles in /tmp - refuses to start if /tmp is not writeable. This makes ed(1) wlays broken in single user shells until '/' is mounted rw, although ed is the only editor that is sure to be there and the reason for using a single user shell is often that there is a problem with mounting '/' rw. Bruce