From owner-freebsd-ports@FreeBSD.ORG Sat Oct 22 05:59:59 2005 Return-Path: X-Original-To: freebsd-ports@freebsd.org 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 67A9A16A41F for ; Sat, 22 Oct 2005 05:59:59 +0000 (GMT) (envelope-from itetcu@people.tecnik93.com) Received: from relay.rdsnet.ro (gimli.rdsnet.ro [193.231.236.70]) by mx1.FreeBSD.org (Postfix) with SMTP id 6CFFA43D45 for ; Sat, 22 Oct 2005 05:59:57 +0000 (GMT) (envelope-from itetcu@people.tecnik93.com) Received: (qmail 6331 invoked from network); 22 Oct 2005 05:59:55 -0000 Received: from unknown (HELO smtp.rdsnet.ro) (62.231.74.130) by smtp1-133.rdsnet.ro with SMTP; 22 Oct 2005 05:59:55 -0000 Received: (qmail 17961 invoked by uid 89); 22 Oct 2005 05:59:55 -0000 Received: from unknown (HELO it.buh.tecnik93.com) (81.196.204.98) by 0 with SMTP; 22 Oct 2005 05:59:55 -0000 Received: from it.buh.tecnik93.com (localhost.buh.tecnik93.com [127.0.0.1]) by it.buh.tecnik93.com (Postfix) with ESMTP id 6EDE6115F6; Sat, 22 Oct 2005 08:59:55 +0300 (EEST) Date: Sat, 22 Oct 2005 08:59:54 +0300 From: Ion-Mihai Tetcu To: Benjamin Lutz Message-ID: <20051022085954.5ef9d2ff@it.buh.tecnik93.com> In-Reply-To: <435825F8.4020305@datacomm.ch> References: <4357D830.7060506@swehack.se> <435825F8.4020305@datacomm.ch> X-Mailer: Sylpheed-Claws 1.9.12 (GTK+ 2.6.8; i386-portbld-freebsd5.4) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: nocturnal , freebsd-ports@freebsd.org Subject: Re: Flaws in the ports system? 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: Sat, 22 Oct 2005 05:59:59 -0000 On Fri, 21 Oct 2005 01:19:20 +0200 Benjamin Lutz wrote: > nocturnal wrote: > > This is a very low priority discussion but i was just wondering if > > there are any known design flaws in the ports system or other > > reasons for the ports to be replaced by a new system. > > They work well, more or less, and certainly as intended. There's a > couple of things though that I think are not solved optimally: [ Support for different versions of a software package. ... ] > - Configuration management. This is hard to get right, but I don't > think that simply littering /usr/local/etc with .sample files is the > best way to solve it. I've seen some infrastructure in place to > automagically merge config file changes, but I didn't notice it > being used so far. As it is, upgrading daemons means lots of manual > labour (scanning the sample config file for changes, or even redoing > the configuration from scratch), which every admin has to do, and > which could maybe be pooled so the port maintainer does most of it, > and the users could simply say y/n a few times in a tool like > mergemaster. Without support from upstream (a nice example is postfix) fully automating this is nearly impossible. More, the way the things are in this regard might be good as it forces the sysadmin to read (and supposedly understand :) the changes in the new version. > - Mirror selection. For us europeans, the US sourceforge mirror which > is used by a lot of ports by default is very slow. It is possible to Work is being done in this area. Perhaps the biggest problem for finding the fastest mirror for each distfile is that you have to relay on things outside the ports system and because of this any sollution isn't likely to be included in the *.mk's > override the mirror selection by setting some variables in > make.conf, but it's far from apparent how to do so, or that it is > even possible. Please submit a patch for Handbook / ports(7) / .... > Additionally, while fetch seems to have some support > for resuming interrupted downloads, often enough a partial or > corrupted existing distfile leads to fetch doing nothing at all. The > solution is easy, just delete the existing distfile, but the tools > don't hint at that. > > - Speed. The ports use of makefiles as prime mechanism makes it very > flexible, but given the sheer number of ports we have by now, it's > also become slow. Building an INDEX takes forever, and pkg_version > is painful to use on slow machines. A result of that is that we now > have a number of add-on tools that speed up things with binary dbs > and caches, however I consider those a work-around, not a solution. > Basically, I think that the current system doesn't scale too well. > One possibility I can think of that alleviates the problem a bit > without changing the existing structure (there's this POLA thing I > guess) is changing make(1) so it recurses inside the same process, > instead of launching a new process for every submakefile (or maybe > it already does that? I don't know). Another possibility would be There has been some work in this area and the seed has substantially increase in the last 2 years, but of course there's space for more. The work however is far from being trivial. > making it possible to determine some static configuration, say, a > ports version number, quicker, without having to call make (I > realize that with things like slave ports, even a version number is > not that static. Maybe there could be a fallback for those cases?). > Another possibility would be moving to a binary DB right away, > relying on tools to extract the information. This would make cvsup > difficult though. No, thank you. Personally I don't like spending time around windows registry. -- IOnut Unregistered ;) FreeBSD "user" "Intellectual Property" is nowhere near as valuable as "Intellect"