fb226407ee
Compile perl with BSDPAN support, both -current and -stable. The version of BSDPAN used here coincides accidentally with the one present in the -current system perl, but is installed in a different place. Provide a script, use.perl, to facilitate switching of the perl used by default between the system perl and this port. Also print a message describing the usage of use.perl (this works for the port and for the package built from it). The switching to the port version is done by removing /usr/bin/perl and /usr/bin/suidperl (they both have link count >1, so this is reversible), and making them to be symlinks to the corresponding binaries in $PREFIX/bin. Also, assignments of the correct values of PERL_VER, PERL_VERSION, and PERL_ARCH are appended to /etc/make.conf. Last, NOPERL=yes is appended to /etc/make.conf, so that the changes made will survive system upgrades from source. The switching to the system version is more or less a reverse of the process described above. Set and use PERL_ARCH which is independed from the one used by the system perl. Fix the port for post-malloc.h -current. Fix a small bogon when PREFIX was used in pkg-install (PKG_PREFIX should have been used instead). Reviewed by: markm, joe
82 lines
1.7 KiB
Perl
82 lines
1.7 KiB
Perl
#! /usr/bin/perl5 -w
|
|
# $FreeBSD$
|
|
use strict;
|
|
|
|
# XXX what to do with perldoc, pelbug, perlcc ??
|
|
|
|
sub usage
|
|
{
|
|
print STDERR <<EOF;
|
|
Usage:
|
|
$0 port -> /usr/bin/perl is the perl5 port
|
|
$0 system -> /usr/bin/perl is the system perl
|
|
EOF
|
|
exit 2;
|
|
}
|
|
|
|
@ARGV == 1 or usage();
|
|
if ($ARGV[0] eq 'port') {
|
|
switch_to_port();
|
|
} elsif ($ARGV[0] eq 'system') {
|
|
switch_to_system();
|
|
} else {
|
|
usage();
|
|
}
|
|
exit 0;
|
|
|
|
sub switch_to_system
|
|
{
|
|
my $port_perl = '%%PREFIX%%/bin/perl';
|
|
$port_perl =~ tr|/|/|s;
|
|
|
|
# protect against cases where people use PREFIX=/usr
|
|
if ($port_perl ne '/usr/bin/perl') {
|
|
unlink '/usr/bin/perl', '/usr/bin/suidperl',
|
|
'/usr/bin/perl%%PERL_VERSION%%';
|
|
|
|
link '/usr/bin/perl5', '/usr/bin/perl';
|
|
link '/usr/bin/sperl5', '/usr/bin/suidperl';
|
|
}
|
|
|
|
open MK, ">> /etc/make.conf" or die "/etc/make.conf: $!";
|
|
print MK <<EOF;
|
|
# -- use.perl generated deltas -- #
|
|
# Created: @{[scalar localtime]}
|
|
# Setting to use base system perl:
|
|
.undef PERL_VER
|
|
.undef PERL_VERSION
|
|
.undef PERL_ARCH
|
|
.undef NOPERL
|
|
|
|
EOF
|
|
close MK;
|
|
}
|
|
|
|
sub switch_to_port
|
|
{
|
|
my $port_perl = '%%PREFIX%%/bin/perl';
|
|
$port_perl =~ tr|/|/|s;
|
|
|
|
# protect against cases where people use PREFIX=/usr
|
|
if ($port_perl ne '/usr/bin/perl') {
|
|
unlink '/usr/bin/perl', '/usr/bin/suidperl',
|
|
'/usr/bin/perl%%PERL_VERSION%%';
|
|
|
|
symlink '%%PREFIX%%/bin/perl', '/usr/bin/perl';
|
|
symlink '%%PREFIX%%/bin/suidperl', '/usr/bin/suidperl';
|
|
symlink '%%PREFIX%%/bin/perl', '/usr/bin/perl%%PERL_VERSION%%';
|
|
}
|
|
|
|
open MK, ">> /etc/make.conf" or die "/etc/make.conf: $!";
|
|
print MK <<EOF;
|
|
# -- use.perl generated deltas -- #
|
|
# Created: @{[scalar localtime]}
|
|
# Setting to use base perl from ports:
|
|
PERL_VER=%%PERL_VER%%
|
|
PERL_VERSION=%%PERL_VERSION%%
|
|
PERL_ARCH=%%PERL_ARCH%%
|
|
NOPERL=yo
|
|
|
|
EOF
|
|
close MK;
|
|
}
|