cvs commit: src ObsoleteFiles.inc
Maxime Henrion
mux at FreeBSD.org
Sun Jul 24 01:16:30 GMT 2005
Doug Barton wrote:
> Pawel Worach wrote:
>
> >While you are at it can you add this one too.
>
> Done. Please note for next time that you need to add a comment indicating
> why the file was removed. This can easily be found from the CVS logs.
>
> BTW, this is exactly why I don't like this mechanism for cleaning stale
> files. This list was, as I predicted it would be, quite literally out of
> date when it was committed. This is with all due respect to the effort that
> went into producing it. It's the methodology that I'm opposed to here.
>
> I much prefer the dynamic method suggested by myself, mezz, and others
> which scans the directories and compares the ages of the files to a known
> value. This not only has the benefit of not needing a static list to
> support it, but it also has the benefit of alerting you to pieces left
> behind when you (for example) add a NO_FOO knob to your make.conf file to
> avoid building part of the world.
>
> I would really like to see us reexamine the thought process behind this
> before we invest a lot more time into the static method. I think that the
> dynamic method will buy us more down the road.
For what it's worth, I'd love to see a mechanism similar to the
following:
- We ensure every file installed when doing an installworld gets
installed through bsd.*.mk. I thought this was already the case
but ru@ told me it's not.
- We can then add some kind of special make target, for instance
build-files-list that generates a file with all the files going
to be installed by installworld.
- At installworld time we install this special file somewhere.
Then we can easily deduce the obsoloted files by doing a diff. The
nice thing is that such a system doesn't depend on people keeping
a file up-to-date, and it's safer than the find(1) method because
IIRC, there are corner cases where it doesn't work. Unless I'm
missing something, a find(1)-based mechanism couldn't handle
directories either. Another cool thing is that if you know you
installed a system some day, but you don't have the file containing
the installed files anymore, you can just do a cvs co -D'thedate'
and run make build-files-list. A downside of all this is that it's
probably quite computationally expensive.
Cheers,
Maxime
More information about the cvs-src
mailing list