https://bugzilla.redhat.com/show_bug.cgi?id=1372923

            Bug ID: 1372923
           Summary: Package modified in Fedora exhibits bad behavior when
                    /etc/localtime is old
           Product: Fedora
           Version: 23
         Component: perl-DateTime-TimeZone
          Assignee: jples...@redhat.com
          Reporter: d...@beusee.com
        QA Contact: extras...@fedoraproject.org
                CC: iarn...@gmail.com, jples...@redhat.com,
                    perl-devel@lists.fedoraproject.org



Description of problem:
I was on FC20 at some point, and upgraded to FC23.  I hadn't noticed until now
that my /etc/localtime was a copy and not a symlink of the Los_Angeles zoneinfo
file.  So this means my /etc/localtime file is from FC20, even though I'm on
FC23.  This causes problems with DateTime::TimeZone package.  I have this test
perl program:

#!/usr/bin/perl
use DateTime::TimeZone;
print "DateTime::TimeZone::VERSION=" . $DateTime::TimeZone::VERSION . "\n";
my $ltz = DateTime::TimeZone->new(name => 'local');
print "\n$ltz\n";
print "tz offset=" . $ltz->offset_as_string(-25200) . "\n";

On my system, this program generates the following output:

[root@pp10 ~]# perl test.pl
DateTime::TimeZone::VERSION=2.01

DateTime::TimeZone::Tzfile=HASH(0x1222668)
Can't locate object method "offset_as_string" via package
"DateTime::TimeZone::Tzfile" at test.pl line 26.
[root@pp10 ~]#

Note that DateTime::TimeZone->new(name => 'local') returned a
DateTime::TimeZone::Tzfile object.  I contacted the maintainer of
DateTime::TimeZone, and he assured me this is impossible.  He said this package
was modified, and it turns out he's right.  The package from CPAN gives the
expected result (proper error message) with the FC20 localtime file.  With a
FC23 localtime file, it also works fine (I get Los_Angeles object with offset
-0700 reported by the program).  I don't know why this package is modified
under the Fedora project.  I debugged, and found the problem to be in the
/usr/share/perl5/vendor_perl/DateTime/TimeZone/Local/Unix.pm file.  Unix.pm has
code not found in the CPAN version, so it is from the Fedora project.


Version-Release number of selected component (if applicable):
perl-DateTime-TimeZone-2.01-1.fc23.noarch

How reproducible:


Steps to Reproduce:
1. Copy /etc/localtime from an FC20 system to an FC23 system.
2. Run the above test perl program.


Actual results:
DateTime::TimeZone::Tzfile=HASH(0x1222668)
Can't locate object method "offset_as_string" via package
"DateTime::TimeZone::Tzfile" at test.pl line 26.

Expected results:
Cannot determine local time zone

Additional info:
The package from CPAN gives the expected result (proper error message) with the
FC20 localtime file.  With a FC23 localtime file, it also works fine (I get
Los_Angeles object with offset -0700 reported by the program).

-- 
You are receiving this mail because:
You are on the CC list for the bug.
--
Fedora Extras Perl SIG
http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
perl-devel mailing list
perl-devel@lists.fedoraproject.org
https://lists.fedoraproject.org/admin/lists/perl-devel@lists.fedoraproject.org

Reply via email to