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