From owner-freebsd-ports@FreeBSD.ORG Mon Dec 17 13:48:09 2007 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6FB316A420 for ; Mon, 17 Dec 2007 13:48:09 +0000 (UTC) (envelope-from stephen@math.missouri.edu) Received: from cauchy.math.missouri.edu (cauchy.math.missouri.edu [128.206.184.213]) by mx1.freebsd.org (Postfix) with ESMTP id B3E1813C469 for ; Mon, 17 Dec 2007 13:48:09 +0000 (UTC) (envelope-from stephen@math.missouri.edu) Received: from laptop2.gateway.2wire.net (cauchy.math.missouri.edu [128.206.184.213]) by cauchy.math.missouri.edu (8.14.2/8.14.1) with ESMTP id lBHDlqoC022259; Mon, 17 Dec 2007 07:47:53 -0600 (CST) (envelope-from stephen@math.missouri.edu) Message-ID: <47667E17.6030004@math.missouri.edu> Date: Mon, 17 Dec 2007 07:48:07 -0600 From: Stephen Montgomery-Smith User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.11) Gecko/20071213 SeaMonkey/1.1.7 MIME-Version: 1.0 To: "Aryeh M. Friedman" References: <4766650C.4020305@gmail.com> In-Reply-To: <4766650C.4020305@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-ports@freebsd.org Subject: Re: Request for Features: Ports Re-engineering X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Dec 2007 13:48:10 -0000 Aryeh M. Friedman wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > In order to finalize the general nature of the ports re-engineering > effort this thread is designed to specifically explore the features > people want to see. > > Please supply one or more of the following: > > * Up to 4 user stories of how you would like to use the ports system > (may or may not be possible in the current one) > * Up to 4 use cases for how you would like to interact with the ports > system > * Up to 4 features/requirements you think the new system should have > * Up to 4 features/requirements that you feel *MUST* remain from the > current system > * Any non-functional requirements you can think of One thing to look at is package building. I don't know how they build the official packages, but my guess is that they build each one from a clean system. But, for example, you have tons of little ports each depending on xorg-server, and to rebuild xorg-server for each little port must be a real burden. On the other hand some ports really need to be built from a clean system. Some of them autodetect ports that are already installed, and then change options appropriately. (Maybe some of the multimedia ports like vlc do this.) My guess is that this is to some extent unavoidable because the "configure" script in the port build process probably does this as well. Anyway, perhaps this autodetecting of ports to provide options needs to be built into the system in a systematic manner. Then robotic package builders could be trained to glean this information from the build tree (what you refer to as the DAG - is that "directed something graph"?). I also use packages for my private system. I have one fast computer where I build all my ports, and then make packages from them to distribute to the other computers. But I use "pkg_create." The disadvantage of this is that you don't get all the candy (e.g. the messages in pkg-message, etc). I used to build my ports, then do a massive "make package" on all the built ports. But "make package" is designed so that it only works properly if done before any other port is installed. This is because you might add autodependencies to the package which were not part of the original build. "make package" could actually get this dependency information from /var/db/pkg, but it doesn't. (I filed a PR to effect this change, but no-one else felt it was important. In particular, space is a premium on bsd.ports.mk because the more you add to it, the longer things like "make index" take.)