SHA256
1
0
forked from pool/perl
perl/perl-fix2020.patch
Michael Schröder 79877b1543 Accepting request 668211 from home:bmwiedemann:branches:devel:languages:perl
- Add perl-fix2020.patch to fix timelocal calls in 2020 (boo#1102840)
- Add perl-reproducible2.patch to make build reproducible in spite of ASLR

OBS-URL: https://build.opensuse.org/request/show/668211
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=178
2019-02-01 12:33:06 +00:00

112 lines
3.9 KiB
Diff

submitted upstream
Author: Bernhard M. Wiedemann <bwiedemann suse de>
Date: 2018-03-18
Subject: fix calls of timelocal to work after 2019
because year 70 then starts to mean 2070
https://bugzilla.opensuse.org/show_bug.cgi?id=1102840 trackerbug: build fails at some time
https://rt.perl.org/Ticket/Display.html?id=132896 perl Net::NNTP
https://rt.perl.org/Ticket/Display.html?id=132898 perl Net::FTP => https://rt.cpan.org/Public/Bug/Display.html?id=124534
https://rt.perl.org/Ticket/Display.html?id=132897 perl doc
Index: perl-5.26.1/cpan/Time-Local/t/Local.t
===================================================================
--- perl-5.26.1.orig/cpan/Time-Local/t/Local.t
+++ perl-5.26.1/cpan/Time-Local/t/Local.t
@@ -85,6 +85,7 @@ my $epoch_is_64
for ( @time, @neg_time ) {
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
+ my $year_in = $year;
$year -= 1900;
$mon--;
@@ -96,7 +97,6 @@ SKIP: {
# Test timelocal()
{
- my $year_in = $year < 70 ? $year + 1900 : $year;
my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
@@ -111,7 +111,6 @@ SKIP: {
# Test timegm()
{
- my $year_in = $year < 70 ? $year + 1900 : $year;
my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
@@ -128,7 +127,6 @@ SKIP: {
for (@bad_time) {
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
- $year -= 1900;
$mon--;
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
@@ -138,19 +136,19 @@ for (@bad_time) {
{
is(
- timelocal( 0, 0, 1, 1, 0, 90 ) - timelocal( 0, 0, 0, 1, 0, 90 ), 3600,
+ timelocal( 0, 0, 1, 1, 0, 1990 ) - timelocal( 0, 0, 0, 1, 0, 1990 ), 3600,
'one hour difference between two calls to timelocal'
);
is(
- timelocal( 1, 2, 3, 1, 0, 100 ) - timelocal( 1, 2, 3, 31, 11, 99 ),
+ timelocal( 1, 2, 3, 1, 0, 2000 ) - timelocal( 1, 2, 3, 31, 11, 1999 ),
24 * 3600,
'one day difference between two calls to timelocal'
);
# Diff beween Jan 1, 1980 and Mar 1, 1980 = (31 + 29 = 60 days)
is(
- timegm( 0, 0, 0, 1, 2, 80 ) - timegm( 0, 0, 0, 1, 0, 80 ),
+ timegm( 0, 0, 0, 1, 2, 1980 ) - timegm( 0, 0, 0, 1, 0, 1980 ),
60 * 24 * 3600,
'60 day difference between two calls to timegm'
);
Index: perl-5.26.1/cpan/libnet/lib/Net/FTP.pm
===================================================================
--- perl-5.26.1.orig/cpan/libnet/lib/Net/FTP.pm
+++ perl-5.26.1/cpan/libnet/lib/Net/FTP.pm
@@ -264,7 +264,7 @@ sub mdtm {
$ftp->_MDTM($file)
&& $ftp->message =~ /((\d\d)(\d\d\d?))(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/
- ? timegm($8, $7, $6, $5, $4 - 1, $2 eq '19' ? $3 : ($1 - 1900))
+ ? timegm($8, $7, $6, $5, $4 - 1, $2 eq '19' ? ($3 + 1900) : $1)
: undef;
}
Index: perl-5.26.1/cpan/libnet/lib/Net/NNTP.pm
===================================================================
--- perl-5.26.1.orig/cpan/libnet/lib/Net/NNTP.pm
+++ perl-5.26.1/cpan/libnet/lib/Net/NNTP.pm
@@ -598,7 +598,7 @@ sub date {
$nntp->_DATE
&& $nntp->message =~ /(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/
- ? timegm($6, $5, $4, $3, $2 - 1, $1 - 1900)
+ ? timegm($6, $5, $4, $3, $2 - 1, $1)
: undef;
}
Index: perl-5.26.1/pod/perlport.pod
===================================================================
--- perl-5.26.1.orig/pod/perlport.pod
+++ perl-5.26.1/pod/perlport.pod
@@ -670,7 +670,7 @@ When calculating specific times, such as
it may be appropriate to calculate an offset for the epoch.
use Time::Local qw(timegm);
- my $offset = timegm(0, 0, 0, 1, 0, 70);
+ my $offset = timegm(0, 0, 0, 1, 0, 1970);
The value for C<$offset> in Unix will be C<0>, but in Mac OS Classic
will be some large number. C<$offset> can then be added to a Unix time