cvs commit: src ObsoleteFiles.inc
Jeremy Messenger
mezz7 at cox.net
Sun Jul 24 02:27:13 GMT 2005
On Sat, 23 Jul 2005 20:16:29 -0500, Maxime Henrion <mux at FreeBSD.org> wrote:
> 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
I agree about find(1) isn't right solution, because I still have to re-run
the installworld after I use my script. It's not perfect, but at least it
works for me since around FreeBSD 5.0 to clean up stuff very well.
> IIRC, there are corner cases where it doesn't work. Unless I'm
> missing something,
Can you point me what's not work? I am insteresting to fix my own script
if I don't notice anything that don't work.
> a find(1)-based mechanism couldn't handle directories either.
It can. The '-delete' will remove directory too. Unless, I don't
understand what you are trying to say what's not work.
==============================
% mkdir foobar
% ls -l | grep foobar
drwxr-xr-x 2 mezz mezz 512 Jul 23 21:13 foobar/
% find . -name foobar
./foobar
% find . -name foobar -delete
% find . -name foobar
% ls -l | grep foobar
==============================
A real one, I don't have "/usr/share/doc/bind" here and my delete.sh took
care of it.
==============================
% ls /usr/share/doc/
IPv6/ bind9/ ntp/ psd/ usd/
atm/ ncurses/ papers/ smm/
==============================
Cheers,
Mezz
> 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
--
mezz7 at cox.net - mezz at FreeBSD.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/ - gnome at FreeBSD.org
More information about the cvs-src
mailing list