Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Jan 2005 10:57:33 +0100
From:      Anton Berezin <tobez@tobez.org>
To:        Bram Moolenaar <Bram@moolenaar.net>
Cc:        perl@FreeBSD.org
Subject:   Re: spamassassin and Perl 5.8 port broken
Message-ID:  <20050107095733.GC56677@heechee.tobez.org>
In-Reply-To: <200501070947.j079lf8s016226@moolenaar.net>
References:  <20050106220254.GA31560@heechee.tobez.org> <200501070947.j079lf8s016226@moolenaar.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 07, 2005 at 10:47:41AM +0100, Bram Moolenaar wrote:
> 
> Anton Berezin wrote:
> 
> > On Thu, Jan 06, 2005 at 11:05:52PM +0100, Bram Moolenaar wrote:
> > > 
> > > I'm running FreeBSD 4.9:
> > > 
> > > FreeBSD masaka.moolenaar.net 4.9-RELEASE FreeBSD 4.9-RELEASE #2: Sat Oct 23 15:54:26 CEST 2004     mool@masaka.moolenaar.net:/usr/src/sys/compile/MASAKA  i386
> > > 
> > > Trying to install the mail/p5-Mail-SpamAssassin port I get an error
> > > message that perl 5.6.1 or higher should be installed:
> > > 
> > > 	Needs perl 5.6.1 or higher, install lang/perl5.8 and try again
> > > 
> > > But I do have perl 5.6.1!
> > 
> > Did you use use.perl port with your 5.6.1?
> 
> I don't remember how Perl got there.  Probably from the package when I
> installed the system.  Or as a dependency for another port.  I now use
> the port to re-install it.

> Oh, looking for where PERL_VERSION is set I found one obvious problem.
> In /usr/ports/Mk/bsd.port.mk (around line 1174):
> 
> 	.if ${OSVERSION} >= 300000
> 	PERL_VERSION?=	5.00503
> 
> It seems PERL_VERSION only depends on the OS version, it doesn't
> actually check what Perl is installed.  This is an obvious lack of
> intelligence.
> 
> When I change it to:
> 
> 	.if ${OSVERSION} >= 300000
> 	#PERL_VERSION?=	5.00503
> 	PERL_VERSION?=	5.6.1
> 
> Then the spamassassin port continues as expected (with the usual hickups
> that require manual tweaking).  A dirty hack that gets me further.
> Hopefully the new spamassassin works better, since the port system
> doesn't allow for going back to an older version...

Well, this is exactly the problem.  When you install 5.6.1 from a
package or a port, on 4.X systems it tells you to run
/usr/local/bin/use.perl port afterwards (this is done automatically on
5.X systems).  One of the things that little script does is to override
PERL_VERSION settings used by the ports collection (it does that by
modifying /etc/make.conf).

So if you did not perform this step, all perl-related ports in the ports
collection will continue to operate with the default system perl, as
opposed to the perl in /usr/local/bin, even though /usr/local/bin/perl
works fine for your own scripts with #!/usr/local/bin/perl as opposed
to #!/usr/bin/perl shebang.

\Anton.
-- 
The moronity of the universe is a monotonically increasing function. --
Jarkko Hietaniemi



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