From owner-freebsd-ports@FreeBSD.ORG Wed Feb 27 10:57:10 2008 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 5C2771065673; Wed, 27 Feb 2008 10:57:10 +0000 (UTC) (envelope-from tobez@tobez.org) Received: from heechee.tobez.org (heechee.tobez.org [194.255.56.42]) by mx1.freebsd.org (Postfix) with ESMTP id 244498FC21; Wed, 27 Feb 2008 10:57:10 +0000 (UTC) (envelope-from tobez@tobez.org) Received: by heechee.tobez.org (Postfix, from userid 1001) id A3F296D413; Wed, 27 Feb 2008 11:40:57 +0100 (CET) Date: Wed, 27 Feb 2008 11:40:57 +0100 From: Anton Berezin To: Dag-Erling Smorgrav Message-ID: <20080227104057.GA26979@heechee.tobez.org> Mail-Followup-To: Anton Berezin , Dag-Erling Smorgrav , ports@freebsd.org, perl@freebsd.org, Yen-Ming Lee , lth@freebsd.org References: <868x19i6ky.fsf@ds4.des.no> <759236930802251702h694c4f5bn2c7c87c7c47c7cc@mail.gmail.com> <20080226122512.GA30778@heechee.tobez.org> <86ve4bsx8l.fsf@ds4.des.no> <20080226140456.GB30778@heechee.tobez.org> <867igrst0g.fsf@ds4.des.no> <20080226144203.GC30778@heechee.tobez.org> <86mypnrary.fsf@ds4.des.no> <20080226161635.GE30778@heechee.tobez.org> <86ejayr969.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <86ejayr969.fsf@ds4.des.no> X-Powered-By: FreeBSD http://www.freebsd.org/ User-Agent: Mutt/1.5.17 (2007-11-01) Cc: ports@freebsd.org, perl@freebsd.org, lth@freebsd.org, Yen-Ming Lee Subject: Re: Port dependencies on p5-Test-* 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, 27 Feb 2008 10:57:10 -0000 On Wed, Feb 27, 2008 at 11:22:06AM +0100, Dag-Erling Smorgrav wrote: > Anton Berezin writes: > > Dag-Erling Smorgrav writes: > > > The rest of the ports tree checks every dependency right before building > > > it; I don't see why Perl ports should be any different. > > Er, I am not sure we understood each other here. What I was trying to say > > was this. Let's suppose we do not have perl installed. Let's suppose the > > user wants to build port A which depends on perl and on a module B which is > > both in perl's core and in a port B. Then the list of direct dependencies > > for port A will either include port B or not, depending on the version > > consideration. If we accomodate your suggestion, we cannot decide whether > > port B will be a dependency or not until we built and installed perl. I did > > not look in bsd.port.mk specifically to compose this mail, but my > > recollection is that it is not how this currently works. > > Every dependency is checked *right before it is built*. You stick it in > the list, but you have perl at the front of the list. It builds perl > first, then it gets to the module, checks 'perl -M$MODULE', finds out > that it's already there, and skips it. But then it needs to not record it as a dependency. Not just skip the build. > > Not really. What I don't like is that we still have to deal with ports (for > > building stuff) and packages (for recording dependencies), and dealing in > > addition to that with modules does not help us much with the first two. For > > example, when you do "perl -MX -e 'print $X::VERSION'", you get back a > > version which is OK. Now what? Now you *still* need to test whether p5-X > > is in fact installed, because if it is and you do not record it as a > > dependency you are in trouble, since the user can without any complaints > > pkg_delete p5-X and break your port. And if it is not installed then you > > are going to assume that it must be in the core perl since it is there, and > > you could be wrong on that, too (if the user just installed it from CPAN). > > But the ports system knows which package corresponds to which module, > since we put that in the dependency list: > > PERL_DEPENDS= Test::Unit:devel/p5-Test-Unit > > Or do you mean modules which are absorbed into core? Yes. For "normal" modules the existing package version check is perfectly adequate as it is, the suggested knobs simply serve as a syntax sugar (except PERL_TEST_DEPENDS, which is a bit more advanced). > Still a lot less work then building a bunch ports we don't need, which > is the current situation. We are arguing about a relatively minor thing here, namely about whether to keep the knowledge about dual-life modules in bsd.perl.mk or try to deduce it in runtime (and by proxy, whether to use the existing *package* version check or to do perl *module* version check), not about the usefulness of the suggested knobs, remember? \Anton. -- We're going for 'working' here. 'clean' is for people with skills... -- Flemming Jacobsen