Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Jun 1999 01:04:43 -1430 (CST)
From:      Mark Newton <newton@internode.com.au>
To:        akm@mail.theinternet.com.au (Andrew Kenneth Milton)
Cc:        eivind@FreeBSD.ORG, abial@webgiro.com, taavi@uninet.ee, kaj@raditex.se, freebsd-hackers@FreeBSD.ORG, freebsd-ports@FreeBSD.ORG
Subject:   Re: a two-level port system?
Message-ID:  <199905311534.BAA23855@gizmo.internode.com.au>
In-Reply-To: <199905311521.BAA92145@mail.theinternet.com.au> from "Andrew Kenneth Milton" at Jun 1, 99 01:21:46 am

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905311534.BAA23855>