Date: Wed, 21 Nov 2012 10:38:10 +0000 From: Chris Rees <utisoft@gmail.com> To: Bruce Evans <brde@optusnet.com.au> Cc: svn-src-head@freebsd.org, John Hay <jhay@meraka.org.za>, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r243228 - head/etc Message-ID: <CADLo839KEE7QE5vNN7MSLk3L=7cW67zTY8hX6VPYjYFFWMXuLg@mail.gmail.com> In-Reply-To: <20121121002013.S6273@besplex.bde.org> References: <201211181421.qAIEL5KT042019@svn.freebsd.org> <20121120105858.GA73018@zibbi.meraka.csir.co.za> <20121121002013.S6273@besplex.bde.org>
index | next in thread | previous in thread | raw e-mail
On 20 Nov 2012 13:53, "Bruce Evans" <brde@optusnet.com.au> wrote:
>
> 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 <f_zavatzki@blue-network.org>
>>> 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.
*sigh*
Hiroki Sato tested it, but i don't know if he had ro /. This appears to
have caused a few problems, possibly more than the benefit of the change
(hard links).
I'm inclined to be a coward and just revert this later; anyone who can get
there before me, feel free.
When I'm done with the other rc PRs (haha) I'll look at fixing our cp.
Chris
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLo839KEE7QE5vNN7MSLk3L=7cW67zTY8hX6VPYjYFFWMXuLg>
