Updating -CURRENT, what about outdated files?

Ruslan Ermilov ru at freebsd.org
Sun May 25 01:43:57 PDT 2003


On Sun, May 25, 2003 at 05:48:23PM +1000, Joshua Goodall wrote:
> On Sat, May 24, 2003 at 08:48:17PM +0300, Ruslan Ermilov wrote:
> > On Sat, May 24, 2003 at 06:44:32PM +1000, Joshua Goodall wrote:
> > > On Sat, May 24, 2003 at 06:44:19AM +0300, Ruslan Ermilov wrote:
> > > > I do this a lot too.  And I use "find . -mtime +1 ! -type d" to
> > > > seek for the stale stuff.  This of course requires that you're
> > > > not running with ``INSTALL="install -C"'' in /etc/make.conf.
> > > 
> > > Is there any part of installworld that uses tools other than
> > > rm, mtree, install and ln?
> > > 
> > Sure, a lot of.  We use all tools that are copied into the
> > ${INSTALLTMP} as the first step of installworld.
> 
> I must correct myself.
> 
> I should have written "Is there any part of installworld where
> files/dirs/links are installed using tools other than ..."
> 
> Actually the total list seems really short to me;
> 
> [ awk cat chflags chmod chown date echo egrep find grep
> ln make mkdir mtree mv pwd_mkdb rm sed sh sysctl
> test true uname wc zic
> 
Bear in mind the conditionals of make(1) and sh(1)?

> I can think of three methods;
> 
> i)   a simple wrapper that attempts to parse the subset of
>      invocations used by installworld, and maintain a log,
> ii)  an LD_PRELOAD-based wrapper, taking advantage of recent
>      dynamic linkage changes,
> iii) building installation editions of those tools, so that they 
>      maintain a log of activity.
> 
> Obviously not all are attractive.
> 
> > Some files are only installed if the destination does not yet
> > exist, and there you are going to have a problem with this
> > approarch.
> 
> Either way, the file exists.  I wasn't looking for anything more
> sophisticated than that in a first pass at this.
> 
But you don't often know if installworld attemps to install it
or not, if it wasn't here:

src/sys/boot/i386/loader/Makefile:

beforeinstall:
...
.if !exists(${DESTDIR}/boot/loader.rc)
	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
		${.CURDIR}/../../forth/loader.rc ${DESTDIR}/boot
.endif

> Other than the general case of using install -C, can you
> point out any specific examples?  I thought that was the point
> of mergemaster; to manage elements of the distribution where
> simply overwriting would be inappropriate.
> 
Nope, mergemaster(8) deals with updating of /etc only, unless
I'm horribly mistaken (I don't use it personally, but pretty
much do what it does manually).


Cheers,
-- 
Ruslan Ermilov		Sysadmin and DBA,
ru at sunbay.com		Sunbay Software AG,
ru at FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20030525/17c5ccda/attachment.bin


More information about the freebsd-current mailing list