From owner-freebsd-ports@FreeBSD.ORG Thu Jan 8 17:57:11 2004 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 10ECE16A4CE for ; Thu, 8 Jan 2004 17:57:11 -0800 (PST) Received: from smtp4.server.rpi.edu (smtp4.server.rpi.edu [128.113.2.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id E1C0643D54 for ; Thu, 8 Jan 2004 17:56:48 -0800 (PST) (envelope-from drosih@rpi.edu) Received: from [128.113.24.47] (gilead.netel.rpi.edu [128.113.24.47]) by smtp4.server.rpi.edu (8.12.8/8.12.8) with ESMTP id i091uiMr025842; Thu, 8 Jan 2004 20:56:47 -0500 Mime-Version: 1.0 X-Sender: drosih@mail.rpi.edu Message-Id: In-Reply-To: <20040109012651.GB1667@k7.mavetju> References: <20040109012651.GB1667@k7.mavetju> Date: Thu, 8 Jan 2004 20:56:43 -0500 To: Edwin Groothuis From: Garance A Drosihn Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Scanned-By: CanIt (www . canit . ca) cc: freebsd-ports@FreeBSD.ORG Subject: Re: Call for feedback on a Ports-collection change X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jan 2004 01:57:11 -0000 At 12:26 PM +1100 1/9/04, Edwin Groothuis wrote: >Garance writes: > > Especially as disks get ever-larger, I think we're > > better off with fewer-but-larger files, instead of > > a larger number of tiny files. > >Don't get me wrong on this, I'm not saying that you >shouldn't do this. All I want is to give my experience >with the current system. Sounds like a good thing for me to hear... :-) >The Makefile contains two kinds of text: configurable data and >executable data. The configurable data is the portname, version, >maintainer etc. Pretty much static, and manually entered. The >executable data is mostly the post-extract (REINPLACE_CMD), the >do-install (INSTALL_DATA) and post-install stuff (CAT). This one >too, static and manually entered. I'm immediately confused. I am not proposing changes to any of the port's Makefiles, except maybe that I'd pull PKG_COMMENT out of the make files and into the new file. In fact, I started to look into this project as an alternative to the PKG_COMMENT changes, but I didn't get far enough along before that change was done. >pkg-descr is only static data, doesn't change too often >(if at all). > >The other two files (distinfo and pkg-plist) are machine >generated (distinfo by "make makesum", pkg-plist often just >a bunch of seperate tools (no official standard too)). My list of "common files" has: files (a directory, and as such can be multiple files) scripts (a directory) src (? - a directory, but I forgot why I check for it) distinfo Makefile Makefile.inc pkg-comment (well, I guess that's gone now) pkg-deinstall pkg-descr pkg-install pkg-message pkg-plist pkg-req Remember that all i want to do is decrease inodes. If I can collapse even half of those into a new file, it'll be a step forward. The fact that distinfo and pkg-plist are machine-generated does not mean that they can not be collapsed into this new file. It just means that if they *are* collapsed into it, then the program which generates the info has to know about the new file. > > I think the easiest and clearest way to implement >> this would be one C program, and not 800 lines of /bin/sh >> commands and deep make-magic. > >There you make a wrong assumption about the bsd.*.mk and make(1). >bsd.*.mk is doing the same as the local Makefile, it sets global >configurable data and has executable data in it. > >Make(1) is doing the magic of glueing the the configurable data and >the executable data. That is what you're going to make again. Except >that the executable data is moved from bsd.*.mk to your make(U). I'm not sure why you mention 'make'. The program I'm talking about is going to be a trivial little thing which will do nothing more than read info from the new file, and (most likely) write it out to separate files under the 'work' directory, when building a port. Nothing to do with dependencies, last-chg times, make variables. What I was refering to was all the pain that people went through when trying to move PKG-COMMENT into a make variable, to get rid of that one file. There are quoting issues when you try to do that via sed commands and make-magic that I just don't want to get into -- particularly when handling things like patch files! >This has ended up about 80 lines longer than I hoped it >would be :-) I think one of the biggest challenges of this project will be trying to read everyone's thoughts on it... :-) -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu