From owner-freebsd-ports@FreeBSD.ORG Wed Aug 1 04:01:40 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 3BCF116A417 for ; Wed, 1 Aug 2007 04:01:40 +0000 (UTC) (envelope-from fullermd@over-yonder.net) Received: from optimus.centralmiss.com (ns.centralmiss.com [206.156.254.79]) by mx1.freebsd.org (Postfix) with ESMTP id 0E65A13C45B for ; Wed, 1 Aug 2007 04:01:40 +0000 (UTC) (envelope-from fullermd@over-yonder.net) Received: from draco.over-yonder.net (adsl-072-148-013-213.sip.jan.bellsouth.net [72.148.13.213]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by optimus.centralmiss.com (Postfix) with ESMTP id 2A81D28BC8; Tue, 31 Jul 2007 23:01:39 -0500 (CDT) Received: by draco.over-yonder.net (Postfix, from userid 100) id AC44561C42; Tue, 31 Jul 2007 23:01:38 -0500 (CDT) Date: Tue, 31 Jul 2007 23:01:38 -0500 From: "Matthew D. Fuller" To: Yoshihiro Ota Message-ID: <20070801040138.GA21345@over-yonder.net> References: <20070726011654.cec378be.ota@j.email.ne.jp> <46A866BE.1000407@u.washington.edu> <20070726233610.e536c2e2.ota@j.email.ne.jp> <46A9B112.7040408@u.washington.edu> <20070727214847.6708a918.ota@j.email.ne.jp> <20070728155935.GT21345@over-yonder.net> <20070728221428.8539106d.ota@j.email.ne.jp> <20070729073530.GA57843@over-yonder.net> <20070731234603.ffda3331.ota@j.email.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070731234603.ffda3331.ota@j.email.ne.jp> X-Editor: vi X-OS: FreeBSD User-Agent: Mutt/1.5.16-fullermd.4 (2007-06-09) Cc: Garrett Cooper , freebsd-ports@freebsd.org Subject: Re: Call for testers for yet another ports upgrade program, ports+ 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: Wed, 01 Aug 2007 04:01:40 -0000 On Tue, Jul 31, 2007 at 11:46:03PM -0400 I heard the voice of Yoshihiro Ota, and lo! it spake thus: > > 1. Is this about RUN_DEPENDS in makefiles? Yes, but conditional. For instance, see audio/teknap: .if ${HAVE_GNOME:Mgtk12}!="" USE_GNOME+= gtk12 CONFIGURE_ARGS+=--with-gtk PKGNAMESUFFIX= -gtk .else CONFIGURE_ARGS+=--without-gtk .endif If you don't have gtk12 installed, and you start building a bunch of stuff (including teknap), and evaluate the dependancies at the start of the process, teknap won't depend on gtk12. If, however, gtk12 gets installed sometime during the process before teknap, the teknap build will then depend on gtk12. pkg_* will get that right of course, because the _DEPENDS parsing is all handled at that time as far as the port is concerned. But, if your tool calculates the dependancies and caches them at the BEGINNING of the process, before gtk12 got installed by somethingorother else, you won't have it in your list. You can only get the right view of the dependancies of a port you're building/installing at the time you build/install it; if you evaluate them, then build/install anything else, you potentially invalidate that cached information. There could also be more intricate cases, whereby instead of the mere presence triggering a feature/dependancy, a particular version does, so an upgrade of one port will change the actions of another. I don't know of any, but it's certainly within reason. (above example found via "cd /usr/ports ; find . -depth 3 -type f -name 'Makefile' -print | xargs grep HAVE_GNOME", along with numerous other examples at least some of which do similar dependancy twisting) Of course, I may have totally misunderstood the sense of your statements, and/or this could be a non-issue in your particular usage. But the way I read your statement of "dependancies are static" is false as above; installing a port, with no other user interaction, can and does change the contents of _DEPENDS variables; if the value is important in a given situation, it needs to be evaluated at the time it's important. -- Matthew Fuller (MF4839) | fullermd@over-yonder.net Systems/Network Administrator | http://www.over-yonder.net/~fullermd/ On the Internet, nobody can hear you scream.