aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
authormat <mat@FreeBSD.org>2016-08-11 21:32:05 +0800
committermat <mat@FreeBSD.org>2016-08-11 21:32:05 +0800
commit6f4b22cf6dab8521221e70ff8d41a011afbb4df0 (patch)
treef8abb4c343b8d60ae2519459e82a81b01e113778 /lang
parent37b18fd79ea7887a24012c8de2caf53c9d9cc43a (diff)
downloadfreebsd-ports-gnome-6f4b22cf6dab8521221e70ff8d41a011afbb4df0.tar.gz
freebsd-ports-gnome-6f4b22cf6dab8521221e70ff8d41a011afbb4df0.tar.zst
freebsd-ports-gnome-6f4b22cf6dab8521221e70ff8d41a011afbb4df0.zip
Update lang/perl5.* to fix CVE-2016-1238.
We're exceptionnaly using the latest release candidates for this, Perl 5.22.3 and 5.24.1 were about to be released when CVE-2016-1238 hit the fan, so we feel confident that EVERYTHING WILL BE FINE. - lang/perl5.24 goes to 5.24.1-RC2. - lang/perl5.22 goes to 5.22.3-RC2. - lang/perl5.20 goes to 5.20.3_14. - lang/perl5.18 goes to 5.18.3_23 PR: 211561 Reported by: Sevan Janiyan MFH: 2016Q3 Security: CVE-2016-1238 Sponsored by: Absolight
Diffstat (limited to 'lang')
-rw-r--r--lang/perl5.18/Makefile2
-rw-r--r--lang/perl5.18/files/patch-CVE-2016-1238706
-rw-r--r--lang/perl5.20/Makefile2
-rw-r--r--lang/perl5.20/files/patch-CVE-2016-1238794
-rw-r--r--lang/perl5.22/Makefile4
-rw-r--r--lang/perl5.22/distinfo5
-rw-r--r--lang/perl5.22/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm4
-rw-r--r--lang/perl5.22/files/patch-t_porting_customized.dat29
-rw-r--r--lang/perl5.22/pkg-plist2
-rw-r--r--lang/perl5.22/version.mk2
-rw-r--r--lang/perl5.24/Makefile4
-rw-r--r--lang/perl5.24/distinfo5
-rw-r--r--lang/perl5.24/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm4
-rw-r--r--lang/perl5.24/files/patch-t_porting_customized.dat30
-rw-r--r--lang/perl5.24/pkg-plist2
-rw-r--r--lang/perl5.24/version.mk2
16 files changed, 1556 insertions, 41 deletions
diff --git a/lang/perl5.18/Makefile b/lang/perl5.18/Makefile
index f9d339157872..e70660101146 100644
--- a/lang/perl5.18/Makefile
+++ b/lang/perl5.18/Makefile
@@ -3,7 +3,7 @@
PORTNAME= perl
PORTVERSION= ${PERL_VERSION}
-PORTREVISION= 22
+PORTREVISION= 23
CATEGORIES= lang devel perl5
MASTER_SITES= CPAN/../../src/5.0
DIST_SUBDIR= perl
diff --git a/lang/perl5.18/files/patch-CVE-2016-1238 b/lang/perl5.18/files/patch-CVE-2016-1238
new file mode 100644
index 000000000000..19ed3aead79e
--- /dev/null
+++ b/lang/perl5.18/files/patch-CVE-2016-1238
@@ -0,0 +1,706 @@
+--- cpan/Archive-Tar/bin/ptar
++++ cpan/Archive-Tar/bin/ptar
+@@ -1,6 +1,7 @@
+ #!/usr/bin/perl
+ use strict;
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use File::Find;
+ use Getopt::Std;
+ use Archive::Tar;
+--- cpan/Archive-Tar/bin/ptardiff
++++ cpan/Archive-Tar/bin/ptardiff
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Archive::Tar;
+ use Getopt::Std;
+--- cpan/Archive-Tar/bin/ptargrep
++++ cpan/Archive-Tar/bin/ptargrep
+@@ -4,6 +4,7 @@
+ # archive. See 'ptargrep --help' for more documentation.
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+
+--- cpan/CPAN/scripts/cpan
++++ cpan/CPAN/scripts/cpan
+@@ -1,5 +1,6 @@
+ #!/usr/local/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use vars qw($VERSION);
+
+--- cpan/Digest-SHA/shasum
++++ cpan/Digest-SHA/shasum
+@@ -13,6 +13,7 @@
+ ## "-0" option for reading bit strings, and
+ ## "-p" option for portable digests (to be deprecated).
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+ use Fcntl;
+--- cpan/Encode/bin/enc2xs
++++ cpan/Encode/bin/enc2xs
+@@ -4,6 +4,7 @@ BEGIN {
+ # with $ENV{PERL_CORE} set
+ # In case we need it in future...
+ require Config; import Config;
++ pop @INC if $INC[-1] eq '.';
+ }
+ use strict;
+ use warnings;
+--- cpan/Encode/bin/piconv
++++ cpan/Encode/bin/piconv
+@@ -1,6 +1,7 @@
+ #!./perl
+ # $Id: piconv,v 2.7 2014/05/31 09:48:48 dankogai Exp $
+ #
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use 5.8.0;
+ use strict;
+ use Encode ;
+--- cpan/Encode/bin/ucmlint
++++ cpan/Encode/bin/ucmlint
+@@ -3,6 +3,7 @@
+ # $Id: ucmlint,v 2.2 2008/03/12 09:51:11 dankogai Exp $
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ our $VERSION = do { my @r = (q$Revision: 2.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
+--- cpan/Encode/bin/unidump
++++ cpan/Encode/bin/unidump
+@@ -1,5 +1,6 @@
+ #!./perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Encode;
+ use Getopt::Std;
+--- cpan/ExtUtils-MakeMaker/bin/instmodsh
++++ cpan/ExtUtils-MakeMaker/bin/instmodsh
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl -w
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use IO::File;
+ use ExtUtils::Packlist;
+--- cpan/IO-Compress/bin/zipdetails
++++ cpan/IO-Compress/bin/zipdetails
+@@ -5,6 +5,7 @@
+ # Display info on the contents of a Zip file
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings ;
+
+--- cpan/JSON-PP/bin/json_pp
++++ cpan/JSON-PP/bin/json_pp
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Getopt::Long;
+
+--- cpan/Test-Harness/bin/prove
++++ cpan/Test-Harness/bin/prove
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl -w
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+ use App::Prove;
+--- dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
++++ dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
+@@ -1,5 +1,6 @@
+ #!perl
+ use 5.006;
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ eval {
+ require ExtUtils::ParseXS;
+--- dist/Module-CoreList/corelist
++++ dist/Module-CoreList/corelist
+@@ -130,6 +130,7 @@ requested perl versions.
+
+ =cut
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Module::CoreList;
+ use Getopt::Long qw(:config no_ignore_case);
+ use Pod::Usage;
+--- ext/Pod-Html/bin/pod2html
++++ ext/Pod-Html/bin/pod2html
+@@ -216,6 +216,7 @@ This program is distributed under the Artistic License.
+
+ =cut
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Pod::Html;
+
+ pod2html @ARGV;
+--- utils/c2ph.PL
++++ utils/c2ph.PL
+@@ -280,6 +280,7 @@ Anyway, here it is. Should run on perl v4 or greater. Maybe less.
+
+ $RCSID = '$Id: c2ph,v 1.7 95/10/28 10:41:47 tchrist Exp Locker: tchrist $';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use File::Temp;
+
+ ######################################################################
+--- utils/h2ph.PL
++++ utils/h2ph.PL
+@@ -36,6 +36,8 @@ $Config{startperl}
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ use strict;
+
+ use Config;
+--- utils/h2xs.PL
++++ utils/h2xs.PL
+@@ -35,6 +35,8 @@ $Config{startperl}
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ use warnings;
+
+ =head1 NAME
+--- utils/libnetcfg.PL
++++ utils/libnetcfg.PL
+@@ -97,6 +97,7 @@ Jarkko Hietaniemi, conversion into libnetcfg for inclusion into Perl 5.8.
+
+ # $Id: Configure,v 1.8 1997/03/04 09:22:32 gbarr Exp $
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use IO::File;
+ use Getopt::Std;
+--- utils/perlbug.PL
++++ utils/perlbug.PL
+@@ -57,6 +57,7 @@ print OUT <<'!NO!SUBS!';
+ my @patches = Config::local_patches();
+ my $patch_tags = join "", map /(\S+)/ ? "+$1 " : (), @patches;
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use warnings;
+ use strict;
+ use Config;
+--- utils/perldoc.PL
++++ utils/perldoc.PL
+@@ -44,7 +44,10 @@ $Config{startperl}
+ # This "$file" file was generated by "$0"
+
+ require 5;
+-BEGIN { \$^W = 1 if \$ENV{'PERLDOCDEBUG'} }
++BEGIN {
++ \$^W = 1 if \$ENV{'PERLDOCDEBUG'};
++ pop \@INC if \$INC[-1] eq '.';
++}
+ use Pod::Perldoc;
+ exit( Pod::Perldoc->run() );
+
+--- utils/perlivp.PL
++++ utils/perlivp.PL
+@@ -39,6 +39,8 @@ print OUT "\n# perlivp $^V\n";
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ sub usage {
+ warn "@_\n" if @_;
+ print << " EOUSAGE";
+--- utils/splain.PL
++++ utils/splain.PL
+@@ -38,6 +38,12 @@ $Config{startperl}
+ if \$running_under_some_shell;
+ !GROK!THIS!
+
++print <<'!NO!SUBS!';
++
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
++!NO!SUBS!
++
+ while (<IN>) {
+ print OUT unless /^package diagnostics/;
+ }
+--- lib/perl5db.pl
++++ lib/perl5db.pl
+@@ -1938,7 +1938,10 @@ sub _DB__handle_y_command {
+ = $obj->cmd_args =~ /\A(?:(\d*)\s*(.*))?\z/) {
+
+ # See if we've got the necessary support.
+- if (!eval { require PadWalker; PadWalker->VERSION(0.08) }) {
++ if (!eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require PadWalker; PadWalker->VERSION(0.08) }) {
+ my $Err = $@;
+ _db_warn(
+ $Err =~ /locate/
+@@ -9420,7 +9423,10 @@ if PadWalker could be loaded.
+
+ =cut
+
+- if (not $text =~ /::/ and eval { require PadWalker } ) {
++ if (not $text =~ /::/ and eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require PadWalker } ) {
+ my $level = 1;
+ while (1) {
+ my @info = caller($level);
+--- cpan/Test/lib/Test.pm
++++ cpan/Test/lib/Test.pm
+@@ -480,7 +480,12 @@ sub _diff_complain {
+ my($result, $expected, $detail, $prefix) = @_;
+ return _diff_complain_external(@_) if $ENV{PERL_TEST_DIFF};
+ return _diff_complain_algdiff(@_)
+- if eval { require Algorithm::Diff; Algorithm::Diff->VERSION(1.15); 1; };
++ if eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Algorithm::Diff; Algorithm::Diff->VERSION(1.15);
++ 1;
++ };
+
+ $told_about_diff++ or print $TESTERR <<"EOT";
+ # $prefix (Install the Algorithm::Diff module to have differences in multiline
+--- dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
++++ dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
+@@ -145,6 +145,8 @@ sub _try_use { # Basically a wrapper around "require Modulename"
+ print " About to use $module ...\n" if DEBUG;
+ {
+ local $SIG{'__DIE__'};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval "require $module"; # used to be "use $module", but no point in that.
+ }
+ if($@) {
+--- dist/IO/IO.pm
++++ dist/IO/IO.pm
+@@ -18,6 +18,8 @@ sub import {
+
+ my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir);
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l)
+ or croak $@;
+ }
+--- dist/Locale-Maketext/lib/Locale/Maketext.pm
++++ dist/Locale-Maketext/lib/Locale/Maketext.pm
+@@ -449,6 +449,8 @@ sub _try_use { # Basically a wrapper around "require Modulename"
+
+ local $SIG{'__DIE__'};
+ local $@;
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval "require $module"; # used to be "use $module", but no point in that.
+
+ if($@) {
+--- dist/Net-Ping/lib/Net/Ping.pm
++++ dist/Net-Ping/lib/Net/Ping.pm
+@@ -410,7 +410,11 @@ sub ping_external {
+ $timeout # Seconds after which ping times out
+ ) = @_;
+
+- eval { require Net::Ping::External; }
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Net::Ping::External;
++ }
+ or croak('Protocol "external" not supported on your system: Net::Ping::External not found');
+ return Net::Ping::External::ping(ip => $ip, timeout => $timeout);
+ }
+--- dist/Storable/Storable.pm
++++ dist/Storable/Storable.pm
+@@ -25,7 +25,13 @@ use vars qw($canonical $forgive_me $VERSION);
+ $VERSION = '2.53_01';
+
+ BEGIN {
+- if (eval { local $SIG{__DIE__}; require Log::Agent; 1 }) {
++ if (eval {
++ local $SIG{__DIE__};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Log::Agent;
++ 1;
++ }) {
+ Log::Agent->import;
+ }
+ #
+--- dist/base/lib/base.pm
++++ dist/base/lib/base.pm
+@@ -78,7 +78,11 @@ sub import {
+ my $sigdie;
+ {
+ local $SIG{__DIE__};
+- eval "require $base";
++ do {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ eval "require $base";
++ };
+ # Only ignore "Can't locate" errors from our eval require.
+ # Other fatal errors (syntax etc) must be reported.
+ die if $@ && $@ !~ /^Can't locate .*? at \(eval /;
+--- cpan/CPAN/lib/App/Cpan.pm
++++ cpan/CPAN/lib/App/Cpan.pm
+@@ -530,9 +530,20 @@ sub AUTOLOAD { 1 }
+ sub DESTROY { 1 }
+ }
+
++# load a module without searching the default entry for the current
++# directory
++sub _safe_load_module {
++ my $name = shift;
++
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++
++ eval "require $name; 1";
++}
++
+ sub _init_logger
+ {
+- my $log4perl_loaded = eval "require Log::Log4perl; 1";
++ my $log4perl_loaded = _safe_load_module("Log::Log4perl");
+
+ unless( $log4perl_loaded )
+ {
+@@ -993,7 +1004,7 @@ sub _load_local_lib # -I
+ {
+ $logger->debug( "Loading local::lib" );
+
+- my $rc = eval { require local::lib; 1; };
++ my $rc = _safe_load_module("local::lib");
+ unless( $rc ) {
+ $logger->die( "Could not load local::lib" );
+ }
+@@ -1121,7 +1132,7 @@ sub _get_file
+ {
+ my $path = shift;
+
+- my $loaded = eval "require LWP::Simple; 1;";
++ my $loaded = _safe_load_module("LWP::Simple");
+ croak "You need LWP::Simple to use features that fetch files from CPAN\n"
+ unless $loaded;
+
+@@ -1143,7 +1154,7 @@ sub _gitify
+ {
+ my $args = shift;
+
+- my $loaded = eval "require Archive::Extract; 1;";
++ my $loaded = _safe_load_module("Archive::Extract");
+ croak "You need Archive::Extract to use features that gitify distributions\n"
+ unless $loaded;
+
+@@ -1207,7 +1218,7 @@ sub _show_Changes
+ sub _get_changes_file
+ {
+ croak "Reading Changes files requires LWP::Simple and URI\n"
+- unless eval "require LWP::Simple; require URI; 1";
++ unless _safe_load_module("LWP::Simple") && _safe_load_module("URI");
+
+ my $url = shift;
+
+--- cpan/CPAN/lib/CPAN.pm
++++ cpan/CPAN/lib/CPAN.pm
+@@ -1104,6 +1104,8 @@ sub has_usable {
+ ]
+ };
+ if ($usable->{$mod}) {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ for my $c (0..$#{$usable->{$mod}}) {
+ my $code = $usable->{$mod}[$c];
+ my $ret = eval { &$code() };
+@@ -1146,6 +1148,8 @@ sub has_inst {
+ $CPAN::META->{dontload_hash}{$mod}||=1; # unsafe meta access, ok
+ return 0;
+ }
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ my $file = $mod;
+ my $obj;
+ $file =~ s|::|/|g;
+--- cpan/Digest/Digest.pm
++++ cpan/Digest/Digest.pm
+@@ -38,7 +38,11 @@ sub new
+ unless (exists ${"$class\::"}{"VERSION"}) {
+ my $pm_file = $class . ".pm";
+ $pm_file =~ s{::}{/}g;
+- eval { require $pm_file };
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require $pm_file
++ };
+ if ($@) {
+ $err ||= $@;
+ next;
+--- cpan/Encode/Encode.pm
++++ cpan/Encode/Encode.pm
+@@ -56,6 +56,8 @@ require Encode::Config;
+ eval {
+ local $SIG{__DIE__};
+ local $SIG{__WARN__};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ require Encode::ConfigLocal;
+ };
+
+--- dist/ExtUtils-Command/lib/ExtUtils/Command.pm
++++ dist/ExtUtils-Command/lib/ExtUtils/Command.pm
+@@ -19,7 +19,10 @@ if( $Is_VMS ) {
+ my $vms_efs;
+ my $vms_case;
+
+- if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
++ if (eval { local $SIG{__DIE__};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require VMS::Feature; }) {
+ $vms_unix_rpt = VMS::Feature::current("filename_unix_report");
+ $vms_efs = VMS::Feature::current("efs_charset");
+ $vms_case = VMS::Feature::current("efs_case_preserve");
+--- cpan/File-Fetch/lib/File/Fetch.pm
++++ cpan/File-Fetch/lib/File/Fetch.pm
+@@ -567,6 +567,8 @@ sub _lwp_fetch {
+
+ };
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ unless( can_load( modules => $use_list ) ) {
+ $METHOD_FAIL->{'lwp'} = 1;
+ return;
+@@ -619,6 +621,8 @@ sub _httptiny_fetch {
+
+ };
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ unless( can_load(modules => $use_list) ) {
+ $METHOD_FAIL->{'httptiny'} = 1;
+ return;
+@@ -658,6 +662,8 @@ sub _httplite_fetch {
+
+ };
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ unless( can_load(modules => $use_list) ) {
+ $METHOD_FAIL->{'httplite'} = 1;
+ return;
+@@ -733,6 +739,8 @@ sub _iosock_fetch {
+ 'IO::Select' => '0.0',
+ };
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ unless( can_load(modules => $use_list) ) {
+ $METHOD_FAIL->{'iosock'} = 1;
+ return;
+@@ -814,6 +822,8 @@ sub _netftp_fetch {
+ check( $tmpl, \%hash ) or return;
+
+ ### required modules ###
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ my $use_list = { 'Net::FTP' => 0 };
+
+ unless( can_load( modules => $use_list ) ) {
+--- cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
++++ cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
+@@ -1392,6 +1392,8 @@ sub _find_CA_file {
+ return $self->{SSL_options}->{SSL_ca_file}
+ if $self->{SSL_options}->{SSL_ca_file} and -e $self->{SSL_options}->{SSL_ca_file};
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ return Mozilla::CA::SSL_ca_file()
+ if eval { require Mozilla::CA };
+
+--- cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
++++ cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
+@@ -27,6 +27,8 @@ Exporter::export_ok_tags('all');
+
+ BEGIN
+ {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval ' use IO::Uncompress::Adapter::Inflate 2.060 ;';
+ eval ' use IO::Uncompress::Adapter::Bunzip2 2.060 ;';
+ eval ' use IO::Uncompress::Adapter::LZO 2.060 ;';
+--- cpan/IPC-Cmd/lib/IPC/Cmd.pm
++++ cpan/IPC-Cmd/lib/IPC/Cmd.pm
+@@ -125,6 +125,8 @@ sub can_use_ipc_run {
+ return if IS_WIN98;
+
+ ### if we dont have ipc::run, we obviously can't use it.
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ return unless can_load(
+ modules => { 'IPC::Run' => '0.55' },
+ verbose => ($WARN && $verbose),
+@@ -169,6 +171,8 @@ sub can_use_ipc_open3 {
+
+ ### IPC::Open3 works on every non-VMS platform, but it can't
+ ### capture buffers on win32 :(
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ return unless can_load(
+ modules => { map {$_ => '0.0'} qw|IPC::Open3 IO::Select Symbol| },
+ verbose => ($WARN && $verbose),
+--- cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm
++++ cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm
+@@ -134,7 +134,12 @@ sub load_loc {
+ my $pkg = join('::', grep { defined and length } $args{Class}, $args{Subclass});
+ return $Loc{$pkg} if exists $Loc{$pkg};
+
+- eval { require Locale::Maketext::Lexicon; 1 } or return;
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Locale::Maketext::Lexicon;
++ 1
++ } or return;
+ $Locale::Maketext::Lexicon::VERSION > 0.20 or return;
+ eval { require File::Spec; 1 } or return;
+
+--- cpan/Memoize/Memoize.pm
++++ cpan/Memoize/Memoize.pm
+@@ -184,7 +184,11 @@ sub _my_tie {
+ }
+ my $modulefile = $module . '.pm';
+ $modulefile =~ s{::}{/}g;
+- eval { require $modulefile };
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require $modulefile
++ };
+ if ($@) {
+ croak "Memoize: Couldn't load hash tie module `$module': $@; aborting";
+ }
+--- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
++++ cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
+@@ -573,6 +573,9 @@ sub find_good_formatter_class {
+ my @class_list = @{ $self->{'formatter_classes'} || [] };
+ $self->die( "WHAT? Nothing in the formatter class list!?" ) unless @class_list;
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++
+ my $good_class_found;
+ foreach my $c (@class_list) {
+ DEBUG > 4 and print "Trying to load $c...\n";
+@@ -1004,6 +1007,8 @@ sub new_translator { # $tr = $self->new_translator($lang);
+ my $self = shift;
+ my $lang = shift;
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ my $pack = 'POD2::' . uc($lang);
+ eval "require $pack";
+ if ( !$@ && $pack->can('new') ) {
+--- cpan/Sys-Syslog/Syslog.pm
++++ cpan/Sys-Syslog/Syslog.pm
+@@ -888,6 +888,8 @@ sub silent_eval (&) {
+ sub can_load {
+ my ($module, $verbose) = @_;
+ local($SIG{__DIE__}, $SIG{__WARN__}, $@);
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ my $loaded = eval "use $module; 1";
+ warn $@ if not $loaded and $verbose;
+ return $loaded
+--- cpan/libnet/Net/Config.pm
++++ cpan/libnet/Net/Config.pm
+@@ -23,7 +23,12 @@ our $VERSION = "3.05";
+
+ our($CONFIGURE, $LIBNET_CFG);
+
+-eval { local $SIG{__DIE__}; require Net::LocalCfg };
++eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ local $SIG{__DIE__};
++ require Net::LocalCfg;
++};
+
+ our %NetConfig = (
+ nntp_hosts => [],
+--- dist/bignum/lib/bigint.pm.orig Sat Dec 27 03:49:23 2014
++++ dist/bignum/lib/bigint.pm Sat Jul 23 21:29:44 2016
+@@ -248,6 +248,8 @@ sub import
+ # see if we can find Math::BigInt::Lite
+ if (!defined $a && !defined $p) # rounding won't work to well
+ {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval 'require Math::BigInt::Lite;';
+ if ($@ eq '')
+ {
+--- dist/bignum/lib/bignum.pm.orig Sat Dec 27 03:49:23 2014
++++ dist/bignum/lib/bignum.pm Sat Jul 23 21:29:52 2016
+@@ -155,6 +155,8 @@ sub import
+ # see if we can find Math::BigInt::Lite
+ if (!defined $a && !defined $p) # rounding won't work to well
+ {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval 'require Math::BigInt::Lite;';
+ if ($@ eq '')
+ {
+--- dist/bignum/lib/bigrat.pm.orig Sat Dec 27 03:49:23 2014
++++ dist/bignum/lib/bigrat.pm Sat Jul 23 21:29:59 2016
+@@ -148,6 +148,8 @@ sub import
+ # see if we can find Math::BigInt::Lite
+ if (!defined $a && !defined $p) # rounding won't work to well
+ {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval 'require Math::BigInt::Lite;';
+ if ($@ eq '')
+ {
+--- x2p/s2p.PL.orig Sat Jul 23 07:07:58 2016
++++ x2p/s2p.PL Sat Jul 23 07:10:09 2016
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Config;
+ use File::Basename qw(&basename &dirname);
+ use Cwd;
+--- x2p/find2perl.PL.orig Sat Jul 23 07:08:21 2016
++++ x2p/find2perl.PL Sat Jul 23 07:10:15 2016
+@@ -1,5 +1,6 @@
+ #!/usr/local/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Config;
+ use File::Basename qw(&basename &dirname);
+ use Cwd;
diff --git a/lang/perl5.20/Makefile b/lang/perl5.20/Makefile
index 201e37004906..2cc05b7db7ee 100644
--- a/lang/perl5.20/Makefile
+++ b/lang/perl5.20/Makefile
@@ -3,7 +3,7 @@
PORTNAME= perl
PORTVERSION= ${PERL_VERSION}
-PORTREVISION= 13
+PORTREVISION= 14
CATEGORIES= lang devel perl5
MASTER_SITES= CPAN/../../src/5.0
DIST_SUBDIR= perl
diff --git a/lang/perl5.20/files/patch-CVE-2016-1238 b/lang/perl5.20/files/patch-CVE-2016-1238
new file mode 100644
index 000000000000..f5594f204cd8
--- /dev/null
+++ b/lang/perl5.20/files/patch-CVE-2016-1238
@@ -0,0 +1,794 @@
+--- cpan/Archive-Tar/bin/ptar
++++ cpan/Archive-Tar/bin/ptar
+@@ -1,6 +1,7 @@
+ #!/usr/bin/perl
+ use strict;
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use File::Find;
+ use Getopt::Std;
+ use Archive::Tar;
+--- cpan/Archive-Tar/bin/ptardiff
++++ cpan/Archive-Tar/bin/ptardiff
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Archive::Tar;
+ use Getopt::Std;
+--- cpan/Archive-Tar/bin/ptargrep
++++ cpan/Archive-Tar/bin/ptargrep
+@@ -4,6 +4,7 @@
+ # archive. See 'ptargrep --help' for more documentation.
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+
+--- cpan/CPAN/scripts/cpan
++++ cpan/CPAN/scripts/cpan
+@@ -1,5 +1,6 @@
+ #!/usr/local/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use vars qw($VERSION);
+
+--- cpan/Digest-SHA/shasum
++++ cpan/Digest-SHA/shasum
+@@ -13,6 +13,7 @@
+ ## "-0" option for reading bit strings, and
+ ## "-p" option for portable digests (to be deprecated).
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+ use Fcntl;
+--- cpan/Encode/bin/enc2xs
++++ cpan/Encode/bin/enc2xs
+@@ -4,6 +4,7 @@ BEGIN {
+ # with $ENV{PERL_CORE} set
+ # In case we need it in future...
+ require Config; import Config;
++ pop @INC if $INC[-1] eq '.';
+ }
+ use strict;
+ use warnings;
+--- cpan/Encode/bin/piconv
++++ cpan/Encode/bin/piconv
+@@ -1,6 +1,7 @@
+ #!./perl
+ # $Id: piconv,v 2.7 2014/05/31 09:48:48 dankogai Exp $
+ #
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use 5.8.0;
+ use strict;
+ use Encode ;
+--- cpan/Encode/bin/ucmlint
++++ cpan/Encode/bin/ucmlint
+@@ -3,6 +3,7 @@
+ # $Id: ucmlint,v 2.2 2008/03/12 09:51:11 dankogai Exp $
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ our $VERSION = do { my @r = (q$Revision: 2.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
+--- cpan/Encode/bin/unidump
++++ cpan/Encode/bin/unidump
+@@ -1,5 +1,6 @@
+ #!./perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Encode;
+ use Getopt::Std;
+--- cpan/ExtUtils-MakeMaker/bin/instmodsh
++++ cpan/ExtUtils-MakeMaker/bin/instmodsh
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl -w
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use IO::File;
+ use ExtUtils::Packlist;
+--- cpan/IO-Compress/bin/zipdetails
++++ cpan/IO-Compress/bin/zipdetails
+@@ -5,6 +5,7 @@
+ # Display info on the contents of a Zip file
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings ;
+
+--- cpan/JSON-PP/bin/json_pp
++++ cpan/JSON-PP/bin/json_pp
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Getopt::Long;
+
+--- cpan/Test-Harness/bin/prove
++++ cpan/Test-Harness/bin/prove
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl -w
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+ use App::Prove;
+--- dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
++++ dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
+@@ -1,5 +1,6 @@
+ #!perl
+ use 5.006;
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ eval {
+ require ExtUtils::ParseXS;
+--- dist/Module-CoreList/corelist
++++ dist/Module-CoreList/corelist
+@@ -130,6 +130,7 @@ requested perl versions.
+
+ =cut
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Module::CoreList;
+ use Getopt::Long qw(:config no_ignore_case);
+ use Pod::Usage;
+--- ext/Pod-Html/bin/pod2html
++++ ext/Pod-Html/bin/pod2html
+@@ -216,6 +216,7 @@ This program is distributed under the Artistic License.
+
+ =cut
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Pod::Html;
+
+ pod2html @ARGV;
+--- utils/c2ph.PL
++++ utils/c2ph.PL
+@@ -280,6 +280,7 @@ Anyway, here it is. Should run on perl v4 or greater. Maybe less.
+
+ $RCSID = '$Id: c2ph,v 1.7 95/10/28 10:41:47 tchrist Exp Locker: tchrist $';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use File::Temp;
+
+ ######################################################################
+--- utils/h2ph.PL
++++ utils/h2ph.PL
+@@ -36,6 +36,8 @@ $Config{startperl}
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ use strict;
+
+ use Config;
+--- utils/h2xs.PL
++++ utils/h2xs.PL
+@@ -35,6 +35,8 @@ $Config{startperl}
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ use warnings;
+
+ =head1 NAME
+--- utils/libnetcfg.PL
++++ utils/libnetcfg.PL
+@@ -97,6 +97,7 @@ Jarkko Hietaniemi, conversion into libnetcfg for inclusion into Perl 5.8.
+
+ # $Id: Configure,v 1.8 1997/03/04 09:22:32 gbarr Exp $
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use IO::File;
+ use Getopt::Std;
+--- utils/perlbug.PL
++++ utils/perlbug.PL
+@@ -57,6 +57,7 @@ print OUT <<'!NO!SUBS!';
+ my @patches = Config::local_patches();
+ my $patch_tags = join "", map /(\S+)/ ? "+$1 " : (), @patches;
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use warnings;
+ use strict;
+ use Config;
+--- utils/perldoc.PL
++++ utils/perldoc.PL
+@@ -44,7 +44,10 @@ $Config{startperl}
+ # This "$file" file was generated by "$0"
+
+ require 5;
+-BEGIN { \$^W = 1 if \$ENV{'PERLDOCDEBUG'} }
++BEGIN {
++ \$^W = 1 if \$ENV{'PERLDOCDEBUG'};
++ pop \@INC if \$INC[-1] eq '.';
++}
+ use Pod::Perldoc;
+ exit( Pod::Perldoc->run() );
+
+--- utils/perlivp.PL
++++ utils/perlivp.PL
+@@ -39,6 +39,8 @@ print OUT "\n# perlivp $^V\n";
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ sub usage {
+ warn "@_\n" if @_;
+ print << " EOUSAGE";
+--- utils/splain.PL
++++ utils/splain.PL
+@@ -38,6 +38,12 @@ $Config{startperl}
+ if \$running_under_some_shell;
+ !GROK!THIS!
+
++print <<'!NO!SUBS!';
++
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
++!NO!SUBS!
++
+ while (<IN>) {
+ print OUT unless /^package diagnostics/;
+ }
+--- lib/perl5db.pl
++++ lib/perl5db.pl
+@@ -1938,7 +1938,10 @@ sub _DB__handle_y_command {
+ = $obj->cmd_args =~ /\A(?:(\d*)\s*(.*))?\z/) {
+
+ # See if we've got the necessary support.
+- if (!eval { require PadWalker; PadWalker->VERSION(0.08) }) {
++ if (!eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require PadWalker; PadWalker->VERSION(0.08) }) {
+ my $Err = $@;
+ _db_warn(
+ $Err =~ /locate/
+@@ -9420,7 +9423,10 @@ if PadWalker could be loaded.
+
+ =cut
+
+- if (not $text =~ /::/ and eval { require PadWalker } ) {
++ if (not $text =~ /::/ and eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require PadWalker } ) {
+ my $level = 1;
+ while (1) {
+ my @info = caller($level);
+--- cpan/Test/lib/Test.pm
++++ cpan/Test/lib/Test.pm
+@@ -480,7 +480,12 @@ sub _diff_complain {
+ my($result, $expected, $detail, $prefix) = @_;
+ return _diff_complain_external(@_) if $ENV{PERL_TEST_DIFF};
+ return _diff_complain_algdiff(@_)
+- if eval { require Algorithm::Diff; Algorithm::Diff->VERSION(1.15); 1; };
++ if eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Algorithm::Diff; Algorithm::Diff->VERSION(1.15);
++ 1;
++ };
+
+ $told_about_diff++ or print $TESTERR <<"EOT";
+ # $prefix (Install the Algorithm::Diff module to have differences in multiline
+--- dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
++++ dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
+@@ -145,6 +145,8 @@ sub _try_use { # Basically a wrapper around "require Modulename"
+ print " About to use $module ...\n" if DEBUG;
+ {
+ local $SIG{'__DIE__'};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval "require $module"; # used to be "use $module", but no point in that.
+ }
+ if($@) {
+--- dist/IO/IO.pm
++++ dist/IO/IO.pm
+@@ -18,6 +18,8 @@ sub import {
+
+ my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir);
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l)
+ or croak $@;
+ }
+--- dist/Locale-Maketext/lib/Locale/Maketext.pm
++++ dist/Locale-Maketext/lib/Locale/Maketext.pm
+@@ -449,6 +449,8 @@ sub _try_use { # Basically a wrapper around "require Modulename"
+
+ local $SIG{'__DIE__'};
+ local $@;
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval "require $module"; # used to be "use $module", but no point in that.
+
+ if($@) {
+--- dist/Net-Ping/lib/Net/Ping.pm
++++ dist/Net-Ping/lib/Net/Ping.pm
+@@ -410,7 +410,11 @@ sub ping_external {
+ $timeout # Seconds after which ping times out
+ ) = @_;
+
+- eval { require Net::Ping::External; }
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Net::Ping::External;
++ }
+ or croak('Protocol "external" not supported on your system: Net::Ping::External not found');
+ return Net::Ping::External::ping(ip => $ip, timeout => $timeout);
+ }
+--- dist/PathTools/Cwd.pm
++++ dist/PathTools/Cwd.pm
+@@ -40,7 +40,10 @@ if ($^O eq 'os2') {
+ my $use_vms_feature;
+ BEGIN {
+ if ($^O eq 'VMS') {
+- if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
++ if (eval { local $SIG{__DIE__};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require VMS::Feature; }) {
+ $use_vms_feature = 1;
+ }
+ }
+--- dist/PathTools/lib/File/Spec/Cygwin.pm
++++ dist/PathTools/lib/File/Spec/Cygwin.pm
+@@ -137,7 +137,11 @@ sub case_tolerant {
+ if ($mntopts and ($mntopts =~ /,managed/)) {
+ return 0;
+ }
+- eval { require Win32API::File; } or return 1;
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Win32API::File;
++ } or return 1;
+ my $osFsType = "\0"x256;
+ my $osVolName = "\0"x256;
+ my $ouFsFlags = 0;
+--- dist/PathTools/lib/File/Spec/VMS.pm
++++ dist/PathTools/lib/File/Spec/VMS.pm
+@@ -39,7 +39,10 @@ via the C<DECC$FILENAME_UNIX_REPORT> CRTL feature.
+
+ my $use_feature;
+ BEGIN {
+- if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
++ if (eval { local $SIG{__DIE__};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require VMS::Feature; }) {
+ $use_feature = 1;
+ }
+ }
+--- dist/PathTools/lib/File/Spec/Win32.pm
++++ dist/PathTools/lib/File/Spec/Win32.pm
+@@ -90,7 +90,11 @@ Default: 1
+ =cut
+
+ sub case_tolerant {
+- eval { require Win32API::File; } or return 1;
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Win32API::File;
++ } or return 1;
+ my $drive = shift || "C:";
+ my $osFsType = "\0"x256;
+ my $osVolName = "\0"x256;
+--- dist/Storable/Storable.pm
++++ dist/Storable/Storable.pm
+@@ -25,7 +25,13 @@ use vars qw($canonical $forgive_me $VERSION);
+ $VERSION = '2.53_01';
+
+ BEGIN {
+- if (eval { local $SIG{__DIE__}; require Log::Agent; 1 }) {
++ if (eval {
++ local $SIG{__DIE__};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Log::Agent;
++ 1;
++ }) {
+ Log::Agent->import;
+ }
+ #
+--- dist/base/lib/base.pm
++++ dist/base/lib/base.pm
+@@ -96,7 +96,11 @@ sub import {
+ {
+ local $SIG{__DIE__};
+ my $fn = _module_to_filename($base);
+- eval { require $fn };
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require $fn
++ };
+ # Only ignore "Can't locate" errors from our eval require.
+ # Other fatal errors (syntax etc) must be reported.
+ #
+--- cpan/CPAN/lib/App/Cpan.pm
++++ cpan/CPAN/lib/App/Cpan.pm
+@@ -530,9 +530,20 @@ sub AUTOLOAD { 1 }
+ sub DESTROY { 1 }
+ }
+
++# load a module without searching the default entry for the current
++# directory
++sub _safe_load_module {
++ my $name = shift;
++
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++
++ eval "require $name; 1";
++}
++
+ sub _init_logger
+ {
+- my $log4perl_loaded = eval "require Log::Log4perl; 1";
++ my $log4perl_loaded = _safe_load_module("Log::Log4perl");
+
+ unless( $log4perl_loaded )
+ {
+@@ -993,7 +1004,7 @@ sub _load_local_lib # -I
+ {
+ $logger->debug( "Loading local::lib" );
+
+- my $rc = eval { require local::lib; 1; };
++ my $rc = _safe_load_module("local::lib");
+ unless( $rc ) {
+ $logger->die( "Could not load local::lib" );
+ }
+@@ -1121,7 +1132,7 @@ sub _get_file
+ {
+ my $path = shift;
+
+- my $loaded = eval "require LWP::Simple; 1;";
++ my $loaded = _safe_load_module("LWP::Simple");
+ croak "You need LWP::Simple to use features that fetch files from CPAN\n"
+ unless $loaded;
+
+@@ -1143,7 +1154,7 @@ sub _gitify
+ {
+ my $args = shift;
+
+- my $loaded = eval "require Archive::Extract; 1;";
++ my $loaded = _safe_load_module("Archive::Extract");
+ croak "You need Archive::Extract to use features that gitify distributions\n"
+ unless $loaded;
+
+@@ -1207,7 +1218,7 @@ sub _show_Changes
+ sub _get_changes_file
+ {
+ croak "Reading Changes files requires LWP::Simple and URI\n"
+- unless eval "require LWP::Simple; require URI; 1";
++ unless _safe_load_module("LWP::Simple") && _safe_load_module("URI");
+
+ my $url = shift;
+
+--- cpan/CPAN/lib/CPAN.pm
++++ cpan/CPAN/lib/CPAN.pm
+@@ -1104,6 +1104,8 @@ sub has_usable {
+ ]
+ };
+ if ($usable->{$mod}) {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ for my $c (0..$#{$usable->{$mod}}) {
+ my $code = $usable->{$mod}[$c];
+ my $ret = eval { &$code() };
+@@ -1146,6 +1148,8 @@ sub has_inst {
+ $CPAN::META->{dontload_hash}{$mod}||=1; # unsafe meta access, ok
+ return 0;
+ }
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ my $file = $mod;
+ my $obj;
+ $file =~ s|::|/|g;
+--- cpan/Digest/Digest.pm
++++ cpan/Digest/Digest.pm
+@@ -38,7 +38,11 @@ sub new
+ unless (exists ${"$class\::"}{"VERSION"}) {
+ my $pm_file = $class . ".pm";
+ $pm_file =~ s{::}{/}g;
+- eval { require $pm_file };
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require $pm_file
++ };
+ if ($@) {
+ $err ||= $@;
+ next;
+--- cpan/Encode/Encode.pm
++++ cpan/Encode/Encode.pm
+@@ -56,6 +56,8 @@ require Encode::Config;
+ eval {
+ local $SIG{__DIE__};
+ local $SIG{__WARN__};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ require Encode::ConfigLocal;
+ };
+
+--- dist/ExtUtils-Command/lib/ExtUtils/Command.pm
++++ dist/ExtUtils-Command/lib/ExtUtils/Command.pm
+@@ -19,7 +19,10 @@ if( $Is_VMS ) {
+ my $vms_efs;
+ my $vms_case;
+
+- if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
++ if (eval { local $SIG{__DIE__};
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require VMS::Feature; }) {
+ $vms_unix_rpt = VMS::Feature::current("filename_unix_report");
+ $vms_efs = VMS::Feature::current("efs_charset");
+ $vms_case = VMS::Feature::current("efs_case_preserve");
+--- cpan/File-Fetch/lib/File/Fetch.pm
++++ cpan/File-Fetch/lib/File/Fetch.pm
+@@ -567,6 +567,8 @@ sub _lwp_fetch {
+
+ };
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ unless( can_load( modules => $use_list ) ) {
+ $METHOD_FAIL->{'lwp'} = 1;
+ return;
+@@ -619,6 +621,8 @@ sub _httptiny_fetch {
+
+ };
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ unless( can_load(modules => $use_list) ) {
+ $METHOD_FAIL->{'httptiny'} = 1;
+ return;
+@@ -658,6 +662,8 @@ sub _httplite_fetch {
+
+ };
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ unless( can_load(modules => $use_list) ) {
+ $METHOD_FAIL->{'httplite'} = 1;
+ return;
+@@ -733,6 +739,8 @@ sub _iosock_fetch {
+ 'IO::Select' => '0.0',
+ };
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ unless( can_load(modules => $use_list) ) {
+ $METHOD_FAIL->{'iosock'} = 1;
+ return;
+@@ -814,6 +822,8 @@ sub _netftp_fetch {
+ check( $tmpl, \%hash ) or return;
+
+ ### required modules ###
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ my $use_list = { 'Net::FTP' => 0 };
+
+ unless( can_load( modules => $use_list ) ) {
+--- cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
++++ cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
+@@ -1392,6 +1392,8 @@ sub _find_CA_file {
+ return $self->{SSL_options}->{SSL_ca_file}
+ if $self->{SSL_options}->{SSL_ca_file} and -e $self->{SSL_options}->{SSL_ca_file};
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ return Mozilla::CA::SSL_ca_file()
+ if eval { require Mozilla::CA };
+
+--- cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
++++ cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
+@@ -27,6 +27,8 @@ Exporter::export_ok_tags('all');
+
+ BEGIN
+ {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval ' use IO::Uncompress::Adapter::Inflate 2.064 ;';
+ eval ' use IO::Uncompress::Adapter::Bunzip2 2.064 ;';
+ eval ' use IO::Uncompress::Adapter::LZO 2.064 ;';
+--- cpan/IPC-Cmd/lib/IPC/Cmd.pm
++++ cpan/IPC-Cmd/lib/IPC/Cmd.pm
+@@ -142,6 +142,8 @@ sub can_use_ipc_run {
+ return if IS_WIN98;
+
+ ### if we don't have ipc::run, we obviously can't use it.
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ return unless can_load(
+ modules => { 'IPC::Run' => '0.55' },
+ verbose => ($WARN && $verbose),
+@@ -169,6 +171,8 @@ sub can_use_ipc_open3 {
+
+ ### IPC::Open3 works on every non-VMS platform, but it can't
+ ### capture buffers on win32 :(
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ return unless can_load(
+ modules => { map {$_ => '0.0'} qw|IPC::Open3 IO::Select Symbol| },
+ verbose => ($WARN && $verbose),
+--- cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm
++++ cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm
+@@ -134,7 +134,12 @@ sub load_loc {
+ my $pkg = join('::', grep { defined and length } $args{Class}, $args{Subclass});
+ return $Loc{$pkg} if exists $Loc{$pkg};
+
+- eval { require Locale::Maketext::Lexicon; 1 } or return;
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require Locale::Maketext::Lexicon;
++ 1
++ } or return;
+ $Locale::Maketext::Lexicon::VERSION > 0.20 or return;
+ eval { require File::Spec; 1 } or return;
+
+--- cpan/Memoize/Memoize.pm
++++ cpan/Memoize/Memoize.pm
+@@ -184,7 +184,11 @@ sub _my_tie {
+ }
+ my $modulefile = $module . '.pm';
+ $modulefile =~ s{::}{/}g;
+- eval { require $modulefile };
++ eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ require $modulefile
++ };
+ if ($@) {
+ croak "Memoize: Couldn't load hash tie module `$module': $@; aborting";
+ }
+--- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
++++ cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
+@@ -573,6 +573,9 @@ sub find_good_formatter_class {
+ my @class_list = @{ $self->{'formatter_classes'} || [] };
+ $self->die( "WHAT? Nothing in the formatter class list!?" ) unless @class_list;
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++
+ my $good_class_found;
+ foreach my $c (@class_list) {
+ DEBUG > 4 and print "Trying to load $c...\n";
+@@ -1004,6 +1007,8 @@ sub new_translator { # $tr = $self->new_translator($lang);
+ my $self = shift;
+ my $lang = shift;
+
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ my $pack = 'POD2::' . uc($lang);
+ eval "require $pack";
+ if ( !$@ && $pack->can('new') ) {
+--- cpan/Sys-Syslog/Syslog.pm
++++ cpan/Sys-Syslog/Syslog.pm
+@@ -888,6 +888,8 @@ sub silent_eval (&) {
+ sub can_load {
+ my ($module, $verbose) = @_;
+ local($SIG{__DIE__}, $SIG{__WARN__}, $@);
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ my $loaded = eval "use $module; 1";
+ warn $@ if not $loaded and $verbose;
+ return $loaded
+--- cpan/libnet/Net/Config.pm
++++ cpan/libnet/Net/Config.pm
+@@ -23,7 +23,12 @@ our $VERSION = "3.05";
+
+ our($CONFIGURE, $LIBNET_CFG);
+
+-eval { local $SIG{__DIE__}; require Net::LocalCfg };
++eval {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
++ local $SIG{__DIE__};
++ require Net::LocalCfg;
++};
+
+ our %NetConfig = (
+ nntp_hosts => [],
+--- dist/bignum/lib/bigint.pm.orig Sat Dec 27 03:49:23 2014
++++ dist/bignum/lib/bigint.pm Sat Jul 23 21:29:44 2016
+@@ -248,6 +248,8 @@ sub import
+ # see if we can find Math::BigInt::Lite
+ if (!defined $a && !defined $p) # rounding won't work to well
+ {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval 'require Math::BigInt::Lite;';
+ if ($@ eq '')
+ {
+--- dist/bignum/lib/bignum.pm.orig Sat Dec 27 03:49:23 2014
++++ dist/bignum/lib/bignum.pm Sat Jul 23 21:29:52 2016
+@@ -155,6 +155,8 @@ sub import
+ # see if we can find Math::BigInt::Lite
+ if (!defined $a && !defined $p) # rounding won't work to well
+ {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval 'require Math::BigInt::Lite;';
+ if ($@ eq '')
+ {
+--- dist/bignum/lib/bigrat.pm.orig Sat Dec 27 03:49:23 2014
++++ dist/bignum/lib/bigrat.pm Sat Jul 23 21:29:59 2016
+@@ -148,6 +148,8 @@ sub import
+ # see if we can find Math::BigInt::Lite
+ if (!defined $a && !defined $p) # rounding won't work to well
+ {
++ local @INC = @INC;
++ pop @INC if $INC[-1] eq '.';
+ eval 'require Math::BigInt::Lite;';
+ if ($@ eq '')
+ {
+--- x2p/s2p.PL.orig Sat Jul 23 07:07:58 2016
++++ x2p/s2p.PL Sat Jul 23 07:10:09 2016
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Config;
+ use File::Basename qw(&basename &dirname);
+ use Cwd;
+--- x2p/find2perl.PL.orig Sat Jul 23 07:08:21 2016
++++ x2p/find2perl.PL Sat Jul 23 07:10:15 2016
+@@ -1,5 +1,6 @@
+ #!/usr/local/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Config;
+ use File::Basename qw(&basename &dirname);
+ use Cwd;
+--- t/porting/customized.dat.orig Sun Jul 24 06:24:47 2016
++++ t/porting/customized.dat Sun Jul 24 06:26:01 2016
+@@ -1,17 +1,17 @@
+-CPAN cpan/CPAN/lib/CPAN/Author.pm 792d7c8fbe6ed45e1244e589a8b712878c5dd2a5
+-CPAN cpan/CPAN/lib/CPAN/CacheMgr.pm 132adb7f96014ec7ded45457044ed925d3181475
+-CPAN cpan/CPAN/lib/CPAN/FTP.pm 3f0d5fc572c8749a566d73ca892c6c89ce3fb676
+-CPAN cpan/CPAN/lib/CPAN/HandleConfig.pm e52052b6ef6d1d664f0ffa6cf01d48a8d1321520
+-CPAN cpan/CPAN/lib/CPAN/HTTP/Client.pm 242842ca566fd8e3d776deb549ff758a571ca2e3
+-CPAN cpan/CPAN/lib/CPAN/Index.pm 73aee30450127c5ac4dc05abc2c10a8accd4b198
+-CPAN cpan/CPAN/lib/CPAN/LWP/UserAgent.pm e09525b0c2377c5ac28b7fad1b6d70c57e343913
+-CPAN cpan/CPAN/lib/CPAN/Mirrors.pm 580e74746abaf1628d533015d5b529d82a470af4
++CPAN cpan/CPAN/lib/CPAN/Author.pm 31efd07ada1df7bcc6519cad79d3c7c9e60bd67b
++CPAN cpan/CPAN/lib/CPAN/CacheMgr.pm e2815c9aa177d4d502ce792f3a528a7dd310d98e
++CPAN cpan/CPAN/lib/CPAN/FTP.pm 900d2531161ffbadce1ea1b4c66b40fbc01fa281
++CPAN cpan/CPAN/lib/CPAN/HandleConfig.pm fff963a15a4d570297c29a1d129d644746bf3c7f
++CPAN cpan/CPAN/lib/CPAN/HTTP/Client.pm dfb05ba98a9ccbbd082bf2255ed3bbd6249e4f53
++CPAN cpan/CPAN/lib/CPAN/Index.pm e16aaca226d692a886fc289b4daef8885caa9d20
++CPAN cpan/CPAN/lib/CPAN/LWP/UserAgent.pm c9a184eeefe4388ef2c85ae04496d06219d7cab0
++CPAN cpan/CPAN/lib/CPAN/Mirrors.pm b68181e1e27a88247b5ce5f2a41d999fbeaf9ad0
+ Digest::MD5 cpan/Digest-MD5/t/files.t bdbe05b705d9da305fedce7a9f4b6ba63250c7cf
+-Encode cpan/Encode/bin/enc2xs f60036fd3574ec05c9aab7f4db00a828d5dea92d
++Encode cpan/Encode/bin/enc2xs a0685329f5e713b1f3866d90b61e3210fe943d8b
+ Encode cpan/Encode/Byte/Makefile.PL 0986e25f981a3bf182a13a0060d28d4efedd87e6
+ Encode cpan/Encode/CN/Makefile.PL 5507a49d822d0c1d14e967f4595e29e9c873540b
+ Encode cpan/Encode/EBCDIC/Makefile.PL 574289638393eb6b1109eb9a6874bfe8c5d2ddea
+-Encode cpan/Encode/Encode.pm fc26f74b44148a4f0c9e8ec2b0a9c20eae96249d
++Encode cpan/Encode/Encode.pm f0961aba6e6917cefd47e2953d8c428d22ebc55e
+ Encode cpan/Encode/Encode.xs 9ee24e3915319bdec044535667a39e3dc531fdcf
+ Encode cpan/Encode/Encode/Makefile_PL.e2x 4d0420b19cea75c513842329c1906221130bdb6b
+ Encode cpan/Encode/JP/Makefile.PL a9ca9c836424cc2ecbefa4933d9da5db54131b98
diff --git a/lang/perl5.22/Makefile b/lang/perl5.22/Makefile
index ae60c5934987..e89f180f5159 100644
--- a/lang/perl5.22/Makefile
+++ b/lang/perl5.22/Makefile
@@ -2,8 +2,8 @@
# $FreeBSD$
PORTNAME= perl
-DISTVERSION= ${PERL_VERSION}
-PORTREVISION= 1
+DISTVERSION= ${PERL_VERSION}-RC2
+PORTREVISION= 0
CATEGORIES= lang devel perl5
MASTER_SITES= CPAN/../../src/5.0 CPAN/../by-authors/id/S/SH/SHAY
DIST_SUBDIR= perl
diff --git a/lang/perl5.22/distinfo b/lang/perl5.22/distinfo
index c3b5431a9fcd..334c689dffd8 100644
--- a/lang/perl5.22/distinfo
+++ b/lang/perl5.22/distinfo
@@ -1,2 +1,3 @@
-SHA256 (perl/perl-5.22.2.tar.xz) = b34dab1eabec056bec5a6682a57b55dab1bcf6afc60b098c9e2d99433dedc295
-SIZE (perl/perl-5.22.2.tar.xz) = 11224216
+TIMESTAMP = 1469459913
+SHA256 (perl/perl-5.22.3-RC2.tar.xz) = 9546aa7fddf7bd52eeab02359aa9c70139798f9dbb0121975b9814d68a331832
+SIZE (perl/perl-5.22.3-RC2.tar.xz) = 11234988
diff --git a/lang/perl5.22/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm b/lang/perl5.22/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm
index 767222c08a17..7200f9a47493 100644
--- a/lang/perl5.22/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm
+++ b/lang/perl5.22/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm
@@ -1,6 +1,6 @@
---- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm.orig 2015-04-27 14:10:52 UTC
+--- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm.orig 2016-07-24 17:18:13 UTC
+++ cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
-@@ -1920,6 +1920,7 @@ sub page { # apply a pager to the outpu
+@@ -1925,6 +1925,7 @@ sub page { # apply a pager to the outpu
# fix visible escape codes in ToTerm output
# https://bugs.debian.org/758689
local $ENV{LESS} = defined $ENV{LESS} ? "$ENV{LESS} -R" : "-R";
diff --git a/lang/perl5.22/files/patch-t_porting_customized.dat b/lang/perl5.22/files/patch-t_porting_customized.dat
index 8549162b3348..f78aa6cb4f56 100644
--- a/lang/perl5.22/files/patch-t_porting_customized.dat
+++ b/lang/perl5.22/files/patch-t_porting_customized.dat
@@ -1,11 +1,20 @@
---- t/porting/customized.dat.orig 2015-10-31 13:36:16 UTC
+--- t/porting/customized.dat.orig 2016-07-24 17:18:14 UTC
+++ t/porting/customized.dat
-@@ -14,7 +14,7 @@ ExtUtils::MakeMaker cpan/ExtUtils-MakeMa
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm ab80029ab16d38d4f2e41dc88d2ceb9f3790e477
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 453e0abbc4bb38db4c0820ad5c4846f313b66291
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm c1b1babda8f43ae7a2caba1cb4f70f92af5a0e34
--ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 6f90d94ad3e7aa0045a3b1a10a1bb18391f89f57
-+ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 07b63f89d6ccacdecec90da43fbf1ba5af1e3c4c
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm cab2b3ce08b71a4ce89aa630f236eb08b852439d
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm 61fced0faf518bf87c265fcb51ed330ba354623f
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm ae0ef51a7b6dd0b05aa61c779df7167dda5f5119
+@@ -33,7 +33,7 @@ ExtUtils::MakeMaker cpan/ExtUtils-MakeMa
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm 81ebde56af5860edc646518fb64e5c427754ac4f
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm fb83ad4184016de85de92e8a428ec2e48b8fbc18
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm 6917a5d775e4e6f348abebe59ac4362e75885c51
+-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 843e15e58fe1a1bd7f6054dc8a8e839aaa03003b
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm bd4ed63f26a87a14f8113c95842984812a68b674
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm 4cadf37f823fef47a4862c44a3d34aa38315600b
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm ee5298707a26912989934f1d44bf25460394ef60
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm e247f2f2ba5d6283418ec6125d64a7a2b477ae43
+@@ -86,7 +86,7 @@ JSON::PP cpan/JSON-PP/bin/json_pp 22e1b3
+ JSON::PP cpan/JSON-PP/lib/JSON/PP.pm 817730a21b9be855d844e4d26023758960039e99
+ Locale::Maketext::Simple cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm 57ed38905791a17c150210cd6f42ead22a7707b6
+ Memoize cpan/Memoize/Memoize.pm 902092ff91cdec9c7b4bd06202eb179e1ce26ca2
+-Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm 6928fb8a381cfba8204886c656844bcf1abc60f5
++Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm 42a1d360fc745560352956bd1dfb62d6b43cdb9c
+ Sys::Syslog cpan/Sys-Syslog/Syslog.pm 181d7541a6aa2a0a4d15f5beec32d16c17c76caf
+ Test cpan/Test/lib/Test.pm 785c02014198ec3dae35e41def2cb24766fcf1cb
+ Test::Harness cpan/Test-Harness/bin/prove 9b2866928cb1125de2c68f9773b25723e02c54c0
diff --git a/lang/perl5.22/pkg-plist b/lang/perl5.22/pkg-plist
index 71bbd634c2f5..84c4e024b0e2 100644
--- a/lang/perl5.22/pkg-plist
+++ b/lang/perl5.22/pkg-plist
@@ -1449,6 +1449,7 @@ etc/man.d/perl%%PKGNAMESUFFIX%%.conf
%%PRIV_LIB%%/pod/perl5220delta.pod
%%PRIV_LIB%%/pod/perl5221delta.pod
%%PRIV_LIB%%/pod/perl5222delta.pod
+%%PRIV_LIB%%/pod/perl5223delta.pod
%%PRIV_LIB%%/pod/perl561delta.pod
%%PRIV_LIB%%/pod/perl56delta.pod
%%PRIV_LIB%%/pod/perl581delta.pod
@@ -2068,6 +2069,7 @@ etc/man.d/perl%%PKGNAMESUFFIX%%.conf
%%MAN1%%/perl5220delta.1.gz
%%MAN1%%/perl5221delta.1.gz
%%MAN1%%/perl5222delta.1.gz
+%%MAN1%%/perl5223delta.1.gz
%%MAN1%%/perl561delta.1.gz
%%MAN1%%/perl56delta.1.gz
%%MAN1%%/perl581delta.1.gz
diff --git a/lang/perl5.22/version.mk b/lang/perl5.22/version.mk
index c0153018ad1e..92d5345281aa 100644
--- a/lang/perl5.22/version.mk
+++ b/lang/perl5.22/version.mk
@@ -1,2 +1,2 @@
-PERL_VERSION= 5.22.2
+PERL_VERSION= 5.22.3
PERL5_DEPEND= perl5>=5.22<5.23
diff --git a/lang/perl5.24/Makefile b/lang/perl5.24/Makefile
index 0b431c590a41..e89f180f5159 100644
--- a/lang/perl5.24/Makefile
+++ b/lang/perl5.24/Makefile
@@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= perl
-DISTVERSION= ${PERL_VERSION}
+DISTVERSION= ${PERL_VERSION}-RC2
PORTREVISION= 0
CATEGORIES= lang devel perl5
-MASTER_SITES= CPAN/../../src/5.0 CPAN/../by-authors/id/R/RJ/RJBS/
+MASTER_SITES= CPAN/../../src/5.0 CPAN/../by-authors/id/S/SH/SHAY
DIST_SUBDIR= perl
MAINTAINER= perl@FreeBSD.org
diff --git a/lang/perl5.24/distinfo b/lang/perl5.24/distinfo
index aed3e3cd7b05..f036e72f35dd 100644
--- a/lang/perl5.24/distinfo
+++ b/lang/perl5.24/distinfo
@@ -1,2 +1,3 @@
-SHA256 (perl/perl-5.24.0.tar.xz) = a9a37c0860380ecd7b23aa06d61c20fc5bc6d95198029f3684c44a9d7e2952f2
-SIZE (perl/perl-5.24.0.tar.xz) = 11483228
+TIMESTAMP = 1469460277
+SHA256 (perl/perl-5.24.1-RC2.tar.xz) = 57579296b540f06278b6db6bcbfa85abe491bb17275339a8a6918a2b31334d3c
+SIZE (perl/perl-5.24.1-RC2.tar.xz) = 11549052
diff --git a/lang/perl5.24/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm b/lang/perl5.24/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm
index ac28ca8c26cf..018c68f97691 100644
--- a/lang/perl5.24/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm
+++ b/lang/perl5.24/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm
@@ -1,6 +1,6 @@
---- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm.orig 2015-12-16 03:15:45 UTC
+--- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm.orig 2016-07-25 09:12:21 UTC
+++ cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
-@@ -1931,6 +1931,7 @@ sub page { # apply a pager to the outpu
+@@ -1936,6 +1936,7 @@ sub page { # apply a pager to the outpu
# fix visible escape codes in ToTerm output
# https://bugs.debian.org/758689
local $ENV{LESS} = defined $ENV{LESS} ? "$ENV{LESS} -R" : "-R";
diff --git a/lang/perl5.24/files/patch-t_porting_customized.dat b/lang/perl5.24/files/patch-t_porting_customized.dat
index 0afa648c7c43..3d9e2a88a6ab 100644
--- a/lang/perl5.24/files/patch-t_porting_customized.dat
+++ b/lang/perl5.24/files/patch-t_porting_customized.dat
@@ -1,20 +1,20 @@
---- t/porting/customized.dat.orig 2016-04-04 04:52:21 UTC
+--- t/porting/customized.dat.orig 2016-07-25 09:12:22 UTC
+++ t/porting/customized.dat
-@@ -14,7 +14,7 @@ ExtUtils::MakeMaker cpan/ExtUtils-MakeMa
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm 23a4b33b974e036d59bf55aa02e025506a408048
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 288df61e9ba7be3505b58b6345091fe1f310a117
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm 8578f2ea4ec9e764a789f6ecf620ea449ddca8c1
--ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 9f1f6c51fb0337726c99332facc52159c0619fe2
-+ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm fc5a731797f5c4fedf02ea2b5277aa720f0880ab
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm a0ec076bedfa0c2e52fc2b735fbc75b4c2706bbf
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm 976b10ec76d1fe6f7ee9000b5596e8950434880b
- ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm bc4b33fa5296ab35bcb1be1c18759b93c4de2598
-@@ -44,7 +44,7 @@ IPC::SysV cpan/IPC-SysV/lib/IPC/SharedMe
- IPC::SysV cpan/IPC-SysV/lib/IPC/SysV.pm 9a0d1c3dcd67321ef1322f29102a1bc7eb91c61c
- IPC::SysV cpan/IPC-SysV/t/ipcsysv.t ee2c95e846ea201afe13c9ec53b09cef62c8ac68
+@@ -33,7 +33,7 @@ ExtUtils::MakeMaker cpan/ExtUtils-MakeMa
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm 8559ef191b4371d0c381472464856a8a73825b2a
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 09d579ed9daea95c3bf47de2e0b8fe3aa0ff6447
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm f720c13748293b792f7073aa96e7daecb590b183
+-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 243649a399d293ae7ad0f26b7eab2668aa864ce8
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm bb5266915618d6da7b30559b378dd30820d64308
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b63c90129303b2c17d084fb828aa2c02a2ad85b8
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm cabd1c97eaa427067811d92807e34c17940c7350
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm 6a185d897a600c34615a6073f4de0ac2f54fef3e
+@@ -97,7 +97,7 @@ JSON::PP cpan/JSON-PP/lib/JSON/PP.pm 817
+ Locale::Maketext::Simple cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm 57ed38905791a17c150210cd6f42ead22a7707b6
Math::BigRat cpan/Math-BigRat/lib/Math/BigRat.pm 6eabc68e04f67694f6fe523e64eb013fc337ca5b
--Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm fe0bc906fb74b69cfd3fb289316ba669d770d465
-+Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm 07e7d337de37d19b3cc7025af17b9111fb2ba265
+ Memoize cpan/Memoize/Memoize.pm 902092ff91cdec9c7b4bd06202eb179e1ce26ca2
+-Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm ba3072a6af793b410b02594ed8fe109ac16a1d43
++Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm e9e98b26450ceb3bae1e54ac8a57dab88932de96
Scalar-List-Utils cpan/Scalar-List-Utils/lib/List/Util.pm 3b501b7332480b34929bc4df5d48581df3307267
Scalar-List-Utils cpan/Scalar-List-Utils/lib/List/Util/XS.pm ebd169113d3df79d31ad5535dbd7a538a8c14fd2
Scalar-List-Utils cpan/Scalar-List-Utils/lib/Scalar/Util.pm def601405bac7a4d6690b8c4207e0f05d65eb4ca
diff --git a/lang/perl5.24/pkg-plist b/lang/perl5.24/pkg-plist
index 1377f8d15305..d58152c5b0ca 100644
--- a/lang/perl5.24/pkg-plist
+++ b/lang/perl5.24/pkg-plist
@@ -1449,6 +1449,7 @@ etc/man.d/perl%%PKGNAMESUFFIX%%.conf
%%PRIV_LIB%%/pod/perl5221delta.pod
%%PRIV_LIB%%/pod/perl5222delta.pod
%%PRIV_LIB%%/pod/perl5240delta.pod
+%%PRIV_LIB%%/pod/perl5241delta.pod
%%PRIV_LIB%%/pod/perl561delta.pod
%%PRIV_LIB%%/pod/perl56delta.pod
%%PRIV_LIB%%/pod/perl581delta.pod
@@ -2118,6 +2119,7 @@ etc/man.d/perl%%PKGNAMESUFFIX%%.conf
%%MAN1%%/perl5221delta.1.gz
%%MAN1%%/perl5222delta.1.gz
%%MAN1%%/perl5240delta.1.gz
+%%MAN1%%/perl5241delta.1.gz
%%MAN1%%/perl561delta.1.gz
%%MAN1%%/perl56delta.1.gz
%%MAN1%%/perl581delta.1.gz
diff --git a/lang/perl5.24/version.mk b/lang/perl5.24/version.mk
index 88a25a8841ce..43d167033a55 100644
--- a/lang/perl5.24/version.mk
+++ b/lang/perl5.24/version.mk
@@ -1,2 +1,2 @@
-PERL_VERSION= 5.24.0
+PERL_VERSION= 5.24.1
PERL5_DEPEND= perl5>=5.24<5.25