Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jan 2004 21:42:56 -0500
From:      parv <parv@pair.com>
To:        freebsd-perl@FreeBSD.org
Cc:        freebsd-ports@FreeBSD.org
Subject:   Re: Certain perl ports overlapping with perl-5.8.2 install
Message-ID:  <20040130024256.GA3172@moo.holy.cow>
In-Reply-To: <1075425257.93790.21.camel@gorf.lovett.com>
References:  <1075425257.93790.21.camel@gorf.lovett.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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/<version> instead
of /usr2/local/lib/perl5/<version>?

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

-- 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040130024256.GA3172>