From owner-freebsd-ports@FreeBSD.ORG Fri Jul 20 15:11:31 2007 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 08ACF16A417 for ; Fri, 20 Jul 2007 15:11:31 +0000 (UTC) (envelope-from michel@lpthe.jussieu.fr) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by mx1.freebsd.org (Postfix) with ESMTP id 6B79313C468 for ; Fri, 20 Jul 2007 15:11:30 +0000 (UTC) (envelope-from michel@lpthe.jussieu.fr) Received: from parthe.lpthe.jussieu.fr (parthe.lpthe.jussieu.fr [134.157.10.1]) by shiva.jussieu.fr (8.13.8/jtpda-5.4) with ESMTP id l6KFBSx9092745 for ; Fri, 20 Jul 2007 17:11:28 +0200 (CEST) X-Ids: 164 Received: from niobe.lpthe.jussieu.fr (niobe.lpthe.jussieu.fr [134.157.10.41]) by parthe.lpthe.jussieu.fr (Postfix) with ESMTP id A05C12377D0 for ; Fri, 20 Jul 2007 17:10:15 +0200 (CEST) Received: by niobe.lpthe.jussieu.fr (Postfix, from userid 2005) id 74CAF80; Fri, 20 Jul 2007 17:11:27 +0200 (CEST) Date: Fri, 20 Jul 2007 17:11:27 +0200 From: Michel Talon To: ports@freebsd.org Message-ID: <20070720151127.GA64980@lpthe.jussieu.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.2i X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.0 (shiva.jussieu.fr [134.157.0.164]); Fri, 20 Jul 2007 17:11:28 +0200 (CEST) X-Virus-Scanned: ClamAV 0.88.7/3705/Fri Jul 20 14:58:40 2007 on shiva.jussieu.fr X-Virus-Status: Clean X-Miltered: at shiva.jussieu.fr with ID 46A0D0A0.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! Cc: Subject: Re: Proposal for another category in INDEX: common_deps 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: Fri, 20 Jul 2007 15:11:31 -0000 Matthew Seaman wrote: > Another interesting idea would be to separate out the LIB_DEPENDS > data. At the moment there is a separate LIB_DEPENDS variable that > can be used in Makefiles, but the INDEX processing includes the > LIB_DEPENDS data with both the BUILD_DEPENDS and the RUN_DEPENDS > fields. Keeping LIB_DEPENDS separate should allow a useful > optimization in the case of shlib ABI version number bumps. > Clear that you are the author of http://www.infracaninophile.co.uk/portindex/ and so know the state of the Index stuff from inside out! Personnally i think there are far too many totally useless categories here, as you are saying, only RUN_DEPENDS and BUILD_DEPENDS have any usefulness, the first if you install from packages, the second if you install from ports. It is totally irrelevant to know if a dependency is FETCH, EXTRACT or whatever, since you need it anyway to build the port. Merging LIB_DEPENDS in both BUILD and RUN is justified since you need the libraries both for compiling and for running the port. Introducing a lot of dependency categories renders writing an upgrade mechanism very complicated. Either you coalesce everything into one big category, voiding the distinctions of their content, or you have to introduce an infinitely complicated logic to take care of them. For example you explain that knowing only LIB_DEPENDS would help knowing what to upgrade when gettext is bumped. But other ports may have important dependencies not going through LIB_DEPENDS. You need a crystal ball to disentangle all the cases. An upgrade mechanism can proceed with a mixture of packages and ports, for example portupgrade -P. The only relevant info for determining what to install or build previously is RUN_DEPENDS and BUILD_DEPENDS. Everything else is garbage. The Debian people have a simpler situation with apt-get, they have only one sort of dependency to consider, the equivalent of RUN_DEPENDS. Hence they can build a reliable sorted graph of dependencies. -- Michel TALON