spamassassin and Perl 5.8 port broken
Anton Berezin
tobez at tobez.org
Fri Jan 7 01:57:36 PST 2005
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 at 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
More information about the freebsd-perl
mailing list