[Bug 4976] New: Daylight saving time calculation fails when M-specifier is larger than number of weeks in the month

bugzilla at busybox.net bugzilla at busybox.net
Sun Mar 25 08:29:52 UTC 2012


https://bugs.busybox.net/show_bug.cgi?id=4976

           Summary: Daylight saving time calculation fails when
                    M-specifier is larger than number of weeks in the
                    month
           Product: uClibc
           Version: 0.9.30.1
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P5
         Component: Other
        AssignedTo: unassigned at uclibc.org
        ReportedBy: jpa at busybox.mail.kapsi.fi
                CC: uclibc-cvs at uclibc.org
   Estimated Hours: 0.0


Today, 2012-03-25, uClibc did not switch to DST even though glibc-based systems
using the same TZ string did.

root at busybox:~# TZ='EET-2EEST-3,M3.5.0/03:00:00,M10.5.0/04:00:00' date
Sun Mar 25 10:15:39 EET 2012

root at debian:~# TZ='EET-2EEST-3,M3.5.0/03:00:00,M10.5.0/04:00:00' date
Sun Mar 25 11:20:01 EEST 2012

--

I think the problem is related to the parsing of the M3.5.0 specifier, which
means "last Sunday of March". That meaning of '5' is documented atleast here:
http://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html and it is
necessary to properly specify the DST observed in eastern Europe.

The bug is probably somewhere around here. Lines 700-702 seem to implement the
functionality, but for some reason it is not working.
http://git.uclibc.org/uClibc/tree/libc/misc/time/time.c#n685

--

Because the commands given in the beginning will stop working when time
proceeds, use this command for testing:
TZ='EET-2EEST-3,M3.5.0/03:00:00,M10.5.0/04:00:00' date -d '2012-03-25 12:00'
+%Z

When working correctly, it should print 'EEST' (Eastern European Summer Time).
Busybox currently prints EET.

-- 
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the uClibc-cvs mailing list