From owner-cvs-all@FreeBSD.ORG Sun Jul 24 02:27:12 2005 Return-Path: X-Original-To: cvs-all@freebsd.org Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ACFAD16A41F; Sun, 24 Jul 2005 02:27:12 +0000 (GMT) (envelope-from mezz7@cox.net) Received: from lakermmtao12.cox.net (lakermmtao12.cox.net [68.230.240.27]) by mx1.FreeBSD.org (Postfix) with ESMTP id D780243D46; Sun, 24 Jul 2005 02:27:11 +0000 (GMT) (envelope-from mezz7@cox.net) Received: from mezz.mezzweb.com ([68.103.32.140]) by lakermmtao12.cox.net (InterMail vM.6.01.04.00 201-2131-118-20041027) with ESMTP id <20050724022706.UQQE21492.lakermmtao12.cox.net@mezz.mezzweb.com>; Sat, 23 Jul 2005 22:27:06 -0400 Date: Sat, 23 Jul 2005 21:28:10 -0500 To: "Maxime Henrion" References: <200507231942.j6NJgdks037508@repoman.freebsd.org> <42E2A029.1090404@gmail.com> <42E2DA50.2000205@FreeBSD.org> <20050724011629.GK14567@elvis.mu.org> From: "Jeremy Messenger" Content-Type: text/plain; format=flowed; delsp=yes; charset=us-ascii MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: In-Reply-To: <20050724011629.GK14567@elvis.mu.org> User-Agent: Opera M2/8.01 (Linux, build 1204) Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org, Doug Barton Subject: Re: cvs commit: src ObsoleteFiles.inc X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jul 2005 02:27:13 -0000 On Sat, 23 Jul 2005 20:16:29 -0500, Maxime Henrion 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@cox.net - mezz@FreeBSD.org FreeBSD GNOME Team http://www.FreeBSD.org/gnome/ - gnome@FreeBSD.org