Opened 8 years ago

Closed 8 years ago

#1006 closed task (fixed)

TZData 2014i Version Upgrade

Reported by: William Harrington Owned by: clfs-commits@…
Priority: major Milestone: CLFS Standard 3.1.0
Component: BOOK Version: CLFS Standard GIT
Keywords: Cc: berzerkula@…, jonathan@…, chris@…


Changes since our current TZDATA 2014d:

Release 2014i - 2014-10-21 22:04:57 -0700

Changes affecting future time stamps

Pacific/Fiji? will observe DST from 2014-11-02 02:00 to 2015-01-18 03:00. (Thanks to Ken Rylander for the heads-up.) Guess that future years will use a similar pattern.

A new Zone Pacific/Bougainville?, for the part of Papua New Guinea that plans to switch from UTC+10 to UTC+11 on 2014-12-28 at 02:00. (Thanks to Kiley Walbom for the heads-up.)

Changes affecting time zone abbreviations

Since Belarus is not changing its clocks even though Moscow is, the time zone abbreviation in Europe/Minsk? is changing from FET to its more-traditional value MSK on 2014-10-26 at 01:00. (Thanks to Alexander Bokovoy for the heads-up about Belarus.)

The new abbreviation IDT stands for the pre-1976 use of UT+8 in Indochina, to distinguish it better from ICT (UT+7).

Changes affecting past time stamps

Many time stamps have been corrected for Asia/Ho_Chi_Minh before 1976 (thanks to Trần Ngọc Quân for an indirect pointer to Trần Tiến Bình's authoritative book). Asia/Ho_Chi_Minh has been added to, to give tzselect users in Vietnam two choices, since north and south Vietnam disagreed after our 1970 cutoff.

Asia/Phnom_Penh and Asia/Vientiane? have been turned into links, as they differed from existing zones only for older time stamps. As usual, these changes affect pre-1970 time stamps only. Their old contents have been moved to the 'backzone' file.

Changes affecting code

The time-related library functions now set errno on failure, and some crashes in the new tzalloc-related library functions have been fixed. (Thanks to Christos Zoulas for reporting most of these problems and for suggesting fixes.)

If USG_COMPAT is defined and the requested time stamp is standard time, the tz library's localtime and mktime functions now set the extern variable timezone to a value appropriate for that time stamp; and similarly for ALTZONE, daylight saving time, and the altzone variable. This change is a companion to the tzname change in 2014h, and is designed to make timezone and altzone more compatible with tzname.

The tz library's functions now set errno to EOVERFLOW if they fail because the result cannot be represented. ctime and ctime_r now return NULL and set errno when a time stamp is out of range, rather than having undefined behavior.

Some bugs associated with the new 2014g functions have been fixed. This includes a bug that largely incapacitated the new functions time2posix_z and posix2time_z. (Thanks to Christos Zoulas.) It also includes some uses of uninitialized variables after tzalloc. The new code uses the standard type 'ssize_t', which the Makefile now gives porting advice about.

Changes affecting commentary

Updated URLs for NRC Canada (thanks to Matt Johnson and Brian Inglis).

Release 2014h - 2014-09-25 18:59:03 -0700

Changes affecting past time stamps

America/Jamaica?'s 1974 spring-forward transition was Jan. 6, not Apr. 28.

Shanks says Asia/Novokuznetsk? switched from LMT (not "NMT") on 1924-05-01, not 1920-01-06. The old entry was based on a misinterpretation of Shanks.

Some more zones have been turned into links, when they differed from existing zones only for older time stamps. As usual, these changes affect UTC offsets in pre-1970 time stamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Africa/Blantyre?, Africa/Bujumbura?, Africa/Gaborone?, Africa/Harare?, Africa/Kigali?, Africa/Lubumbashi?, Africa/Lusaka?, Africa/Maseru?, and Africa/Mbabane?.

Changes affecting code

zdump -V and -v now output gmtoff= values on all platforms, not merely on platforms defining TM_GMTOFF.

The tz library's localtime and mktime functions now set tzname to a value appropriate for the requested time stamp, and zdump now uses this on platforms not defining TM_ZONE, fixing a 2014g regression. (Thanks to Tim Parenti for reporting the problem.)

The tz library no longer sets tzname if localtime or mktime fails.

zdump -c no longer mishandles transitions near year boundaries. (Thanks to Tim Parenti for reporting the problem.)

An access to uninitalized data has been fixed. (Thanks to Jörg Richter for reporting the problem.)

When THREAD_SAFE is defined, the code ports to the C11 memory model. A memory leak has been fixed if ALL_STATE and THREAD_SAFE are defined and two threads race to initialize data used by gmtime-like functions. (Thanks to Andy Heninger for reporting the problems.)

Changes affecting build procedure

'make check' now checks better for properly-sorted data.

Changes affecting documentation and commentary

zdump's gmtoff=N output is now documented, and its isdst=D output is now documented to possibly output D values other than 0 or 1.

zdump -c's treatment of years is now documented to use the Gregorian calendar and Universal Time without leap seconds, and its behavior at cutoff boundaries is now documented better. (Thanks to Arthur David Olson and Tim Parenti for reporting the problems.)

Programs are now documented to use the proleptic Gregorian calendar. (Thanks to Alan Barrett for the suggestion.)

Fractional-second GMT offsets have been documented for civil time in 19th-century Chennai, Jakarta, and New York.

Release 2014g - 2014-08-28 12:31:23 -0700

Changes affecting future time stamps

Turks & Caicos is switching from US eastern time to UTC-4 year-round, modeled as a switch from EST/EDT to AST on 2014-11-02 at 02:00.

Changes affecting past time stamps

Time in Russia or the USSR before 1926 or so has been corrected by a few seconds in the following zones: Asia/Irkutsk?, Asia/Krasnoyarsk?, Asia/Omsk?, Asia/Samarkand?, Asia/Tbilisi?, Asia/Vladivostok?, Asia/Yakutsk?, Europe/Riga?, Europe/Samara?. For Asia/Yekaterinburg? the correction is a few minutes. (Thanks to Vladimir Karpinsky.)

The Portuguese decree of 1911-05-26 took effect on 1912-01-01. This affects 1911 time stamps in Africa/Bissau?, Africa/Luanda?, Atlantic/Azores?, and Atlantic/Madeira?. Also, Lisbon's pre-1912 GMT offset was -0:36:45 (rounded from -0:36:44.68), not -0:36:32. (Thanks to Stephen Colebourne for pointing to the decree.)

Asia/Dhaka? ended DST on 2009-12-31 at 24:00, not 23:59.

A new file 'backzone' contains data which may appeal to connoisseurs of old time stamps, although it is out of scope for the tz database, is often poorly sourced, and contains some data that is known to be incorrect. The new file is not recommended for ordinary use and its entries are not installed by default. (Thanks to Lester Caine for the high-quality Jersey, Guernsey, and Isle of Man entries.)

Some more zones have been turned into links, when they differed from existing zones only for older time stamps. As usual, these changes affect UTC offsets in pre-1970 time stamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Africa/Bangui?, Africa/Brazzaville?, Africa/Douala?, Africa/Kinshasa?, Africa/Libreville?, Africa/Luanda?, Africa/Malabo?, Africa/Niamey?, and Africa/Porto?-Novo.

Changes affecting code

Unless NETBSD_INSPIRED is defined to 0, the tz library now supplies functions for creating and using objects that represent time zones. The new functions are tzalloc, tzfree, localtime_rz, mktime_z, and (if STD_INSPIRED is also defined) posix2time_z and time2posix_z. They are intended for performance: for example, localtime_rz (unlike localtime_r) is trivially thread-safe without locking. (Thanks to Christos Zoulas for proposing NetBSD-inspired functions, and to Alan Barrett and Jonathan Lennox for helping to debug the change.)

zdump now builds with the tz library unless USE_LTZ is defined to 0, This lets zdump use tz features even if the system library lacks them. To build zdump with the system library, use 'make CFLAGS=-DUSE_LTZ=0 TZDOBJS=zdump.o CHECK_TIME_T_ALTERNATIVES='.

zdump now uses localtime_rz if available, as it's significantly faster, and it can help zdump better diagnose invalid time zone names. Define HAVE_LOCALTIME_RZ to 0 to suppress this. HAVE_LOCALTIME_RZ defaults to 1 if NETBSD_INSPIRED && USE_LTZ. When localtime_rz is not available, zdump now uses localtime_r and tzset if available, as this is a bit cleaner and faster than plain localtime. Compile with -DHAVE_LOCALTIME_R=0 and/or -DHAVE_TZSET=0 if your system lacks these two functions.

If THREAD_SAFE is defined to 1, the tz library is now thread-safe. Although not needed for tz's own applications, which are single-threaded, this supports POSIX better if the tz library is used in multithreaded apps.

Some crashes have been fixed when zdump or the tz library is given invalid or outlandish input.

The tz library no longer mishandles leap seconds on platforms with unsigned time_t in time zones that lack ordinary transitions after 1970.

The tz code now attempts to infer TM_GMTOFF and TM_ZONE if not already defined, to make it easier to configure on common platforms. Define NO_TM_GMTOFF and NO_TM_ZONE to suppress this.

Unless the new macro UNINIT_TRAP is defined to 1, the tz code now assumes that reading uninitialized memory yields garbage values but does not cause other problems such as traps.

If TM_GMTOFF is defined and UNINIT_TRAP is 0, mktime is now more likely to guess right for ambiguous time stamps near transitions where tm_isdst does not change.

If HAVE_STRFTIME_L is defined to 1, the tz library now defines strftime_l for compatibility with recent versions of POSIX. Only the C locale is supported, though. HAVE_STRFTIME_L defaults to 1 on recent POSIX versions, and to 0 otherwise.

tzselect -c now uses a hybrid distance measure that works better in Africa. (Thanks to Alan Barrett for noting the problem.)

The C source code now ports to NetBSD when GCC_DEBUG_FLAGS is used, or when time_tz is defined.

When HAVE_UTMPX_H is set the 'date' command now builds on systems whose <utmpx.h> file does not define WTMPX_FILE, and when setting the date it updates the wtmpx file if _PATH_WTMPX is defined. This affects GNU/Linux and similar systems.

For easier maintenance later, some C code has been simplified, some lint has been removed, and the code has been tweaked so that plain 'make' is more likely to work.

The C type 'bool' is now used for boolean values, instead of 'int'.

The long-obsolete LOCALE_HOME code has been removed.

The long-obsolete 'gtime' function has been removed.

Changes affecting build procedure

'zdump' no longer links in ialloc.o, as it's not needed.

'make check_time_t_alternatives' no longer assumes GNU diff.

Changes affecting distribution tarballs

The files checktab.awk and are now distributed in the tzdata tarball instead of the tzcode tarball, since they help maintain the data. The NEWS and Theory files are now also distributed in the tzdata tarball, as they're relevant for data. (Thanks to Alan Barrett for pointing this out.) Also, the leapseconds.awk file is no longer distributed in the tzcode tarball, since it belongs in the tzdata tarball (where 2014f inadvertently also distributed it).

Changes affecting documentation and commentary

A new file CONTRIBUTING is distributed. (Thanks to Tim Parenti for suggesting a CONTRIBUTING file, and to Tony Finch and Walter Harms for debugging it.)

The man pages have been updated to use function prototypes, to document thread-safe variants like localtime_r, and to document the NetBSD-inspired functions tzalloc, tzfree, localtime_rz, and mktime_z.

The fields in Link lines have been renamed to be more descriptive and more like the parameters of 'ln'. LINK-FROM has become TARGET, and LINK-TO has become LINK-NAME.

tz-link.htm mentions the IETF's tzdist working group; Windows Runtime etc. (thanks to Matt Johnson); and HP-UX's tztab.

Some broken URLs have been fixed in the commentary. (Thanks to Lester Caine.)

Commentary about Philippines DST has been updated, and commentary on pre-1970 time in India has been added.

Release 2014f - 2014-08-05 17:42:36 -0700

Changes affecting future time stamps

Russia will subtract an hour from most of its time zones on 2014-10-26 at 02:00 local time. (Thanks to Alexander Krivenyshev.) There are a few exceptions: Magadan Oblast (Asia/Magadan?) and Zabaykalsky Krai are subtracting two hours; conversely, Chukotka Autonomous Okrug (Asia/Anadyr?), Kamchatka Krai (Asia/Kamchatka?), Kemerovo Oblast (Asia/Novokuznetsk?), and the Samara Oblast and the Udmurt Republic (Europe/Samara?) are not changing their clocks. The changed zones are Europe/Kaliningrad?, Europe/Moscow?, Europe/Simferopol?, Europe/Volgograd?, Asia/Yekaterinburg?, Asia/Omsk?, Asia/Novosibirsk?, Asia/Krasnoyarsk?, Asia/Irkutsk?, Asia/Yakutsk?, Asia/Vladivostok?, Asia/Khandyga?, Asia/Sakhalin?, and Asia/Ust?-Nera; Asia/Magadan? will have two hours subtracted; and Asia/Novokuznetsk?'s time zone abbreviation is affected, but not its UTC offset. Two zones are added: Asia/Chita? (split from Asia/Yakutsk?, and also with two hours subtracted) and Asia/Srednekolymsk? (split from Asia/Magadan?, but with only one hour subtracted). (Thanks to Tim Parenti for much of the above.)

Changes affecting time zone abbreviations

Australian eastern time zone abbreviations are now AEST/AEDT not EST, and similarly for the other Australian zones. That is, for eastern standard and daylight saving time the abbreviations are AEST and AEDT instead of the former EST for both; similarly, ACST/ACDT, ACWST/ACWDT, and AWST/AWDT are now used instead of the former CST, CWST, and WST. This change does not affect UTC offsets, only time zone abbreviations. (Thanks to Rich Tibbett and many others.)

Asia/Novokuznetsk? shifts from NOVT to KRAT (remaining on UTC+7) effective 2014-10-26 at 02:00 local time.

The time zone abbreviation for Xinjiang Time (observed in Ürümqi) has been changed from URUT to XJT. (Thanks to Luther Ma.)

Prefer MSK/MSD for Moscow time in Russia, even in other cities. Similarly, prefer EET/EEST for eastern European time in Russia.

Change time zone abbreviations in (western) Samoa to use "ST" and "DT" suffixes, as this is more likely to match common practice. Prefix "W" to (western) Samoa time when its standard-time offset disagrees with that of American Samoa.

America/Metlakatla? now uses PST, not MeST, to abbreviate its time zone.

Time zone abbreviations have been updated for Japan's two time zones used 1896-1937. JWST now stands for Western Standard Time, and JCST for Central Standard Time (formerly this was CJT). These abbreviations are now used for time in Korea, Taiwan, and Sakhalin while controlled by Japan.

Changes affecting past time stamps

China's five zones have been simplified to two, since the post-1970 differences in the other three seem to have been imaginary. The zones Asia/Harbin?, Asia/Chongqing?, and Asia/Kashgar? have been removed; backwards-compatibility links still work, albeit with different behaviors for time stamps before May 1980. Asia/Urumqi?'s 1980 transition to UTC+8 has been removed, so that it is now at UTC+6 and not UTC+8. (Thanks to Luther Ma and to Alois Treindl; Treindl sent helpful translations of two papers by Guo Qingsheng.)

Some zones have been turned into links, when they differed from existing zones only for older UTC offsets where data entries were likely invented. These changes affect UTC offsets in pre-1970 time stamps only. This is similar to the change in release 2013e, except this time for western Africa. The affected zones are: Africa/Bamako?, Africa/Banjul?, Africa/Conakry?, Africa/Dakar?, Africa/Freetown?, Africa/Lome?, Africa/Nouakchott?, Africa/Ouagadougou?, Africa/Sao_Tome, and Atlantic/St_Helena. This also affects the backwards-compatibility link Africa/Timbuktu?. (Thanks to Alan Barrett, Stephen Colebourne, Tim Parenti, and David Patte for reporting problems in earlier versions of this change.)

Asia/Shanghai?'s pre-standard-time UT offset has been changed from 8:05:57 to 8:05:43, the location of Xujiahui Observatory. Its transition to standard time has been changed from 1928 to 1901.

Asia/Taipei? switched to JWST on 1896-01-01, then to JST on 1937-10-01, then to CST on 1945-09-21 at 01:00, and did not observe DST in 1945. In 1946 it observed DST from 05-15 through 09-30; in 1947 from 04-15 through 10-31; and in 1979 from 07-01 through 09-30. (Thanks to Yu-Cheng Chuang.)

Asia/Riyadh?'s transition to standard time is now 1947-03-14, not 1950.

Europe/Helsinki?'s 1942 fall-back transition was 10-04 at 01:00, not 10-03 at 00:00. (Thanks to Konstantin Hyppönen.)

Pacific/Pago_Pago has been changed from UTC-11:30 to UTC-11 for the period from 1911 to 1950.

Pacific/Chatham? has been changed to New Zealand standard time plus 45 minutes for the period before 1957, reflecting a 1956 remark in the New Zealand parliament.

Europe/Budapest? has several pre-1946 corrections: in 1918 the transition out of DST was on 09-16, not 09-29; in 1919 it was on 11-24, not 09-15; in 1945 it was on 11-01, not 11-03; in 1941 the transition to DST was 04-08 not 04-06 at 02:00; and there was no DST in 1920.

Africa/Accra? is now assumed to have observed DST from 1920 through 1935.

Time in Russia before 1927 or so has been corrected by a few seconds in the following zones: Europe/Moscow?, Asia/Irkutsk?, Asia/Tbilisi?, Asia/Tashkent?, Asia/Vladivostok?, Asia/Yekaterinburg?, Europe/Helsinki?, and Europe/Riga?. Also, Moscow's location has been changed to its Kilometer 0 point. (Thanks to Vladimir Karpinsky for the Moscow changes.)

Changes affecting data format

A new file '' supersedes '' in the installed data. The new file's extended format allows multiple country codes per zone. The older file is still installed but is deprecated; its format is not changing and it will still be distributed for a while, but new applications should use the new file.

The new file format simplifies maintenance of obscure locations. To test this, it adds coverage for the Crozet Islands and the Scattered Islands. (Thanks to Tobias Conradi and Antoine Leca.)

The file '' is planned to switch from ASCII to UTF-8. It is still ASCII now, but commentary about the switch has been added. The new file '' already uses UTF-8.

Changes affecting code

'localtime', 'mktime', etc. now use much less stack space if ALL_STATE is defined. (Thanks to Elliott Hughes for reporting the problem.)

'zic' no longer mishandles input when ignoring case in locales that are not compatible with English, e.g., unibyte Turkish locales when compiled with HAVE_GETTEXT.

Error diagnostics of 'zic' and 'yearistype' have been reworded so that they no longer use ASCII '-' as if it were a dash.

'zic' now rejects output file names that contain '.' or '..' components. (Thanks to Tim Parenti for reporting the problem.)

'zic -v' now warns about output file names that do not follow POSIX rules, or that contain a digit or '.'. (Thanks to Arthur David Olson for starting the ball rolling on this.)

Some lint has been removed when using GCC_DEBUG_FLAGS with GCC 4.9.0.

Changes affecting build procedure

'zic' no longer links in localtime.o and asctime.o, as they're not needed. (Thanks to John Cochran.)

Changes affecting documentation and commentary

The 'Theory' file documents legacy names, the longstanding exceptions to the POSIX-inspired file name rules.

The 'zic' documentation clarifies the role of time types when interpreting dates. (Thanks to Arthur David Olson.)

Documentation and commentary now prefer UTF-8 to US-ASCII, allowing the use of proper accents in foreign words and names. Code and data have not changed because of this. (Thanks to Garrett Wollman, Ian Abbott, and Guy Harris for helping to debug this.)

Non-HTML documentation and commentary now use plain-text URLs instead of HTML insertions, and are more consistent about bracketing URLs when they are not already surrounded by white space. (Thanks to suggestions by Steffen Nurpmeso.)

There is new commentary about Xujiahui Observatory, the five time-zone project in China from 1918 to 1949, timekeeping in Japanese-occupied Shanghai, and Tibet Time in the 1950s. The sharp-eyed can spot the warlord Jin Shuren in the data.

Commentary about the coverage of each Russian zone has been standardized. (Thanks to Tim Parenti).

There is new commentary about contemporary timekeeping in Ethiopia.

Obsolete comments about a 2007 proposal for DST in Kuwait has been removed.

There is new commentary about time in Poland in 1919.

Proper credit has been given to DST inventor George Vernon Hudson.

Commentary about time in Metlakatla, AK and Resolute, NU has been improved, with a new source for the former.

In, Pacific/Easter? no longer mentions Salas y Gómez, as it is uninhabited.

Commentary about permanent Antarctic bases has been updated.

Several typos have been corrected. (Thanks to Tim Parenti for contributing some of these fixes.)

tz-link.htm now mentions the JavaScript? libraries Moment Timezone, TimezoneJS.Date, Walltime-js, and Timezone. (Thanks to a heads-up from Matt Johnson.) Also, it mentions the Go 'latlong' package. (Thanks to a heads-up from Dirkjan Ochtman.)

The files usno1988, usno1989, usno1989a, usno1995, usno1997, and usno1998 have been removed. These obsolescent US Naval Observatory entries were no longer helpful for maintenance. (Thanks to Tim Parenti for the suggestion.)

Release 2014e - 2014-06-12 21:53:52 -0700

Changes affecting near-future time stamps

Egypt's 2014 Ramadan-based transitions are June 26 and July 31 at 24:00. (Thanks to Imed Chihi.) Guess that from 2015 on Egypt will temporarily switch to standard time at 24:00 the last Thursday before Ramadan, and back to DST at 00:00 the first Friday after Ramadan.

Similarly, Morocco's are June 28 at 03:00 and August 2 at 02:00. (Thanks to Milamber Space Network.) Guess that from 2015 on Morocco will temporarily switch to standard time at 03:00 the last Saturday before Ramadan, and back to DST at 02:00 the first Saturday after Ramadan.

Changes affecting past time stamps

The abbreviation "MSM" (Moscow Midsummer Time) is now used instead of "MSD" for Moscow's double daylight time in summer 1921. Also, a typo "VLASST" has been repaired to be "VLAST" for Vladivostok summer time in 1991. (Thanks to Hank W. for reporting the problems.)

Changes affecting commentary

tz-link.htm now cites RFC 7265 for jCal, mentions PTP and the draft CalDAV extension, updates URLs for TSP, TZInfo, IATA, and removes stale pointers to World Time Explorer and WORLDTIME.

Change History (2)

comment:1 Changed 8 years ago by William Harrington

comment:2 Changed 8 years ago by William Harrington

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.