[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#864745: jessie-pu: package perl/5.20.2-3+deb8u6



Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu

In July 2016 we released a security update for perl to fix an optional
module loading related vulnerability:

https://www.debian.org/security/2016/dsa-3628

This update included a change that has been since improved by upstream
for better compatibility with existing code. The original update caused
a few packages to FTBFS:

#864302
#864299
#832862
#832866
#832845

As such we believe that it makes sense to update perl in jessie to
include the improved fix, which is scheduled for inclusion in upstream
maintenance releases soon.

The attached patch implements the aforementioned update, and has been
tested against packages build-depending on build in jessie with no
regressions (and we've confirmed that the above bugs have been fixed).

Please let us know if we can upload to jessie-proposed-updates.

Thanks!
Dominic.

-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff --git a/MANIFEST b/MANIFEST
index 3032f8d85..550dbcc6e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2918,6 +2918,7 @@ dist/base/t/fields-5_6_0.t	See if fields work
 dist/base/t/fields-5_8_0.t	See if fields work
 dist/base/t/fields-base.t	See if fields work
 dist/base/t/fields.t		See if fields work
+dist/base/t/incdot.t		Test how base.pm handles '.' in @INC
 dist/base/t/isa.t		See if base's behaviour doesn't change
 dist/base/t/lib/Broken.pm	Test module for base.pm
 dist/base/t/lib/Dummy.pm	Test module for base.pm
diff --git a/debian/.git-dpm b/debian/.git-dpm
index efd1927de..0358cee95 100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@ -1,6 +1,6 @@
 # see git-dpm(1) from git-dpm package
-cb271c1e0342a06a706713671bae273d90d4fe34
-cb271c1e0342a06a706713671bae273d90d4fe34
+275e5dec730be629875c79a8e1a8b3f50392f565
+275e5dec730be629875c79a8e1a8b3f50392f565
 708ce0747a55640ef1136be276185cc1a5a82564
 708ce0747a55640ef1136be276185cc1a5a82564
 perl_5.20.2.orig.tar.bz2
diff --git a/debian/changelog b/debian/changelog
index 52aab6a24..ab89e8249 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+perl (5.20.2-3+deb8u8) UNRELEASED; urgency=medium
+
+  * Revert base.pm no-dot-in-inc fix to upstream's latest and greatest
+    version.
+
+ -- Niko Tyni <ntyni@debian.org>  Wed, 07 Jun 2017 21:42:07 +0300
+
 perl (5.20.2-3+deb8u7) jessie-security; urgency=high
 
   * [CVE-2017-6512] Fix file permissions race condition in File-Path;
diff --git a/debian/patches/debian/CVE-2016-1238/base-pm-amends-pt1.diff b/debian/patches/debian/CVE-2016-1238/base-pm-amends-pt1.diff
new file mode 100644
index 000000000..9ca4d437e
--- /dev/null
+++ b/debian/patches/debian/CVE-2016-1238/base-pm-amends-pt1.diff
@@ -0,0 +1,27 @@
+From 66d0cb1ccce13777092a7d0b0f002cc771e0459d Mon Sep 17 00:00:00 2001
+From: Niko Tyni <ntyni@debian.org>
+Date: Wed, 7 Jun 2017 21:45:48 +0300
+Subject: Revert base.pm no-dot-in-inc fixes to make way for a better version
+
+Patch-Name: debian/CVE-2016-1238/base-pm-amends-pt1.diff
+---
+ dist/base/lib/base.pm | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/dist/base/lib/base.pm b/dist/base/lib/base.pm
+index 2b1509620..5d1378786 100644
+--- a/dist/base/lib/base.pm
++++ b/dist/base/lib/base.pm
+@@ -96,11 +96,7 @@ sub import {
+             {
+                 local $SIG{__DIE__};
+                 my $fn = _module_to_filename($base);
+-                eval {
+-                    local @INC = @INC;
+-                    pop @INC if $INC[-1] eq '.';
+-                    require $fn
+-                };
++                eval { require $fn };
+                 # Only ignore "Can't locate" errors from our eval require.
+                 # Other fatal errors (syntax etc) must be reported.
+                 #
diff --git a/debian/patches/debian/CVE-2016-1238/base-pm-amends-pt2.diff b/debian/patches/debian/CVE-2016-1238/base-pm-amends-pt2.diff
new file mode 100644
index 000000000..5fe81d5d4
--- /dev/null
+++ b/debian/patches/debian/CVE-2016-1238/base-pm-amends-pt2.diff
@@ -0,0 +1,206 @@
+From 275e5dec730be629875c79a8e1a8b3f50392f565 Mon Sep 17 00:00:00 2001
+From: Aristotle Pagaltzis <pagaltzis@gmx.de>
+Date: Mon, 13 Feb 2017 01:28:14 +0100
+Subject: wip
+
+[latest version of base.pm no-dot-in-inc fix,
+ backported to Debian 5.20 by Niko Tyni]
+
+Origin: upstream, http://perl5.git.perl.org/perl.git/commit/2d156e07f936ea4f8ce46dee5ade17fe19dbbf29
+Patch-Name: debian/CVE-2016-1238/base-pm-amends-pt2.diff
+---
+ MANIFEST                            |  1 +
+ dist/base/lib/base.pm               | 55 +++++++++++++++++++++++++++++++++++--
+ dist/base/t/incdot.t                | 55 +++++++++++++++++++++++++++++++++++++
+ dist/base/t/lib/BaseIncMandatory.pm |  9 ++++++
+ dist/base/t/lib/BaseIncOptional.pm  | 13 +++++++++
+ 5 files changed, 131 insertions(+), 2 deletions(-)
+ create mode 100644 dist/base/t/incdot.t
+ create mode 100644 dist/base/t/lib/BaseIncMandatory.pm
+ create mode 100644 dist/base/t/lib/BaseIncOptional.pm
+
+diff --git a/MANIFEST b/MANIFEST
+index 3032f8d85..550dbcc6e 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -2918,6 +2918,7 @@ dist/base/t/fields-5_6_0.t	See if fields work
+ dist/base/t/fields-5_8_0.t	See if fields work
+ dist/base/t/fields-base.t	See if fields work
+ dist/base/t/fields.t		See if fields work
++dist/base/t/incdot.t		Test how base.pm handles '.' in @INC
+ dist/base/t/isa.t		See if base's behaviour doesn't change
+ dist/base/t/lib/Broken.pm	Test module for base.pm
+ dist/base/t/lib/Dummy.pm	Test module for base.pm
+diff --git a/dist/base/lib/base.pm b/dist/base/lib/base.pm
+index 5d1378786..85d87e116 100644
+--- a/dist/base/lib/base.pm
++++ b/dist/base/lib/base.pm
+@@ -5,6 +5,11 @@ use vars qw($VERSION);
+ $VERSION = '2.22';
+ $VERSION = eval $VERSION;
+ 
++# simplest way to avoid indexing of the package: no package statement
++sub base::__inc::unhook { @INC = grep !(ref eq 'CODE' && $_ == $_[0]), @INC }
++# instance is blessed array of coderefs to be removed from @INC at scope exit
++sub base::__inc::scope_guard::DESTROY { base::__inc::unhook $_ for @{$_[0]} }
++
+ # constant.pm is slow
+ sub SUCCESS () { 1 }
+ 
+@@ -90,13 +95,59 @@ sub import {
+ 
+         next if grep $_->isa($base), ($inheritor, @bases);
+ 
+-        # Following blocks help isolate $SIG{__DIE__} changes
++        # Following blocks help isolate $SIG{__DIE__} and @INC changes
+         {
+             my $sigdie;
+             {
+                 local $SIG{__DIE__};
+                 my $fn = _module_to_filename($base);
+-                eval { require $fn };
++                my $dot_hidden;
++                eval {
++                    my $guard;
++                    if ($INC[-1] eq '.' && %{"$base\::"}) {
++                        # So:  the package already exists   => this an optional load
++                        # And: there is a dot at the end of @INC  => we want to hide it
++                        # However: we only want to hide it during our *own* require()
++                        # (i.e. without affecting nested require()s).
++                        # So we add a hook to @INC whose job is to hide the dot, but which
++                        # first checks checks the callstack depth, because within nested
++                        # require()s the callstack is deeper.
++                        # Since CORE::GLOBAL::require makes it unknowable in advance what
++                        # the exact relevant callstack depth will be, we have to record it
++                        # inside a hook. So we put another hook just for that at the front
++                        # of @INC, where it's guaranteed to run -- immediately.
++                        # The dot-hiding hook does its job by sitting directly in front of
++                        # the dot and removing itself from @INC when reached. This causes
++                        # the dot to move up one index in @INC, causing the loop inside
++                        # pp_require() to skip it.
++                        # Loaded coded may disturb this precise arrangement, but that's OK
++                        # because the hook is inert by that time. It is only active during
++                        # the top-level require(), when @INC is in our control. The only
++                        # possible gotcha is if other hooks already in @INC modify @INC in
++                        # some way during that initial require().
++                        # Note that this jiggery hookery works just fine recursively: if
++                        # a module loaded via base.pm uses base.pm itself, there will be
++                        # one pair of hooks in @INC per base::import call frame, but the
++                        # pairs from different nestings do not interfere with each other.
++                        my $lvl;
++                        unshift @INC,        sub { return if defined $lvl; 1 while defined caller ++$lvl; () };
++                        splice  @INC, -1, 0, sub { return if defined caller $lvl; ++$dot_hidden, &base::__inc::unhook; () };
++                        $guard = bless [ @INC[0,-2] ], 'base::__inc::scope_guard';
++                    }
++                    require $fn
++                };
++                if ($dot_hidden && (my @fn = grep -e && !( -d _ || -b _ ), $fn.'c', $fn)) {
++                    require Carp;
++                    Carp::croak(<<ERROR);
++Base class package "$base" is not empty but "$fn[0]" exists in the current directory.
++    To help avoid security issues, base.pm now refuses to load optional modules
++    from the current working directory when it is the last entry in \@INC.
++    If your software worked on previous versions of Perl, the best solution
++    is to use FindBin to detect the path properly and to add that path to
++    \@INC.  As a last resort, you can re-enable looking in the current working
++    directory by adding "use lib '.'" to your code.
++ERROR
++                }
+                 # Only ignore "Can't locate" errors from our eval require.
+                 # Other fatal errors (syntax etc) must be reported.
+                 #
+diff --git a/dist/base/t/incdot.t b/dist/base/t/incdot.t
+new file mode 100644
+index 000000000..412b2feef
+--- /dev/null
++++ b/dist/base/t/incdot.t
+@@ -0,0 +1,55 @@
++#!/usr/bin/perl -w
++
++use strict;
++
++#######################################################################
++
++sub array_diff {
++    my ( $got, $expected ) = @_;
++    push @$got,      ( '(missing)' )          x ( @$expected - @$got ) if @$got < @$expected;
++    push @$expected, ( '(should not exist)' ) x ( @$got - @$expected ) if @$got > @$expected;
++    join "\n    ", '  All differences:', (
++        map +( "got  [$_] " . $got->[$_], 'expected'.(' ' x length).$expected->[$_] ),
++        grep $got->[$_] ne $expected->[$_],
++        0 .. $#$got
++    );
++}
++
++#######################################################################
++
++use Test::More tests => 8;  # some extra tests in t/lib/BaseInc*
++
++use lib 't/lib', sub {()};
++
++# make it look like an older perl
++BEGIN { push @INC, '.' if $INC[-1] ne '.' }
++
++BEGIN {
++	my $x = sub { CORE::require $_[0] };
++	my $y = sub { &$x };
++	my $z = sub { &$y };
++	*CORE::GLOBAL::require = $z;
++}
++
++my @expected; BEGIN { @expected = @INC }
++
++use base 'BaseIncMandatory';
++
++BEGIN {
++    @t::lib::Dummy::ISA = (); # make it look like an optional load
++    my $success = eval q{use base 't::lib::Dummy'}, my $err = $@;
++    ok !$success, 'loading optional modules from . using base.pm fails';
++    is_deeply \@INC, \@expected, '... without changes to @INC'
++        or diag array_diff [@INC], [@expected];
++    like $err, qr!Base class package "t::lib::Dummy" is not empty but "t/lib/Dummy\.pm" exists in the current directory\.!,
++        '... and the proper error message';
++}
++
++BEGIN { @BaseIncOptional::ISA = () } # make it look like an optional load
++use base 'BaseIncOptional';
++
++BEGIN {
++    @expected = ( 't/lib/on-head', @expected, 't/lib/on-tail' );
++    is_deeply \@INC, \@expected, 'modules loaded by base can extend @INC at both ends'
++        or diag array_diff [@INC], [@expected];
++}
+diff --git a/dist/base/t/lib/BaseIncMandatory.pm b/dist/base/t/lib/BaseIncMandatory.pm
+new file mode 100644
+index 000000000..9e0718c60
+--- /dev/null
++++ b/dist/base/t/lib/BaseIncMandatory.pm
+@@ -0,0 +1,9 @@
++package BaseIncMandatory;
++
++BEGIN { package main;
++    is $INC[-1], '.', 'trailing dot remains in @INC during mandatory module load from base';
++    ok eval('require t::lib::Dummy'), '... and modules load fine from .' or diag "$@";
++    delete $INC{'t/lib/Dummy.pm'};
++}
++
++1;
+diff --git a/dist/base/t/lib/BaseIncOptional.pm b/dist/base/t/lib/BaseIncOptional.pm
+new file mode 100644
+index 000000000..e5bf0174e
+--- /dev/null
++++ b/dist/base/t/lib/BaseIncOptional.pm
+@@ -0,0 +1,13 @@
++package BaseIncOptional;
++
++BEGIN { package main;
++    is $INC[-1], '.', 'trailing dot remains in @INC during optional module load from base';
++    ok eval('require t::lib::Dummy'), '... and modules load fine from .' or diag "$@";
++    delete $INC{'t/lib/Dummy.pm'};
++}
++
++use lib 't/lib/on-head';
++
++push @INC, 't/lib/on-tail';
++
++1;
diff --git a/debian/patches/debian/CVE-2016-1238/cpan-without-dot.diff b/debian/patches/debian/CVE-2016-1238/cpan-without-dot.diff
index 6eeb9ce2f..df0bd00fe 100644
--- a/debian/patches/debian/CVE-2016-1238/cpan-without-dot.diff
+++ b/debian/patches/debian/CVE-2016-1238/cpan-without-dot.diff
@@ -13,7 +13,7 @@ Patch-Name: debian/CVE-2016-1238/cpan-without-dot.diff
  1 file changed, 5 insertions(+)
 
 diff --git a/cpan/CPAN/scripts/cpan b/cpan/CPAN/scripts/cpan
-index 664adcb..2dd25dc 100644
+index 664adcb3a..2dd25dc04 100644
 --- a/cpan/CPAN/scripts/cpan
 +++ b/cpan/CPAN/scripts/cpan
 @@ -4,6 +4,11 @@ BEGIN { pop @INC if $INC[-1] eq '.' }
diff --git a/debian/patches/debian/CVE-2016-1238/eumm-without-dot.diff b/debian/patches/debian/CVE-2016-1238/eumm-without-dot.diff
index f9942c0a1..91bb2dbd1 100644
--- a/debian/patches/debian/CVE-2016-1238/eumm-without-dot.diff
+++ b/debian/patches/debian/CVE-2016-1238/eumm-without-dot.diff
@@ -17,7 +17,7 @@ Patch-Name: debian/CVE-2016-1238/eumm-without-dot.diff
  2 files changed, 7 insertions(+), 2 deletions(-)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-index 6328e26..1cd920a 100644
+index 6328e26f5..1cd920a29 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 @@ -3462,7 +3462,7 @@ PERL_DL_NONLAZY set for tests.
@@ -39,7 +39,7 @@ index 6328e26..1cd920a 100644
  
  
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
-index fabb021..e0f88d2 100644
+index fabb0215a..e0f88d22e 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
 @@ -5,6 +5,11 @@ use strict;
diff --git a/debian/patches/debian/CVE-2016-1238/mb-without-dot.diff b/debian/patches/debian/CVE-2016-1238/mb-without-dot.diff
index 2f771ed9b..82fd0d74e 100644
--- a/debian/patches/debian/CVE-2016-1238/mb-without-dot.diff
+++ b/debian/patches/debian/CVE-2016-1238/mb-without-dot.diff
@@ -11,7 +11,7 @@ Patch-Name: debian/CVE-2016-1238/mb-without-dot.diff
  1 file changed, 2 insertions(+)
 
 diff --git a/cpan/Module-Build/lib/Module/Build/Base.pm b/cpan/Module-Build/lib/Module/Build/Base.pm
-index 4422cd4..4a8fb92 100644
+index 4422cd432..4a8fb92c4 100644
 --- a/cpan/Module-Build/lib/Module/Build/Base.pm
 +++ b/cpan/Module-Build/lib/Module/Build/Base.pm
 @@ -1860,6 +1860,8 @@ BEGIN {
diff --git a/debian/patches/debian/CVE-2016-1238/sitecustomize-in-etc.diff b/debian/patches/debian/CVE-2016-1238/sitecustomize-in-etc.diff
index 4693fbfd3..0ff25797e 100644
--- a/debian/patches/debian/CVE-2016-1238/sitecustomize-in-etc.diff
+++ b/debian/patches/debian/CVE-2016-1238/sitecustomize-in-etc.diff
@@ -17,7 +17,7 @@ Patch-Name: debian/CVE-2016-1238/sitecustomize-in-etc.diff
  2 files changed, 10 insertions(+)
 
 diff --git a/perl.c b/perl.c
-index 26aeb91..fefc3aa 100644
+index 26aeb91b3..fefc3aa5b 100644
 --- a/perl.c
 +++ b/perl.c
 @@ -2085,7 +2085,12 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
@@ -34,7 +34,7 @@ index 26aeb91..fefc3aa 100644
  	    /* process .../.. if PERL_RELOCATABLE_INC is defined */
  	    SV *sitelib_sv = mayberelocate(raw_sitelib, strlen(raw_sitelib),
 diff --git a/pod/perlrun.pod b/pod/perlrun.pod
-index acf2702..f43cfe9 100644
+index acf270221..f43cfe993 100644
 --- a/pod/perlrun.pod
 +++ b/pod/perlrun.pod
 @@ -489,6 +489,11 @@ blocks will be likewise executed very late.
diff --git a/debian/patches/debian/CVE-2016-1238/test-suite-without-dot.diff b/debian/patches/debian/CVE-2016-1238/test-suite-without-dot.diff
index f9a25cd65..cd76ff40f 100644
--- a/debian/patches/debian/CVE-2016-1238/test-suite-without-dot.diff
+++ b/debian/patches/debian/CVE-2016-1238/test-suite-without-dot.diff
@@ -27,7 +27,7 @@ Patch-Name: debian/CVE-2016-1238/test-suite-without-dot.diff
  16 files changed, 20 insertions(+), 16 deletions(-)
 
 diff --git a/Makefile.SH b/Makefile.SH
-index dbff812..01c1dca 100755
+index dbff8122b..01c1dca8f 100755
 --- a/Makefile.SH
 +++ b/Makefile.SH
 @@ -324,7 +324,7 @@ RUN_PERL = \$(LDLIBPTH) \$(RUN) $perl\$(EXE_EXT)
@@ -40,7 +40,7 @@ index dbff812..01c1dca 100755
  	;;
  esac
 diff --git a/Porting/pod_rules.pl b/Porting/pod_rules.pl
-index 18abe87..775311f 100644
+index 18abe878d..775311faf 100644
 --- a/Porting/pod_rules.pl
 +++ b/Porting/pod_rules.pl
 @@ -26,7 +26,7 @@ use Getopt::Long;
@@ -53,7 +53,7 @@ index 18abe87..775311f 100644
  
  # process command-line switches
 diff --git a/TestInit.pm b/TestInit.pm
-index 16eb318..b00e59f 100644
+index 16eb318cc..b00e59f37 100644
 --- a/TestInit.pm
 +++ b/TestInit.pm
 @@ -47,7 +47,7 @@ sub import {
@@ -66,7 +66,7 @@ index 16eb318..b00e59f 100644
  	} else {
  	    die "Unknown option '$_'";
 diff --git a/lib/strict.t b/lib/strict.t
-index e067793..d252c8d 100644
+index e067793b8..d252c8da9 100644
 --- a/lib/strict.t
 +++ b/lib/strict.t
 @@ -1,7 +1,7 @@
@@ -79,7 +79,7 @@ index e067793..d252c8d 100644
  our $local_tests = 4;
  require "../t/lib/common.pl";
 diff --git a/lib/warnings.t b/lib/warnings.t
-index ee696fe..7c24f3a 100644
+index ee696fe2a..7c24f3af2 100644
 --- a/lib/warnings.t
 +++ b/lib/warnings.t
 @@ -1,7 +1,7 @@
@@ -92,7 +92,7 @@ index ee696fe..7c24f3a 100644
  our $UTF8 = (${^OPEN} || "") =~ /:utf8/;
  require "../t/lib/common.pl";
 diff --git a/makedef.pl b/makedef.pl
-index a44c014..a21e208 100644
+index a44c014e2..a21e20872 100644
 --- a/makedef.pl
 +++ b/makedef.pl
 @@ -59,7 +59,7 @@ while (@ARGV) {
@@ -105,7 +105,7 @@ index a44c014..a21e208 100644
  {
      my @PLATFORM = qw(aix win32 wince os2 netware vms test);
 diff --git a/regen.pl b/regen.pl
-index 8788668..71a6eda 100644
+index 878866835..71a6eda60 100644
 --- a/regen.pl
 +++ b/regen.pl
 @@ -15,7 +15,7 @@ use strict;
@@ -118,7 +118,7 @@ index 8788668..71a6eda 100644
    system @command
      and die "@command failed: $?" 
 diff --git a/regen/genpacksizetables.pl b/regen/genpacksizetables.pl
-index 742eb6f..2e3bec5 100644
+index 742eb6fb3..2e3bec580 100644
 --- a/regen/genpacksizetables.pl
 +++ b/regen/genpacksizetables.pl
 @@ -3,7 +3,7 @@
@@ -131,7 +131,7 @@ index 742eb6f..2e3bec5 100644
  sub make_text {
      my ($chrmap, $letter, $unpredictable, $nocsum, $size, $condition) = @_;
 diff --git a/regen/mg_vtable.pl b/regen/mg_vtable.pl
-index 0bbfbfd..df9adb6 100644
+index 0bbfbfdf6..df9adb640 100644
 --- a/regen/mg_vtable.pl
 +++ b/regen/mg_vtable.pl
 @@ -20,7 +20,7 @@ require 5.004;
@@ -144,7 +144,7 @@ index 0bbfbfd..df9adb6 100644
  
  my %mg =
 diff --git a/t/comp/line_debug.t b/t/comp/line_debug.t
-index 8361194..71626bb 100644
+index 8361194bb..71626bbf3 100644
 --- a/t/comp/line_debug.t
 +++ b/t/comp/line_debug.t
 @@ -1,5 +1,7 @@
@@ -156,7 +156,7 @@ index 8361194..71626bb 100644
  
  sub ok {
 diff --git a/t/lib/warnings/op b/t/lib/warnings/op
-index bca2818..5a01b99 100644
+index bca28186a..5a01b9958 100644
 --- a/t/lib/warnings/op
 +++ b/t/lib/warnings/op
 @@ -1472,6 +1472,7 @@ END { print "in end\n"; }
@@ -168,7 +168,7 @@ index bca2818..5a01b99 100644
  do "abc.pm";
  EXPECT
 diff --git a/t/op/goto.t b/t/op/goto.t
-index 13e6b04..32684bf 100644
+index 13e6b042a..32684bfb9 100644
 --- a/t/op/goto.t
 +++ b/t/op/goto.t
 @@ -240,7 +240,7 @@ YYY: print "OK\n";
@@ -181,7 +181,7 @@ index 13e6b04..32684bf 100644
  unlink_all "Op_goto01.pm";
  
 diff --git a/t/porting/regen.t b/t/porting/regen.t
-index 048a0c0..93ac58b 100644
+index 048a0c0e7..93ac58b76 100644
 --- a/t/porting/regen.t
 +++ b/t/porting/regen.t
 @@ -78,7 +78,7 @@ OUTER: foreach my $file (@files) {
@@ -194,7 +194,7 @@ index 048a0c0..93ac58b 100644
          and die "Failed to run $command: $?";
  }
 diff --git a/t/re/pat.t b/t/re/pat.t
-index 6e694d7..0442ca9 100644
+index 6e694d743..0442ca9ce 100644
 --- a/t/re/pat.t
 +++ b/t/re/pat.t
 @@ -1607,7 +1607,7 @@ EOP
@@ -207,7 +207,7 @@ index 6e694d7..0442ca9 100644
                  my $malformed = "a\x80\n";
                  _utf8_on($malformed);
 diff --git a/t/run/switches.t b/t/run/switches.t
-index a2e4bad..2d88c23 100644
+index a2e4bad47..2d88c23cb 100644
 --- a/t/run/switches.t
 +++ b/t/run/switches.t
 @@ -193,12 +193,12 @@ sub import { print map "<\$_>", \@_ }
@@ -235,7 +235,7 @@ index a2e4bad..2d88c23 100644
      );
      is( $r, "<$package><foo><bar>", '-m with import parameters' );
 diff --git a/t/test.pl b/t/test.pl
-index 0fdc4f4..f9e4166 100644
+index 0fdc4f42a..f9e4166a4 100644
 --- a/t/test.pl
 +++ b/t/test.pl
 @@ -597,7 +597,7 @@ sub _create_runperl { # Create the string to qx in runperl().
diff --git a/debian/patches/debian/cpan-missing-site-dirs.diff b/debian/patches/debian/cpan-missing-site-dirs.diff
index c0910d43c..3eb6e9a5e 100644
--- a/debian/patches/debian/cpan-missing-site-dirs.diff
+++ b/debian/patches/debian/cpan-missing-site-dirs.diff
@@ -18,7 +18,7 @@ Patch-Name: debian/cpan-missing-site-dirs.diff
  1 file changed, 27 insertions(+), 4 deletions(-)
 
 diff --git a/cpan/CPAN/lib/CPAN/FirstTime.pm b/cpan/CPAN/lib/CPAN/FirstTime.pm
-index 4416072..187f5c4 100644
+index 441607298..187f5c4a5 100644
 --- a/cpan/CPAN/lib/CPAN/FirstTime.pm
 +++ b/cpan/CPAN/lib/CPAN/FirstTime.pm
 @@ -2045,11 +2045,34 @@ sub _print_urllist {
diff --git a/debian/patches/debian/cpan_definstalldirs.diff b/debian/patches/debian/cpan_definstalldirs.diff
index 51f8067d6..5b8400d4d 100644
--- a/debian/patches/debian/cpan_definstalldirs.diff
+++ b/debian/patches/debian/cpan_definstalldirs.diff
@@ -14,7 +14,7 @@ Patch-Name: debian/cpan_definstalldirs.diff
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/cpan/CPAN/lib/CPAN/FirstTime.pm b/cpan/CPAN/lib/CPAN/FirstTime.pm
-index d1a8eef..4416072 100644
+index d1a8eef26..441607298 100644
 --- a/cpan/CPAN/lib/CPAN/FirstTime.pm
 +++ b/cpan/CPAN/lib/CPAN/FirstTime.pm
 @@ -1023,7 +1023,7 @@ sub init {
diff --git a/debian/patches/debian/customized_file_path.diff b/debian/patches/debian/customized_file_path.diff
index 1f2397b3e..5dd21fb5f 100644
--- a/debian/patches/debian/customized_file_path.diff
+++ b/debian/patches/debian/customized_file_path.diff
@@ -9,7 +9,7 @@ Patch-Name: debian/customized_file_path.diff
  1 file changed, 3 insertions(+)
 
 diff --git a/t/porting/customized.dat b/t/porting/customized.dat
-index 0f76b74..464a0f5 100644
+index 0f76b745a..464a0f50a 100644
 --- a/t/porting/customized.dat
 +++ b/t/porting/customized.dat
 @@ -18,6 +18,9 @@ Encode cpan/Encode/JP/Makefile.PL a9ca9c836424cc2ecbefa4933d9da5db54131b98
diff --git a/debian/patches/debian/db_file_ver.diff b/debian/patches/debian/db_file_ver.diff
index 1ce7a6a11..d49b84f12 100644
--- a/debian/patches/debian/db_file_ver.diff
+++ b/debian/patches/debian/db_file_ver.diff
@@ -13,7 +13,7 @@ Patch-Name: debian/db_file_ver.diff
  1 file changed, 2 insertions(+)
 
 diff --git a/cpan/DB_File/version.c b/cpan/DB_File/version.c
-index e01f6f6..544e6ee 100644
+index e01f6f6fa..544e6ee8f 100644
 --- a/cpan/DB_File/version.c
 +++ b/cpan/DB_File/version.c
 @@ -48,6 +48,7 @@ __getBerkeleyDBInfo()
diff --git a/debian/patches/debian/debugperl-compat-fix.diff b/debian/patches/debian/debugperl-compat-fix.diff
index 07547e4bf..638059268 100644
--- a/debian/patches/debian/debugperl-compat-fix.diff
+++ b/debian/patches/debian/debugperl-compat-fix.diff
@@ -14,7 +14,7 @@ Patch-Name: debian/debugperl-compat-fix.diff
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/perl.h b/perl.h
-index 1325de9..8f19b28 100644
+index 1325de9b9..8f19b2895 100644
 --- a/perl.h
 +++ b/perl.h
 @@ -176,7 +176,9 @@
diff --git a/debian/patches/debian/deprecate-with-apt.diff b/debian/patches/debian/deprecate-with-apt.diff
index c152d48a6..5a658f5ea 100644
--- a/debian/patches/debian/deprecate-with-apt.diff
+++ b/debian/patches/debian/deprecate-with-apt.diff
@@ -20,7 +20,7 @@ Patch-Name: debian/deprecate-with-apt.diff
  1 file changed, 24 insertions(+), 1 deletion(-)
 
 diff --git a/lib/deprecate.pm b/lib/deprecate.pm
-index 47bc112..742c06d 100644
+index 47bc11253..742c06dde 100644
 --- a/lib/deprecate.pm
 +++ b/lib/deprecate.pm
 @@ -7,6 +7,23 @@ our $VERSION = 0.03;
diff --git a/debian/patches/debian/doc_info.diff b/debian/patches/debian/doc_info.diff
index 1014f7143..9f17fc4cf 100644
--- a/debian/patches/debian/doc_info.diff
+++ b/debian/patches/debian/doc_info.diff
@@ -11,7 +11,7 @@ Patch-Name: debian/doc_info.diff
  1 file changed, 10 insertions(+), 2 deletions(-)
 
 diff --git a/pod/perl.pod b/pod/perl.pod
-index 9473daf..a334862 100644
+index 9473daffa..a334862d9 100644
 --- a/pod/perl.pod
 +++ b/pod/perl.pod
 @@ -278,8 +278,16 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
diff --git a/debian/patches/debian/enc2xs_inc.diff b/debian/patches/debian/enc2xs_inc.diff
index b8617b12b..1bc41ffed 100644
--- a/debian/patches/debian/enc2xs_inc.diff
+++ b/debian/patches/debian/enc2xs_inc.diff
@@ -17,7 +17,7 @@ Patch-Name: debian/enc2xs_inc.diff
  2 files changed, 7 insertions(+), 4 deletions(-)
 
 diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs
-index c44487d..a9af54f 100644
+index c44487d0c..a9af54f70 100644
 --- a/cpan/Encode/bin/enc2xs
 +++ b/cpan/Encode/bin/enc2xs
 @@ -929,11 +929,11 @@ use vars qw(
@@ -53,7 +53,7 @@ index c44487d..a9af54f 100644
      for my $enc ( sort keys %LocalMod ) {
          $_ModLines .=
 diff --git a/t/porting/customized.t b/t/porting/customized.t
-index a769c58..6b9977f 100644
+index a769c58cc..6b9977f59 100644
 --- a/t/porting/customized.t
 +++ b/t/porting/customized.t
 @@ -99,8 +99,11 @@ foreach my $module ( sort keys %Modules ) {
diff --git a/debian/patches/debian/encode-unicode-bom-doc.diff b/debian/patches/debian/encode-unicode-bom-doc.diff
index 33bcc4b29..0c3316760 100644
--- a/debian/patches/debian/encode-unicode-bom-doc.diff
+++ b/debian/patches/debian/encode-unicode-bom-doc.diff
@@ -10,7 +10,7 @@ Patch-Name: debian/encode-unicode-bom-doc.diff
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/cpan/Encode/Unicode/Unicode.pm b/cpan/Encode/Unicode/Unicode.pm
-index 9b197d9..c72d85b 100644
+index 9b197d97e..c72d85b7c 100644
 --- a/cpan/Encode/Unicode/Unicode.pm
 +++ b/cpan/Encode/Unicode/Unicode.pm
 @@ -182,7 +182,9 @@ what the BOM says.
diff --git a/debian/patches/debian/errno_ver.diff b/debian/patches/debian/errno_ver.diff
index 76a1ba790..8274d8e4d 100644
--- a/debian/patches/debian/errno_ver.diff
+++ b/debian/patches/debian/errno_ver.diff
@@ -16,7 +16,7 @@ Patch-Name: debian/errno_ver.diff
  1 file changed, 5 deletions(-)
 
 diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
-index cfab893..26dcd30 100644
+index cfab893b4..26dcd30d6 100644
 --- a/ext/Errno/Errno_pm.PL
 +++ b/ext/Errno/Errno_pm.PL
 @@ -277,13 +277,8 @@ sub write_errno_pm {
diff --git a/debian/patches/debian/extutils_set_libperl_path.diff b/debian/patches/debian/extutils_set_libperl_path.diff
index 1687610a5..5741f42ec 100644
--- a/debian/patches/debian/extutils_set_libperl_path.diff
+++ b/debian/patches/debian/extutils_set_libperl_path.diff
@@ -13,7 +13,7 @@ Patch-Name: debian/extutils_set_libperl_path.diff
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-index 8b86a24..f977476 100644
+index 8b86a24ab..f9774767c 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 @@ -2462,7 +2462,7 @@ MAP_PRELIBS   = $Config{perllibs} $Config{cryptlib}
@@ -26,7 +26,7 @@ index 8b86a24..f977476 100644
  	$libperl ||= "libperl$self->{LIB_EXT}";
  	$libperl   = "$dir/$libperl";
 diff --git a/pp.c b/pp.c
-index 4ec6887..a44c137 100644
+index 4ec6887df..a44c1373a 100644
 --- a/pp.c
 +++ b/pp.c
 @@ -1,4 +1,4 @@
diff --git a/debian/patches/debian/fakeroot.diff b/debian/patches/debian/fakeroot.diff
index 1270ee5b3..f26e2aff5 100644
--- a/debian/patches/debian/fakeroot.diff
+++ b/debian/patches/debian/fakeroot.diff
@@ -16,7 +16,7 @@ Patch-Name: debian/fakeroot.diff
  1 file changed, 2 insertions(+), 5 deletions(-)
 
 diff --git a/Makefile.SH b/Makefile.SH
-index a2e6034..dbff812 100755
+index a2e603403..dbff8122b 100755
 --- a/Makefile.SH
 +++ b/Makefile.SH
 @@ -39,10 +39,7 @@ case "$useshrplib" in
diff --git a/debian/patches/debian/find_html2text.diff b/debian/patches/debian/find_html2text.diff
index d44996064..5bb917dda 100644
--- a/debian/patches/debian/find_html2text.diff
+++ b/debian/patches/debian/find_html2text.diff
@@ -21,7 +21,7 @@ functionality].
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/cpan/CPAN/lib/CPAN/Distribution.pm b/cpan/CPAN/lib/CPAN/Distribution.pm
-index 9a08707..332a627 100644
+index 9a0870717..332a62794 100644
 --- a/cpan/CPAN/lib/CPAN/Distribution.pm
 +++ b/cpan/CPAN/lib/CPAN/Distribution.pm
 @@ -4031,7 +4031,7 @@ sub _display_url {
diff --git a/debian/patches/debian/instmodsh_doc.diff b/debian/patches/debian/instmodsh_doc.diff
index 12fb4be61..c450a2a38 100644
--- a/debian/patches/debian/instmodsh_doc.diff
+++ b/debian/patches/debian/instmodsh_doc.diff
@@ -9,7 +9,7 @@ Patch-Name: debian/instmodsh_doc.diff
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/cpan/ExtUtils-MakeMaker/bin/instmodsh b/cpan/ExtUtils-MakeMaker/bin/instmodsh
-index 8b9aa95..e551434 100644
+index 8b9aa95ae..e55143480 100644
 --- a/cpan/ExtUtils-MakeMaker/bin/instmodsh
 +++ b/cpan/ExtUtils-MakeMaker/bin/instmodsh
 @@ -18,9 +18,11 @@ instmodsh - A shell to examine installed modules
diff --git a/debian/patches/debian/kfreebsd-softupdates.diff b/debian/patches/debian/kfreebsd-softupdates.diff
index 01c1a958c..703195634 100644
--- a/debian/patches/debian/kfreebsd-softupdates.diff
+++ b/debian/patches/debian/kfreebsd-softupdates.diff
@@ -16,7 +16,7 @@ Patch-Name: debian/kfreebsd-softupdates.diff
  1 file changed, 1 insertion(+)
 
 diff --git a/t/op/stat.t b/t/op/stat.t
-index 2f34f6e..b362c75 100644
+index 2f34f6e0a..b362c75a1 100644
 --- a/t/op/stat.t
 +++ b/t/op/stat.t
 @@ -91,6 +91,7 @@ sleep 3 if $funky_FAT_timestamps;
diff --git a/debian/patches/debian/ld_run_path.diff b/debian/patches/debian/ld_run_path.diff
index 23dcb23b8..618b7c225 100644
--- a/debian/patches/debian/ld_run_path.diff
+++ b/debian/patches/debian/ld_run_path.diff
@@ -9,7 +9,7 @@ Patch-Name: debian/ld_run_path.diff
  1 file changed, 3 insertions(+)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
-index e39c8b2..0b933ce 100644
+index e39c8b27c..0b933cec7 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
 @@ -56,6 +56,9 @@ sub _unix_os2_ext {
diff --git a/debian/patches/debian/libnet_config_path.diff b/debian/patches/debian/libnet_config_path.diff
index d9935ee4c..c3caaa18e 100644
--- a/debian/patches/debian/libnet_config_path.diff
+++ b/debian/patches/debian/libnet_config_path.diff
@@ -10,7 +10,7 @@ Patch-Name: debian/libnet_config_path.diff
  1 file changed, 3 insertions(+), 4 deletions(-)
 
 diff --git a/cpan/libnet/Net/Config.pm b/cpan/libnet/Net/Config.pm
-index ba16332..4b1ea19 100644
+index ba1633218..4b1ea1931 100644
 --- a/cpan/libnet/Net/Config.pm
 +++ b/cpan/libnet/Net/Config.pm
 @@ -57,9 +57,8 @@ my %nc = (
diff --git a/debian/patches/debian/libperl_embed_doc.diff b/debian/patches/debian/libperl_embed_doc.diff
index 4d7808095..1a234a54f 100644
--- a/debian/patches/debian/libperl_embed_doc.diff
+++ b/debian/patches/debian/libperl_embed_doc.diff
@@ -11,7 +11,7 @@ Patch-Name: debian/libperl_embed_doc.diff
  1 file changed, 3 insertions(+)
 
 diff --git a/lib/ExtUtils/Embed.pm b/lib/ExtUtils/Embed.pm
-index 3f983c1..0ec8a67 100644
+index 3f983c118..0ec8a67c8 100644
 --- a/lib/ExtUtils/Embed.pm
 +++ b/lib/ExtUtils/Embed.pm
 @@ -296,6 +296,9 @@ and extensions in your C/C++ applications.
diff --git a/debian/patches/debian/makemaker-pasthru.diff b/debian/patches/debian/makemaker-pasthru.diff
index 84df24a5f..9e818c6bf 100644
--- a/debian/patches/debian/makemaker-pasthru.diff
+++ b/debian/patches/debian/makemaker-pasthru.diff
@@ -16,7 +16,7 @@ Patch-Name: debian/makemaker-pasthru.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-index c19a5f9..6328e26 100644
+index c19a5f9cc..6328e26f5 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 @@ -2745,7 +2745,7 @@ sub pasthru {
diff --git a/debian/patches/debian/mod_paths.diff b/debian/patches/debian/mod_paths.diff
index d90b9d87b..6c0a44d4a 100644
--- a/debian/patches/debian/mod_paths.diff
+++ b/debian/patches/debian/mod_paths.diff
@@ -22,7 +22,7 @@ Patch-Name: debian/mod_paths.diff
  1 file changed, 58 insertions(+)
 
 diff --git a/perl.c b/perl.c
-index 5000d79..67d32ce 100644
+index 5000d7981..67d32ce9a 100644
 --- a/perl.c
 +++ b/perl.c
 @@ -4367,6 +4367,11 @@ S_init_perllib(pTHX)
diff --git a/debian/patches/debian/module_build_man_extensions.diff b/debian/patches/debian/module_build_man_extensions.diff
index 177a75204..f345ca244 100644
--- a/debian/patches/debian/module_build_man_extensions.diff
+++ b/debian/patches/debian/module_build_man_extensions.diff
@@ -12,7 +12,7 @@ Patch-Name: debian/module_build_man_extensions.diff
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/cpan/Module-Build/lib/Module/Build/Base.pm b/cpan/Module-Build/lib/Module/Build/Base.pm
-index 84e137f..4422cd4 100644
+index 84e137fb4..4422cd432 100644
 --- a/cpan/Module-Build/lib/Module/Build/Base.pm
 +++ b/cpan/Module-Build/lib/Module/Build/Base.pm
 @@ -3226,7 +3226,7 @@ sub manify_bin_pods {
diff --git a/debian/patches/debian/no_packlist_perllocal.diff b/debian/patches/debian/no_packlist_perllocal.diff
index e37b7673b..d8a018135 100644
--- a/debian/patches/debian/no_packlist_perllocal.diff
+++ b/debian/patches/debian/no_packlist_perllocal.diff
@@ -9,7 +9,7 @@ Patch-Name: debian/no_packlist_perllocal.diff
  1 file changed, 4 insertions(+), 32 deletions(-)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-index f977476..0a6797f 100644
+index f9774767c..0a6797fb5 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 @@ -2079,11 +2079,6 @@ pure_perl_install :: all
diff --git a/debian/patches/debian/patchlevel.diff b/debian/patches/debian/patchlevel.diff
index dff6f1487..74deeae25 100644
--- a/debian/patches/debian/patchlevel.diff
+++ b/debian/patches/debian/patchlevel.diff
@@ -15,7 +15,7 @@ Patch-Name: debian/patchlevel.diff
  1 file changed, 3 insertions(+)
 
 diff --git a/patchlevel.h b/patchlevel.h
-index 07e1217..9ee1cee 100644
+index 07e1217e9..9ee1ceec1 100644
 --- a/patchlevel.h
 +++ b/patchlevel.h
 @@ -137,6 +137,9 @@ static const char * const local_patches[] = {
diff --git a/debian/patches/debian/perl5db-x-terminal-emulator.patch b/debian/patches/debian/perl5db-x-terminal-emulator.patch
index f705a10b2..992799e75 100644
--- a/debian/patches/debian/perl5db-x-terminal-emulator.patch
+++ b/debian/patches/debian/perl5db-x-terminal-emulator.patch
@@ -15,7 +15,7 @@ Patch-Name: debian/perl5db-x-terminal-emulator.patch
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/lib/perl5db.pl b/lib/perl5db.pl
-index 707d04d..6ac4d36 100644
+index 707d04d63..6ac4d36f3 100644
 --- a/lib/perl5db.pl
 +++ b/lib/perl5db.pl
 @@ -6945,7 +6945,7 @@ properly set up.
diff --git a/debian/patches/debian/perlivp.diff b/debian/patches/debian/perlivp.diff
index 7e1646291..fab98b96f 100644
--- a/debian/patches/debian/perlivp.diff
+++ b/debian/patches/debian/perlivp.diff
@@ -26,7 +26,7 @@ Patch-Name: debian/perlivp.diff
  1 file changed, 1 insertion(+)
 
 diff --git a/utils/perlivp.PL b/utils/perlivp.PL
-index c2f0a11..cc49f96 100644
+index c2f0a11f1..cc49f964b 100644
 --- a/utils/perlivp.PL
 +++ b/utils/perlivp.PL
 @@ -153,6 +153,7 @@ my $INC_total = 0;
diff --git a/debian/patches/debian/prefix_changes.diff b/debian/patches/debian/prefix_changes.diff
index 3fa13fcea..4e5932607 100644
--- a/debian/patches/debian/prefix_changes.diff
+++ b/debian/patches/debian/prefix_changes.diff
@@ -17,7 +17,7 @@ Patch-Name: debian/prefix_changes.diff
  4 files changed, 13 insertions(+), 16 deletions(-)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
-index 2066311..0a1fb49 100644
+index 20663111e..0a1fb494f 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
 @@ -765,8 +765,6 @@ all POD files in MAN1PODS and MAN3PODS.
@@ -54,7 +54,7 @@ index 2066311..0a1fb49 100644
  
      my $arch    = $Config{archname};
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-index 0a6797f..c19a5f9 100644
+index 0a6797fb5..c19a5f9cc 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 @@ -3029,8 +3029,7 @@ sub prefixify {
@@ -68,7 +68,7 @@ index 0a6797f..c19a5f9 100644
  
          warn "    cannot prefix, using default.\n" if $Verbose >= 2;
 diff --git a/cpan/ExtUtils-MakeMaker/t/INST.t b/cpan/ExtUtils-MakeMaker/t/INST.t
-index 91058bb..e399ced 100644
+index 91058bb74..e399ced46 100644
 --- a/cpan/ExtUtils-MakeMaker/t/INST.t
 +++ b/cpan/ExtUtils-MakeMaker/t/INST.t
 @@ -65,9 +65,7 @@ isa_ok( $mm, 'ExtUtils::MakeMaker' );
@@ -83,7 +83,7 @@ index 91058bb..e399ced 100644
  is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE}, 'PERL_CORE' );
  
 diff --git a/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t b/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
-index e8de7c6..3fb3f12 100644
+index e8de7c6cb..3fb3f1296 100644
 --- a/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
 +++ b/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
 @@ -10,7 +10,7 @@ BEGIN {
diff --git a/debian/patches/debian/prune_libs.diff b/debian/patches/debian/prune_libs.diff
index 1a0c887ce..091f05d67 100644
--- a/debian/patches/debian/prune_libs.diff
+++ b/debian/patches/debian/prune_libs.diff
@@ -14,7 +14,7 @@ Patch-Name: debian/prune_libs.diff
  1 file changed, 2 insertions(+), 3 deletions(-)
 
 diff --git a/Configure b/Configure
-index 2f91ba1..e11d46f 100755
+index 2f91ba1b7..e11d46f72 100755
 --- a/Configure
 +++ b/Configure
 @@ -1387,8 +1387,7 @@ libswanted_uselargefiles=''
diff --git a/debian/patches/debian/regen-skip.diff b/debian/patches/debian/regen-skip.diff
index 68298d37b..ce6eb4212 100644
--- a/debian/patches/debian/regen-skip.diff
+++ b/debian/patches/debian/regen-skip.diff
@@ -13,7 +13,7 @@ Patch-Name: debian/regen-skip.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/regen/lib_cleanup.pl b/regen/lib_cleanup.pl
-index c9d6e43..fece1ed 100644
+index c9d6e434b..fece1ed5e 100644
 --- a/regen/lib_cleanup.pl
 +++ b/regen/lib_cleanup.pl
 @@ -159,7 +159,7 @@ foreach ('win32/Makefile', 'win32/makefile.mk') {
diff --git a/debian/patches/debian/skip-kfreebsd-crash.diff b/debian/patches/debian/skip-kfreebsd-crash.diff
index bd75b2ebc..a82f1a7f2 100644
--- a/debian/patches/debian/skip-kfreebsd-crash.diff
+++ b/debian/patches/debian/skip-kfreebsd-crash.diff
@@ -17,7 +17,7 @@ Patch-Name: debian/skip-kfreebsd-crash.diff
  1 file changed, 4 insertions(+)
 
 diff --git a/t/op/threads.t b/t/op/threads.t
-index 6fb2410..67b5f4a 100644
+index 6fb241088..67b5f4a71 100644
 --- a/t/op/threads.t
 +++ b/t/op/threads.t
 @@ -376,6 +376,9 @@ EOF
diff --git a/debian/patches/debian/skip-upstream-git-tests.diff b/debian/patches/debian/skip-upstream-git-tests.diff
index 60f72b91f..33a11256a 100644
--- a/debian/patches/debian/skip-upstream-git-tests.diff
+++ b/debian/patches/debian/skip-upstream-git-tests.diff
@@ -14,7 +14,7 @@ Patch-Name: debian/skip-upstream-git-tests.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/t/test.pl b/t/test.pl
-index 30db88c..0fdc4f4 100644
+index 30db88ced..0fdc4f42a 100644
 --- a/t/test.pl
 +++ b/t/test.pl
 @@ -159,7 +159,7 @@ sub skip_all_without_config {
diff --git a/debian/patches/debian/squelch-locale-warnings.diff b/debian/patches/debian/squelch-locale-warnings.diff
index b1ea1a954..b7b4d3622 100644
--- a/debian/patches/debian/squelch-locale-warnings.diff
+++ b/debian/patches/debian/squelch-locale-warnings.diff
@@ -20,7 +20,7 @@ Patch-Name: debian/squelch-locale-warnings.diff
  2 files changed, 12 insertions(+)
 
 diff --git a/locale.c b/locale.c
-index 27225f3..c451b33 100644
+index 27225f3d1..c451b3373 100644
 --- a/locale.c
 +++ b/locale.c
 @@ -512,6 +512,10 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
@@ -35,7 +35,7 @@ index 27225f3..c451b33 100644
      bool done = FALSE;
      const char *system_default_locale = NULL;
 diff --git a/pod/perllocale.pod b/pod/perllocale.pod
-index 40fc3e6..96a63e8 100644
+index 40fc3e640..96a63e85f 100644
 --- a/pod/perllocale.pod
 +++ b/pod/perllocale.pod
 @@ -1148,6 +1148,14 @@ B<NOTE>: C<PERL_BADLANG> only gives you a way to hide the warning message.
diff --git a/debian/patches/debian/writable_site_dirs.diff b/debian/patches/debian/writable_site_dirs.diff
index 9bf04d124..d0036143a 100644
--- a/debian/patches/debian/writable_site_dirs.diff
+++ b/debian/patches/debian/writable_site_dirs.diff
@@ -11,7 +11,7 @@ Patch-Name: debian/writable_site_dirs.diff
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-index 8fdb67c..8b86a24 100644
+index 8fdb67c1d..8b86a24ab 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 @@ -2095,7 +2095,7 @@ q{		$(INST_LIB) $(DESTINSTALLPRIVLIB) \
diff --git a/debian/patches/fixes/5.20.3/accidental_all_features.diff b/debian/patches/fixes/5.20.3/accidental_all_features.diff
index 5139edf6c..2d2a9284c 100644
--- a/debian/patches/fixes/5.20.3/accidental_all_features.diff
+++ b/debian/patches/fixes/5.20.3/accidental_all_features.diff
@@ -39,7 +39,7 @@ Patch-Name: fixes/5.20.3/accidental_all_features.diff
  2 files changed, 10 insertions(+), 1 deletion(-)
 
 diff --git a/hv.c b/hv.c
-index ef686ab..fe4947b 100644
+index ef686ab70..fe4947b8c 100644
 --- a/hv.c
 +++ b/hv.c
 @@ -3154,7 +3154,7 @@ Perl_refcounted_he_fetch_pvn(pTHX_ const struct refcounted_he *chain,
@@ -60,7 +60,7 @@ index ef686ab..fe4947b 100644
  }
  
 diff --git a/t/lib/feature/bundle b/t/lib/feature/bundle
-index 429e68e..a40aba4 100644
+index 429e68ebd..a40aba4a1 100644
 --- a/t/lib/feature/bundle
 +++ b/t/lib/feature/bundle
 @@ -117,3 +117,11 @@ EXPECT
diff --git a/debian/patches/fixes/5.20.3/checking_sub_inwhat.diff b/debian/patches/fixes/5.20.3/checking_sub_inwhat.diff
index 3440ecf55..2caf0685f 100644
--- a/debian/patches/fixes/5.20.3/checking_sub_inwhat.diff
+++ b/debian/patches/fixes/5.20.3/checking_sub_inwhat.diff
@@ -41,7 +41,7 @@ Patch-Name: fixes/5.20.3/checking_sub_inwhat.diff
  2 files changed, 10 insertions(+), 4 deletions(-)
 
 diff --git a/t/op/lex.t b/t/op/lex.t
-index 35d4d9c..ac094f8 100644
+index 35d4d9c3d..ac094f8d5 100644
 --- a/t/op/lex.t
 +++ b/t/op/lex.t
 @@ -4,7 +4,7 @@ use warnings;
@@ -65,7 +65,7 @@ index 35d4d9c..ac094f8 100644
 +  '/$a[m||/<<a with no newline [perl #123712]'
 +);
 diff --git a/toke.c b/toke.c
-index 90642b2..f59f913 100644
+index 90642b25e..f59f91348 100644
 --- a/toke.c
 +++ b/toke.c
 @@ -1315,7 +1315,7 @@ Perl_lex_next_chunk(pTHX_ U32 flags)
diff --git a/debian/patches/fixes/5.20.3/death_unwinding_crash.diff b/debian/patches/fixes/5.20.3/death_unwinding_crash.diff
index 40faf8c47..7db1043f1 100644
--- a/debian/patches/fixes/5.20.3/death_unwinding_crash.diff
+++ b/debian/patches/fixes/5.20.3/death_unwinding_crash.diff
@@ -35,7 +35,7 @@ Patch-Name: fixes/5.20.3/death_unwinding_crash.diff
  2 files changed, 62 insertions(+), 2 deletions(-)
 
 diff --git a/cop.h b/cop.h
-index 37980f0..cb2b42a 100644
+index 37980f04b..cb2b42af2 100644
 --- a/cop.h
 +++ b/cop.h
 @@ -617,6 +617,7 @@ struct block_format {
@@ -93,7 +93,7 @@ index 37980f0..cb2b42a 100644
  #define PUSHLOOP_PLAIN(cx, s)						\
  	cx->blk_loop.resetsp = s - PL_stack_base;			\
 diff --git a/t/op/sub.t b/t/op/sub.t
-index 7df8f49..fe5353c 100644
+index 7df8f49aa..fe5353c5a 100644
 --- a/t/op/sub.t
 +++ b/t/op/sub.t
 @@ -6,7 +6,7 @@ BEGIN {
diff --git a/debian/patches/fixes/5.20.3/docs/SvPV_set.diff b/debian/patches/fixes/5.20.3/docs/SvPV_set.diff
index 9a8e39341..f509d06bd 100644
--- a/debian/patches/fixes/5.20.3/docs/SvPV_set.diff
+++ b/debian/patches/fixes/5.20.3/docs/SvPV_set.diff
@@ -16,7 +16,7 @@ Patch-Name: fixes/5.20.3/docs/SvPV_set.diff
  1 file changed, 8 insertions(+), 3 deletions(-)
 
 diff --git a/sv.h b/sv.h
-index b129225..15163e4 100644
+index b129225bd..15163e439 100644
 --- a/sv.h
 +++ b/sv.h
 @@ -792,13 +792,18 @@ C<SvIV_set> instead of the lvalue assignment to C<SvIVX>.
diff --git a/debian/patches/fixes/5.20.3/docs/autodie.diff b/debian/patches/fixes/5.20.3/docs/autodie.diff
index 410c3a692..b44d53ea2 100644
--- a/debian/patches/fixes/5.20.3/docs/autodie.diff
+++ b/debian/patches/fixes/5.20.3/docs/autodie.diff
@@ -12,7 +12,7 @@ Patch-Name: fixes/5.20.3/docs/autodie.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/pod/perlunicook.pod b/pod/perlunicook.pod
-index 44a4571..f6e6225 100644
+index 44a457128..f6e622507 100644
 --- a/pod/perlunicook.pod
 +++ b/pod/perlunicook.pod
 @@ -33,7 +33,7 @@ This I<does> make even Unix programmers C<binmode> your binary streams,
diff --git a/debian/patches/fixes/5.20.3/docs/autodie_2_26.diff b/debian/patches/fixes/5.20.3/docs/autodie_2_26.diff
index bfefc5925..b747cbce3 100644
--- a/debian/patches/fixes/5.20.3/docs/autodie_2_26.diff
+++ b/debian/patches/fixes/5.20.3/docs/autodie_2_26.diff
@@ -13,7 +13,7 @@ Patch-Name: fixes/5.20.3/docs/autodie_2_26.diff
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/pod/perlunicook.pod b/pod/perlunicook.pod
-index f6e6225..7fd8f14 100644
+index f6e622507..7fd8f141e 100644
 --- a/pod/perlunicook.pod
 +++ b/pod/perlunicook.pod
 @@ -33,7 +33,8 @@ This I<does> make even Unix programmers C<binmode> your binary streams,
diff --git a/debian/patches/fixes/5.20.3/docs/clib_caution.diff b/debian/patches/fixes/5.20.3/docs/clib_caution.diff
index 9c4d0e998..430ce3c1e 100644
--- a/debian/patches/fixes/5.20.3/docs/clib_caution.diff
+++ b/debian/patches/fixes/5.20.3/docs/clib_caution.diff
@@ -12,7 +12,7 @@ Patch-Name: fixes/5.20.3/docs/clib_caution.diff
  1 file changed, 33 insertions(+)
 
 diff --git a/pod/perlhacktips.pod b/pod/perlhacktips.pod
-index f2f2e6c..5544b5d 100644
+index f2f2e6c32..5544b5d2d 100644
 --- a/pod/perlhacktips.pod
 +++ b/pod/perlhacktips.pod
 @@ -560,6 +560,39 @@ temporarily try the following:
diff --git a/debian/patches/fixes/5.20.3/docs/encoding.diff b/debian/patches/fixes/5.20.3/docs/encoding.diff
index f9788f2e0..5f4ad8ece 100644
--- a/debian/patches/fixes/5.20.3/docs/encoding.diff
+++ b/debian/patches/fixes/5.20.3/docs/encoding.diff
@@ -14,7 +14,7 @@ Patch-Name: fixes/5.20.3/docs/encoding.diff
  1 file changed, 9 insertions(+), 3 deletions(-)
 
 diff --git a/pod/perlpodspec.pod b/pod/perlpodspec.pod
-index 67f74b6..f2af63e 100644
+index 67f74b629..f2af63e2c 100644
 --- a/pod/perlpodspec.pod
 +++ b/pod/perlpodspec.pod
 @@ -633,15 +633,21 @@ UTF-16.  If the file begins with the three literal byte values
diff --git a/debian/patches/fixes/5.20.3/docs/ook_example.diff b/debian/patches/fixes/5.20.3/docs/ook_example.diff
index e7e9ccb47..3af6c97a7 100644
--- a/debian/patches/fixes/5.20.3/docs/ook_example.diff
+++ b/debian/patches/fixes/5.20.3/docs/ook_example.diff
@@ -17,7 +17,7 @@ Patch-Name: fixes/5.20.3/docs/ook_example.diff
  1 file changed, 28 insertions(+), 10 deletions(-)
 
 diff --git a/pod/perlguts.pod b/pod/perlguts.pod
-index d845010..61468bc 100644
+index d845010e7..61468bc51 100644
 --- a/pod/perlguts.pod
 +++ b/pod/perlguts.pod
 @@ -323,22 +323,40 @@ Hence, at this point, the start of the buffer that we allocated lives
diff --git a/debian/patches/fixes/5.20.3/docs/op.diff b/debian/patches/fixes/5.20.3/docs/op.diff
index a9eb65283..ebabf63e1 100644
--- a/debian/patches/fixes/5.20.3/docs/op.diff
+++ b/debian/patches/fixes/5.20.3/docs/op.diff
@@ -14,7 +14,7 @@ Patch-Name: fixes/5.20.3/docs/op.diff
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/op.h b/op.h
-index 9d9dd58..ff45354 100644
+index 9d9dd58d8..ff45354ae 100644
 --- a/op.h
 +++ b/op.h
 @@ -1005,7 +1005,7 @@ For custom ops the type is returned from the registration, and it is up
diff --git a/debian/patches/fixes/5.20.3/docs/perlunicook_typos.diff b/debian/patches/fixes/5.20.3/docs/perlunicook_typos.diff
index bc6e6663d..5a3f5a9b7 100644
--- a/debian/patches/fixes/5.20.3/docs/perlunicook_typos.diff
+++ b/debian/patches/fixes/5.20.3/docs/perlunicook_typos.diff
@@ -12,7 +12,7 @@ Patch-Name: fixes/5.20.3/docs/perlunicook_typos.diff
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/pod/perlunicook.pod b/pod/perlunicook.pod
-index 7fd8f14..3e5496e 100644
+index 7fd8f141e..3e5496ec0 100644
 --- a/pod/perlunicook.pod
 +++ b/pod/perlunicook.pod
 @@ -440,7 +440,7 @@ convert such strings manually.
diff --git a/debian/patches/fixes/5.20.3/docs/setenv.diff b/debian/patches/fixes/5.20.3/docs/setenv.diff
index 1457b1970..673f476bc 100644
--- a/debian/patches/fixes/5.20.3/docs/setenv.diff
+++ b/debian/patches/fixes/5.20.3/docs/setenv.diff
@@ -14,7 +14,7 @@ Patch-Name: fixes/5.20.3/docs/setenv.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/pod/perlclib.pod b/pod/perlclib.pod
-index 0cdee24..2e20784 100644
+index 0cdee2491..2e2078439 100644
 --- a/pod/perlclib.pod
 +++ b/pod/perlclib.pod
 @@ -222,7 +222,7 @@ everywhere by now.
diff --git a/debian/patches/fixes/5.20.3/docs/study_noop.diff b/debian/patches/fixes/5.20.3/docs/study_noop.diff
index ea3ce69b4..55d94be19 100644
--- a/debian/patches/fixes/5.20.3/docs/study_noop.diff
+++ b/debian/patches/fixes/5.20.3/docs/study_noop.diff
@@ -12,7 +12,7 @@ Patch-Name: fixes/5.20.3/docs/study_noop.diff
  1 file changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
-index 802b990..272a6cd 100644
+index 802b99080..272a6cd0a 100644
 --- a/pod/perlfunc.pod
 +++ b/pod/perlfunc.pod
 @@ -7671,14 +7671,18 @@ X<study>
diff --git a/debian/patches/fixes/5.20.3/eval_label_crash.diff b/debian/patches/fixes/5.20.3/eval_label_crash.diff
index 779c627ef..340b88719 100644
--- a/debian/patches/fixes/5.20.3/eval_label_crash.diff
+++ b/debian/patches/fixes/5.20.3/eval_label_crash.diff
@@ -40,7 +40,7 @@ Patch-Name: fixes/5.20.3/eval_label_crash.diff
  2 files changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/op.c b/op.c
-index 7337f23..7038526 100644
+index 7337f23c8..703852621 100644
 --- a/op.c
 +++ b/op.c
 @@ -8865,7 +8865,7 @@ Perl_ck_eval(pTHX_ OP *o)
@@ -53,7 +53,7 @@ index 7337f23..7038526 100644
  #ifdef PERL_MAD
  	    OP* const oldo = o;
 diff --git a/t/comp/parser.t b/t/comp/parser.t
-index 584a473..755b5c5 100644
+index 584a473f6..755b5c527 100644
 --- a/t/comp/parser.t
 +++ b/t/comp/parser.t
 @@ -502,6 +502,9 @@ like $@, "^No such class a1b at ", 'TYPE of my of for statement';
diff --git a/debian/patches/fixes/5.20.3/fatalize_warnings_unwinding.diff b/debian/patches/fixes/5.20.3/fatalize_warnings_unwinding.diff
index eeab9ccd7..1d64ca27b 100644
--- a/debian/patches/fixes/5.20.3/fatalize_warnings_unwinding.diff
+++ b/debian/patches/fixes/5.20.3/fatalize_warnings_unwinding.diff
@@ -13,7 +13,7 @@ Patch-Name: fixes/5.20.3/fatalize_warnings_unwinding.diff
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/util.c b/util.c
-index 5a3c077..fede576 100644
+index 5a3c07702..fede576d8 100644
 --- a/util.c
 +++ b/util.c
 @@ -1877,7 +1877,10 @@ Perl_vwarner(pTHX_ U32  err, const char* pat, va_list* args)
diff --git a/debian/patches/fixes/5.20.3/h2ph_hex_constants.diff b/debian/patches/fixes/5.20.3/h2ph_hex_constants.diff
index e134a3eb5..e62af19b3 100644
--- a/debian/patches/fixes/5.20.3/h2ph_hex_constants.diff
+++ b/debian/patches/fixes/5.20.3/h2ph_hex_constants.diff
@@ -19,7 +19,7 @@ Patch-Name: fixes/5.20.3/h2ph_hex_constants.diff
  1 file changed, 18 insertions(+), 1 deletion(-)
 
 diff --git a/utils/h2ph.PL b/utils/h2ph.PL
-index 9a8b14d..d082f22 100644
+index 9a8b14dca..d082f2272 100644
 --- a/utils/h2ph.PL
 +++ b/utils/h2ph.PL
 @@ -769,7 +769,7 @@ sub inc_dirs
diff --git a/debian/patches/fixes/5.20.3/leak_namepv_copy.diff b/debian/patches/fixes/5.20.3/leak_namepv_copy.diff
index cfd6e0d3f..7da93c615 100644
--- a/debian/patches/fixes/5.20.3/leak_namepv_copy.diff
+++ b/debian/patches/fixes/5.20.3/leak_namepv_copy.diff
@@ -11,7 +11,7 @@ Patch-Name: fixes/5.20.3/leak_namepv_copy.diff
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/pad.c b/pad.c
-index fed2892..f22c3c5 100644
+index fed28922e..f22c3c526 100644
 --- a/pad.c
 +++ b/pad.c
 @@ -976,8 +976,10 @@ Perl_pad_findmy_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags)
diff --git a/debian/patches/fixes/5.20.3/leftbracket_XTERMORDORDOR.diff b/debian/patches/fixes/5.20.3/leftbracket_XTERMORDORDOR.diff
index aeec3c50d..fe06d31aa 100644
--- a/debian/patches/fixes/5.20.3/leftbracket_XTERMORDORDOR.diff
+++ b/debian/patches/fixes/5.20.3/leftbracket_XTERMORDORDOR.diff
@@ -27,7 +27,7 @@ Patch-Name: fixes/5.20.3/leftbracket_XTERMORDORDOR.diff
  2 files changed, 4 insertions(+)
 
 diff --git a/t/base/lex.t b/t/base/lex.t
-index 01ab208..3c612ec 100644
+index 01ab2088b..3c612ec9e 100644
 --- a/t/base/lex.t
 +++ b/t/base/lex.t
 @@ -434,3 +434,6 @@ print "ok $test - y <comment> <newline> ...\n"; $test++;
@@ -38,7 +38,7 @@ index 01ab208..3c612ec 100644
 +# Used to crash [perl #123711]
 +0-5x-l{0};
 diff --git a/toke.c b/toke.c
-index 899712b..51408a1 100644
+index 899712b8a..51408a18d 100644
 --- a/toke.c
 +++ b/toke.c
 @@ -6107,6 +6107,7 @@ Perl_yylex(pTHX)
diff --git a/debian/patches/fixes/5.20.3/multidimensional_arrays_utf8.diff b/debian/patches/fixes/5.20.3/multidimensional_arrays_utf8.diff
index d9e4c195a..b8a3e79f5 100644
--- a/debian/patches/fixes/5.20.3/multidimensional_arrays_utf8.diff
+++ b/debian/patches/fixes/5.20.3/multidimensional_arrays_utf8.diff
@@ -31,7 +31,7 @@ Patch-Name: fixes/5.20.3/multidimensional_arrays_utf8.diff
  2 files changed, 11 insertions(+), 1 deletion(-)
 
 diff --git a/t/lib/warnings/toke b/t/lib/warnings/toke
-index 92e94ad..6764ae6 100644
+index 92e94adf8..6764ae619 100644
 --- a/t/lib/warnings/toke
 +++ b/t/lib/warnings/toke
 @@ -1510,3 +1510,13 @@ Use of literal control characters in variable names is deprecated at (eval 2) li
@@ -49,7 +49,7 @@ index 92e94ad..6764ae6 100644
 +   $v = $array[ $𝛃 + 0 ];
 +EXPECT
 diff --git a/toke.c b/toke.c
-index 906d56c..b112cde 100644
+index 906d56c10..b112cde5b 100644
 --- a/toke.c
 +++ b/toke.c
 @@ -6621,7 +6621,7 @@ Perl_yylex(pTHX)
diff --git a/debian/patches/fixes/5.20.3/parentheses_ambiguous_warning_utf8_functions.diff b/debian/patches/fixes/5.20.3/parentheses_ambiguous_warning_utf8_functions.diff
index 4a7b382cb..0e3f9be82 100644
--- a/debian/patches/fixes/5.20.3/parentheses_ambiguous_warning_utf8_functions.diff
+++ b/debian/patches/fixes/5.20.3/parentheses_ambiguous_warning_utf8_functions.diff
@@ -27,7 +27,7 @@ Patch-Name: fixes/5.20.3/parentheses_ambiguous_warning_utf8_functions.diff
  2 files changed, 11 insertions(+), 1 deletion(-)
 
 diff --git a/t/lib/warnings/toke b/t/lib/warnings/toke
-index aabdda0..c880f07 100644
+index aabdda0ed..c880f0799 100644
 --- a/t/lib/warnings/toke
 +++ b/t/lib/warnings/toke
 @@ -1531,3 +1531,13 @@ EnFraçais
@@ -45,7 +45,7 @@ index aabdda0..c880f07 100644
 +EXPECT
 +Warning: Use of "𝛃" without parentheses is ambiguous at - line 7.
 diff --git a/toke.c b/toke.c
-index c4657eb..899712b 100644
+index c4657ebb5..899712b8a 100644
 --- a/toke.c
 +++ b/toke.c
 @@ -1997,7 +1997,7 @@ S_check_uni(pTHX)
diff --git a/debian/patches/fixes/5.20.3/possessive_quantifier.diff b/debian/patches/fixes/5.20.3/possessive_quantifier.diff
index 2c2fe1de3..c37681e49 100644
--- a/debian/patches/fixes/5.20.3/possessive_quantifier.diff
+++ b/debian/patches/fixes/5.20.3/possessive_quantifier.diff
@@ -21,7 +21,7 @@ Patch-Name: fixes/5.20.3/possessive_quantifier.diff
  3 files changed, 3 insertions(+), 4 deletions(-)
 
 diff --git a/regcomp.c b/regcomp.c
-index 84af011..606b337 100644
+index 84af01134..606b3373b 100644
 --- a/regcomp.c
 +++ b/regcomp.c
 @@ -10455,9 +10455,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
@@ -36,7 +36,7 @@ index 84af011..606b337 100644
                  if (SIZE_ONLY) {
                      ckWARN2reg(RExC_parse + 1,
 diff --git a/t/re/re_tests b/t/re/re_tests
-index d883add..11c4125 100644
+index d883add8f..11c412507 100644
 --- a/t/re/re_tests
 +++ b/t/re/re_tests
 @@ -1887,5 +1887,7 @@ A+(*PRUNE)BC(?{})	AAABC	y	$&	AAABC
@@ -48,7 +48,7 @@ index d883add..11c4125 100644
  # Keep these lines at the end of the file
  # vim: softtabstop=0 noexpandtab
 diff --git a/t/re/reg_mesg.t b/t/re/reg_mesg.t
-index 55eda18..77f7aa1 100644
+index 55eda189d..77f7aa10d 100644
 --- a/t/re/reg_mesg.t
 +++ b/t/re/reg_mesg.t
 @@ -382,7 +382,6 @@ my @warning = (
diff --git a/debian/patches/fixes/5.20.3/preserve_record_separator.diff b/debian/patches/fixes/5.20.3/preserve_record_separator.diff
index 16ef28b29..049d355e3 100644
--- a/debian/patches/fixes/5.20.3/preserve_record_separator.diff
+++ b/debian/patches/fixes/5.20.3/preserve_record_separator.diff
@@ -16,7 +16,7 @@ Patch-Name: fixes/5.20.3/preserve_record_separator.diff
  2 files changed, 10 insertions(+), 2 deletions(-)
 
 diff --git a/mg.c b/mg.c
-index 4158f1a..79aa81a 100644
+index 4158f1a25..79aa81acf 100644
 --- a/mg.c
 +++ b/mg.c
 @@ -1079,6 +1079,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
@@ -28,7 +28,7 @@ index 4158f1a..79aa81a 100644
      case '[':
  	sv_setiv(sv, 0);
 diff --git a/t/base/rs.t b/t/base/rs.t
-index 416696e..0035cc5 100644
+index 416696e9f..0035cc528 100644
 --- a/t/base/rs.t
 +++ b/t/base/rs.t
 @@ -1,7 +1,7 @@
diff --git a/debian/patches/fixes/5.20.3/quoted_code_crash.diff b/debian/patches/fixes/5.20.3/quoted_code_crash.diff
index 83252106a..843c644cc 100644
--- a/debian/patches/fixes/5.20.3/quoted_code_crash.diff
+++ b/debian/patches/fixes/5.20.3/quoted_code_crash.diff
@@ -40,7 +40,7 @@ Patch-Name: fixes/5.20.3/quoted_code_crash.diff
  2 files changed, 12 insertions(+), 2 deletions(-)
 
 diff --git a/t/op/lex.t b/t/op/lex.t
-index b33f0ef..35d4d9c 100644
+index b33f0efc9..35d4d9c3d 100644
 --- a/t/op/lex.t
 +++ b/t/op/lex.t
 @@ -4,7 +4,7 @@ use warnings;
@@ -65,7 +65,7 @@ index b33f0ef..35d4d9c 100644
 +  '/$a[/<<a with no newline [perl #123712]'
 +);
 diff --git a/toke.c b/toke.c
-index 51408a1..90642b2 100644
+index 51408a18d..90642b25e 100644
 --- a/toke.c
 +++ b/toke.c
 @@ -1301,7 +1301,7 @@ buffer has reached the end of the input text.
diff --git a/debian/patches/fixes/5.20.3/remove_get_magic.diff b/debian/patches/fixes/5.20.3/remove_get_magic.diff
index ca5dd931c..d4c8210c4 100644
--- a/debian/patches/fixes/5.20.3/remove_get_magic.diff
+++ b/debian/patches/fixes/5.20.3/remove_get_magic.diff
@@ -29,7 +29,7 @@ Patch-Name: fixes/5.20.3/remove_get_magic.diff
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/mg.c b/mg.c
-index 79aa81a..01b3cdc 100644
+index 79aa81acf..01b3cdc63 100644
 --- a/mg.c
 +++ b/mg.c
 @@ -1077,9 +1077,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
diff --git a/debian/patches/fixes/5.20.3/setpgrp.diff b/debian/patches/fixes/5.20.3/setpgrp.diff
index 419e19fba..8d06041cc 100644
--- a/debian/patches/fixes/5.20.3/setpgrp.diff
+++ b/debian/patches/fixes/5.20.3/setpgrp.diff
@@ -22,7 +22,7 @@ Patch-Name: fixes/5.20.3/setpgrp.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/pp_sys.c b/pp_sys.c
-index 9de4dff..967b1dd 100644
+index 9de4dfff7..967b1dd06 100644
 --- a/pp_sys.c
 +++ b/pp_sys.c
 @@ -4324,7 +4324,7 @@ PP(pp_setpgrp)
diff --git a/debian/patches/fixes/5.20.3/speed_up_scalar_g.diff b/debian/patches/fixes/5.20.3/speed_up_scalar_g.diff
index 566b6c9d0..74908bf01 100644
--- a/debian/patches/fixes/5.20.3/speed_up_scalar_g.diff
+++ b/debian/patches/fixes/5.20.3/speed_up_scalar_g.diff
@@ -20,7 +20,7 @@ Patch-Name: fixes/5.20.3/speed_up_scalar_g.diff
  create mode 100644 t/perf/taint.t
 
 diff --git a/MANIFEST b/MANIFEST
-index 09fbabd..3032f8d 100644
+index 09fbabde4..3032f8d85 100644
 --- a/MANIFEST
 +++ b/MANIFEST
 @@ -5360,6 +5360,7 @@ t/op/warn.t			See if warn works
@@ -32,7 +32,7 @@ index 09fbabd..3032f8d 100644
  t/porting/args_assert.t		Check that all PERL_ARGS_ASSERT* macros are used
  t/porting/authors.t		Check that all authors have been acknowledged
 diff --git a/embed.fnc b/embed.fnc
-index 88f03c2..1eec6b1 100644
+index 88f03c212..1eec6b111 100644
 --- a/embed.fnc
 +++ b/embed.fnc
 @@ -1407,6 +1407,7 @@ Apd	|void	|sv_magic	|NN SV *const sv|NULLOK SV *const obj|const int how \
@@ -44,7 +44,7 @@ index 88f03c2..1eec6b1 100644
  EXp	|MAGIC *|sv_magicext_mglob|NN SV *sv
  ApdbamR	|SV*	|sv_mortalcopy	|NULLOK SV *const oldsv
 diff --git a/embed.h b/embed.h
-index a6e3b9d..6f773f6 100644
+index a6e3b9d18..6f773f626 100644
 --- a/embed.h
 +++ b/embed.h
 @@ -877,6 +877,7 @@
@@ -56,7 +56,7 @@ index a6e3b9d..6f773f6 100644
  #define vivify_defelem(a)	Perl_vivify_defelem(aTHX_ a)
  #define yylex()			Perl_yylex(aTHX)
 diff --git a/inline.h b/inline.h
-index 0fe8a0e..916f557 100644
+index 0fe8a0eee..916f5571c 100644
 --- a/inline.h
 +++ b/inline.h
 @@ -323,6 +323,30 @@ S_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char
@@ -91,7 +91,7 @@ index 0fe8a0e..916f557 100644
   * c-indentation-style: bsd
   * c-basic-offset: 4
 diff --git a/mg.h b/mg.h
-index 81ed296..cd5c647 100644
+index 81ed296f8..cd5c647bb 100644
 --- a/mg.h
 +++ b/mg.h
 @@ -63,7 +63,7 @@ struct magic {
@@ -104,7 +104,7 @@ index 81ed296..cd5c647 100644
  	: ((mg)->mg_len = DO_UTF8(sv)			     \
  	    ? (SSize_t)utf8_length((U8 *)(pv), (U8 *)(pv)+(off)) \
 diff --git a/proto.h b/proto.h
-index 6532ba8..96003a8 100644
+index 6532ba8af..96003a8b0 100644
 --- a/proto.h
 +++ b/proto.h
 @@ -4252,6 +4252,11 @@ PERL_CALLCONV NV	Perl_sv_nv(pTHX_ SV* sv)
@@ -121,7 +121,7 @@ index 6532ba8..96003a8 100644
  			__attribute__nonnull__(pTHX_2);
 diff --git a/t/perf/taint.t b/t/perf/taint.t
 new file mode 100644
-index 0000000..386d97e
+index 000000000..386d97e58
 --- /dev/null
 +++ b/t/perf/taint.t
 @@ -0,0 +1,42 @@
diff --git a/debian/patches/fixes/5.20.3/stashpvn_crash.diff b/debian/patches/fixes/5.20.3/stashpvn_crash.diff
index 13f47e77a..4d67fe522 100644
--- a/debian/patches/fixes/5.20.3/stashpvn_crash.diff
+++ b/debian/patches/fixes/5.20.3/stashpvn_crash.diff
@@ -25,7 +25,7 @@ Patch-Name: fixes/5.20.3/stashpvn_crash.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/gv.c b/gv.c
-index ce68478..6b17ae2 100644
+index ce6847842..6b17ae2bb 100644
 --- a/gv.c
 +++ b/gv.c
 @@ -1339,7 +1339,7 @@ Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 flags)
diff --git a/debian/patches/fixes/5.20.3/test_count_base_rs.diff b/debian/patches/fixes/5.20.3/test_count_base_rs.diff
index 35a23909f..6d175ba85 100644
--- a/debian/patches/fixes/5.20.3/test_count_base_rs.diff
+++ b/debian/patches/fixes/5.20.3/test_count_base_rs.diff
@@ -14,7 +14,7 @@ Patch-Name: fixes/5.20.3/test_count_base_rs.diff
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/t/base/rs.t b/t/base/rs.t
-index 0035cc5..8e84ad0 100644
+index 0035cc528..8e84ad041 100644
 --- a/t/base/rs.t
 +++ b/t/base/rs.t
 @@ -1,7 +1,7 @@
diff --git a/debian/patches/fixes/5.20.3/unquoted_utf8_heredoc_terminators.diff b/debian/patches/fixes/5.20.3/unquoted_utf8_heredoc_terminators.diff
index 526146717..f63b42881 100644
--- a/debian/patches/fixes/5.20.3/unquoted_utf8_heredoc_terminators.diff
+++ b/debian/patches/fixes/5.20.3/unquoted_utf8_heredoc_terminators.diff
@@ -34,7 +34,7 @@ Patch-Name: fixes/5.20.3/unquoted_utf8_heredoc_terminators.diff
  2 files changed, 18 insertions(+), 3 deletions(-)
 
 diff --git a/t/lib/warnings/toke b/t/lib/warnings/toke
-index 6764ae6..aabdda0 100644
+index 6764ae619..aabdda0ed 100644
 --- a/t/lib/warnings/toke
 +++ b/t/lib/warnings/toke
 @@ -1520,3 +1520,14 @@ my @array = (0);
@@ -53,7 +53,7 @@ index 6764ae6..aabdda0 100644
 +EXPECT
 +Comme ca!
 diff --git a/toke.c b/toke.c
-index b112cde..c4657eb 100644
+index b112cde5b..c4657ebb5 100644
 --- a/toke.c
 +++ b/toke.c
 @@ -10060,10 +10060,14 @@ S_scan_heredoc(pTHX_ char *s)
diff --git a/debian/patches/fixes/5.20.3/yylex_loop.diff b/debian/patches/fixes/5.20.3/yylex_loop.diff
index ee43c3a4a..499457211 100644
--- a/debian/patches/fixes/5.20.3/yylex_loop.diff
+++ b/debian/patches/fixes/5.20.3/yylex_loop.diff
@@ -33,7 +33,7 @@ Patch-Name: fixes/5.20.3/yylex_loop.diff
  2 files changed, 17 insertions(+), 5 deletions(-)
 
 diff --git a/t/op/lex.t b/t/op/lex.t
-index ac094f8..cbb72ef 100644
+index ac094f8d5..cbb72efaf 100644
 --- a/t/op/lex.t
 +++ b/t/op/lex.t
 @@ -4,7 +4,7 @@ use warnings;
@@ -76,7 +76,7 @@ index ac094f8..cbb72ef 100644
 +  '"@{" [perl #123712]'
 +);
 diff --git a/toke.c b/toke.c
-index f59f913..50e2d59 100644
+index f59f91348..50e2d5919 100644
 --- a/toke.c
 +++ b/toke.c
 @@ -5198,7 +5198,8 @@ Perl_yylex(pTHX)
diff --git a/debian/patches/fixes/CVE-2015-8607_file_spec_taint_fix.diff b/debian/patches/fixes/CVE-2015-8607_file_spec_taint_fix.diff
index 7a06c4d24..448b8348c 100644
--- a/debian/patches/fixes/CVE-2015-8607_file_spec_taint_fix.diff
+++ b/debian/patches/fixes/CVE-2015-8607_file_spec_taint_fix.diff
@@ -17,7 +17,7 @@ Patch-Name: fixes/CVE-2015-8607_file_spec_taint_fix.diff
  2 files changed, 19 insertions(+), 1 deletion(-)
 
 diff --git a/dist/PathTools/Cwd.xs b/dist/PathTools/Cwd.xs
-index 1f174bf..22e90c5 100644
+index 1f174bf45..22e90c511 100644
 --- a/dist/PathTools/Cwd.xs
 +++ b/dist/PathTools/Cwd.xs
 @@ -512,6 +512,7 @@ THX_unix_canonpath(pTHX_ SV *path)
@@ -29,7 +29,7 @@ index 1f174bf..22e90c5 100644
  }
  
 diff --git a/dist/PathTools/t/taint.t b/dist/PathTools/t/taint.t
-index 309b3e5..48f8c5b 100644
+index 309b3e5df..48f8c5bc8 100644
 --- a/dist/PathTools/t/taint.t
 +++ b/dist/PathTools/t/taint.t
 @@ -12,7 +12,7 @@ use Test::More;
diff --git a/debian/patches/fixes/CVE-2015-8853_regexp_hang.diff b/debian/patches/fixes/CVE-2015-8853_regexp_hang.diff
index 344bcffb1..6a7e439c6 100644
--- a/debian/patches/fixes/CVE-2015-8853_regexp_hang.diff
+++ b/debian/patches/fixes/CVE-2015-8853_regexp_hang.diff
@@ -26,7 +26,7 @@ Patch-Name: fixes/CVE-2015-8853_regexp_hang.diff
  2 files changed, 30 insertions(+), 1 deletion(-)
 
 diff --git a/regexec.c b/regexec.c
-index 66f6e04..ee6705a 100644
+index 66f6e0496..ee6705aeb 100644
 --- a/regexec.c
 +++ b/regexec.c
 @@ -7830,6 +7830,10 @@ S_reghop3(U8 *s, SSize_t off, const U8* lim)
@@ -63,7 +63,7 @@ index 66f6e04..ee6705a 100644
              /* XXX could check well-formedness here */
  	}
 diff --git a/t/re/pat.t b/t/re/pat.t
-index 7965f4e..6e694d7 100644
+index 7965f4e67..6e694d743 100644
 --- a/t/re/pat.t
 +++ b/t/re/pat.t
 @@ -20,7 +20,7 @@ BEGIN {
diff --git a/debian/patches/fixes/CVE-2016-1238/customized-encode.diff b/debian/patches/fixes/CVE-2016-1238/customized-encode.diff
index 54481cc50..c942666b3 100644
--- a/debian/patches/fixes/CVE-2016-1238/customized-encode.diff
+++ b/debian/patches/fixes/CVE-2016-1238/customized-encode.diff
@@ -9,7 +9,7 @@ Patch-Name: fixes/CVE-2016-1238/customized-encode.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/t/porting/customized.dat b/t/porting/customized.dat
-index 04c8db0..0f76b74 100644
+index 04c8db01d..0f76b745a 100644
 --- a/t/porting/customized.dat
 +++ b/t/porting/customized.dat
 @@ -11,7 +11,7 @@ Encode cpan/Encode/bin/enc2xs f60036fd3574ec05c9aab7f4db00a828d5dea92d
diff --git a/debian/patches/fixes/CVE-2016-1238/remove-dot-in-cpan.diff b/debian/patches/fixes/CVE-2016-1238/remove-dot-in-cpan.diff
index 4199972df..5b9be0d02 100644
--- a/debian/patches/fixes/CVE-2016-1238/remove-dot-in-cpan.diff
+++ b/debian/patches/fixes/CVE-2016-1238/remove-dot-in-cpan.diff
@@ -32,7 +32,7 @@ Patch-Name: fixes/CVE-2016-1238/remove-dot-in-cpan.diff
  17 files changed, 79 insertions(+), 10 deletions(-)
 
 diff --git a/cpan/CPAN/lib/App/Cpan.pm b/cpan/CPAN/lib/App/Cpan.pm
-index b548bcc..e79ace6 100644
+index b548bcc0a..e79ace6ee 100644
 --- a/cpan/CPAN/lib/App/Cpan.pm
 +++ b/cpan/CPAN/lib/App/Cpan.pm
 @@ -458,9 +458,20 @@ sub AUTOLOAD { 1 }
@@ -94,7 +94,7 @@ index b548bcc..e79ace6 100644
      my $url = shift;
  
 diff --git a/cpan/CPAN/lib/CPAN.pm b/cpan/CPAN/lib/CPAN.pm
-index 4ed4b6c..074924c 100644
+index 4ed4b6cdd..074924c15 100644
 --- a/cpan/CPAN/lib/CPAN.pm
 +++ b/cpan/CPAN/lib/CPAN.pm
 @@ -1090,6 +1090,8 @@ sub has_usable {
@@ -116,7 +116,7 @@ index 4ed4b6c..074924c 100644
      my $obj;
      $file =~ s|::|/|g;
 diff --git a/cpan/Digest/Digest.pm b/cpan/Digest/Digest.pm
-index c3355a8..299e25e 100644
+index c3355a8bd..299e25e0b 100644
 --- a/cpan/Digest/Digest.pm
 +++ b/cpan/Digest/Digest.pm
 @@ -38,7 +38,11 @@ sub new
@@ -133,7 +133,7 @@ index c3355a8..299e25e 100644
                  $err ||= $@;
                  next;
 diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm
-index 5d477f6..ac90e54 100644
+index 5d477f6bd..ac90e549e 100644
 --- a/cpan/Encode/Encode.pm
 +++ b/cpan/Encode/Encode.pm
 @@ -56,6 +56,8 @@ require Encode::Config;
@@ -146,7 +146,7 @@ index 5d477f6..ac90e54 100644
  };
  
 diff --git a/cpan/File-Fetch/lib/File/Fetch.pm b/cpan/File-Fetch/lib/File/Fetch.pm
-index 7d6a263..5a8799b 100644
+index 7d6a263e2..5a8799b76 100644
 --- a/cpan/File-Fetch/lib/File/Fetch.pm
 +++ b/cpan/File-Fetch/lib/File/Fetch.pm
 @@ -567,6 +567,8 @@ sub _lwp_fetch {
@@ -195,7 +195,7 @@ index 7d6a263..5a8799b 100644
  
      unless( can_load( modules => $use_list ) ) {
 diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
-index e348753..0ab7f4b 100644
+index e348753b9..0ab7f4b67 100644
 --- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
 +++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
 @@ -1368,6 +1368,8 @@ sub _find_CA_file {
@@ -208,7 +208,7 @@ index e348753..0ab7f4b 100644
          if eval { require Mozilla::CA };
  
 diff --git a/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm b/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
-index e2b104d..3de5776 100644
+index e2b104dff..3de577619 100644
 --- a/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
 +++ b/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
 @@ -27,6 +27,8 @@ Exporter::export_ok_tags('all');
@@ -221,7 +221,7 @@ index e2b104d..3de5776 100644
     eval ' use IO::Uncompress::Adapter::Bunzip2 2.064 ;';
     eval ' use IO::Uncompress::Adapter::LZO 2.064 ;';
 diff --git a/cpan/IPC-Cmd/lib/IPC/Cmd.pm b/cpan/IPC-Cmd/lib/IPC/Cmd.pm
-index 6a82bdf..84ad0a0 100644
+index 6a82bdff9..84ad0a037 100644
 --- a/cpan/IPC-Cmd/lib/IPC/Cmd.pm
 +++ b/cpan/IPC-Cmd/lib/IPC/Cmd.pm
 @@ -142,6 +142,8 @@ sub can_use_ipc_run     {
@@ -243,7 +243,7 @@ index 6a82bdf..84ad0a0 100644
          modules => { map {$_ => '0.0'} qw|IPC::Open3 IO::Select Symbol| },
          verbose => ($WARN && $verbose),
 diff --git a/cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm b/cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm
-index 30760f3..9465c52 100644
+index 30760f3c2..9465c529c 100644
 --- a/cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm
 +++ b/cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm
 @@ -134,7 +134,12 @@ sub load_loc {
@@ -261,7 +261,7 @@ index 30760f3..9465c52 100644
      eval { require File::Spec; 1 }		    or return;
  
 diff --git a/cpan/Memoize/Memoize.pm b/cpan/Memoize/Memoize.pm
-index 9a58c4a..b566f21 100644
+index 9a58c4ac7..b566f21b9 100644
 --- a/cpan/Memoize/Memoize.pm
 +++ b/cpan/Memoize/Memoize.pm
 @@ -184,7 +184,11 @@ sub _my_tie {
@@ -278,7 +278,7 @@ index 9a58c4a..b566f21 100644
      croak "Memoize: Couldn't load hash tie module `$module': $@; aborting";
    }
 diff --git a/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm b/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
-index 1089f5b..5cf7424 100644
+index 1089f5bb3..5cf7424ce 100644
 --- a/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
 +++ b/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
 @@ -563,6 +563,9 @@ sub find_good_formatter_class {
@@ -301,7 +301,7 @@ index 1089f5b..5cf7424 100644
      eval "require $pack";
      if ( !$@ && $pack->can('new') ) {
 diff --git a/cpan/Sys-Syslog/Syslog.pm b/cpan/Sys-Syslog/Syslog.pm
-index 25164af..eed224a 100644
+index 25164af32..eed224a7c 100644
 --- a/cpan/Sys-Syslog/Syslog.pm
 +++ b/cpan/Sys-Syslog/Syslog.pm
 @@ -888,6 +888,8 @@ sub silent_eval (&) {
@@ -314,7 +314,7 @@ index 25164af..eed224a 100644
      warn $@ if not $loaded and $verbose;
      return $loaded
 diff --git a/cpan/libnet/Net/Config.pm b/cpan/libnet/Net/Config.pm
-index 4b1ea19..e6b7f5c 100644
+index 4b1ea1931..e6b7f5c0c 100644
 --- a/cpan/libnet/Net/Config.pm
 +++ b/cpan/libnet/Net/Config.pm
 @@ -15,7 +15,12 @@ use strict;
@@ -332,7 +332,7 @@ index 4b1ea19..e6b7f5c 100644
  %NetConfig = (
    nntp_hosts      => [],
 diff --git a/dist/ExtUtils-Command/lib/ExtUtils/Command.pm b/dist/ExtUtils-Command/lib/ExtUtils/Command.pm
-index 035d5ca..8d3c7b7 100644
+index 035d5ca9d..8d3c7b7ca 100644
 --- a/dist/ExtUtils-Command/lib/ExtUtils/Command.pm
 +++ b/dist/ExtUtils-Command/lib/ExtUtils/Command.pm
 @@ -24,7 +24,10 @@ if( $Is_VMS ) {
@@ -348,7 +348,7 @@ index 035d5ca..8d3c7b7 100644
          $vms_efs = VMS::Feature::current("efs_charset");
          $vms_case = VMS::Feature::current("efs_case_preserve");
 diff --git a/dist/bignum/lib/bigint.pm b/dist/bignum/lib/bigint.pm
-index 993ea91..592ed76 100644
+index 993ea9112..592ed7651 100644
 --- a/dist/bignum/lib/bigint.pm
 +++ b/dist/bignum/lib/bigint.pm
 @@ -248,6 +248,8 @@ sub import
@@ -361,7 +361,7 @@ index 993ea91..592ed76 100644
        if ($@ eq '')
          {
 diff --git a/dist/bignum/lib/bignum.pm b/dist/bignum/lib/bignum.pm
-index 40aedce..caf4fc8 100644
+index 40aedceca..caf4fc884 100644
 --- a/dist/bignum/lib/bignum.pm
 +++ b/dist/bignum/lib/bignum.pm
 @@ -155,6 +155,8 @@ sub import
@@ -374,7 +374,7 @@ index 40aedce..caf4fc8 100644
        if ($@ eq '')
          {
 diff --git a/dist/bignum/lib/bigrat.pm b/dist/bignum/lib/bigrat.pm
-index adbeff4..4e3db00 100644
+index adbeff4db..4e3db0021 100644
 --- a/dist/bignum/lib/bigrat.pm
 +++ b/dist/bignum/lib/bigrat.pm
 @@ -148,6 +148,8 @@ sub import
diff --git a/debian/patches/fixes/CVE-2016-1238/remove-dot-in-dist.diff b/debian/patches/fixes/CVE-2016-1238/remove-dot-in-dist.diff
index c37d31c94..1d52fc338 100644
--- a/debian/patches/fixes/CVE-2016-1238/remove-dot-in-dist.diff
+++ b/debian/patches/fixes/CVE-2016-1238/remove-dot-in-dist.diff
@@ -23,7 +23,7 @@ Patch-Name: fixes/CVE-2016-1238/remove-dot-in-dist.diff
  11 files changed, 47 insertions(+), 8 deletions(-)
 
 diff --git a/cpan/Test/lib/Test.pm b/cpan/Test/lib/Test.pm
-index 108bc10..7c2c9d3 100644
+index 108bc10a1..7c2c9d3a5 100644
 --- a/cpan/Test/lib/Test.pm
 +++ b/cpan/Test/lib/Test.pm
 @@ -480,7 +480,12 @@ sub _diff_complain {
@@ -41,7 +41,7 @@ index 108bc10..7c2c9d3 100644
      $told_about_diff++ or print $TESTERR <<"EOT";
  # $prefix   (Install the Algorithm::Diff module to have differences in multiline
 diff --git a/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm b/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
-index f13d546..e9c3aaa 100644
+index f13d5460b..e9c3aaab5 100644
 --- a/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
 +++ b/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
 @@ -145,6 +145,8 @@ sub _try_use {   # Basically a wrapper around "require Modulename"
@@ -54,7 +54,7 @@ index f13d546..e9c3aaa 100644
    }
    if($@) {
 diff --git a/dist/IO/IO.pm b/dist/IO/IO.pm
-index ba89f0c..aec8285 100644
+index ba89f0c8e..aec828515 100644
 --- a/dist/IO/IO.pm
 +++ b/dist/IO/IO.pm
 @@ -18,6 +18,8 @@ sub import {
@@ -67,7 +67,7 @@ index ba89f0c..aec8285 100644
  	or croak $@;
  }
 diff --git a/dist/Locale-Maketext/lib/Locale/Maketext.pm b/dist/Locale-Maketext/lib/Locale/Maketext.pm
-index c2bd723..bb92c86 100644
+index c2bd723e9..bb92c86b6 100644
 --- a/dist/Locale-Maketext/lib/Locale/Maketext.pm
 +++ b/dist/Locale-Maketext/lib/Locale/Maketext.pm
 @@ -449,6 +449,8 @@ sub _try_use {   # Basically a wrapper around "require Modulename"
@@ -80,7 +80,7 @@ index c2bd723..bb92c86 100644
  
      if($@) {
 diff --git a/dist/Net-Ping/lib/Net/Ping.pm b/dist/Net-Ping/lib/Net/Ping.pm
-index 2766c9e..c9cbd27 100644
+index 2766c9edb..c9cbd2735 100644
 --- a/dist/Net-Ping/lib/Net/Ping.pm
 +++ b/dist/Net-Ping/lib/Net/Ping.pm
 @@ -410,7 +410,11 @@ sub ping_external {
@@ -97,7 +97,7 @@ index 2766c9e..c9cbd27 100644
    return Net::Ping::External::ping(ip => $ip, timeout => $timeout);
  }
 diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm
-index 210ea32..9a8190b 100644
+index 210ea323d..9a8190b03 100644
 --- a/dist/PathTools/Cwd.pm
 +++ b/dist/PathTools/Cwd.pm
 @@ -208,7 +208,10 @@ if ($^O eq 'os2') {
@@ -113,7 +113,7 @@ index 210ea32..9a8190b 100644
          }
      }
 diff --git a/dist/PathTools/lib/File/Spec/Cygwin.pm b/dist/PathTools/lib/File/Spec/Cygwin.pm
-index b9e3703..58ebd17 100644
+index b9e3703bf..58ebd17c2 100644
 --- a/dist/PathTools/lib/File/Spec/Cygwin.pm
 +++ b/dist/PathTools/lib/File/Spec/Cygwin.pm
 @@ -137,7 +137,11 @@ sub case_tolerant {
@@ -130,7 +130,7 @@ index b9e3703..58ebd17 100644
    my $osVolName = "\0"x256;
    my $ouFsFlags = 0;
 diff --git a/dist/PathTools/lib/File/Spec/VMS.pm b/dist/PathTools/lib/File/Spec/VMS.pm
-index 3072fab..d1305a4 100644
+index 3072fabb6..d1305a44a 100644
 --- a/dist/PathTools/lib/File/Spec/VMS.pm
 +++ b/dist/PathTools/lib/File/Spec/VMS.pm
 @@ -39,7 +39,10 @@ via the C<DECC$FILENAME_UNIX_REPORT> CRTL feature.
@@ -146,7 +146,7 @@ index 3072fab..d1305a4 100644
      }
  }
 diff --git a/dist/PathTools/lib/File/Spec/Win32.pm b/dist/PathTools/lib/File/Spec/Win32.pm
-index 6c063b5..18e1288 100644
+index 6c063b5fd..18e1288d0 100644
 --- a/dist/PathTools/lib/File/Spec/Win32.pm
 +++ b/dist/PathTools/lib/File/Spec/Win32.pm
 @@ -90,7 +90,11 @@ Default: 1
@@ -163,7 +163,7 @@ index 6c063b5..18e1288 100644
    my $osFsType = "\0"x256;
    my $osVolName = "\0"x256;
 diff --git a/dist/Storable/Storable.pm b/dist/Storable/Storable.pm
-index 7d8a011..b5953db 100644
+index 7d8a01198..b5953db04 100644
 --- a/dist/Storable/Storable.pm
 +++ b/dist/Storable/Storable.pm
 @@ -25,7 +25,13 @@ use vars qw($canonical $forgive_me $VERSION);
@@ -182,7 +182,7 @@ index 7d8a011..b5953db 100644
      }
      #
 diff --git a/dist/base/lib/base.pm b/dist/base/lib/base.pm
-index 5d13787..2b15096 100644
+index 5d1378786..2b1509620 100644
 --- a/dist/base/lib/base.pm
 +++ b/dist/base/lib/base.pm
 @@ -96,7 +96,11 @@ sub import {
diff --git a/debian/patches/fixes/CVE-2016-1238/remove-dot-in-padwalker.diff b/debian/patches/fixes/CVE-2016-1238/remove-dot-in-padwalker.diff
index 4dd7a29d9..95c58a5a6 100644
--- a/debian/patches/fixes/CVE-2016-1238/remove-dot-in-padwalker.diff
+++ b/debian/patches/fixes/CVE-2016-1238/remove-dot-in-padwalker.diff
@@ -11,7 +11,7 @@ Patch-Name: fixes/CVE-2016-1238/remove-dot-in-padwalker.diff
  1 file changed, 8 insertions(+), 2 deletions(-)
 
 diff --git a/lib/perl5db.pl b/lib/perl5db.pl
-index f962fb8..a1f867b 100644
+index f962fb8e0..a1f867b5e 100644
 --- a/lib/perl5db.pl
 +++ b/lib/perl5db.pl
 @@ -1930,7 +1930,10 @@ sub _DB__handle_y_command {
diff --git a/debian/patches/fixes/CVE-2016-1238/remove-dot-when-loading.diff b/debian/patches/fixes/CVE-2016-1238/remove-dot-when-loading.diff
index 05e3d28f6..e4db2b11d 100644
--- a/debian/patches/fixes/CVE-2016-1238/remove-dot-when-loading.diff
+++ b/debian/patches/fixes/CVE-2016-1238/remove-dot-when-loading.diff
@@ -42,7 +42,7 @@ Patch-Name: fixes/CVE-2016-1238/remove-dot-when-loading.diff
  24 files changed, 35 insertions(+), 1 deletion(-)
 
 diff --git a/cpan/Archive-Tar/bin/ptar b/cpan/Archive-Tar/bin/ptar
-index 0eaffa7..9dc6402 100644
+index 0eaffa7cc..9dc6402c6 100644
 --- a/cpan/Archive-Tar/bin/ptar
 +++ b/cpan/Archive-Tar/bin/ptar
 @@ -1,6 +1,7 @@
@@ -54,7 +54,7 @@ index 0eaffa7..9dc6402 100644
  use Getopt::Std;
  use Archive::Tar;
 diff --git a/cpan/Archive-Tar/bin/ptardiff b/cpan/Archive-Tar/bin/ptardiff
-index 5205d63..c119dfa 100644
+index 5205d63c3..c119dfa16 100644
 --- a/cpan/Archive-Tar/bin/ptardiff
 +++ b/cpan/Archive-Tar/bin/ptardiff
 @@ -1,5 +1,6 @@
@@ -65,7 +65,7 @@ index 5205d63..c119dfa 100644
  use Archive::Tar;
  use Getopt::Std;
 diff --git a/cpan/Archive-Tar/bin/ptargrep b/cpan/Archive-Tar/bin/ptargrep
-index 0367d84..30ebf65 100644
+index 0367d849d..30ebf65a6 100644
 --- a/cpan/Archive-Tar/bin/ptargrep
 +++ b/cpan/Archive-Tar/bin/ptargrep
 @@ -4,6 +4,7 @@
@@ -77,7 +77,7 @@ index 0367d84..30ebf65 100644
  use warnings;
  
 diff --git a/cpan/CPAN/scripts/cpan b/cpan/CPAN/scripts/cpan
-index 3b4a5b5..664adcb 100644
+index 3b4a5b506..664adcb3a 100644
 --- a/cpan/CPAN/scripts/cpan
 +++ b/cpan/CPAN/scripts/cpan
 @@ -1,5 +1,6 @@
@@ -88,7 +88,7 @@ index 3b4a5b5..664adcb 100644
  use vars qw($VERSION);
  
 diff --git a/cpan/Digest-SHA/shasum b/cpan/Digest-SHA/shasum
-index 32b7173..3f23214 100644
+index 32b71733b..3f2321469 100644
 --- a/cpan/Digest-SHA/shasum
 +++ b/cpan/Digest-SHA/shasum
 @@ -94,6 +94,7 @@ L<Digest::SHA::PurePerl>.
@@ -100,7 +100,7 @@ index 32b7173..3f23214 100644
  use Fcntl;
  use Getopt::Long;
 diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs
-index a9af54f..1e37efc 100644
+index a9af54f70..1e37efc3f 100644
 --- a/cpan/Encode/bin/enc2xs
 +++ b/cpan/Encode/bin/enc2xs
 @@ -4,6 +4,7 @@ BEGIN {
@@ -112,7 +112,7 @@ index a9af54f..1e37efc 100644
  use strict;
  use warnings;
 diff --git a/cpan/Encode/bin/piconv b/cpan/Encode/bin/piconv
-index 669304b..f041503 100644
+index 669304b68..f041503a1 100644
 --- a/cpan/Encode/bin/piconv
 +++ b/cpan/Encode/bin/piconv
 @@ -1,6 +1,7 @@
@@ -124,7 +124,7 @@ index 669304b..f041503 100644
  use strict;
  use Encode ;
 diff --git a/cpan/Encode/bin/ucmlint b/cpan/Encode/bin/ucmlint
-index 622376d..25e0d67 100644
+index 622376d88..25e0d67ef 100644
 --- a/cpan/Encode/bin/ucmlint
 +++ b/cpan/Encode/bin/ucmlint
 @@ -3,6 +3,7 @@
@@ -136,7 +136,7 @@ index 622376d..25e0d67 100644
  our  $VERSION = do { my @r = (q$Revision: 2.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
  
 diff --git a/cpan/Encode/bin/unidump b/cpan/Encode/bin/unidump
-index ae0da30..f190827 100644
+index ae0da3085..f19082744 100644
 --- a/cpan/Encode/bin/unidump
 +++ b/cpan/Encode/bin/unidump
 @@ -1,5 +1,6 @@
@@ -147,7 +147,7 @@ index ae0da30..f190827 100644
  use Encode;
  use Getopt::Std;
 diff --git a/cpan/ExtUtils-MakeMaker/bin/instmodsh b/cpan/ExtUtils-MakeMaker/bin/instmodsh
-index e551434..b3b109f 100644
+index e55143480..b3b109f47 100644
 --- a/cpan/ExtUtils-MakeMaker/bin/instmodsh
 +++ b/cpan/ExtUtils-MakeMaker/bin/instmodsh
 @@ -1,5 +1,6 @@
@@ -158,7 +158,7 @@ index e551434..b3b109f 100644
  use IO::File;
  use ExtUtils::Packlist;
 diff --git a/cpan/IO-Compress/bin/zipdetails b/cpan/IO-Compress/bin/zipdetails
-index 0249850..1b9c70a 100644
+index 024985045..1b9c70a8f 100644
 --- a/cpan/IO-Compress/bin/zipdetails
 +++ b/cpan/IO-Compress/bin/zipdetails
 @@ -5,6 +5,7 @@
@@ -170,7 +170,7 @@ index 0249850..1b9c70a 100644
  use warnings ;
  
 diff --git a/cpan/JSON-PP/bin/json_pp b/cpan/JSON-PP/bin/json_pp
-index df9d243..896cd2f 100644
+index df9d243eb..896cd2f36 100644
 --- a/cpan/JSON-PP/bin/json_pp
 +++ b/cpan/JSON-PP/bin/json_pp
 @@ -1,5 +1,6 @@
@@ -181,7 +181,7 @@ index df9d243..896cd2f 100644
  use Getopt::Long;
  
 diff --git a/cpan/Test-Harness/bin/prove b/cpan/Test-Harness/bin/prove
-index 968fa73..4ce8c91 100644
+index 968fa7311..4ce8c9119 100644
 --- a/cpan/Test-Harness/bin/prove
 +++ b/cpan/Test-Harness/bin/prove
 @@ -1,5 +1,6 @@
@@ -192,7 +192,7 @@ index 968fa73..4ce8c91 100644
  use warnings;
  use App::Prove;
 diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp b/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
-index e2ac71a..d596cdf 100644
+index e2ac71a32..d596cdff4 100644
 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
 +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
 @@ -1,5 +1,6 @@
@@ -203,7 +203,7 @@ index e2ac71a..d596cdf 100644
  eval {
    require ExtUtils::ParseXS;
 diff --git a/dist/Module-CoreList/corelist b/dist/Module-CoreList/corelist
-index aa4a945..bbe61cc 100644
+index aa4a94571..bbe61ccee 100644
 --- a/dist/Module-CoreList/corelist
 +++ b/dist/Module-CoreList/corelist
 @@ -130,6 +130,7 @@ requested perl versions.
@@ -215,7 +215,7 @@ index aa4a945..bbe61cc 100644
  use Getopt::Long qw(:config no_ignore_case);
  use Pod::Usage;
 diff --git a/ext/Pod-Html/bin/pod2html b/ext/Pod-Html/bin/pod2html
-index b022859..7d1d232 100644
+index b02285919..7d1d23268 100644
 --- a/ext/Pod-Html/bin/pod2html
 +++ b/ext/Pod-Html/bin/pod2html
 @@ -216,6 +216,7 @@ This program is distributed under the Artistic License.
@@ -227,7 +227,7 @@ index b022859..7d1d232 100644
  
  pod2html @ARGV;
 diff --git a/utils/c2ph.PL b/utils/c2ph.PL
-index 13389ec..cef0b5c 100644
+index 13389ec07..cef0b5cf3 100644
 --- a/utils/c2ph.PL
 +++ b/utils/c2ph.PL
 @@ -280,6 +280,7 @@ Anyway, here it is.  Should run on perl v4 or greater.  Maybe less.
@@ -239,7 +239,7 @@ index 13389ec..cef0b5c 100644
  
  ######################################################################
 diff --git a/utils/h2ph.PL b/utils/h2ph.PL
-index d082f22..2523c0a 100644
+index d082f2272..2523c0a65 100644
 --- a/utils/h2ph.PL
 +++ b/utils/h2ph.PL
 @@ -36,6 +36,8 @@ $Config{startperl}
@@ -252,7 +252,7 @@ index d082f22..2523c0a 100644
  
  use Config;
 diff --git a/utils/h2xs.PL b/utils/h2xs.PL
-index 4cb0943..8fda87b 100644
+index 4cb094374..8fda87b0a 100644
 --- a/utils/h2xs.PL
 +++ b/utils/h2xs.PL
 @@ -35,6 +35,8 @@ $Config{startperl}
@@ -265,7 +265,7 @@ index 4cb0943..8fda87b 100644
  
  =head1 NAME
 diff --git a/utils/libnetcfg.PL b/utils/libnetcfg.PL
-index 59a2de8..26d2f99 100644
+index 59a2de87c..26d2f995a 100644
 --- a/utils/libnetcfg.PL
 +++ b/utils/libnetcfg.PL
 @@ -97,6 +97,7 @@ Jarkko Hietaniemi, conversion into libnetcfg for inclusion into Perl 5.8.
@@ -277,7 +277,7 @@ index 59a2de8..26d2f99 100644
  use IO::File;
  use Getopt::Std;
 diff --git a/utils/perlbug.PL b/utils/perlbug.PL
-index 885785a..ae8c343 100644
+index 885785ae0..ae8c34305 100644
 --- a/utils/perlbug.PL
 +++ b/utils/perlbug.PL
 @@ -57,6 +57,7 @@ print OUT <<'!NO!SUBS!';
@@ -289,7 +289,7 @@ index 885785a..ae8c343 100644
  use strict;
  use Config;
 diff --git a/utils/perldoc.PL b/utils/perldoc.PL
-index e201de9..cd60bd4 100644
+index e201de9d9..cd60bd435 100644
 --- a/utils/perldoc.PL
 +++ b/utils/perldoc.PL
 @@ -44,7 +44,10 @@ $Config{startperl}
@@ -305,7 +305,7 @@ index e201de9..cd60bd4 100644
  exit( Pod::Perldoc->run() );
  
 diff --git a/utils/perlivp.PL b/utils/perlivp.PL
-index cc49f96..696a44e 100644
+index cc49f964b..696a44e0f 100644
 --- a/utils/perlivp.PL
 +++ b/utils/perlivp.PL
 @@ -39,6 +39,8 @@ print OUT "\n# perlivp $^V\n";
@@ -318,7 +318,7 @@ index cc49f96..696a44e 100644
      warn "@_\n" if @_;
      print << "    EOUSAGE";
 diff --git a/utils/splain.PL b/utils/splain.PL
-index 9c70b61..cae84a0 100644
+index 9c70b61af..cae84a0d3 100644
 --- a/utils/splain.PL
 +++ b/utils/splain.PL
 @@ -38,6 +38,12 @@ $Config{startperl}
diff --git a/debian/patches/fixes/CVE-2016-2381_duplicate_env.diff b/debian/patches/fixes/CVE-2016-2381_duplicate_env.diff
index bba6c5054..24f731308 100644
--- a/debian/patches/fixes/CVE-2016-2381_duplicate_env.diff
+++ b/debian/patches/fixes/CVE-2016-2381_duplicate_env.diff
@@ -26,7 +26,7 @@ Patch-Name: fixes/CVE-2016-2381_duplicate_env.diff
  1 file changed, 49 insertions(+), 2 deletions(-)
 
 diff --git a/perl.c b/perl.c
-index 67d32ce..26aeb91 100644
+index 67d32ce9a..26aeb91b3 100644
 --- a/perl.c
 +++ b/perl.c
 @@ -4277,23 +4277,70 @@ S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env)
diff --git a/debian/patches/fixes/array-cloning.diff b/debian/patches/fixes/array-cloning.diff
index 6b69d0551..d7f0a53a5 100644
--- a/debian/patches/fixes/array-cloning.diff
+++ b/debian/patches/fixes/array-cloning.diff
@@ -19,7 +19,7 @@ Patch-Name: fixes/array-cloning.diff
  2 files changed, 8 insertions(+), 2 deletions(-)
 
 diff --git a/sv.c b/sv.c
-index af393bd..06db7d9 100644
+index af393bdea..06db7d9b2 100644
 --- a/sv.c
 +++ b/sv.c
 @@ -12698,7 +12698,7 @@ S_sv_dup_common(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
@@ -32,7 +32,7 @@ index af393bd..06db7d9 100644
  		}
  		else {
 diff --git a/t/op/threads.t b/t/op/threads.t
-index 67b5f4a..bec210b 100644
+index 67b5f4a71..bec210b9d 100644
 --- a/t/op/threads.t
 +++ b/t/op/threads.t
 @@ -9,7 +9,7 @@ BEGIN {
diff --git a/debian/patches/fixes/document_makemaker_ccflags.diff b/debian/patches/fixes/document_makemaker_ccflags.diff
index 28257822b..161c58f91 100644
--- a/debian/patches/fixes/document_makemaker_ccflags.diff
+++ b/debian/patches/fixes/document_makemaker_ccflags.diff
@@ -15,7 +15,7 @@ Patch-Name: fixes/document_makemaker_ccflags.diff
  1 file changed, 4 insertions(+)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
-index d2fabf6..fabb021 100644
+index d2fabf6b2..fabb0215a 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
 @@ -1716,6 +1716,10 @@ currently used by MakeMaker but may be handy in Makefile.PLs.
diff --git a/debian/patches/fixes/encode-unicode-bom.diff b/debian/patches/fixes/encode-unicode-bom.diff
index ae91c7667..23460f57a 100644
--- a/debian/patches/fixes/encode-unicode-bom.diff
+++ b/debian/patches/fixes/encode-unicode-bom.diff
@@ -15,7 +15,7 @@ Patch-Name: fixes/encode-unicode-bom.diff
  2 files changed, 20 insertions(+), 4 deletions(-)
 
 diff --git a/cpan/Encode/Unicode/Unicode.pm b/cpan/Encode/Unicode/Unicode.pm
-index 6b35cb7..9b197d9 100644
+index 6b35cb756..9b197d97e 100644
 --- a/cpan/Encode/Unicode/Unicode.pm
 +++ b/cpan/Encode/Unicode/Unicode.pm
 @@ -176,7 +176,13 @@ simply treated as a normal character (ZERO WIDTH NO-BREAK SPACE).
@@ -34,7 +34,7 @@ index 6b35cb7..9b197d9 100644
  =item *
  
 diff --git a/cpan/Encode/Unicode/Unicode.xs b/cpan/Encode/Unicode/Unicode.xs
-index cf42ab8..831708c 100644
+index cf42ab867..831708c2c 100644
 --- a/cpan/Encode/Unicode/Unicode.xs
 +++ b/cpan/Encode/Unicode/Unicode.xs
 @@ -164,9 +164,19 @@ CODE:
diff --git a/debian/patches/fixes/extutils_file_path_compat.diff b/debian/patches/fixes/extutils_file_path_compat.diff
index f3d4592b4..4ec64f4a5 100644
--- a/debian/patches/fixes/extutils_file_path_compat.diff
+++ b/debian/patches/fixes/extutils_file_path_compat.diff
@@ -19,7 +19,7 @@ Patch-Name: fixes/extutils_file_path_compat.diff
  1 file changed, 7 insertions(+), 6 deletions(-)
 
 diff --git a/dist/ExtUtils-Command/t/eu_command.t b/dist/ExtUtils-Command/t/eu_command.t
-index aa9fcb8..8ec142d 100644
+index aa9fcb80b..8ec142d32 100644
 --- a/dist/ExtUtils-Command/t/eu_command.t
 +++ b/dist/ExtUtils-Command/t/eu_command.t
 @@ -151,20 +151,21 @@ BEGIN {
diff --git a/debian/patches/fixes/failed_require_diagnostics.diff b/debian/patches/fixes/failed_require_diagnostics.diff
index abee8972e..4fe03c897 100644
--- a/debian/patches/fixes/failed_require_diagnostics.diff
+++ b/debian/patches/fixes/failed_require_diagnostics.diff
@@ -30,7 +30,7 @@ Patch-Name: fixes/failed_require_diagnostics.diff
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/pp_ctl.c b/pp_ctl.c
-index 11314ec..ce51abc 100644
+index 11314ecea..ce51abcb3 100644
 --- a/pp_ctl.c
 +++ b/pp_ctl.c
 @@ -4050,7 +4050,8 @@ PP(pp_require)
diff --git a/debian/patches/fixes/file_path_chmod_race.diff b/debian/patches/fixes/file_path_chmod_race.diff
index bc25292d2..0569a2b78 100644
--- a/debian/patches/fixes/file_path_chmod_race.diff
+++ b/debian/patches/fixes/file_path_chmod_race.diff
@@ -20,7 +20,7 @@ Patch-Name: fixes/file_path_chmod_race.diff
  2 files changed, 31 insertions(+), 13 deletions(-)
 
 diff --git a/cpan/File-Path/lib/File/Path.pm b/cpan/File-Path/lib/File/Path.pm
-index 23751d5..0ea6671 100644
+index 23751d5fa..0ea6671c7 100644
 --- a/cpan/File-Path/lib/File/Path.pm
 +++ b/cpan/File-Path/lib/File/Path.pm
 @@ -284,13 +284,21 @@ sub _rmtree {
@@ -52,7 +52,7 @@ index 23751d5..0ea6671 100644
                      next ROOT_DIR;
                  }
 diff --git a/cpan/File-Path/t/Path.t b/cpan/File-Path/t/Path.t
-index a33c15a..b6df00a 100644
+index a33c15a23..b6df00a9a 100644
 --- a/cpan/File-Path/t/Path.t
 +++ b/cpan/File-Path/t/Path.t
 @@ -16,6 +16,13 @@ my $has_Test_Output = $@ ? 0 : 1;
diff --git a/debian/patches/fixes/hurd_socket_recv_todo.diff b/debian/patches/fixes/hurd_socket_recv_todo.diff
index 35bc7e2df..debf83cf4 100644
--- a/debian/patches/fixes/hurd_socket_recv_todo.diff
+++ b/debian/patches/fixes/hurd_socket_recv_todo.diff
@@ -11,7 +11,7 @@ Patch-Name: fixes/hurd_socket_recv_todo.diff
  1 file changed, 11 insertions(+), 4 deletions(-)
 
 diff --git a/t/io/socket.t b/t/io/socket.t
-index 345d196..b51079a 100644
+index 345d196b9..b51079a4a 100644
 --- a/t/io/socket.t
 +++ b/t/io/socket.t
 @@ -101,9 +101,15 @@ SKIP: {
diff --git a/debian/patches/fixes/io_uncompress_gunzip_inmemory.diff b/debian/patches/fixes/io_uncompress_gunzip_inmemory.diff
index e58b46f04..58a4250f2 100644
--- a/debian/patches/fixes/io_uncompress_gunzip_inmemory.diff
+++ b/debian/patches/fixes/io_uncompress_gunzip_inmemory.diff
@@ -12,7 +12,7 @@ Patch-Name: fixes/io_uncompress_gunzip_inmemory.diff
  2 files changed, 27 insertions(+), 3 deletions(-)
 
 diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Base.pm b/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
-index 4d1b780..c3ff842 100644
+index 4d1b78028..c3ff842e7 100644
 --- a/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
 +++ b/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
 @@ -756,7 +756,8 @@ sub _rd2
@@ -26,7 +26,7 @@ index 4d1b780..c3ff842 100644
                  ${ $x->{buff} } = '' ;
              }
 diff --git a/cpan/IO-Compress/t/compress/oneshot.pl b/cpan/IO-Compress/t/compress/oneshot.pl
-index 1e56b56..43d9c02 100644
+index 1e56b5672..43d9c02f6 100644
 --- a/cpan/IO-Compress/t/compress/oneshot.pl
 +++ b/cpan/IO-Compress/t/compress/oneshot.pl
 @@ -16,7 +16,7 @@ BEGIN {
diff --git a/debian/patches/fixes/memoize_storable_nstore.diff b/debian/patches/fixes/memoize_storable_nstore.diff
index ab56a1254..c75d53884 100644
--- a/debian/patches/fixes/memoize_storable_nstore.diff
+++ b/debian/patches/fixes/memoize_storable_nstore.diff
@@ -53,7 +53,7 @@ Patch-Name: fixes/memoize_storable_nstore.diff
  2 files changed, 21 insertions(+), 5 deletions(-)
 
 diff --git a/cpan/Memoize/Memoize/Storable.pm b/cpan/Memoize/Memoize/Storable.pm
-index 1314797..87876f2 100644
+index 131479729..87876f227 100644
 --- a/cpan/Memoize/Memoize/Storable.pm
 +++ b/cpan/Memoize/Memoize/Storable.pm
 @@ -55,7 +55,7 @@ sub DESTROY {
@@ -66,7 +66,7 @@ index 1314797..87876f2 100644
    } else {
      Storable::store($self->{H}, $self->{FILENAME});
 diff --git a/cpan/Memoize/t/tie_storable.t b/cpan/Memoize/t/tie_storable.t
-index de3b8dc..a624238 100644
+index de3b8dc26..a62423850 100644
 --- a/cpan/Memoize/t/tie_storable.t
 +++ b/cpan/Memoize/t/tie_storable.t
 @@ -31,18 +31,34 @@ if ($@) {
diff --git a/debian/patches/fixes/net_smtp_docs.diff b/debian/patches/fixes/net_smtp_docs.diff
index 57407a9d5..f91e72d68 100644
--- a/debian/patches/fixes/net_smtp_docs.diff
+++ b/debian/patches/fixes/net_smtp_docs.diff
@@ -12,7 +12,7 @@ Patch-Name: fixes/net_smtp_docs.diff
  1 file changed, 1 insertion(+)
 
 diff --git a/cpan/libnet/Net/SMTP.pm b/cpan/libnet/Net/SMTP.pm
-index 705b5c5..17c1d21 100644
+index 705b5c5ab..17c1d21ec 100644
 --- a/cpan/libnet/Net/SMTP.pm
 +++ b/cpan/libnet/Net/SMTP.pm
 @@ -637,6 +637,7 @@ Net::SMTP will attempt to extract the address from the value passed.
diff --git a/debian/patches/fixes/perldb-threads.diff b/debian/patches/fixes/perldb-threads.diff
index fa9e85ac1..3d3769d52 100644
--- a/debian/patches/fixes/perldb-threads.diff
+++ b/debian/patches/fixes/perldb-threads.diff
@@ -28,7 +28,7 @@ Patch-Name: fixes/perldb-threads.diff
  1 file changed, 1 insertion(+)
 
 diff --git a/lib/perl5db.pl b/lib/perl5db.pl
-index 6ac4d36..f962fb8 100644
+index 6ac4d36f3..f962fb8e0 100644
 --- a/lib/perl5db.pl
 +++ b/lib/perl5db.pl
 @@ -866,6 +866,7 @@ BEGIN {
diff --git a/debian/patches/fixes/perldoc-less-R.diff b/debian/patches/fixes/perldoc-less-R.diff
index 079f2f6c0..8011d2267 100644
--- a/debian/patches/fixes/perldoc-less-R.diff
+++ b/debian/patches/fixes/perldoc-less-R.diff
@@ -16,7 +16,7 @@ Patch-Name: fixes/perldoc-less-R.diff
  1 file changed, 3 insertions(+)
 
 diff --git a/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm b/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
-index 6ddd21d..1089f5b 100644
+index 6ddd21d95..1089f5bb3 100644
 --- a/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
 +++ b/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
 @@ -1892,6 +1892,9 @@ sub page {  # apply a pager to the output file
diff --git a/debian/patches/fixes/pod_man_reproducible_date.diff b/debian/patches/fixes/pod_man_reproducible_date.diff
index 30f0f7791..0d8d6af37 100644
--- a/debian/patches/fixes/pod_man_reproducible_date.diff
+++ b/debian/patches/fixes/pod_man_reproducible_date.diff
@@ -19,7 +19,7 @@ Patch-Name: fixes/pod_man_reproducible_date.diff
  2 files changed, 72 insertions(+), 26 deletions(-)
 
 diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm
-index 72ca9ff..0536662 100644
+index 72ca9ff1d..053666289 100644
 --- a/cpan/podlators/lib/Pod/Man.pm
 +++ b/cpan/podlators/lib/Pod/Man.pm
 @@ -876,25 +876,42 @@ sub devise_title {
@@ -128,7 +128,7 @@ index 72ca9ff..0536662 100644
  
  Encoding handling assumes that PerlIO is available and does not work
 diff --git a/cpan/podlators/t/devise-date.t b/cpan/podlators/t/devise-date.t
-index 3cce9f5..c610dd9 100644
+index 3cce9f5b0..c610dd95c 100644
 --- a/cpan/podlators/t/devise-date.t
 +++ b/cpan/podlators/t/devise-date.t
 @@ -1,15 +1,28 @@
diff --git a/debian/patches/fixes/regcomp-mips-optim.diff b/debian/patches/fixes/regcomp-mips-optim.diff
index c7ff6aa49..415f6bbb2 100644
--- a/debian/patches/fixes/regcomp-mips-optim.diff
+++ b/debian/patches/fixes/regcomp-mips-optim.diff
@@ -22,7 +22,7 @@ Patch-Name: fixes/regcomp-mips-optim.diff
  1 file changed, 5 insertions(+)
 
 diff --git a/cflags.SH b/cflags.SH
-index 54ce74c..0c39d18 100755
+index 54ce74c99..0c39d18f1 100755
 --- a/cflags.SH
 +++ b/cflags.SH
 @@ -292,6 +292,11 @@ for file do
diff --git a/debian/patches/fixes/regcomp_whitespace_fix.diff b/debian/patches/fixes/regcomp_whitespace_fix.diff
index d690106d4..619069182 100644
--- a/debian/patches/fixes/regcomp_whitespace_fix.diff
+++ b/debian/patches/fixes/regcomp_whitespace_fix.diff
@@ -15,7 +15,7 @@ Patch-Name: fixes/regcomp_whitespace_fix.diff
  1 file changed, 12 insertions(+), 16 deletions(-)
 
 diff --git a/regcomp.c b/regcomp.c
-index 7d1aa28..84af011 100644
+index 7d1aa28c9..84af01134 100644
 --- a/regcomp.c
 +++ b/regcomp.c
 @@ -16490,22 +16490,18 @@ Perl_save_re_context(pTHX)
diff --git a/debian/patches/fixes/regexp-performance.diff b/debian/patches/fixes/regexp-performance.diff
index 8288a6b0d..567d462b4 100644
--- a/debian/patches/fixes/regexp-performance.diff
+++ b/debian/patches/fixes/regexp-performance.diff
@@ -70,7 +70,7 @@ Patch-Name: fixes/regexp-performance.diff
  1 file changed, 45 insertions(+), 79 deletions(-)
 
 diff --git a/regexec.c b/regexec.c
-index 5edac3f..66f6e04 100644
+index 5edac3f4f..66f6e0496 100644
 --- a/regexec.c
 +++ b/regexec.c
 @@ -756,7 +756,7 @@ Perl_re_intuit_start(pTHX_
diff --git a/debian/patches/fixes/respect_umask.diff b/debian/patches/fixes/respect_umask.diff
index c4ef92baf..a6bf8b40e 100644
--- a/debian/patches/fixes/respect_umask.diff
+++ b/debian/patches/fixes/respect_umask.diff
@@ -13,7 +13,7 @@ Patch-Name: fixes/respect_umask.diff
  2 files changed, 18 insertions(+), 18 deletions(-)
 
 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
-index 4140432..8fdb67c 100644
+index 4140432bc..8fdb67c1d 100644
 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
 @@ -2075,7 +2075,7 @@ doc__install : doc_site_install
@@ -77,7 +77,7 @@ index 4140432..8fdb67c 100644
  		"installed into" "$(INSTALLVENDORLIB)" \
  		LINKTYPE "$(LINKTYPE)" \
 diff --git a/dist/ExtUtils-Install/lib/ExtUtils/Install.pm b/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
-index eec57aa..06cc530 100644
+index eec57aa8b..06cc53072 100644
 --- a/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
 +++ b/dist/ExtUtils-Install/lib/ExtUtils/Install.pm
 @@ -450,7 +450,7 @@ sub _can_write_dir {
diff --git a/debian/patches/fixes/socket_test_recv_fix.diff b/debian/patches/fixes/socket_test_recv_fix.diff
index e6077d446..83ef7f9d8 100644
--- a/debian/patches/fixes/socket_test_recv_fix.diff
+++ b/debian/patches/fixes/socket_test_recv_fix.diff
@@ -11,7 +11,7 @@ Patch-Name: fixes/socket_test_recv_fix.diff
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/t/io/socket.t b/t/io/socket.t
-index b723e3c..345d196 100644
+index b723e3c6e..345d196b9 100644
 --- a/t/io/socket.t
 +++ b/t/io/socket.t
 @@ -102,7 +102,7 @@ SKIP: {
diff --git a/debian/patches/fixes/utf8_regexp_crash.diff b/debian/patches/fixes/utf8_regexp_crash.diff
index 59667a373..1044f70ac 100644
--- a/debian/patches/fixes/utf8_regexp_crash.diff
+++ b/debian/patches/fixes/utf8_regexp_crash.diff
@@ -60,7 +60,7 @@ Patch-Name: fixes/utf8_regexp_crash.diff
  create mode 100644 t/porting/re_context.t
 
 diff --git a/MANIFEST b/MANIFEST
-index 6896854..09fbabd 100644
+index 689685447..09fbabde4 100644
 --- a/MANIFEST
 +++ b/MANIFEST
 @@ -5386,6 +5386,7 @@ t/porting/perlfunc.t		Test that Functions_pm.PL can parse perlfunc.pod
@@ -72,7 +72,7 @@ index 6896854..09fbabd 100644
  t/porting/ss_dup.t		Check that sv.c:ss_dup handle everything
  t/porting/test_bootstrap.t	Test that the instructions for test bootstrapping aren't accidentally overlooked.
 diff --git a/regcomp.c b/regcomp.c
-index 573072a..7d1aa28 100644
+index 573072aa2..7d1aa28c9 100644
 --- a/regcomp.c
 +++ b/regcomp.c
 @@ -16471,13 +16471,28 @@ void
@@ -109,7 +109,7 @@ index 573072a..7d1aa28 100644
                                                 "%lu", (long)i);
 diff --git a/t/porting/re_context.t b/t/porting/re_context.t
 new file mode 100644
-index 0000000..5467b93
+index 000000000..5467b93ba
 --- /dev/null
 +++ b/t/porting/re_context.t
 @@ -0,0 +1,43 @@
@@ -157,7 +157,7 @@ index 0000000..5467b93
 +
 +exit 0;
 diff --git a/t/re/pat_advanced.t b/t/re/pat_advanced.t
-index 4fd9f91..77a0f0e 100644
+index 4fd9f9113..77a0f0e6f 100644
 --- a/t/re/pat_advanced.t
 +++ b/t/re/pat_advanced.t
 @@ -2255,6 +2255,19 @@ EOP
diff --git a/debian/patches/fixes/xsloader-eval.diff b/debian/patches/fixes/xsloader-eval.diff
index 034efd251..1c18268dd 100644
--- a/debian/patches/fixes/xsloader-eval.diff
+++ b/debian/patches/fixes/xsloader-eval.diff
@@ -47,7 +47,7 @@ Patch-Name: fixes/xsloader-eval.diff
  2 files changed, 51 insertions(+), 1 deletion(-)
 
 diff --git a/dist/XSLoader/XSLoader_pm.PL b/dist/XSLoader/XSLoader_pm.PL
-index e382058..c494005 100644
+index e382058a0..c49400559 100644
 --- a/dist/XSLoader/XSLoader_pm.PL
 +++ b/dist/XSLoader/XSLoader_pm.PL
 @@ -86,6 +86,31 @@ print OUT <<'EOT';
@@ -83,7 +83,7 @@ index e382058..c494005 100644
  
  my $dl_dlext = quotemeta($Config::Config{'dlext'});
 diff --git a/dist/XSLoader/t/XSLoader.t b/dist/XSLoader/t/XSLoader.t
-index 20ca32b..d254f19 100644
+index 20ca32bb4..d254f199f 100644
 --- a/dist/XSLoader/t/XSLoader.t
 +++ b/dist/XSLoader/t/XSLoader.t
 @@ -33,7 +33,7 @@ my %modules = (
diff --git a/debian/patches/series b/debian/patches/series
index e622a8eda..ec3de274e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -93,3 +93,5 @@ fixes/xsloader-eval.diff
 fixes/file_path_chmod_race.diff
 fixes/extutils_file_path_compat.diff
 debian/customized_file_path.diff
+debian/CVE-2016-1238/base-pm-amends-pt1.diff
+debian/CVE-2016-1238/base-pm-amends-pt2.diff
diff --git a/dist/base/lib/base.pm b/dist/base/lib/base.pm
index 2b1509620..85d87e116 100644
--- a/dist/base/lib/base.pm
+++ b/dist/base/lib/base.pm
@@ -5,6 +5,11 @@ use vars qw($VERSION);
 $VERSION = '2.22';
 $VERSION = eval $VERSION;
 
+# simplest way to avoid indexing of the package: no package statement
+sub base::__inc::unhook { @INC = grep !(ref eq 'CODE' && $_ == $_[0]), @INC }
+# instance is blessed array of coderefs to be removed from @INC at scope exit
+sub base::__inc::scope_guard::DESTROY { base::__inc::unhook $_ for @{$_[0]} }
+
 # constant.pm is slow
 sub SUCCESS () { 1 }
 
@@ -90,17 +95,59 @@ sub import {
 
         next if grep $_->isa($base), ($inheritor, @bases);
 
-        # Following blocks help isolate $SIG{__DIE__} changes
+        # Following blocks help isolate $SIG{__DIE__} and @INC changes
         {
             my $sigdie;
             {
                 local $SIG{__DIE__};
                 my $fn = _module_to_filename($base);
+                my $dot_hidden;
                 eval {
-                    local @INC = @INC;
-                    pop @INC if $INC[-1] eq '.';
+                    my $guard;
+                    if ($INC[-1] eq '.' && %{"$base\::"}) {
+                        # So:  the package already exists   => this an optional load
+                        # And: there is a dot at the end of @INC  => we want to hide it
+                        # However: we only want to hide it during our *own* require()
+                        # (i.e. without affecting nested require()s).
+                        # So we add a hook to @INC whose job is to hide the dot, but which
+                        # first checks checks the callstack depth, because within nested
+                        # require()s the callstack is deeper.
+                        # Since CORE::GLOBAL::require makes it unknowable in advance what
+                        # the exact relevant callstack depth will be, we have to record it
+                        # inside a hook. So we put another hook just for that at the front
+                        # of @INC, where it's guaranteed to run -- immediately.
+                        # The dot-hiding hook does its job by sitting directly in front of
+                        # the dot and removing itself from @INC when reached. This causes
+                        # the dot to move up one index in @INC, causing the loop inside
+                        # pp_require() to skip it.
+                        # Loaded coded may disturb this precise arrangement, but that's OK
+                        # because the hook is inert by that time. It is only active during
+                        # the top-level require(), when @INC is in our control. The only
+                        # possible gotcha is if other hooks already in @INC modify @INC in
+                        # some way during that initial require().
+                        # Note that this jiggery hookery works just fine recursively: if
+                        # a module loaded via base.pm uses base.pm itself, there will be
+                        # one pair of hooks in @INC per base::import call frame, but the
+                        # pairs from different nestings do not interfere with each other.
+                        my $lvl;
+                        unshift @INC,        sub { return if defined $lvl; 1 while defined caller ++$lvl; () };
+                        splice  @INC, -1, 0, sub { return if defined caller $lvl; ++$dot_hidden, &base::__inc::unhook; () };
+                        $guard = bless [ @INC[0,-2] ], 'base::__inc::scope_guard';
+                    }
                     require $fn
                 };
+                if ($dot_hidden && (my @fn = grep -e && !( -d _ || -b _ ), $fn.'c', $fn)) {
+                    require Carp;
+                    Carp::croak(<<ERROR);
+Base class package "$base" is not empty but "$fn[0]" exists in the current directory.
+    To help avoid security issues, base.pm now refuses to load optional modules
+    from the current working directory when it is the last entry in \@INC.
+    If your software worked on previous versions of Perl, the best solution
+    is to use FindBin to detect the path properly and to add that path to
+    \@INC.  As a last resort, you can re-enable looking in the current working
+    directory by adding "use lib '.'" to your code.
+ERROR
+                }
                 # Only ignore "Can't locate" errors from our eval require.
                 # Other fatal errors (syntax etc) must be reported.
                 #
diff --git a/dist/base/t/incdot.t b/dist/base/t/incdot.t
new file mode 100644
index 000000000..412b2feef
--- /dev/null
+++ b/dist/base/t/incdot.t
@@ -0,0 +1,55 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+#######################################################################
+
+sub array_diff {
+    my ( $got, $expected ) = @_;
+    push @$got,      ( '(missing)' )          x ( @$expected - @$got ) if @$got < @$expected;
+    push @$expected, ( '(should not exist)' ) x ( @$got - @$expected ) if @$got > @$expected;
+    join "\n    ", '  All differences:', (
+        map +( "got  [$_] " . $got->[$_], 'expected'.(' ' x length).$expected->[$_] ),
+        grep $got->[$_] ne $expected->[$_],
+        0 .. $#$got
+    );
+}
+
+#######################################################################
+
+use Test::More tests => 8;  # some extra tests in t/lib/BaseInc*
+
+use lib 't/lib', sub {()};
+
+# make it look like an older perl
+BEGIN { push @INC, '.' if $INC[-1] ne '.' }
+
+BEGIN {
+	my $x = sub { CORE::require $_[0] };
+	my $y = sub { &$x };
+	my $z = sub { &$y };
+	*CORE::GLOBAL::require = $z;
+}
+
+my @expected; BEGIN { @expected = @INC }
+
+use base 'BaseIncMandatory';
+
+BEGIN {
+    @t::lib::Dummy::ISA = (); # make it look like an optional load
+    my $success = eval q{use base 't::lib::Dummy'}, my $err = $@;
+    ok !$success, 'loading optional modules from . using base.pm fails';
+    is_deeply \@INC, \@expected, '... without changes to @INC'
+        or diag array_diff [@INC], [@expected];
+    like $err, qr!Base class package "t::lib::Dummy" is not empty but "t/lib/Dummy\.pm" exists in the current directory\.!,
+        '... and the proper error message';
+}
+
+BEGIN { @BaseIncOptional::ISA = () } # make it look like an optional load
+use base 'BaseIncOptional';
+
+BEGIN {
+    @expected = ( 't/lib/on-head', @expected, 't/lib/on-tail' );
+    is_deeply \@INC, \@expected, 'modules loaded by base can extend @INC at both ends'
+        or diag array_diff [@INC], [@expected];
+}
diff --git a/dist/base/t/lib/BaseIncMandatory.pm b/dist/base/t/lib/BaseIncMandatory.pm
new file mode 100644
index 000000000..9e0718c60
--- /dev/null
+++ b/dist/base/t/lib/BaseIncMandatory.pm
@@ -0,0 +1,9 @@
+package BaseIncMandatory;
+
+BEGIN { package main;
+    is $INC[-1], '.', 'trailing dot remains in @INC during mandatory module load from base';
+    ok eval('require t::lib::Dummy'), '... and modules load fine from .' or diag "$@";
+    delete $INC{'t/lib/Dummy.pm'};
+}
+
+1;
diff --git a/dist/base/t/lib/BaseIncOptional.pm b/dist/base/t/lib/BaseIncOptional.pm
new file mode 100644
index 000000000..e5bf0174e
--- /dev/null
+++ b/dist/base/t/lib/BaseIncOptional.pm
@@ -0,0 +1,13 @@
+package BaseIncOptional;
+
+BEGIN { package main;
+    is $INC[-1], '.', 'trailing dot remains in @INC during optional module load from base';
+    ok eval('require t::lib::Dummy'), '... and modules load fine from .' or diag "$@";
+    delete $INC{'t/lib/Dummy.pm'};
+}
+
+use lib 't/lib/on-head';
+
+push @INC, 't/lib/on-tail';
+
+1;

Reply to: