[tz] Irish Standard Time vs Irish Summer Time

Paul Eggert eggert at cs.ucla.edu
Fri Jan 19 08:14:16 UTC 2018


Philip Paeps wrote:
> Given the number of things this break, I would suggest backing the change out 
> for now but pointing out in NEWS that it will come back say one year from now.
> 
> Replace the actual change by a comment that the current data is inaccurate 
> pending software being fixed.

Thanks, this sounds like a good way to go. Proposed patch attached, and 
installed into the development version on GitHub. Presumably there should be a 
2018c release quite soon, to get this temporary workaround out the door. (2018b 
has been prepared and published but not announced, since the problems with ICU 
and OpenJDK became apparent during the post-publication process.)

There is a conflict between the goals of "let's not break anything" and "let's 
match civil timekeeping practice". I lean towards doing the latter as long as it 
doesn't cause too much trouble for the former. Here it seems like there is some 
trouble with ICU and OpenJDK, so delay seems advisable until fixes can be 
prepared. That being said, I don't want to wait indefinitely for these fixes. 
This is not a tzdb-specific issue, since POSIX requires support for negative DST 
(e.g., TZ='IST-1GMT0,M10.5.0,M3.5.0/1' for current Irish rules), which means 
that applications that reject negative DST are not portable to standard 
platforms configured for Irish time.

The proposed patch continues to use the "IST is standard time" approach for 
Irish timestamps between October 1968 and October 1971, but I assume that's OK 
since that's what we did before.
-------------- next part --------------
From cca53f0197e4d89ea6c04e4a097a40ed1c604a05 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert at cs.ucla.edu>
Date: Thu, 18 Jan 2018 23:52:48 -0800
Subject: [PROPOSED] Revert Europe/Dublin change temporarily
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* NEWS: Mention this.
* checktab.awk: Add a hack to pacify ‘make check’.
* europe (Europe/Dublin): Revert recent change for now.
(Problems reported by Deborah Goldsmith and Stephen Colebourne.)
---
 NEWS         | 14 ++++++++++++++
 checktab.awk |  4 ++++
 europe       | 20 +++++++++++++++++++-
 3 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index cfaa502..54cfa7f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,19 @@
 News for the tz database
 
+Unreleased, experimental changes
+
+  Changes to tm_isdst
+
+    Revert the 2018a change to Europe/Dublin, so that Irish Standard
+    Time goes back to being daylight saving time instead of being
+    standard time.  This reversion is intended to be a temporary
+    workaround for bugs discovered in ICU and OpenJDK when they
+    attempted to use release 2018a.  The Europe/Dublin change is
+    scheduled to be reapplied after allowing some time for fixes to be
+    developed for ICU and OpenJDK.  (Problems reported by Deborah
+    Goldsmith and Stephen Colebourne.)
+
+
 Release 2018b - 2018-01-17 23:24:48 -0800
 
   Briefly:
diff --git a/checktab.awk b/checktab.awk
index 2397673..95fc96f 100644
--- a/checktab.awk
+++ b/checktab.awk
@@ -3,6 +3,10 @@
 # Contributed by Paul Eggert.  This file is in the public domain.
 
 BEGIN {
+	# Hack to avoid 'make check' failure in temporary workaround
+	# for ICU and OpenJDK bugs.
+	ruleUsed["Eire"] = 1
+
 	FS = "\t"
 
 	if (!iso_table) iso_table = "iso3166.tab"
diff --git a/europe b/europe
index 8d10dde..3a61ea0 100644
--- a/europe
+++ b/europe
@@ -530,7 +530,25 @@ Zone	Europe/Dublin	-0:25:00 -	LMT	1880 Aug  2
 			 0:00	1:00	IST	1947 Nov  2  2:00s
 			 0:00	-	GMT	1948 Apr 18  2:00s
 			 0:00	GB-Eire	GMT/IST	1968 Oct 27
-			 1:00	Eire	IST/GMT
+# From Paul Eggert (2018-01-18):
+# The next line should look like this:
+#			 1:00	Eire	IST/GMT
+# However, in January 2018 we discovered that the Eire rules cause
+# problems with tests for ICU:
+# https://mm.icann.org/pipermail/tz/2018-January/025825.html
+# and with tests for OpenJDK:
+# https://mm.icann.org/pipermail/tz/2018-January/025822.html
+# To work around this problem, use a traditional approximation for
+# time stamps after 1971-10-31 02:00 UTC, to give ICU and OpenJDK
+# developers breathing room to fix bugs.  This approximation has
+# correct UTC offsets, but results in tm_isdst flags are the reverse
+# of what they should be.  This workaround is temporary and should be
+# removed reasonably soon.
+			 1:00	-	IST	1971 Oct 31  2:00u
+			 0:00	GB-Eire	GMT/IST	1996
+			 0:00	EU	GMT/IST
+# End of workaround for ICU and OpenJDK bugs.
+
 
 ###############################################################################
 
-- 
2.7.4



More information about the tz mailing list