svn commit: r243228 - head/etc
Chris Rees
utisoft at gmail.com
Wed Nov 21 10:38:13 UTC 2012
On 20 Nov 2012 13:53, "Bruce Evans" <brde at 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 at 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
More information about the svn-src-all
mailing list