From owner-freebsd-perl@FreeBSD.ORG Thu Jan 29 18:43:13 2004 Return-Path: Delivered-To: freebsd-perl@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D7AC716A4CE; Thu, 29 Jan 2004 18:43:13 -0800 (PST) Received: from mta9.adelphia.net (mta9.adelphia.net [68.168.78.199]) by mx1.FreeBSD.org (Postfix) with ESMTP id 756F743D1D; Thu, 29 Jan 2004 18:43:10 -0800 (PST) (envelope-from parv_fm@mailsent.net) Received: from moo.holy.cow ([69.160.71.102]) by mta9.adelphia.net (InterMail vM.5.01.06.05 201-253-122-130-105-20030824) with ESMTP id <20040130024304.YPMX27240.mta9.adelphia.net@moo.holy.cow>; Thu, 29 Jan 2004 21:43:04 -0500 Received: by moo.holy.cow (Postfix, from userid 1001) id CBF5AA124; Thu, 29 Jan 2004 21:42:56 -0500 (EST) Date: Thu, 29 Jan 2004 21:42:56 -0500 From: parv To: freebsd-perl@FreeBSD.org Message-ID: <20040130024256.GA3172@moo.holy.cow> Mail-Followup-To: freebsd-perl@FreeBSD.org, freebsd-ports@FreeBSD.org References: <1075425257.93790.21.camel@gorf.lovett.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1075425257.93790.21.camel@gorf.lovett.com> cc: freebsd-ports@FreeBSD.org Subject: Re: Certain perl ports overlapping with perl-5.8.2 install X-BeenThere: freebsd-perl@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: maintainer of a number of perl-related ports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2004 02:43:14 -0000 in message <1075425257.93790.21.camel@gorf.lovett.com>, wrote Ade Lovett thusly... > > With my dinkering around with perl5.8.2, I've run into something of a > problem. > > A number of ports, so far I have found: > > converters/p5-MIME-Base64 > devel/p5-Storable ... > are also part of the lang/perl5.8 port. Some of the ports are > newer than those in perl5.8, others are the same, still others are > older. > > However, what this does mean, that the following sequence: > > cd ${PORTSDIR}/lang/perl5.8; make install > cd ${PORTSDIR}/{one-of-the-ports-above}; make install deinstall > > will end up removing parts of lang/perl5.8 port, resulting in much > hilarity. Did that actually happen? Would not the port install otherwise duplicate files in /usr/local/lib/perl5/site_perl/ instead of /usr2/local/lib/perl5/? Nonetheless, it is indeed a problem expressed previously by some, including myself. > With our local ports tree, I've simply added code to these ports > to tag them as BROKEN for appropriate PERL_VERSION value, and then > start the slow slog through the rest of the ports/packages we > build to adjust dependencies accordingly, when a port tries to > bring in one of these "troublemakers" as a dependency. What do you do after updating the ports tree? Or rather a better question would be do you use cvs, instead of cvsup, to update the tree? > This is a pretty disgusting hack, so I'm soliciting comments as to > the right way to do this. On way in three easy steps... - Find all the ports that would have been already installed as part of an installed perl port. - Based on the result, decide if there is pressing need to really, really install the port. - If a port explicitly requires a newer/older version of already installed module, then the port being installed should install the dependency, and be sure to actually use the quasi-duplicate dependency port/module. Perl version checking needs to be independent from FreeBSD version. Lack of that is the reason and need for ugly symlinks from /usr/local/bin to /usr/bin (in FreeBSD 4.x). Checking for Perl version should be done via variables already set (say in /etc/make.conf or or via other appropriate means) to save a few seconds; lacking that, invoke perl(1). I do not see any way to identify, or get the list of, the installed modules other than from perl(1) itself. Suggestions? Well, that's all i have on my mind so far... - Parv --