diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes')
10 files changed, 841 insertions, 0 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/document_makemaker_ccflags.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/document_makemaker_ccflags.diff new file mode 100644 index 000000000..61a92712e --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/document_makemaker_ccflags.diff @@ -0,0 +1,31 @@ +From 9faf6dcc3a5c4154484d812eb3cc3dd78b35563b Mon Sep 17 00:00:00 2001 +From: Niko Tyni <ntyni@debian.org> +Date: Mon, 30 May 2011 22:54:24 +0300 +Subject: Document that CCFLAGS should include $Config{ccflags} + +Bug: https://rt.cpan.org/Public/Bug/Display.html?id=68613 +Bug-Debian: http://bugs.debian.org/628522 + +Compiling XS extensions without $Config{ccflags} can break the +binary interface on some platforms. + +Patch-Name: fixes/document_makemaker_ccflags.diff +--- + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +index fe95b27..90403e8 100644 +--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm ++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +@@ -1774,6 +1774,10 @@ currently used by MakeMaker but may be handy in Makefile.PLs. + String that will be included in the compiler call command line between + the arguments INC and OPTIMIZE. + ++The default value is taken from $Config{ccflags}. When overriding ++CCFLAGS, make sure to include the $Config{ccflags} settings to avoid ++binary incompatibilities. ++ + =item CONFIG + + Arrayref. E.g. [qw(archname manext)] defines ARCHNAME & MANEXT from diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/memoize_storable_nstore.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/memoize_storable_nstore.diff new file mode 100644 index 000000000..525f962c1 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/memoize_storable_nstore.diff @@ -0,0 +1,110 @@ +From 55d430eb02fc116581847304ca20321687978269 Mon Sep 17 00:00:00 2001 +From: Jonathan Nieder <jrnieder@gmail.com> +Date: Fri, 27 Jul 2012 10:35:07 -0500 +Subject: Memoize::Storable: respect 'nstore' option not respected +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Memoize(3perl) says: + + tie my %cache => 'Memoize::Storable', $filename, 'nstore'; + memoize 'function', SCALAR_CACHE => [HASH => \%cache]; + + Include the ‘nstore’ option to have the "Storable" database + written in ‘network order’. (See Storable for more details + about this.) + +In fact the "nstore" option does no such thing. Option parsing looks +like this: + + @options{@_} = (); + +$self->{OPTIONS}{'nstore'} is accordingly set to undef. Later +Memoize::Storable checks if the option is true, and since undef is +not true, the "else" branch is always taken. + + if ($self->{OPTIONS}{'nstore'}) { + Storable::nstore($self->{H}, $self->{FILENAME}); + } else { + Storable::store($self->{H}, $self->{FILENAME}); + } + +Correcting the condition to (exists $self->{OPTIONS}{'nstore'}) fixes +it. + +Noticed because git-svn, which uses the 'nstore' option for its +on-disk caches, was producing + + Byte order is not compatible at ../../lib/Storable.pm + +when run using a perl with a different integer size (and hence +byteorder). + +Reported by Tim Retout (RT#77790) + +Bug-Debian: http://bugs.debian.org/587650 +Bug: https://rt.cpan.org/Public/Bug/Display.html?id=77790 +Forwarded: https://rt.cpan.org/Public/Bug/Display.html?id=77790 +Patch-Name: fixes/memoize_storable_nstore.diff +--- + cpan/Memoize/Memoize/Storable.pm | 2 +- + cpan/Memoize/t/tie_storable.t | 24 ++++++++++++++++++++---- + 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 +--- a/cpan/Memoize/Memoize/Storable.pm ++++ b/cpan/Memoize/Memoize/Storable.pm +@@ -55,7 +55,7 @@ sub DESTROY { + require Carp if $Verbose; + my $self= shift; + print STDERR "Memoize::Storable::DESTROY(@_)\n" if $Verbose; +- if ($self->{OPTIONS}{'nstore'}) { ++ if (exists $self->{OPTIONS}{'nstore'}) { + Storable::nstore($self->{H}, $self->{FILENAME}); + } 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 +--- a/cpan/Memoize/t/tie_storable.t ++++ b/cpan/Memoize/t/tie_storable.t +@@ -31,18 +31,34 @@ if ($@) { + exit 0; + } + +-print "1..4\n"; ++print "1..9\n"; + + $file = "storable$$"; + 1 while unlink $file; + tryout('Memoize::Storable', $file, 1); # Test 1..4 + 1 while unlink $file; ++tryout('Memoize::Storable', $file, 5, 'nstore'); # Test 5..8 ++assert_netorder($file, 9); # Test 9 ++1 while unlink $file; ++ ++ ++sub assert_netorder { ++ my ($file, $testno) = @_; ++ ++ my $netorder = Storable::file_magic($file)->{'netorder'}; ++ print ($netorder ? "ok $testno\n" : "not ok $testno\n"); ++} + + sub tryout { +- my ($tiepack, $file, $testno) = @_; ++ my ($tiepack, $file, $testno, $option) = @_; + +- tie my %cache => $tiepack, $file +- or die $!; ++ if (defined $option) { ++ tie my %cache => $tiepack, $file, $option ++ or die $!; ++ } else { ++ tie my %cache => $tiepack, $file ++ or die $!; ++ } + + memoize 'c5', + SCALAR_CACHE => [HASH => \%cache], diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/net_smtp_docs.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/net_smtp_docs.diff new file mode 100644 index 000000000..3c31972c6 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/net_smtp_docs.diff @@ -0,0 +1,25 @@ +From fa085fedd9c406edcd4a1a256c025d5ff7f6c6de Mon Sep 17 00:00:00 2001 +From: Brendan O'Dea <bod@debian.org> +Date: Thu, 20 Sep 2007 19:47:14 +1000 +Subject: Document the Net::SMTP 'Port' option + +Bug-Debian: http://bugs.debian.org/100195 +Bug: http://rt.cpan.org/Public/Bug/Display.html?id=36038 + +Patch-Name: fixes/net_smtp_docs.diff +--- + cpan/libnet/lib/Net/SMTP.pm | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cpan/libnet/lib/Net/SMTP.pm b/cpan/libnet/lib/Net/SMTP.pm +index afd017a..6ae7d9e 100644 +--- a/cpan/libnet/lib/Net/SMTP.pm ++++ b/cpan/libnet/lib/Net/SMTP.pm +@@ -738,6 +738,7 @@ Net::SMTP will attempt to extract the address from the value passed. + + B<Debug> - Enable debugging information + ++B<Port> - Select a port on the remote host to connect to (default is 25) + + Example: + diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff new file mode 100644 index 000000000..b5564fdbc --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff @@ -0,0 +1,73 @@ +From 0ecf83f259db09cb38cb37c9b22e72be185afa8f Mon Sep 17 00:00:00 2001 +From: Hugo van der Sanden <hv@crypt.org> +Date: Thu, 11 Jun 2015 12:25:40 +0100 +Subject: fix -Cnn parsing + +Commit 22ff313068 for [perl #123814] inadvertently changed the logic when +parsing a numeric parameter to the -C option, such that the successfully +parsed number was not saved as the option value if it parsed to the end +of the argument. + +Bug: https://rt.perl.org/Ticket/Display.html?id=125381 +Bug-Debian: https://bugs.debian.org/788636 +Origin: upstream, http://perl5.git.perl.org/perl.git/commit/89d84ff965 +Patch-Name: fixes/perl-Cnn.diff +--- + t/run/switchC.t | 7 ++++++- + util.c | 17 ++++++++--------- + 2 files changed, 14 insertions(+), 10 deletions(-) + +diff --git a/t/run/switchC.t b/t/run/switchC.t +index f6aa868..4f63c3b 100644 +--- a/t/run/switchC.t ++++ b/t/run/switchC.t +@@ -11,7 +11,7 @@ BEGIN { + skip_all_if_miniperl('-C and $ENV{PERL_UNICODE} are disabled on miniperl'); + } + +-plan(tests => 13); ++plan(tests => 14); + + my $r; + +@@ -25,6 +25,11 @@ $r = runperl( switches => [ '-CO', '-w' ], + stderr => 1 ); + like( $r, qr/^$b(?:\r?\n)?$/s, '-CO: no warning on UTF-8 output' ); + ++$r = runperl( switches => [ '-C2', '-w' ], ++ prog => 'print chr(256)', ++ stderr => 1 ); ++like( $r, qr/^$b(?:\r?\n)?$/s, '-C2: no warning on UTF-8 output' ); ++ + SKIP: { + if (exists $ENV{PERL_UNICODE} && + ($ENV{PERL_UNICODE} eq "" || $ENV{PERL_UNICODE} =~ /[SO]/)) { +diff --git a/util.c b/util.c +index 8cf62f5..ee23314 100644 +--- a/util.c ++++ b/util.c +@@ -4420,16 +4420,15 @@ Perl_parse_unicode_opts(pTHX_ const char **popt) + if (isDIGIT(*p)) { + const char* endptr; + UV uv; +- if (grok_atoUV(p, &uv, &endptr) +- && uv <= U32_MAX +- && (p = endptr) +- && *p && *p != '\n' && *p != '\r' +- ) { ++ if (grok_atoUV(p, &uv, &endptr) && uv <= U32_MAX) { + opt = (U32)uv; +- if (isSPACE(*p)) +- goto the_end_of_the_opts_parser; +- else +- Perl_croak(aTHX_ "Unknown Unicode option letter '%c'", *p); ++ p = endptr; ++ if (p && *p && *p != '\n' && *p != '\r') { ++ if (isSPACE(*p)) ++ goto the_end_of_the_opts_parser; ++ else ++ Perl_croak(aTHX_ "Unknown Unicode option letter '%c'", *p); ++ } + } + } + else { diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/pod_man_reproducible_date.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/pod_man_reproducible_date.diff new file mode 100644 index 000000000..7c9ca867a --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/pod_man_reproducible_date.diff @@ -0,0 +1,170 @@ +From 9057adc106d6bbef53c9e706523cd94f1a7a08d4 Mon Sep 17 00:00:00 2001 +From: Russ Allbery <rra@debian.org> +Date: Sat, 30 Aug 2014 15:10:41 -0700 +Subject: Support POD_MAN_DATE in Pod::Man for the left-hand footer + +Honor the environment variable POD_MAN_DATE and use its contents, if +set, as the value of the left-hand footer if the date option is not +set, overriding the timestamp of the input file. This is primarily +useful to ensure reproducible builds of the same output file given the +same souce and Pod::Man version, even when file timestamps may not be +consistent. Thanks, Niko Tyni. + +Bug-Debian: http://bugs.debian.org/759405 +Origin: upstream +Patch-Name: fixes/pod_man_reproducible_date.diff +--- + cpan/podlators/lib/Pod/Man.pm | 69 +++++++++++++++++++++++++++++++----------- + cpan/podlators/t/devise-date.t | 29 +++++++++++++----- + 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 +--- a/cpan/podlators/lib/Pod/Man.pm ++++ b/cpan/podlators/lib/Pod/Man.pm +@@ -876,25 +876,42 @@ sub devise_title { + } + + # Determine the modification date and return that, properly formatted in ISO +-# format. If we can't get the modification date of the input, instead use the +-# current time. Pod::Simple returns a completely unuseful stringified file +-# handle as the source_filename for input from a file handle, so we have to +-# deal with that as well. ++# format. ++# ++# If POD_MAN_DATE is set, that overrides anything else. This can be used for ++# reproducible generation of the same file even if the input file timestamps ++# are unpredictable or the POD coms from standard input. ++# ++# Otherwise, use the modification date of the input if we can stat it. Be ++# aware that Pod::Simple returns the stringification of the file handle as ++# source_filename for input from a file handle, so we'll stat some random ref ++# string in that case. If that fails, instead use the current time. ++# ++# $self - Pod::Man object, used to get the source file ++# ++# Returns: YYYY-MM-DD date suitable for the left-hand footer + sub devise_date { + my ($self) = @_; ++ ++ # If POD_MAN_DATE is set, always use it. ++ if ($ENV{POD_MAN_DATE}) { ++ return $ENV{POD_MAN_DATE}; ++ } ++ ++ # Otherwise, get the input filename and try to stat it. If that fails, ++ # use the current time. + my $input = $self->source_filename; + my $time; + if ($input) { +- $time = (stat $input)[9] || time; ++ $time = (stat($input))[9] || time(); + } else { +- $time = time; ++ $time = time(); + } + +- # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker +- # uses this and it has to work in the core which can't load dynamic +- # libraries. +- my ($year, $month, $day) = (localtime $time)[5,4,3]; +- return sprintf ("%04d-%02d-%02d", $year + 1900, $month + 1, $day); ++ # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker uses ++ # this and it has to work in the core which can't load dynamic libraries. ++ my ($year, $month, $day) = (localtime($time))[5,4,3]; ++ return sprintf("%04d-%02d-%02d", $year + 1900, $month + 1, $day); + } + + # Print out the preamble and the title. The meaning of the arguments to .TH +@@ -1632,6 +1649,15 @@ argument. + Sets the centered page header to use instead of "User Contributed Perl + Documentation". + ++=item date ++ ++Sets the left-hand footer. If this option is not set, the contents of the ++environment variable POD_MAN_DATE, if set, will be used. Failing that, ++the modification date of the input file will be used, or the current time ++if stat() can't find that file (which will be the case if the input is ++from C<STDIN>). If obtained from the file modification date or the ++current time, he date will be formatted as C<YYYY-MM-DD>. ++ + =item errors + + How to report errors. C<die> says to throw an exception on any POD +@@ -1642,13 +1668,6 @@ POD errors entirely, as much as possible. + + The default is C<pod>. + +-=item date +- +-Sets the left-hand footer. By default, the modification date of the input +-file will be used, or the current date if stat() can't find that file (the +-case if the input is from C<STDIN>), and the date will be formatted as +-C<YYYY-MM-DD>. +- + =item fixed + + The fixed-width font to use for verbatim text and code. Defaults to +@@ -1810,6 +1829,20 @@ option was set to C<die>. + + =back + ++=head1 ENVIRONMENT ++ ++=over 4 ++ ++=item POD_MAN_DATE ++ ++If set, this will be used as the value of the left-hand footer unless the ++C<date> option is explicitly set, overriding the timestamp of the input ++file or the current time. This is primarily useful to ensure reproducible ++builds of the same output file given the same souce and Pod::Man version, ++even when file timestamps may not be consistent. ++ ++=back ++ + =head1 BUGS + + 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 +--- a/cpan/podlators/t/devise-date.t ++++ b/cpan/podlators/t/devise-date.t +@@ -1,15 +1,28 @@ +-#!/usr/bin/perl -w +- +-# In order for MakeMaker to build in the core, nothing can use +-# Fcntl which includes POSIX. devise_date()'s use of strftime() +-# was replaced. This tests that it's identical. ++#!/usr/bin/perl ++# ++# In order for MakeMaker to build in the core, nothing can use Fcntl which ++# includes POSIX. devise_date()'s use of strftime() was replaced. This tests ++# that it's identical. It also tests special handling of the POD_MAN_DATE ++# environment variable. + ++use 5.006; + use strict; +- +-use Test::More tests => 1; ++use warnings; + + use Pod::Man; + use POSIX qw(strftime); + ++use Test::More tests => 2; ++ ++# Check that the results of device_date matches strftime. There is no input ++# file name, so this will use the current time. + my $parser = Pod::Man->new; +-is $parser->devise_date, strftime("%Y-%m-%d", localtime); ++is( ++ $parser->devise_date, ++ strftime('%Y-%m-%d', localtime()), ++ 'devise_date matches strftime' ++); ++ ++# Set the override environment variable and ensure that it's honored. ++local $ENV{POD_MAN_DATE} = '2014-01-01'; ++is($parser->devise_date, '2014-01-01', 'devise_date honors POD_MAN_DATE'); diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-empty-date.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-empty-date.diff new file mode 100644 index 000000000..7ebbf9c60 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-empty-date.diff @@ -0,0 +1,51 @@ +From 183bb4af7ad862a2cf31d0dcb3dd45c100f76776 Mon Sep 17 00:00:00 2001 +From: Russ Allbery <rra@cpan.org> +Date: Wed, 15 Apr 2015 22:21:25 -0700 +Subject: Support an empty POD_MAN_DATE environment variable + +One may want to set this to an empty string. Handle that correctly. + +(backported to Perl 5.20.2 by Niko Tyni <ntyni@debian.org>) + +Origin: upstream, http://git.eyrie.org/?p=perl/podlators.git;a=commitdiff;h=e0e9fcb53e8fc954b2b1955385eea18c27f869af +Bug-Debian: https://bugs.debian.org/780259 +Patch-Name: fixes/podman-empty-date.diff +--- + cpan/podlators/lib/Pod/Man.pm | 2 +- + cpan/podlators/t/devise-date.t | 6 +++++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm +index 365892e..8997a15 100644 +--- a/cpan/podlators/lib/Pod/Man.pm ++++ b/cpan/podlators/lib/Pod/Man.pm +@@ -894,7 +894,7 @@ sub devise_date { + my ($self) = @_; + + # If POD_MAN_DATE is set, always use it. +- if ($ENV{POD_MAN_DATE}) { ++ if (defined($ENV{POD_MAN_DATE})) { + return $ENV{POD_MAN_DATE}; + } + +diff --git a/cpan/podlators/t/devise-date.t b/cpan/podlators/t/devise-date.t +index 9da9d1b..27271d9 100644 +--- a/cpan/podlators/t/devise-date.t ++++ b/cpan/podlators/t/devise-date.t +@@ -12,7 +12,7 @@ use warnings; + use Pod::Man; + use POSIX qw(strftime); + +-use Test::More tests => 2; ++use Test::More tests => 3; + + # Check that the results of device_date matches strftime. There is no input + # file name, so this will use the current time. +@@ -26,3 +26,7 @@ is( + # Set the override environment variable and ensure that it's honored. + local $ENV{POD_MAN_DATE} = '2014-01-01'; + is($parser->devise_date, '2014-01-01', 'devise_date honors POD_MAN_DATE'); ++ ++# Check that an empty environment variable is honored. ++local $ENV{POD_MAN_DATE} = q{}; ++is($parser->devise_date, q{}, 'devise_date honors empty POD_MAN_DATE'); diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-pipe.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-pipe.diff new file mode 100644 index 000000000..1a6036116 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-pipe.diff @@ -0,0 +1,109 @@ +From 7671d101baa75d7a79bfbd8c75c1595fbb3f53ba Mon Sep 17 00:00:00 2001 +From: Russ Allbery <rra@cpan.org> +Date: Sat, 7 Feb 2015 19:03:34 -0800 +Subject: Better errors for man pages from standard input + +[Pod::Man] Attempt to detect if the input came from a pipe and +therefore has a completely unhelpful (and nonreproducible) source file +name, and diagnose this as an error. Document that the name option +(--name to pod2man) is required when processing POD source from +standard input. (Debian Bug#777405) + +(backported to Perl 5.20.2 by Niko Tyni <ntyni@debian.org>) + +Origin: upstream, http://git.eyrie.org/?p=perl/podlators.git;a=commitdiff;h=d98872e46c93861b7aba14949e1258712087dc55 +Bug-Debian: https://bugs.debian.org/777405 +Patch-Name: fixes/podman-pipe.diff +--- + cpan/podlators/lib/Pod/Man.pm | 15 +++++++++++++++ + cpan/podlators/scripts/pod2man.PL | 4 ++++ + cpan/podlators/t/devise-title.t | 32 ++++++++++++++++++++++++++++++++ + 3 files changed, 51 insertions(+) + create mode 100755 cpan/podlators/t/devise-title.t + +diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm +index 8997a15..969eaff 100644 +--- a/cpan/podlators/lib/Pod/Man.pm ++++ b/cpan/podlators/lib/Pod/Man.pm +@@ -828,6 +828,17 @@ sub devise_title { + $section = 3 if (!$$self{section} && $name =~ /\.pm\z/i); + $name =~ s/\.p(od|[lm])\z//i; + ++ # If Pod::Parser gave us an IO::File reference as the source file name, ++ # convert that to the empty string as well. Then, if we don't have a ++ # valid name, emit a warning and convert it to STDIN. ++ if ($name =~ /^IO::File(?:=\w+)\(0x[\da-f]+\)$/i) { ++ $name = ''; ++ } ++ if ($name eq '') { ++ $self->whine (1, 'No name given for document'); ++ $name = 'STDIN'; ++ } ++ + # If the section isn't 3, then the name defaults to just the basename of + # the file. Otherwise, assume we're dealing with a module. We want to + # figure out the full module name from the path to the file, but we don't +@@ -1705,6 +1716,10 @@ module path. If it is, a path like C<.../lib/Pod/Man.pm> is converted into + a name like C<Pod::Man>. This option, if given, overrides any automatic + determination of the name. + ++If generating a manual page from standard input, this option is required, ++since there's otherwise no way for Pod::Man to know what to use for the ++manual page name. ++ + =item nourls + + Normally, LZ<><> formatting codes with a URL but anchor text are formatted +diff --git a/cpan/podlators/scripts/pod2man.PL b/cpan/podlators/scripts/pod2man.PL +index 38695f8..43e35df 100644 +--- a/cpan/podlators/scripts/pod2man.PL ++++ b/cpan/podlators/scripts/pod2man.PL +@@ -236,6 +236,10 @@ Note that this option is probably not useful when converting multiple POD + files at once. The convention for Unix man pages for commands is for the + man page title to be in all-uppercase even if the command isn't. + ++When converting POD source from standard input, this option is required, ++since there's otherwise no way to know what to use as the name of the ++manual page. ++ + =item B<--nourls> + + Normally, LZ<><> formatting codes with a URL but anchor text are formatted +diff --git a/cpan/podlators/t/devise-title.t b/cpan/podlators/t/devise-title.t +new file mode 100755 +index 0000000..8639441 +--- /dev/null ++++ b/cpan/podlators/t/devise-title.t +@@ -0,0 +1,32 @@ ++#!/usr/bin/perl ++# ++# Tests for the automatic determination of the manual page title if not ++# specified via options to pod2man or the Pod::Man constructor. ++ ++use 5.006; ++use strict; ++use warnings; ++ ++use File::Spec; ++use IO::File; ++use Test::More tests => 3; ++ ++BEGIN { ++ use_ok('Pod::Man'); ++} ++ ++# Create a parser and set it up with an input source. There isn't a way to do ++# this in Pod::Simple without actually parsing the document, so send the ++# output to a string that we'll ignore. ++my $path = File::Spec->catdir('t', 'data', 'basic.pod'); ++my $handle = IO::File->new($path, 'r'); ++my $parser = Pod::Man->new(errors => 'pod'); ++my $output; ++$parser->output_string(\$output); ++$parser->parse_file($handle); ++ ++# Check the results of devise_title for this. We should get back STDIN, and ++# we should have reported an error. ++my ($name, $section) = $parser->devise_title; ++is($name, 'STDIN', 'devise_title uses STDIN for file handle input'); ++ok($parser->errors_seen, '...and errors were seen'); diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc-docs.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc-docs.diff new file mode 100644 index 000000000..0cdfeffd1 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc-docs.diff @@ -0,0 +1,86 @@ +From 6198856b5323d6204094293f01b890472618f182 Mon Sep 17 00:00:00 2001 +From: Russ Allbery <rra@cpan.org> +Date: Wed, 15 Apr 2015 20:49:07 -0700 +Subject: Documentation and test suite updates for UTC fix + +Update the Pod::Man and pod2man documentation and the test suite +for the new UTC-based default page footer, and add a Changes +entry. + +(backported to Perl 5.20.2 by Niko Tyni <ntyni@debian.org>) + +Origin: upstream, http://git.eyrie.org/?p=perl/podlators.git;a=commitdiff;h=52db93bf80e4a06f8497e4ebade0506b6ee0e70d +Bug-Debian: https://bugs.debian.org/780259 +Patch-Name: fixes/podman-utc-docs.diff +--- + cpan/podlators/lib/Pod/Man.pm | 6 +++++- + cpan/podlators/scripts/pod2man.PL | 11 ++++++----- + cpan/podlators/t/devise-date.t | 2 +- + 3 files changed, 12 insertions(+), 7 deletions(-) + +diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm +index c3ba201..365892e 100644 +--- a/cpan/podlators/lib/Pod/Man.pm ++++ b/cpan/podlators/lib/Pod/Man.pm +@@ -910,6 +910,8 @@ sub devise_date { + + # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker uses + # this and it has to work in the core which can't load dynamic libraries. ++ # Use gmtime instead of localtime so that the generated man page does not ++ # depend on the local time zone setting and is more reproducible + my ($year, $month, $day) = (gmtime($time))[5,4,3]; + return sprintf("%04d-%02d-%02d", $year + 1900, $month + 1, $day); + } +@@ -1656,7 +1658,9 @@ environment variable POD_MAN_DATE, if set, will be used. Failing that, + the modification date of the input file will be used, or the current time + if stat() can't find that file (which will be the case if the input is + from C<STDIN>). If obtained from the file modification date or the +-current time, he date will be formatted as C<YYYY-MM-DD>. ++current time, the date will be formatted as C<YYYY-MM-DD> and will be based ++on UTC (so that the output will be reproducible regardless of local time ++zone). + + =item errors + +diff --git a/cpan/podlators/scripts/pod2man.PL b/cpan/podlators/scripts/pod2man.PL +index 6af3474..38695f8 100644 +--- a/cpan/podlators/scripts/pod2man.PL ++++ b/cpan/podlators/scripts/pod2man.PL +@@ -174,9 +174,10 @@ Contributed Perl Documentation", but also see B<--official> below. + + =item B<-d> I<string>, B<--date>=I<string> + +-Set the left-hand footer string to this value. By default, the modification +-date of the input file will be used, or the current date if input comes from +-C<STDIN>. ++Set the left-hand footer string to this value. By default, the ++modification date of the input file will be used, or the current date if ++input comes from C<STDIN>, and will be based on UTC (so that the output ++will be reproducible regardless of local time zone). + + =item B<-errors>=I<style> + +@@ -383,8 +384,8 @@ B<pod2man> by Larry Wall and Tom Christiansen. + + =head1 COPYRIGHT AND LICENSE + +-Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013 Russ +-Allbery <rra@stanford.edu>. ++Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, ++2015 Russ Allbery <rra@cpan.org>. + + This program is free software; you may redistribute it and/or modify it + under the same terms as Perl itself. +diff --git a/cpan/podlators/t/devise-date.t b/cpan/podlators/t/devise-date.t +index c610dd9..9da9d1b 100644 +--- a/cpan/podlators/t/devise-date.t ++++ b/cpan/podlators/t/devise-date.t +@@ -19,7 +19,7 @@ use Test::More tests => 2; + my $parser = Pod::Man->new; + is( + $parser->devise_date, +- strftime('%Y-%m-%d', localtime()), ++ strftime('%Y-%m-%d', gmtime()), + 'devise_date matches strftime' + ); + diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc.diff new file mode 100644 index 000000000..fbd7b9db9 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc.diff @@ -0,0 +1,33 @@ +From c796775cdbd2cce06acbb7ac355187d4063017a2 Mon Sep 17 00:00:00 2001 +From: Chris Lamb <lamby@debian.org> +Date: Wed, 15 Apr 2015 20:42:53 -0700 +Subject: Make the embedded date from Pod::Man reproducible + +While working on the "reproducible builds" effort, we have noticed +that Pod::Man generates output that varies depending on the current +timezone. + +The attached patch fixes this by using GMT (~UTC) dates instead. + +(backported to Perl 5.20.2 by Niko Tyni <ntyni@debian.org>) + +Origin: upstream, http://git.eyrie.org/?p=perl/podlators.git;a=commitdiff;h=913fbb2bd2ce071e20128629302ae2852554cad4 +Bug-Debian: https://bugs.debian.org/780259 +Patch-Name: fixes/podman-utc.diff +--- + cpan/podlators/lib/Pod/Man.pm | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm +index 0536662..c3ba201 100644 +--- a/cpan/podlators/lib/Pod/Man.pm ++++ b/cpan/podlators/lib/Pod/Man.pm +@@ -910,7 +910,7 @@ sub devise_date { + + # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker uses + # this and it has to work in the core which can't load dynamic libraries. +- my ($year, $month, $day) = (localtime($time))[5,4,3]; ++ my ($year, $month, $day) = (gmtime($time))[5,4,3]; + return sprintf("%04d-%02d-%02d", $year + 1900, $month + 1, $day); + } + diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/respect_umask.diff b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/respect_umask.diff new file mode 100644 index 000000000..d1b498b52 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/debian/fixes/respect_umask.diff @@ -0,0 +1,153 @@ +From d9d535ef97f57af6e9728075944c33f3b0b5372f Mon Sep 17 00:00:00 2001 +From: Brendan O'Dea <bod@debian.org> +Date: Tue, 8 Mar 2005 19:30:38 +1100 +Subject: Respect umask during installation + +This is needed to satisfy Debian policy regarding group-writable +site directories. + +Patch-Name: fixes/respect_umask.diff +--- + cpan/ExtUtils-Install/lib/ExtUtils/Install.pm | 18 +++++++++--------- + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 18 +++++++++--------- + 2 files changed, 18 insertions(+), 18 deletions(-) + +diff --git a/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm b/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm +index 1e8ac4c..3e79121 100644 +--- a/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm ++++ b/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm +@@ -451,7 +451,7 @@ sub _can_write_dir { + + =pod + +-=item _mkpath($dir,$show,$mode,$verbose,$dry_run) ++=item _mkpath($dir,$show,$verbose,$dry_run) + + Wrapper around File::Path::mkpath() to handle errors. + +@@ -468,13 +468,13 @@ writable. + =cut + + sub _mkpath { +- my ($dir,$show,$mode,$verbose,$dry_run)=@_; ++ my ($dir,$show,$verbose,$dry_run)=@_; + if ( $verbose && $verbose > 1 && ! -d $dir) { + $show= 1; +- printf "mkpath(%s,%d,%#o)\n", $dir, $show, $mode; ++ printf "mkpath(%s,%d)\n", $dir, $show; + } + if (!$dry_run) { +- if ( ! eval { File::Path::mkpath($dir,$show,$mode); 1 } ) { ++ if ( ! eval { File::Path::mkpath($dir,$show); 1 } ) { + _choke("Can't create '$dir'","$@"); + } + +@@ -783,7 +783,7 @@ sub install { #XXX OS-SPECIFIC + _chdir($cwd); + } + foreach my $targetdir (sort keys %check_dirs) { +- _mkpath( $targetdir, 0, 0755, $verbose, $dry_run ); ++ _mkpath( $targetdir, 0, $verbose, $dry_run ); + } + foreach my $found (@found_files) { + my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime, +@@ -797,7 +797,7 @@ sub install { #XXX OS-SPECIFIC + $targetfile= _unlink_or_rename( $targetfile, 'tryhard', 'install' ) + unless $dry_run; + } elsif ( ! -d $targetdir ) { +- _mkpath( $targetdir, 0, 0755, $verbose, $dry_run ); ++ _mkpath( $targetdir, 0, $verbose, $dry_run ); + } + print "Installing $targetfile\n"; + +@@ -837,7 +837,7 @@ sub install { #XXX OS-SPECIFIC + + if ($pack{'write'}) { + $dir = install_rooted_dir(dirname($pack{'write'})); +- _mkpath( $dir, 0, 0755, $verbose, $dry_run ); ++ _mkpath( $dir, 0, $verbose, $dry_run ); + print "Writing $pack{'write'}\n" if $verbose; + $packlist->write(install_rooted_file($pack{'write'})) unless $dry_run; + } +@@ -1180,7 +1180,7 @@ environment variable will silence this output. + sub pm_to_blib { + my($fromto,$autodir,$pm_filter) = @_; + +- _mkpath($autodir,0,0755); ++ _mkpath($autodir,0); + while(my($from, $to) = each %$fromto) { + if( -f $to && -s $from == -s $to && -M $to < -M $from ) { + print "Skip $to (unchanged)\n" unless $INSTALL_QUIET; +@@ -1203,7 +1203,7 @@ sub pm_to_blib { + # we wont try hard here. its too likely to mess things up. + forceunlink($to); + } else { +- _mkpath(dirname($to),0,0755); ++ _mkpath(dirname($to),0); + } + if ($need_filtering) { + run_filter($pm_filter, $from, $to); +diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +index f63145c..197f102 100644 +--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm ++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +@@ -2118,7 +2118,7 @@ doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + + pure_perl_install :: all +- $(NOECHO) $(MOD_INSTALL) \ ++ $(NOECHO) umask 022; $(MOD_INSTALL) \ + }; + + push @m, +@@ -2138,7 +2138,7 @@ q{ "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + + + pure_site_install :: all +- $(NOECHO) $(MOD_INSTALL) \ ++ $(NOECHO) umask 022; $(MOD_INSTALL) \ + }; + push @m, + q{ read "}.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{" \ +@@ -2156,7 +2156,7 @@ q{ "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "}.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{" + + pure_vendor_install :: all +- $(NOECHO) $(MOD_INSTALL) \ ++ $(NOECHO) umask 022; $(MOD_INSTALL) \ + }; + push @m, + q{ read "}.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{" \ +@@ -2188,8 +2188,8 @@ doc_vendor_install :: all + push @m, q{ + doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" +- -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" +- -$(NOECHO) $(DOC_INSTALL) \ ++ -$(NOECHO) umask 022; $(MKPATH) "$(DESTINSTALLARCHLIB)" ++ -$(NOECHO) umask 022; $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" $(INSTALLPRIVLIB) \ + LINKTYPE "$(LINKTYPE)" \ +@@ -2199,8 +2199,8 @@ doc_perl_install :: all + + doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" +- -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" +- -$(NOECHO) $(DOC_INSTALL) \ ++ -$(NOECHO) umask 022; $(MKPATH) "$(DESTINSTALLARCHLIB)" ++ -$(NOECHO) umask 022; $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" $(INSTALLSITELIB) \ + LINKTYPE "$(LINKTYPE)" \ +@@ -2210,8 +2210,8 @@ doc_site_install :: all + + doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" +- -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" +- -$(NOECHO) $(DOC_INSTALL) \ ++ -$(NOECHO) umask 022; $(MKPATH) "$(DESTINSTALLARCHLIB)" ++ -$(NOECHO) umask 022; $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" $(INSTALLVENDORLIB) \ + LINKTYPE "$(LINKTYPE)" \ |