On 20 Nov 2012 13:53, "Bruce Evans" <b...@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_zavat...@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 _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"