From owner-freebsd-hackers Mon May 31 8:35:26 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from gizmo.internode.com.au (gizmo.internode.com.au [192.83.231.115]) by hub.freebsd.org (Postfix) with ESMTP id D7D50152F2; Mon, 31 May 1999 08:35:21 -0700 (PDT) (envelope-from newton@gizmo.internode.com.au) Received: (from newton@localhost) by gizmo.internode.com.au (8.9.3/8.9.3) id BAA23855; Tue, 1 Jun 1999 01:04:43 +0930 (CST) (envelope-from newton) From: Mark Newton Message-Id: <199905311534.BAA23855@gizmo.internode.com.au> Subject: Re: a two-level port system? To: akm@mail.theinternet.com.au (Andrew Kenneth Milton) Date: Tue, 1 Jun 1999 01:04:43 -1430 (CST) Cc: eivind@FreeBSD.ORG, abial@webgiro.com, taavi@uninet.ee, kaj@raditex.se, freebsd-hackers@FreeBSD.ORG, freebsd-ports@FreeBSD.ORG In-Reply-To: <199905311521.BAA92145@mail.theinternet.com.au> from "Andrew Kenneth Milton" at Jun 1, 99 01:21:46 am X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Andrew Kenneth Milton wrote: > How about optionally tarring the 'files' and 'patches' subdirs > (into seperate tarfiles or as one tarfile) to be extracted when the port > is needed. This would make cvsupping ports 'harder' I would imagine, > although not impossible, given the .uu files I've seen for /compat > stuff recently. More blue-sky stuff, but perhaps this one is easier to maintain on a long-term basis... We currently have /usr/ports/distfiles as a catch-all for, well, the distfiles. There's also /usr/ports/Mk for the makefile stubs. As such, they're a special cases, treated differently from all the other subdirs of /usr/ports. I propose another one, called something like /usr/ports/buildenv (for Build Environment). /usr/ports/buildenv would contain everything that the non-special-case /usr/ports directories currently contain, except the Makefiles. They'd continue to live in their present location. The way it'd work in real life is like this: In order to build a port you'd need /usr/ports/Mk and the subdirectory for the port you want to build (and its prerequisites); Type "make install" in /usr/ports/category/application as per usual. The bsd.ports.mk file would begin by checking for the existence of /usr/ports/buildenv/category/application. If it doesn't exist, go looking for it in /cdrom, or on ftp.freebsd.org. If it does exist, copy its contents into /usr/ports/category/application and continue the build in exactly the same way we do it today. The advantage of this approach is that you don't need to truck patches, package DESCR files, etc along with the ports tree distributed to end-users: All you need is a tree full of makefiles, everything else is grabbed on-demand. You still have the option of putting the whole damn thing on your system if you want, but for most people who just want to build a handful of ports, browse the tree to see if there's anything cool they want, and then forget the ports tree 'til the next upgrade, it'll cut down considerably on overhead. It'll cut down on the number of subdirectories in the ports tree by 66% at least. Ok, fire away -- tell me why it'll never work :-) - mark ---- Mark Newton Email: newton@internode.com.au (W) Network Engineer Email: newton@atdot.dotat.org (H) Internode Systems Pty Ltd Desk: +61-8-82232999 "Network Man" - Anagram of "Mark Newton" Mobile: +61-416-202-223 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message