From c3e128202c7164161916bdfb138b898c9946b5ce Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Feb 24 2021 06:12:18 +0000 Subject: import java-11-openjdk-11.0.10.0.1-0.1.ea.el8 --- diff --git a/.gitignore b/.gitignore index fcfb766..97dc771 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/jdk-updates-jdk11u-jdk-11.0.9+11-4curve.tar.xz +SOURCES/jdk-updates-jdk11u-jdk-11.0.10+1-4curve.tar.xz SOURCES/tapsets-icedtea-3.15.0.tar.xz diff --git a/.java-11-openjdk.metadata b/.java-11-openjdk.metadata index e4fe5f2..cdedbbc 100644 --- a/.java-11-openjdk.metadata +++ b/.java-11-openjdk.metadata @@ -1,2 +1,2 @@ -4a65c2e79897772480e91d1bc60aca9a4c7e20f2 SOURCES/jdk-updates-jdk11u-jdk-11.0.9+11-4curve.tar.xz +3db9371491efba927f7012cd6f1dd35405391bae SOURCES/jdk-updates-jdk11u-jdk-11.0.10+1-4curve.tar.xz 7ae2cba67467825b2c2a5fec7aea041865023002 SOURCES/tapsets-icedtea-3.15.0.tar.xz diff --git a/SOURCES/NEWS b/SOURCES/NEWS index a50068e..235e794 100644 --- a/SOURCES/NEWS +++ b/SOURCES/NEWS @@ -3,6 +3,152 @@ Key: JDK-X - https://bugs.openjdk.java.net/browse/JDK-X CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release OpenJDK 11.0.10 (2021-01-19): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11010 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.10.txt + +* Other changes + - JDK-7185258: [macosx] Deadlock in SunToolKit.realSync() + - JDK-8152332: [macosx] JFileChooser cannot be serialized on Mac OS X + - JDK-8161684: [testconf] Add VerifyOops' testing into compiler tiers + - JDK-8191006: hsdis disassembler plugin does not compile with binutils 2.29+ + - JDK-8198334: java/awt/FileDialog/8003399/bug8003399.java fails in headless mode + - JDK-8200151: Add 8 JNDI tests to com/sun/jndi/dns/ConfigTests/ + - JDK-8208279: Add 8 JNDI tests to com/sun/jndi/dns/EnvTests/ + - JDK-8208483: Add 5 JNDI tests to com/sun/jndi/dns/FactoryTests/ + - JDK-8208542: Add 4 JNDI tests to com/sun/jndi/dns/ListTests/ + - JDK-8208665: Amend cross-compilation docs with qemu-debootstrap recipe + - JDK-8210088: ProblemList gc/epsilon/TestMemoryMXBeans.java + - JDK-8210339: Add 10 JNDI tests to com/sun/jndi/dns/FedTests/ + - JDK-8212226: SurfaceManager throws "Invalid Image variant" for MultiResolutionImage (Windows) + - JDK-8213400: Support choosing group name in keytool keypair generation + - JDK-8213535: Windows HiDPI html lightweight tooltips are truncated + - JDK-8213698: Improve devkit creation and add support for linux/ppc64/ppc64le/s390x + - JDK-8216012: Infinite loop in RSA KeyPairGenerator + - JDK-8216324: GetClassMethods is confused by the presence of default methods in super interfaces + - JDK-8217429: WebSocket over authenticating proxy fails to send Upgrade headers + - JDK-8217976: test/jdk/java/net/httpclient/websocket/WebSocketProxyTest.java fails intermittently + - JDK-8218851: JVM crash in custom classloader stress test, JDK 12 & 13 + - JDK-8220420: Cleanup c1_LinearScan + - JDK-8222286: Fix for JDK-8213419 is broken on s390 + - JDK-8222533: jtreg test jdk/internal/platform/cgroup/TestCgroupMetrics.java fails on SLES12.3 linux ppc64le machine + - JDK-8224506: [TESTBUG] TestDockerMemoryMetrics.java fails with exitValue = 137 + - JDK-8224555: vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/TestDescription.java failed + - JDK-8225329: -XX:+PrintBiasedLockingStatistics causes crash during initialization on Windows platforms + - JDK-8227006: [linux] Runtime.availableProcessors execution time increased by factor of 100 + - JDK-8227647: [Graal] Test8009761.java fails due to "RuntimeException: static java.lang.Object compiler.uncommontrap.Test8009761.m3(boolean,boolean) not compiled" + - JDK-8232114: JVM crashed at imjpapi.dll in native code + - JDK-8234147: Avoid looking up standard charsets in core libraries + - JDK-8236512: PKCS11 Connection closed after Cipher.doFinal and NoPadding + - JDK-8236944: The legVecZ operand should be limited to zmm0-zmm15 registers + - JDK-8237186: Fix typo in copyright header of java/io/Reader/TransferTo.java + - JDK-8237499: JFR: Include stack trace in the ThreadStart event + - JDK-8237512: AArch64: aarch64TestHook leaks a BufferBlob + - JDK-8237524: AArch64: String.compareTo() may return incorrect result + - JDK-8237950: C2 compilation fails with "Live Node limit exceeded limit" during ConvI2L::Ideal optimization + - JDK-8239105: Add exception for expiring Digicert root certificates to VerifyCACerts test + - JDK-8239477: jdk/jfr/jcmd/TestJcmdStartStopDefault.java fails -XX:+VerifyOops with "verify_oop: rsi: broken oop" + - JDK-8239886: Minimal VM build fails after JDK-8237499 + - JDK-8240633: Memory leaks in the implementations of FileChooserUI + - JDK-8240690: Race condition between EDT and BasicDirectoryModel.FilesLoader.run0() + - JDK-8241234: Unify monitor enter/exit runtime entries. + - JDK-8241311: Move some charset mapping tests from closed to open + - JDK-8241797: Add some tests to the problem list + - JDK-8242029: AArch64: skip G1 array copy pre-barrier if marking not active + - JDK-8242335: Additional Tests for RSASSA-PSS + - JDK-8242480: Negative value may be returned by getFreeSwapSpaceSize() in the docker + - JDK-8242614: cleanup duplicated test ldap server in some com/sun/jndi/ldap/ tests + - JDK-8242846: Bring back test/jdk/tools/jlink/plugins/OrderResourcesPluginTest.java + - JDK-8243114: Implement montgomery{Multiply,Square}intrinsics on Windows + - JDK-8243290: Improve diagnostic messages for class verification and redefinition failures + - JDK-8243617: compiler/onSpinWait/TestOnSpinWaitC1.java test uses wrong class + - JDK-8243619: compiler/codecache/CheckSegmentedCodeCache.java test misses -version + - JDK-8244142: some hotspot/runtime tests don't check exit code of forked JVM + - JDK-8244278: Excessive code cache flushes and sweeps + - JDK-8244819: hsdis does not compile with binutils 2.34+ + - JDK-8245400: Upgrade to LittleCMS 2.11 + - JDK-8246381: VM crashes with "Current BasicObjectLock* below than low_mark" + - JDK-8246434: Threads::print_on_error assumes that the heap has been set up + - JDK-8246648: issue with OperatingSystemImpl getFreeSwapSpaceSize in docker after 8242480 + - JDK-8247201: Print potential pointer value of readable stack memory in hs_err file + - JDK-8247763: assert(outer->outcnt() == 2) failed: 'only phis' failure in LoopNode::verify_strip_mined() + - JDK-8247867: Upgrade to freetype 2.10.2 + - JDK-8248190: Enable Power10 system and implement new byte-reverse instructions + - JDK-8248226: TestCloneAccessStressGCM fails with -XX:-ReduceBulkZeroing + - JDK-8248347: windows build broken by JDK-8243114 + - JDK-8248532: Every time I change keyboard language at my MacBook, Java crashes + - JDK-8248552: C2 crashes with SIGFPE due to division by zero + - JDK-8248596: [TESTBUG] compiler/loopopts/PartialPeelingUnswitch.java times out with Graal enabled + - JDK-8248745: Add jarsigner and keytool tests for restricted algorithms + - JDK-8248791: sun/util/resources/cldr/TimeZoneNamesTest.java fails with -XX:-ReduceInitialCardMarks -XX:-ReduceBulkZeroing + - JDK-8248845: AArch64: stack corruption after spilling vector register + - JDK-8249176: Update GlobalSignR6CA test certificates + - JDK-8249183: JVM crash in "AwtFrame::WmSize" method + - JDK-8249192: MonitorInfo stores raw oops across safepoints + - JDK-8249602: C2: assert(cnt == _outcnt) failed: no insertions allowed + - JDK-8249603: C1: assert(has_error == false) failed: register allocation invalid + - JDK-8249605: C2: assert(no_dead_loop) failed: dead loop detected + - JDK-8249607: C2: assert(!had_error) failed: bad dominance + - JDK-8249608: Vector register used by C2 compiled method corrupted at safepoint + - JDK-8249672: Include microcode revision in features_string on x86 + - JDK-8249821: Separate libharfbuzz from libfontmanager + - JDK-8250598: Hyper-V is detected in spite of running on host OS + - JDK-8250605: Linux x86_32 builds fail after JDK-8249821 + - JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY + - JDK-8250772: Test com/sun/jndi/ldap/NamingExceptionMessageTest.java fails intermittently with javax.naming.ServiceUnavailableException + - JDK-8250894: Provide a configure option to build and run against the platform libharfbuzz + - JDK-8250928: JFR: Improve hash algorithm for stack traces + - JDK-8251118: BiasedLocking::preserve_marks should not have a HandleMark + - JDK-8251189: com/sun/jndi/ldap/LdapDnsProviderTest.java failed due to timeout + - JDK-8251397: NPE on ClassValue.ClassValueMap.cacheArray + - JDK-8251456: [TESTBUG] compiler/vectorization/TestVectorsNotSavedAtSafepoint.java failed OutOfMemoryError + - JDK-8251458: Parse::do_lookupswitch fails with "assert(_cnt >= 0) failed" + - JDK-8251949: ZGC: Set explicit heap size for compiler/gcbarriers tests + - JDK-8252090: JFR: StreamWriterHost::write_unbuffered() stucks in an infinite loop OpenJDK (build 13.0.1+9) + - JDK-8252415: Bump update version for OpenJDK: jdk-11.0.10 + - JDK-8252470: java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails on Windows + - JDK-8252497: Incorrect numeric currency code for ROL + - JDK-8252660: Shenandoah: support manageable SoftMaxHeapSize option + - JDK-8252696: Loop unswitching may cause out of bound array load to be executed + - JDK-8252754: Hash code calculation of JfrStackTrace is inconsistent + - JDK-8253224: Shenandoah: ShenandoahStrDedupQueue destructor calls virtual num_queues() + - JDK-8253226: Shenandoah: remove unimplemented ShenandoahStrDedupQueue::verify + - JDK-8253284: Zero OrderAccess barrier mappings are incorrect + - JDK-8253375: OSX build fails with Xcode 12.0 (12A7209) + - JDK-8253778: ShenandoahSafepoint::is_at_shenandoah_safepoint should not access VMThread state from other threads + - JDK-8253791: Issue with useAppleColor check in CSystemColors.m + - JDK-8254081: java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an expired certificate + - JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp + - JDK-8254177: (tz) Upgrade time-zone data to tzdata2020b + - JDK-8254185: Fix Code cache sweeper heuristics for JDK 11 + - JDK-8254190: [s390] interpreter misses exception check after calling monitorenter + - JDK-8254790: SIGSEGV in string_indexof_char and stringL_indexof_char intrinsics + +Notes on individual issues: +=========================== + +security-libs/java.security: + +JDK-8213821: -groupname Option Added to keytool Key Pair Generation +=================================================================== +A new `-groupname` option has been added to `keytool -genkeypair` so +that a user can specify a named group when generating a key pair. For +example, `keytool -genkeypair -keyalg EC -groupname secp384r1` will +generate an EC key pair by using the `secp384r1` curve. Because there +might be multiple curves with the same size, using the `-groupname` +option is preferred over the `-keysize` option. + +New in release OpenJDK 11.0.9.1 (2020-10-20): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11091 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.9.1.txt + +* Regression fixes + - JDK-8250861: Crash in MinINode::Ideal(PhaseGVN*, bool) + New in release OpenJDK 11.0.9 (2020-10-20): =========================================== Live versions of these release notes can be found at: diff --git a/SOURCES/jdk8236512-pkcs11_incorrrect_session_closure.patch b/SOURCES/jdk8236512-pkcs11_incorrrect_session_closure.patch deleted file mode 100644 index bba7287..0000000 --- a/SOURCES/jdk8236512-pkcs11_incorrrect_session_closure.patch +++ /dev/null @@ -1,480 +0,0 @@ -# HG changeset patch -# User valeriep -# Date 1581468987 0 -# Wed Feb 12 00:56:27 2020 +0000 -# Node ID e47d22d82b0464720ccb7641e290080972b6ce88 -# Parent 5c41dc4c48f85e5a1e1ce6e3836b54674f273367 -8236512: PKCS11 Connection closed after Cipher.doFinal and NoPadding -Summary: Removed killSession() calls in certain impl classes when cancelling operations -Reviewed-by: xuelei - -diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java ---- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java -+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java -@@ -1,4 +1,5 @@ --/* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. -+/* -+ * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -334,25 +335,25 @@ - } - - private void cancelOperation() { -+ // cancel operation by finishing it; avoid killSession as some -+ // hardware vendors may require re-login -+ int bufLen = doFinalLength(0); -+ byte[] buffer = new byte[bufLen]; -+ byte[] in = dataBuffer.toByteArray(); -+ int inLen = in.length; - try { -- if (session.hasObjects() == false) { -- session = token.killSession(session); -- return; -+ if (encrypt) { -+ token.p11.C_Encrypt(session.id(), 0, in, 0, inLen, -+ 0, buffer, 0, bufLen); - } else { -- // cancel operation by finishing it -- int bufLen = doFinalLength(0); -- byte[] buffer = new byte[bufLen]; -- -- if (encrypt) { -- token.p11.C_Encrypt(session.id(), 0, buffer, 0, bufLen, -- 0, buffer, 0, bufLen); -- } else { -- token.p11.C_Decrypt(session.id(), 0, buffer, 0, bufLen, -- 0, buffer, 0, bufLen); -- } -+ token.p11.C_Decrypt(session.id(), 0, in, 0, inLen, -+ 0, buffer, 0, bufLen); - } - } catch (PKCS11Exception e) { -- throw new ProviderException("Cancel failed", e); -+ if (encrypt) { -+ throw new ProviderException("Cancel failed", e); -+ } -+ // ignore failure for decryption - } - } - -@@ -434,18 +435,21 @@ - if (!initialized) { - return; - } -+ initialized = false; -+ - try { - if (session == null) { - return; - } -+ - if (doCancel && token.explicitCancel) { - cancelOperation(); - } - } finally { - p11Key.releaseKeyID(); - session = token.releaseSession(session); -+ dataBuffer.reset(); - } -- initialized = false; - } - - // see JCE spec -diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java ---- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java -+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -409,10 +409,12 @@ - return; - } - initialized = false; -+ - try { - if (session == null) { - return; - } -+ - if (doCancel && token.explicitCancel) { - cancelOperation(); - } -@@ -426,22 +428,21 @@ - - private void cancelOperation() { - token.ensureValid(); -- if (session.hasObjects() == false) { -- session = token.killSession(session); -- return; -- } else { -- try { -- // cancel operation by finishing it -- int bufLen = doFinalLength(0); -- byte[] buffer = new byte[bufLen]; -- if (encrypt) { -- token.p11.C_EncryptFinal(session.id(), 0, buffer, 0, bufLen); -- } else { -- token.p11.C_DecryptFinal(session.id(), 0, buffer, 0, bufLen); -- } -- } catch (PKCS11Exception e) { -+ // cancel operation by finishing it; avoid killSession as some -+ // hardware vendors may require re-login -+ try { -+ int bufLen = doFinalLength(0); -+ byte[] buffer = new byte[bufLen]; -+ if (encrypt) { -+ token.p11.C_EncryptFinal(session.id(), 0, buffer, 0, bufLen); -+ } else { -+ token.p11.C_DecryptFinal(session.id(), 0, buffer, 0, bufLen); -+ } -+ } catch (PKCS11Exception e) { -+ if (encrypt) { - throw new ProviderException("Cancel failed", e); - } -+ // ignore failure for decryption - } - } - -diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java ---- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java -+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -124,10 +124,12 @@ - return; - } - initialized = false; -+ - try { - if (session == null) { - return; - } -+ - if (doCancel && token.explicitCancel) { - cancelOperation(); - } -@@ -139,15 +141,12 @@ - - private void cancelOperation() { - token.ensureValid(); -- if (session.hasObjects() == false) { -- session = token.killSession(session); -- return; -- } else { -- try { -- token.p11.C_SignFinal(session.id(), 0); -- } catch (PKCS11Exception e) { -- throw new ProviderException("Cancel failed", e); -- } -+ // cancel operation by finishing it; avoid killSession as some -+ // hardware vendors may require re-login -+ try { -+ token.p11.C_SignFinal(session.id(), 0); -+ } catch (PKCS11Exception e) { -+ throw new ProviderException("Cancel failed", e); - } - } - -@@ -209,7 +208,6 @@ - ensureInitialized(); - return token.p11.C_SignFinal(session.id(), 0); - } catch (PKCS11Exception e) { -- reset(true); - throw new ProviderException("doFinal() failed", e); - } finally { - reset(false); -diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11PSSSignature.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11PSSSignature.java ---- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11PSSSignature.java -+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11PSSSignature.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -223,10 +223,12 @@ - return; - } - initialized = false; -+ - try { - if (session == null) { - return; - } -+ - if (doCancel && token.explicitCancel) { - cancelOperation(); - } -@@ -242,14 +244,10 @@ - token.ensureValid(); - if (DEBUG) System.out.print("Cancelling operation"); - -- if (session.hasObjects() == false) { -- if (DEBUG) System.out.println(" by killing session"); -- session = token.killSession(session); -- return; -- } -- // "cancel" operation by finishing it -- if (mode == M_SIGN) { -- try { -+ // cancel operation by finishing it; avoid killSession as some -+ // hardware vendors may require re-login -+ try { -+ if (mode == M_SIGN) { - if (type == T_UPDATE) { - if (DEBUG) System.out.println(" by C_SignFinal"); - token.p11.C_SignFinal(session.id(), 0); -@@ -259,11 +257,7 @@ - if (DEBUG) System.out.println(" by C_Sign"); - token.p11.C_Sign(session.id(), digest); - } -- } catch (PKCS11Exception e) { -- throw new ProviderException("cancel failed", e); -- } -- } else { // M_VERIFY -- try { -+ } else { // M_VERIFY - byte[] signature = - new byte[(p11Key.length() + 7) >> 3]; - if (type == T_UPDATE) { -@@ -275,10 +269,12 @@ - if (DEBUG) System.out.println(" by C_Verify"); - token.p11.C_Verify(session.id(), digest, signature); - } -- } catch (PKCS11Exception e) { -- // will fail since the signature is incorrect -- // XXX check error code - } -+ } catch (PKCS11Exception e) { -+ if (mode == M_SIGN) { -+ throw new ProviderException("cancel failed", e); -+ } -+ // ignore failure for verification - } - } - -diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSACipher.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSACipher.java ---- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSACipher.java -+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSACipher.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -247,10 +247,12 @@ - return; - } - initialized = false; -+ - try { - if (session == null) { - return; - } -+ - if (doCancel && token.explicitCancel) { - cancelOperation(); - } -@@ -264,36 +266,33 @@ - // state variables such as "initialized" - private void cancelOperation() { - token.ensureValid(); -- if (session.hasObjects() == false) { -- session = token.killSession(session); -- return; -- } else { -- try { -- PKCS11 p11 = token.p11; -- int inLen = maxInputSize; -- int outLen = buffer.length; -- long sessId = session.id(); -- switch (mode) { -- case MODE_ENCRYPT: -- p11.C_Encrypt(sessId, 0, buffer, 0, inLen, 0, buffer, 0, outLen); -- break; -- case MODE_DECRYPT: -- p11.C_Decrypt(sessId, 0, buffer, 0, inLen, 0, buffer, 0, outLen); -- break; -- case MODE_SIGN: -- byte[] tmpBuffer = new byte[maxInputSize]; -- p11.C_Sign(sessId, tmpBuffer); -- break; -- case MODE_VERIFY: -- p11.C_VerifyRecover(sessId, buffer, 0, inLen, buffer, -- 0, outLen); -- break; -- default: -- throw new ProviderException("internal error"); -- } -- } catch (PKCS11Exception e) { -- // XXX ensure this always works, ignore error -+ // cancel operation by finishing it; avoid killSession as some -+ // hardware vendors may require re-login -+ try { -+ PKCS11 p11 = token.p11; -+ int inLen = maxInputSize; -+ int outLen = buffer.length; -+ long sessId = session.id(); -+ switch (mode) { -+ case MODE_ENCRYPT: -+ p11.C_Encrypt(sessId, 0, buffer, 0, inLen, 0, buffer, 0, outLen); -+ break; -+ case MODE_DECRYPT: -+ p11.C_Decrypt(sessId, 0, buffer, 0, inLen, 0, buffer, 0, outLen); -+ break; -+ case MODE_SIGN: -+ byte[] tmpBuffer = new byte[maxInputSize]; -+ p11.C_Sign(sessId, tmpBuffer); -+ break; -+ case MODE_VERIFY: -+ p11.C_VerifyRecover(sessId, buffer, 0, inLen, buffer, -+ 0, outLen); -+ break; -+ default: -+ throw new ProviderException("internal error"); - } -+ } catch (PKCS11Exception e) { -+ // XXX ensure this always works, ignore error - } - } - -@@ -362,6 +361,7 @@ - private int implDoFinal(byte[] out, int outOfs, int outLen) - throws BadPaddingException, IllegalBlockSizeException { - if (bufOfs > maxInputSize) { -+ reset(true); - throw new IllegalBlockSizeException("Data must not be longer " - + "than " + maxInputSize + " bytes"); - } -diff --git a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java ---- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java -+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -270,10 +270,12 @@ - return; - } - initialized = false; -+ - try { - if (session == null) { - return; - } -+ - if (doCancel && token.explicitCancel) { - cancelOperation(); - } -@@ -284,59 +286,51 @@ - } - - private void cancelOperation() { -- - token.ensureValid(); -- if (session.hasObjects() == false) { -- session = token.killSession(session); -- return; -- } else { -- // "cancel" operation by finishing it -- // XXX make sure all this always works correctly -+ // cancel operation by finishing it; avoid killSession as some -+ // hardware vendors may require re-login -+ try { - if (mode == M_SIGN) { -- try { -- if (type == T_UPDATE) { -- token.p11.C_SignFinal(session.id(), 0); -- } else { -- byte[] digest; -- if (type == T_DIGEST) { -- digest = md.digest(); -- } else { // T_RAW -- digest = buffer; -- } -- token.p11.C_Sign(session.id(), digest); -+ if (type == T_UPDATE) { -+ token.p11.C_SignFinal(session.id(), 0); -+ } else { -+ byte[] digest; -+ if (type == T_DIGEST) { -+ digest = md.digest(); -+ } else { // T_RAW -+ digest = buffer; - } -- } catch (PKCS11Exception e) { -- throw new ProviderException("cancel failed", e); -+ token.p11.C_Sign(session.id(), digest); - } - } else { // M_VERIFY - byte[] signature; -- try { -- if (keyAlgorithm.equals("DSA")) { -- signature = new byte[40]; -- } else { -- signature = new byte[(p11Key.length() + 7) >> 3]; -+ if (keyAlgorithm.equals("DSA")) { -+ signature = new byte[40]; -+ } else { -+ signature = new byte[(p11Key.length() + 7) >> 3]; -+ } -+ if (type == T_UPDATE) { -+ token.p11.C_VerifyFinal(session.id(), signature); -+ } else { -+ byte[] digest; -+ if (type == T_DIGEST) { -+ digest = md.digest(); -+ } else { // T_RAW -+ digest = buffer; - } -- if (type == T_UPDATE) { -- token.p11.C_VerifyFinal(session.id(), signature); -- } else { -- byte[] digest; -- if (type == T_DIGEST) { -- digest = md.digest(); -- } else { // T_RAW -- digest = buffer; -- } -- token.p11.C_Verify(session.id(), digest, signature); -- } -- } catch (PKCS11Exception e) { -- long errorCode = e.getErrorCode(); -- if ((errorCode == CKR_SIGNATURE_INVALID) || -- (errorCode == CKR_SIGNATURE_LEN_RANGE)) { -- // expected since signature is incorrect -- return; -- } -- throw new ProviderException("cancel failed", e); -+ token.p11.C_Verify(session.id(), digest, signature); - } - } -+ } catch (PKCS11Exception e) { -+ if (mode == M_VERIFY) { -+ long errorCode = e.getErrorCode(); -+ if ((errorCode == CKR_SIGNATURE_INVALID) || -+ (errorCode == CKR_SIGNATURE_LEN_RANGE)) { -+ // expected since signature is incorrect -+ return; -+ } -+ } -+ throw new ProviderException("cancel failed", e); - } - } - diff --git a/SOURCES/jdk8250861-rh1895274-crash_in_MinINode_Ideal.patch b/SOURCES/jdk8250861-rh1895274-crash_in_MinINode_Ideal.patch new file mode 100644 index 0000000..b00022f --- /dev/null +++ b/SOURCES/jdk8250861-rh1895274-crash_in_MinINode_Ideal.patch @@ -0,0 +1,32 @@ + +# HG changeset patch +# User thartmann +# Date 1604482955 -3600 +# Node ID 27723943c0dd65a191cbefe031cec001521e4b13 +# Parent e9d90c9daf895b469b461b727b6887e7780b4ac2 +8250861: Crash in MinINode::Ideal(PhaseGVN*, bool) +Summary: Added missing NULL checks. +Reviewed-by: kvn, chagedorn + +diff -r e9d90c9daf89 -r 27723943c0dd src/hotspot/share/opto/addnode.cpp +--- a/src/hotspot/share/opto/addnode.cpp Mon Nov 02 20:20:05 2020 +0100 ++++ b/src/hotspot/share/opto/addnode.cpp Wed Nov 04 10:42:35 2020 +0100 +@@ -917,7 +917,7 @@ + + // Transform MIN2(x + c0, MIN2(x + c1, z)) into MIN2(x + MIN2(c0, c1), z) + // if x == y and the additions can't overflow. +- if (phase->eqv(x,y) && ++ if (phase->eqv(x,y) && tx != NULL && + !can_overflow(tx, x_off) && + !can_overflow(tx, y_off)) { + return new MinINode(phase->transform(new AddINode(x, phase->intcon(MIN2(x_off, y_off)))), r->in(2)); +@@ -925,7 +925,7 @@ + } else { + // Transform MIN2(x + c0, y + c1) into x + MIN2(c0, c1) + // if x == y and the additions can't overflow. +- if (phase->eqv(x,y) && ++ if (phase->eqv(x,y) && tx != NULL && + !can_overflow(tx, x_off) && + !can_overflow(tx, y_off)) { + return new AddINode(x,phase->intcon(MIN2(x_off,y_off))); + diff --git a/SOURCES/jdk8254177-tzdata2020b.patch b/SOURCES/jdk8254177-tzdata2020b.patch deleted file mode 100644 index a9f3282..0000000 --- a/SOURCES/jdk8254177-tzdata2020b.patch +++ /dev/null @@ -1,2041 +0,0 @@ -# 8254177: (tz) Upgrade time-zone data to tzdata2020b - -diff --git a/make/data/tzdata/VERSION b/make/data/tzdata/VERSION ---- a/make/data/tzdata/VERSION -+++ b/make/data/tzdata/VERSION -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2020a -+tzdata2020b -diff --git a/make/data/tzdata/africa b/make/data/tzdata/africa ---- a/make/data/tzdata/africa -+++ b/make/data/tzdata/africa -@@ -87,7 +87,7 @@ - # Corrections are welcome. - - # Algeria --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Algeria 1916 only - Jun 14 23:00s 1:00 S - Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 - - Rule Algeria 1917 only - Mar 24 23:00s 1:00 S -@@ -110,10 +110,9 @@ - Rule Algeria 1978 only - Sep 22 3:00 0 - - Rule Algeria 1980 only - Apr 25 0:00 1:00 S - Rule Algeria 1980 only - Oct 31 2:00 0 - --# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's --# more precise 0:09:21. -+# See Europe/Paris for PMT-related transitions. - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 -+Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16 - 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time - 0:00 Algeria WE%sT 1940 Feb 25 2:00 - 1:00 Algeria CE%sT 1946 Oct 7 -@@ -199,7 +198,7 @@ - # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this - # did not apply to Cairo, Alexandria, or Port Said. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Egypt 1940 only - Jul 15 0:00 1:00 S - Rule Egypt 1940 only - Oct 1 0:00 0 - - Rule Egypt 1941 only - Apr 15 0:00 1:00 S -@@ -434,7 +433,7 @@ - # now Ghana observed different DST regimes in different years. For - # lack of better info, use Shanks except treat the minus sign as a - # typo, and assume DST started in 1920 not 1936. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Ghana 1920 1942 - Sep 1 0:00 0:20 - - Rule Ghana 1920 1942 - Dec 31 0:00 0 - - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -524,7 +523,7 @@ - # From Paul Eggert (2013-10-25): - # For now, assume they're reverting to the pre-2012 rules of permanent UT +02. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Libya 1951 only - Oct 14 2:00 1:00 S - Rule Libya 1952 only - Jan 1 0:00 0 - - Rule Libya 1953 only - Oct 9 2:00 1:00 S -@@ -647,7 +646,7 @@ - # "The trial ended on March 29, 2009, when the clocks moved back by one hour - # at 2am (or 02:00) local time..." - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Mauritius 1982 only - Oct 10 0:00 1:00 - - Rule Mauritius 1983 only - Mar 21 0:00 0 - - Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 - -@@ -898,17 +897,30 @@ - # https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dimanche-prochain/ - # http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-prochain-1 - # --# From Paul Eggert (2020-04-14): -+# From Milamber (2020-05-31) -+# In Morocco (where I live), the end of Ramadan (Arabic month) is followed by -+# the Eid al-Fitr, and concretely it's 1 or 2 day offs for the people (with -+# traditional visiting of family, big lunches/dinners, etc.). So for this -+# year the astronomical calculations don't include the following 2 days off in -+# the calc. These 2 days fall in a Sunday/Monday, so it's not acceptable by -+# people to have a time shift during these 2 days off. Perhaps you can modify -+# the (predicted) rules for next years: if the end of Ramadan is a (probable) -+# Friday or Saturday (and so the 2 days off are on a weekend), the next time -+# shift will be the next weekend. -+# -+# From Paul Eggert (2020-05-31): - # For now, guess that in the future Morocco will fall back at 03:00 - # the last Sunday before Ramadan, and spring forward at 02:00 the --# first Sunday after the day after Ramadan. To implement this, --# transition dates for 2021 through 2087 were determined by running --# the following program under GNU Emacs 26.3. --# (let ((islamic-year 1442)) -+# first Sunday after two days after Ramadan. To implement this, -+# transition dates and times for 2019 through 2087 were determined by -+# running the following program under GNU Emacs 26.3. (This algorithm -+# also produces the correct transition dates for 2016 through 2018, -+# though the times differ due to Morocco's time zone change in 2018.) -+# (let ((islamic-year 1440)) - # (require 'cal-islam) - # (while (< islamic-year 1511) - # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year))) --# (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year)))) -+# (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year)))) - # (sunday 0)) - # (while (/= sunday (mod (setq a (1- a)) 7))) - # (while (/= sunday (mod b 7)) -@@ -923,7 +935,7 @@ - # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b))))) - # (setq islamic-year (+ 1 islamic-year)))) - --# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Morocco 1939 only - Sep 12 0:00 1:00 - - Rule Morocco 1939 only - Nov 19 0:00 0 - - Rule Morocco 1940 only - Feb 25 0:00 1:00 - -@@ -974,7 +986,7 @@ - Rule Morocco 2022 only - Mar 27 3:00 -1:00 - - Rule Morocco 2022 only - May 8 2:00 0 - - Rule Morocco 2023 only - Mar 19 3:00 -1:00 - --Rule Morocco 2023 only - Apr 23 2:00 0 - -+Rule Morocco 2023 only - Apr 30 2:00 0 - - Rule Morocco 2024 only - Mar 10 3:00 -1:00 - - Rule Morocco 2024 only - Apr 14 2:00 0 - - Rule Morocco 2025 only - Feb 23 3:00 -1:00 - -@@ -990,7 +1002,7 @@ - Rule Morocco 2029 only - Dec 30 3:00 -1:00 - - Rule Morocco 2030 only - Feb 10 2:00 0 - - Rule Morocco 2030 only - Dec 22 3:00 -1:00 - --Rule Morocco 2031 only - Jan 26 2:00 0 - -+Rule Morocco 2031 only - Feb 2 2:00 0 - - Rule Morocco 2031 only - Dec 14 3:00 -1:00 - - Rule Morocco 2032 only - Jan 18 2:00 0 - - Rule Morocco 2032 only - Nov 28 3:00 -1:00 - -@@ -1006,7 +1018,7 @@ - Rule Morocco 2037 only - Oct 4 3:00 -1:00 - - Rule Morocco 2037 only - Nov 15 2:00 0 - - Rule Morocco 2038 only - Sep 26 3:00 -1:00 - --Rule Morocco 2038 only - Oct 31 2:00 0 - -+Rule Morocco 2038 only - Nov 7 2:00 0 - - Rule Morocco 2039 only - Sep 18 3:00 -1:00 - - Rule Morocco 2039 only - Oct 23 2:00 0 - - Rule Morocco 2040 only - Sep 2 3:00 -1:00 - -@@ -1022,7 +1034,7 @@ - Rule Morocco 2045 only - Jul 9 3:00 -1:00 - - Rule Morocco 2045 only - Aug 20 2:00 0 - - Rule Morocco 2046 only - Jul 1 3:00 -1:00 - --Rule Morocco 2046 only - Aug 5 2:00 0 - -+Rule Morocco 2046 only - Aug 12 2:00 0 - - Rule Morocco 2047 only - Jun 23 3:00 -1:00 - - Rule Morocco 2047 only - Jul 28 2:00 0 - - Rule Morocco 2048 only - Jun 7 3:00 -1:00 - -@@ -1038,7 +1050,7 @@ - Rule Morocco 2053 only - Apr 13 3:00 -1:00 - - Rule Morocco 2053 only - May 25 2:00 0 - - Rule Morocco 2054 only - Apr 5 3:00 -1:00 - --Rule Morocco 2054 only - May 10 2:00 0 - -+Rule Morocco 2054 only - May 17 2:00 0 - - Rule Morocco 2055 only - Mar 28 3:00 -1:00 - - Rule Morocco 2055 only - May 2 2:00 0 - - Rule Morocco 2056 only - Mar 12 3:00 -1:00 - -@@ -1054,7 +1066,7 @@ - Rule Morocco 2061 only - Jan 16 3:00 -1:00 - - Rule Morocco 2061 only - Feb 27 2:00 0 - - Rule Morocco 2062 only - Jan 8 3:00 -1:00 - --Rule Morocco 2062 only - Feb 12 2:00 0 - -+Rule Morocco 2062 only - Feb 19 2:00 0 - - Rule Morocco 2062 only - Dec 31 3:00 -1:00 - - Rule Morocco 2063 only - Feb 4 2:00 0 - - Rule Morocco 2063 only - Dec 16 3:00 -1:00 - -@@ -1070,7 +1082,7 @@ - Rule Morocco 2068 only - Oct 21 3:00 -1:00 - - Rule Morocco 2068 only - Dec 2 2:00 0 - - Rule Morocco 2069 only - Oct 13 3:00 -1:00 - --Rule Morocco 2069 only - Nov 17 2:00 0 - -+Rule Morocco 2069 only - Nov 24 2:00 0 - - Rule Morocco 2070 only - Oct 5 3:00 -1:00 - - Rule Morocco 2070 only - Nov 9 2:00 0 - - Rule Morocco 2071 only - Sep 20 3:00 -1:00 - -@@ -1086,7 +1098,7 @@ - Rule Morocco 2076 only - Jul 26 3:00 -1:00 - - Rule Morocco 2076 only - Sep 6 2:00 0 - - Rule Morocco 2077 only - Jul 18 3:00 -1:00 - --Rule Morocco 2077 only - Aug 22 2:00 0 - -+Rule Morocco 2077 only - Aug 29 2:00 0 - - Rule Morocco 2078 only - Jul 10 3:00 -1:00 - - Rule Morocco 2078 only - Aug 14 2:00 0 - - Rule Morocco 2079 only - Jun 25 3:00 -1:00 - -@@ -1096,13 +1108,13 @@ - Rule Morocco 2081 only - Jun 1 3:00 -1:00 - - Rule Morocco 2081 only - Jul 13 2:00 0 - - Rule Morocco 2082 only - May 24 3:00 -1:00 - --Rule Morocco 2082 only - Jun 28 2:00 0 - -+Rule Morocco 2082 only - Jul 5 2:00 0 - - Rule Morocco 2083 only - May 16 3:00 -1:00 - - Rule Morocco 2083 only - Jun 20 2:00 0 - - Rule Morocco 2084 only - Apr 30 3:00 -1:00 - - Rule Morocco 2084 only - Jun 11 2:00 0 - - Rule Morocco 2085 only - Apr 22 3:00 -1:00 - --Rule Morocco 2085 only - May 27 2:00 0 - -+Rule Morocco 2085 only - Jun 3 2:00 0 - - Rule Morocco 2086 only - Apr 14 3:00 -1:00 - - Rule Morocco 2086 only - May 19 2:00 0 - - Rule Morocco 2087 only - Mar 30 3:00 -1:00 - -@@ -1203,7 +1215,7 @@ - # Use plain "WAT" and "CAT" for the time zone abbreviations, to be compatible - # with Namibia's neighbors. - --# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # Vanguard section, for zic and other parsers that support negative DST. - Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT - Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT -@@ -1326,7 +1338,7 @@ - # See Africa/Nairobi. - - # South Africa --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 - - Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -1359,7 +1371,7 @@ - # Abdalla of NTC, archived at: - # https://mm.icann.org/pipermail/tz/2017-October/025333.html - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Sudan 1970 only - May 1 0:00 1:00 S - Rule Sudan 1970 1985 - Oct 15 0:00 0 - - Rule Sudan 1971 only - Apr 30 0:00 1:00 S -@@ -1447,7 +1459,7 @@ - # http://www.almadenahnews.com/newss/news.php?c=118&id=38036 - # http://www.worldtimezone.com/dst_news/dst_news_tunis02.html - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S - Rule Tunisia 1939 only - Nov 18 23:00s 0 - - Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S -@@ -1474,9 +1486,7 @@ - Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S - Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 - - --# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's --# more precise 0:09:21. --# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11. -+# See Europe/Paris for PMT-related transitions. - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 - 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time -diff --git a/make/data/tzdata/antarctica b/make/data/tzdata/antarctica ---- a/make/data/tzdata/antarctica -+++ b/make/data/tzdata/antarctica -@@ -93,15 +93,30 @@ - # Australian Antarctica Division informed us that Casey changed time - # zone to UTC+11 in "the morning of 22nd October 2016". - -+# From Steffen Thorsen (2020-10-02, as corrected): -+# Based on information we have received from the Australian Antarctic -+# Division, Casey station and Macquarie Island station will move to Tasmanian -+# daylight savings time on Sunday 4 October. This will take effect from 0001 -+# hrs on Sunday 4 October 2020 and will mean Casey and Macquarie Island will -+# be on the same time zone as Hobart. Some past dates too for this 3 hour -+# time change back and forth between UTC+8 and UTC+11 for Casey: -+# - 2018 Oct 7 4:00 - 2019 Mar 17 3:00 - 2019 Oct 4 3:00 - 2020 Mar 8 3:00 -+# and now - 2020 Oct 4 0:01 -+ - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone Antarctica/Casey 0 - -00 1969 -- 8:00 - +08 2009 Oct 18 2:00 -+Zone Antarctica/Casey 0 - -00 1969 -+ 8:00 - +08 2009 Oct 18 2:00 - 11:00 - +11 2010 Mar 5 2:00 -- 8:00 - +08 2011 Oct 28 2:00 -+ 8:00 - +08 2011 Oct 28 2:00 - 11:00 - +11 2012 Feb 21 17:00u -- 8:00 - +08 2016 Oct 22 -+ 8:00 - +08 2016 Oct 22 - 11:00 - +11 2018 Mar 11 4:00 -- 8:00 - +08 -+ 8:00 - +08 2018 Oct 7 4:00 -+ 11:00 - +11 2019 Mar 17 3:00 -+ 8:00 - +08 2019 Oct 4 3:00 -+ 11:00 - +11 2020 Mar 8 3:00 -+ 8:00 - +08 2020 Oct 4 0:01 -+ 11:00 - +11 - Zone Antarctica/Davis 0 - -00 1957 Jan 13 - 7:00 - +07 1964 Nov - 0 - -00 1969 Feb -@@ -247,7 +262,7 @@ - # suggested by Bengt-Inge Larsson comment them out for now, and approximate - # with only UTC and CEST. Uncomment them when 2014b is more prevalent. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - #Rule Troll 2005 max - Mar 1 1:00u 1:00 +01 - Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02 - #Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01 -diff --git a/make/data/tzdata/asia b/make/data/tzdata/asia ---- a/make/data/tzdata/asia -+++ b/make/data/tzdata/asia -@@ -93,7 +93,7 @@ - ############################################################################### - - # These rules are stolen from the 'europe' file. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S - Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 - - Rule EUAsia 1996 max - Oct lastSun 1:00u 0 - -@@ -137,7 +137,7 @@ - # or - # (brief) - # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 - - Rule Armenia 2011 only - Oct lastSun 2:00s 0 - - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -163,7 +163,7 @@ - # http://vestnikkavkaza.net/news/Azerbaijani-Cabinet-of-Ministers-cancels-daylight-saving-time.html - # http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 - - Rule Azer 1997 2015 - Oct lastSun 5:00 0 - - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -250,7 +250,7 @@ - # http://www.thedailystar.net/newDesign/latest_news.php?nid=22817 - # http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Dhaka 2009 only - Jun 19 23:00 1:00 - - Rule Dhaka 2009 only - Dec 31 24:00 0 - - -@@ -326,7 +326,7 @@ - # generally esteemed a success, it was announced early in 1920 that it would - # not be repeated." - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Shang 1919 only - Apr 12 24:00 1:00 D - Rule Shang 1919 only - Sep 30 24:00 0 S - -@@ -422,7 +422,7 @@ - # the Yangtze river delta area during that period of time although the scope - # of such use will need to be investigated to determine. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Shang 1940 only - Jun 1 0:00 1:00 D - Rule Shang 1940 only - Oct 12 24:00 0 S - Rule Shang 1941 only - Mar 15 0:00 1:00 D -@@ -485,7 +485,7 @@ - # to begin on 17 April. - # http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule PRC 1986 only - May 4 2:00 1:00 D - Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S - Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D -@@ -869,7 +869,7 @@ - # or dates for the 1942 and 1945 transitions. - # The Japanese occupation of Hong Kong began 1941-12-25. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule HK 1946 only - Apr 21 0:00 1:00 S - Rule HK 1946 only - Dec 1 3:30s 0 - - Rule HK 1947 only - Apr 13 3:30s 1:00 S -@@ -996,7 +996,7 @@ - # until 1945-09-21 at 01:00, overriding Shanks & Pottenger. - # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Taiwan 1946 only - May 15 0:00 1:00 D - Rule Taiwan 1946 only - Oct 1 0:00 0 S - Rule Taiwan 1947 only - Apr 15 0:00 1:00 D -@@ -1122,7 +1122,7 @@ - # The 1904 decree says that Macau changed from the meridian of - # Fortaleza do Monte, presumably the basis for the 7:34:10 for LMT. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Macau 1942 1943 - Apr 30 23:00 1:00 - - Rule Macau 1942 only - Nov 17 23:00 0 - - Rule Macau 1943 only - Sep 30 23:00 0 S -@@ -1180,7 +1180,7 @@ - # Cyprus to remain united in time. Cyprus Mail 2017-10-17. - # https://cyprus-mail.com/2017/10/17/cyprus-remain-united-time/ - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Cyprus 1975 only - Apr 13 0:00 1:00 S - Rule Cyprus 1975 only - Oct 12 0:00 0 - - Rule Cyprus 1976 only - May 15 0:00 1:00 S -@@ -1557,7 +1557,7 @@ - # be changed back to its previous state on the 24 hours of the - # thirtieth day of Shahrivar. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Iran 1978 1980 - Mar 20 24:00 1:00 - - Rule Iran 1978 only - Oct 20 24:00 0 - - Rule Iran 1979 only - Sep 18 24:00 0 - -@@ -1699,7 +1699,7 @@ - # We have published a short article in English about the change: - # https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Iraq 1982 only - May 1 0:00 1:00 - - Rule Iraq 1982 1984 - Oct 1 0:00 0 - - Rule Iraq 1983 only - Mar 31 0:00 1:00 - -@@ -1722,6 +1722,10 @@ - - # Israel - -+# For more info about the motivation for DST in Israel, see: -+# Barak Y. Israel's Daylight Saving Time controversy. Israel Affairs. -+# 2020-08-11. https://doi.org/10.1080/13537121.2020.1806564 -+ - # From Ephraim Silverberg (2001-01-11): - # - # I coined "IST/IDT" circa 1988. Until then there were three -@@ -1743,7 +1747,7 @@ - # family is from India). - - # From Shanks & Pottenger: --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Zion 1940 only - Jun 1 0:00 1:00 D - Rule Zion 1942 1944 - Nov 1 0:00 0 S - Rule Zion 1943 only - Apr 1 2:00 1:00 D -@@ -1835,7 +1839,7 @@ - # (except in 2002) is three nights before Yom Kippur [Day of Atonement] - # (the eve of the 7th of Tishrei in the lunar Hebrew calendar). - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Zion 1989 only - Apr 30 0:00 1:00 D - Rule Zion 1989 only - Sep 3 0:00 0 S - Rule Zion 1990 only - Mar 25 0:00 1:00 D -@@ -1851,7 +1855,7 @@ - # Ministry of Interior, Jerusalem, Israel. The spokeswoman can be reached by - # calling the office directly at 972-2-6701447 or 972-2-6701448. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Zion 1994 only - Apr 1 0:00 1:00 D - Rule Zion 1994 only - Aug 28 0:00 0 S - Rule Zion 1995 only - Mar 31 0:00 1:00 D -@@ -1871,7 +1875,7 @@ - # - # where YYYY is the relevant year. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Zion 1996 only - Mar 15 0:00 1:00 D - Rule Zion 1996 only - Sep 16 0:00 0 S - Rule Zion 1997 only - Mar 21 0:00 1:00 D -@@ -1894,7 +1898,7 @@ - # - # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-2004.ps.gz - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Zion 2000 only - Apr 14 2:00 1:00 D - Rule Zion 2000 only - Oct 6 1:00 0 S - Rule Zion 2001 only - Apr 9 1:00 1:00 D -@@ -1916,7 +1920,7 @@ - # - # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D - Rule Zion 2005 only - Oct 9 2:00 0 S - Rule Zion 2006 only - Oct 1 2:00 0 S -@@ -1936,7 +1940,7 @@ - # As of 2013, DST starts at 02:00 on the Friday before the last Sunday - # in March. DST ends at 02:00 on the last Sunday of October. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D - Rule Zion 2013 max - Oct lastSun 2:00 0 S - -@@ -2036,7 +2040,7 @@ - # do in any POSIX or C platform. The "25:00" assumes zic from 2007 or later, - # which should be safe now. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Japan 1948 only - May Sat>=1 24:00 1:00 D - Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S - Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D -@@ -2113,7 +2117,7 @@ - # From Paul Eggert (2013-12-11): - # As Steffen suggested, consider the past 21-month experiment to be DST. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Jordan 1973 only - Jun 6 0:00 1:00 S - Rule Jordan 1973 1975 - Oct 1 0:00 0 - - Rule Jordan 1974 1977 - May 1 0:00 1:00 S -@@ -2439,7 +2443,7 @@ - # Our government cancels daylight saving time 6th of August 2005. - # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 - - Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 - - Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 - -@@ -2495,7 +2499,7 @@ - # follow and continued to use GMT+9:00 for interoperability. - - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule ROK 1948 only - Jun 1 0:00 1:00 D - Rule ROK 1948 only - Sep 12 24:00 0 S - Rule ROK 1949 only - Apr 3 0:00 1:00 D -@@ -2583,7 +2587,7 @@ - - - # Lebanon --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Lebanon 1920 only - Mar 28 0:00 1:00 S - Rule Lebanon 1920 only - Oct 25 0:00 0 - - Rule Lebanon 1921 only - Apr 3 0:00 1:00 S -@@ -2613,7 +2617,7 @@ - 2:00 Lebanon EE%sT - - # Malaysia --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - - Rule NBorneo 1935 1941 - Dec 14 0:00 0 - - # -@@ -2758,7 +2762,7 @@ - # September daylight saving time ends. Source: - # http://zasag.mn/news/view/8969 - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Mongol 1983 1984 - Apr 1 0:00 1:00 - - Rule Mongol 1983 only - Oct 1 0:00 0 - - # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00, -@@ -2946,7 +2950,7 @@ - # "People laud PM's announcement to end DST" - # http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=99374&Itemid=2 - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S - Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 - - Rule Pakistan 2008 only - Jun 1 0:00 1:00 S -@@ -3248,7 +3252,7 @@ - # From Tim Parenti (2016-10-19): - # Predict fall transitions on October's last Saturday at 01:00 from now on. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule EgyptAsia 1957 only - May 10 0:00 1:00 S - Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - - Rule EgyptAsia 1958 only - May 1 0:00 1:00 S -@@ -3348,7 +3352,7 @@ - # influence of the sources. There is no current abbreviation for DST, - # so use "PDT", the usual American style. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Phil 1936 only - Nov 1 0:00 1:00 D - Rule Phil 1937 only - Feb 1 0:00 0 S - Rule Phil 1954 only - Apr 12 0:00 1:00 D -@@ -3496,7 +3500,7 @@ - 5:30 - +0530 - - # Syria --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S - Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 - - Rule Syria 1962 only - Apr 29 2:00 1:00 S -diff --git a/make/data/tzdata/australasia b/make/data/tzdata/australasia ---- a/make/data/tzdata/australasia -+++ b/make/data/tzdata/australasia -@@ -36,7 +36,7 @@ - - # Please see the notes below for the controversy about "EST" versus "AEST" etc. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Aus 1917 only - Jan 1 0:01 1:00 D - Rule Aus 1917 only - Mar 25 2:00 0 S - Rule Aus 1942 only - Jan 1 2:00 1:00 D -@@ -55,7 +55,7 @@ - 9:30 Aus AC%sT - # Western Australia - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule AW 1974 only - Oct lastSun 2:00s 1:00 D - Rule AW 1975 only - Mar Sun>=1 2:00s 0 S - Rule AW 1983 only - Oct lastSun 2:00s 1:00 D -@@ -93,7 +93,7 @@ - # applies to all of the Whitsundays. - # http://www.australia.gov.au/about-australia/australian-story/austn-islands - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule AQ 1971 only - Oct lastSun 2:00s 1:00 D - Rule AQ 1972 only - Feb lastSun 2:00s 0 S - Rule AQ 1989 1991 - Oct lastSun 2:00s 1:00 D -@@ -109,7 +109,7 @@ - 10:00 Holiday AE%sT - - # South Australia --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule AS 1971 1985 - Oct lastSun 2:00s 1:00 D - Rule AS 1986 only - Oct 19 2:00s 1:00 D - Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D -@@ -137,7 +137,7 @@ - # http://www.bom.gov.au/climate/averages/tables/dst_times.shtml - # says King Island didn't observe DST from WWII until late 1971. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule AT 1967 only - Oct Sun>=1 2:00s 1:00 D - Rule AT 1968 only - Mar lastSun 2:00s 0 S - Rule AT 1968 1985 - Oct lastSun 2:00s 1:00 D -@@ -170,7 +170,7 @@ - 10:00 AT AE%sT - - # Victoria --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule AV 1971 1985 - Oct lastSun 2:00s 1:00 D - Rule AV 1972 only - Feb lastSun 2:00s 0 S - Rule AV 1973 1985 - Mar Sun>=1 2:00s 0 S -@@ -191,7 +191,7 @@ - 10:00 AV AE%sT - - # New South Wales --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule AN 1971 1985 - Oct lastSun 2:00s 1:00 D - Rule AN 1972 only - Feb 27 2:00s 0 S - Rule AN 1973 1981 - Mar Sun>=1 2:00s 0 S -@@ -220,7 +220,7 @@ - 9:30 AS AC%sT - - # Lord Howe Island --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule LH 1981 1984 - Oct lastSun 2:00 1:00 - - Rule LH 1982 1985 - Mar Sun>=1 2:00 0 - - Rule LH 1985 only - Oct lastSun 2:00 0:30 - -@@ -275,8 +275,9 @@ - 10:00 Aus AE%sT 1919 Apr 1 0:00s - 0 - -00 1948 Mar 25 - 10:00 Aus AE%sT 1967 -- 10:00 AT AE%sT 2010 Apr 4 3:00 -- 11:00 - +11 -+ 10:00 AT AE%sT 2010 -+ 10:00 1:00 AEDT 2011 -+ 10:00 AT AE%sT - - # Christmas - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -403,7 +404,7 @@ - # From Michael Deckers (2019-08-06): - # https://www.laws.gov.fj/LawsAsMade/downloadfile/848 - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 - - Rule Fiji 1999 2000 - Feb lastSun 3:00 0 - - Rule Fiji 2009 only - Nov 29 2:00 1:00 - -@@ -432,7 +433,7 @@ - - # Guam - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf - # http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savings-Time-May-6-1959.pdf - Rule Guam 1959 only - Jun 27 2:00 1:00 D -@@ -543,7 +544,7 @@ - 12:00 - +12 - - # New Caledonia --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 - - Rule NC 1978 1979 - Feb 27 0:00 0 - - Rule NC 1996 only - Dec 1 2:00s 1:00 - -@@ -558,7 +559,7 @@ - - # New Zealand - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule NZ 1927 only - Nov 6 2:00 1:00 S - Rule NZ 1928 only - Mar 4 2:00 0 M - Rule NZ 1928 1933 - Oct Sun>=8 2:00 0:30 S -@@ -610,7 +611,7 @@ - - # Cook Is - # From Shanks & Pottenger: --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Cook 1978 only - Nov 12 0:00 0:30 - - Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 - - Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 - -@@ -755,7 +756,7 @@ - # That web page currently lists transitions for 2012/3 and 2013/4. - # Assume the pattern instituted in 2012 will continue indefinitely. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule WS 2010 only - Sep lastSun 0:00 1 - - Rule WS 2011 only - Apr Sat>=1 4:00 0 - - Rule WS 2011 only - Sep lastSat 3:00 1 - -@@ -799,7 +800,7 @@ - 13:00 - +13 - - # Tonga --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Tonga 1999 only - Oct 7 2:00s 1:00 - - Rule Tonga 2000 only - Mar 19 2:00s 0 - - Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 - -@@ -880,7 +881,7 @@ - - - # Vanuatu --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Vanuatu 1983 only - Sep 25 0:00 1:00 - - Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 - - Rule Vanuatu 1984 only - Oct 23 0:00 1:00 - -diff --git a/make/data/tzdata/europe b/make/data/tzdata/europe ---- a/make/data/tzdata/europe -+++ b/make/data/tzdata/europe -@@ -411,7 +411,7 @@ - # http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print - # http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # Summer Time Act, 1916 - Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST - Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT -@@ -552,7 +552,7 @@ - # The following is like GB-Eire and EU, except with standard time in - # summer and negative daylight saving time in winter. It is for when - # negative SAVE values are used. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Eire 1971 only - Oct 31 2:00u -1:00 - - Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 - - Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 - -@@ -589,7 +589,7 @@ - # predecessor organization, the European Communities. - # For brevity they are called "EU rules" elsewhere in this file. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S - Rule EU 1977 only - Sep lastSun 1:00u 0 - - Rule EU 1978 only - Oct 1 1:00u 0 - -@@ -629,13 +629,13 @@ - # corrected in version 2008d). The circumstantial evidence is simply the - # tz database itself, as seen below: - # --# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 -+# Zone Europe/Paris ... - # 0:00 France WE%sT 1945 Sep 16 3:00 - # --# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15 -+# Zone Europe/Monaco ... - # 0:00 France WE%sT 1945 Sep 16 3:00 - # --# Zone Europe/Belgrade 1:22:00 - LMT 1884 -+# Zone Europe/Belgrade ... - # 1:00 1:00 CEST 1945 Sep 16 2:00s - # - # Rule France 1945 only - Sep 16 3:00 0 - -@@ -681,7 +681,7 @@ - # - # The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23). - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time - # - # Decree No. 142 (1917-12-22) http://istmat.info/node/28137 -@@ -795,7 +795,7 @@ - - - # Albania --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Albania 1940 only - Jun 16 0:00 1:00 S - Rule Albania 1942 only - Nov 2 3:00 0 - - Rule Albania 1943 only - Mar 29 2:00 1:00 S -@@ -849,7 +849,7 @@ - # In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am. - # Shanks had this right. Source: Die Weltpresse, 5. Oktober 1946, page 5. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Austria 1920 only - Apr 5 2:00s 1:00 S - Rule Austria 1920 only - Sep 13 2:00s 0 - - Rule Austria 1946 only - Apr 14 2:00s 1:00 S -@@ -936,7 +936,7 @@ - # The 1918 rules are listed for completeness; they apply to unoccupied Belgium. - # Assume Brussels switched to WET in 1918 when the armistice took effect. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Belgium 1918 only - Mar 9 0:00s 1:00 S - Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 - - Rule Belgium 1919 only - Mar 1 23:00s 1:00 S -@@ -996,7 +996,7 @@ - # EET -> EETDST is in 03:00 Local time in last Sunday of March ... - # EETDST -> EET is in 04:00 Local time in last Sunday of October - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Bulg 1979 only - Mar 31 23:00 1:00 S - Rule Bulg 1979 only - Oct 1 1:00 0 - - Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S -@@ -1028,7 +1028,7 @@ - # We know of no English-language name for historical Czech winter time; - # abbreviate it as "GMT", as it happened to be GMT. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S - Rule Czech 1945 only - Oct 1 2:00s 0 - - Rule Czech 1946 only - May 6 2:00s 1:00 S -@@ -1084,7 +1084,7 @@ - # Hence the "02:00" of the 1980 law refers to standard time, not - # wall-clock time, and so the EU rules were in effect in 1980. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Denmark 1916 only - May 14 23:00 1:00 S - Rule Denmark 1916 only - Sep 30 23:00 0 - - Rule Denmark 1940 only - May 15 0:00 1:00 S -@@ -1186,7 +1186,7 @@ - # http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-tekster/Legislation/Executive%20Order%20National%20Park.rtf - # It is their only National Park. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D - Rule Thule 1991 1992 - Sep lastSun 2:00 0 S - Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D -@@ -1317,7 +1317,7 @@ - # From Paul Eggert (2014-06-14): - # Go with Oja over Shanks. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Finland 1942 only - Apr 2 24:00 1:00 S - Rule Finland 1942 only - Oct 4 1:00 0 - - Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S -@@ -1349,10 +1349,58 @@ - # Françoise Gauquelin, Problèmes de l'heure résolus en astrologie, - # Guy Trédaniel, Paris 1987 - -+# From Michael Deckers (2020-06-11): -+# the law of 1891 -+# was published on 1891-03-15, so it could only take force on 1891-03-16. -+ -+# From Michael Deckers (2020-06-10): -+# Le Gaulois, 1911-03-11, page 1/6, online at -+# https://www.retronews.fr/societe/echo-de-presse/2018/01/29/1911-change-lheure-de-paris -+# ... [ Instantly, all pressure driven clock dials halted... Nine minutes and -+# twenty-one seconds later the hands resumed their circular motion. ] -+# There are also precise reports about how the change was prepared in train -+# stations: all the publicly visible clocks stopped at midnight railway time -+# (or were covered), only the chief of service had a watch, labeled -+# "Heure ancienne", that he kept running until it reached 00:04:21, when -+# he announced "Heure nouvelle". See the "Le Petit Journal 1911-03-11". -+# https://gallica.bnf.fr/ark:/12148/bpt6k6192911/f1.item.zoom -+# -+# From Michael Deckers (2020-06-12): -+# That "all French clocks stopped" for 00:09:21 is a misreading of French -+# newspapers; this sort of adjustment applies only to certain -+# remote-controlled clocks ("pendules pneumatiques", of which there existed -+# perhaps a dozen in Paris, and which simply could not be set back remotely), -+# but not to all the clocks in all French towns and villages. For instance, -+# the following story in the "Courrier de Saône-et-Loire" 1911-03-11, page 2: -+# only works if legal time was stepped back (was not monotone): ... -+# [One can observe that children who had been born at midnight less 5 -+# minutes and who had died at midnight of the old time, would turn out to -+# be dead before being born, time having been set back and having -+# suppressed 9 minutes and 25 seconds of their existence, that is, more -+# than they could spend.] -+# -+# From Paul Eggert (2020-06-12): -+# French time in railway stations was legally five minutes behind civil time, -+# which explains why railway "old time" ran to 00:04:21 instead of to 00:09:21. -+# The law's text (which Michael Deckers noted is at -+# ) says only that -+# at 1911-03-11 00:00 legal time was that of Paris mean time delayed by -+# nine minutes and twenty-one seconds, and does not say how the -+# transition from Paris mean time was to occur. -+# -+# tzdb has no way to represent stopped clocks. As the railway practice -+# was to keep a watch running on "old time" to decide when to restart -+# the other clocks, this could be modeled as a transition for "old time" at -+# 00:09:21. However, since the law was ambiguous and clocks outside railway -+# stations were probably done haphazardly with the popular impression being -+# that the transition was done at 00:00 "old time", simply leave the time -+# blank; this causes zic to default to 00:00 "old time" which is good enough. -+# Do something similar for the 1891-03-16 transition. There are similar -+# problems in Algiers, Monaco and Tunis. - - # - # Shank & Pottenger seem to use '24:00' ambiguously; resolve it with Whitman. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule France 1916 only - Jun 14 23:00s 1:00 S - Rule France 1916 1919 - Oct Sun>=1 23:00s 0 - - Rule France 1917 only - Mar 24 23:00s 1:00 S -@@ -1412,13 +1460,11 @@ - # go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT. - Rule France 1976 only - Mar 28 1:00 1:00 S - Rule France 1976 only - Sep 26 1:00 0 - --# Shanks & Pottenger give 0:09:20 for Paris Mean Time, and Whitman 0:09:05, --# but Howse quotes the actual French legislation as saying 0:09:21. --# Go with Howse. Howse writes that the time in France was officially based -+# Howse writes that the time in France was officially based - # on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC. - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 -- 0:09:21 - PMT 1911 Mar 11 0:01 # Paris MT -+Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16 -+ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time - # Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre. - 0:00 France WE%sT 1940 Jun 14 23:00 - # Le Corre says Paris stuck with occupied-France time after the liberation; -@@ -1447,7 +1493,7 @@ - # this was equivalent to UT +03, not +04. - - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Germany 1946 only - Apr 14 2:00s 1:00 S - Rule Germany 1946 only - Oct 7 2:00s 0 - - Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 - -@@ -1499,7 +1545,7 @@ - 1:00 EU CE%sT - - # Greece --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger. - Rule Greece 1932 only - Jul 7 0:00 1:00 S - Rule Greece 1932 only - Sep 1 0:00 0 - -@@ -1534,38 +1580,69 @@ - 2:00 EU EE%sT - - # Hungary --# From Paul Eggert (2014-07-15): --# Dates for 1916-1945 are taken from: --# Oross A. Jelen a múlt jövője: a nyári időszámítás Magyarországon 1916-1945. --# National Archives of Hungary (2012-10-29). --# http://mnl.gov.hu/a_het_dokumentuma/a_nyari_idoszamitas_magyarorszagon_19161945.html --# This source does not always give times, which are taken from Shanks --# & Pottenger (which disagree about the dates). --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S --Rule Hungary 1918 only - Apr 1 3:00 1:00 S --Rule Hungary 1918 only - Sep 16 3:00 0 - --Rule Hungary 1919 only - Apr 15 3:00 1:00 S --Rule Hungary 1919 only - Nov 24 3:00 0 - -+ -+# From Michael Deckers (2020-06-09): -+# an Austrian encyclopedia of railroads of 1913, online at -+# http://www.zeno.org/Roell-1912/A/Eisenbahnzeit -+# says that the switch [to CET] happened on 1890-11-01. -+ -+# From Géza Nyáry (2020-06-07): -+# Data for 1918-1983 are based on the archive database of Library Hungaricana. -+# The dates are collected from original, scanned governmental orders, -+# bulletins, instructions and public press. -+# [See URLs below.] -+ -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S -+# https://library.hungaricana.hu/hu/view/OGYK_RT_1918/?pg=238 -+# https://library.hungaricana.hu/hu/view/OGYK_RT_1919/?pg=808 -+# https://library.hungaricana.hu/hu/view/OGYK_RT_1920/?pg=201 -+Rule Hungary 1918 1919 - Apr 15 2:00 1:00 S -+Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 - -+Rule Hungary 1920 only - Apr 5 2:00 1:00 S -+# https://library.hungaricana.hu/hu/view/OGYK_RT_1945/?pg=882 - Rule Hungary 1945 only - May 1 23:00 1:00 S --Rule Hungary 1945 only - Nov 1 0:00 0 - -+Rule Hungary 1945 only - Nov 1 1:00 0 - -+# https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_03/?pg=49 - Rule Hungary 1946 only - Mar 31 2:00s 1:00 S --Rule Hungary 1946 1949 - Oct Sun>=1 2:00s 0 - -+# https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_09/?pg=54 -+Rule Hungary 1946 only - Oct 7 2:00 0 - -+# https://library.hungaricana.hu/hu/view/KulfBelfHirek_1947_04_1__001-123/?pg=90 -+# https://library.hungaricana.hu/hu/view/DunantuliNaplo_1947_09/?pg=128 -+# https://library.hungaricana.hu/hu/view/KulfBelfHirek_1948_03_3__001-123/?pg=304 -+# https://library.hungaricana.hu/hu/view/Zala_1948_09/?pg=64 -+# https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniNepujsag_1948/?pg=53 -+# https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniNepujsag_1948/?pg=160 -+# https://library.hungaricana.hu/hu/view/Delmagyarorszag_1949_09/?pg=94 - Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S --Rule Hungary 1950 only - Apr 17 2:00s 1:00 S --Rule Hungary 1950 only - Oct 23 2:00s 0 - --Rule Hungary 1954 1955 - May 23 0:00 1:00 S --Rule Hungary 1954 1955 - Oct 3 0:00 0 - --Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 S --Rule Hungary 1956 only - Sep lastSun 0:00 0 - --Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S --Rule Hungary 1957 only - Sep lastSun 3:00 0 - --Rule Hungary 1980 only - Apr 6 1:00 1:00 S -+Rule Hungary 1947 1949 - Oct Sun>=1 2:00s 0 - -+# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1954/?pg=513 -+Rule Hungary 1954 only - May 23 0:00 1:00 S -+Rule Hungary 1954 only - Oct 3 0:00 0 - -+# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1955/?pg=398 -+Rule Hungary 1955 only - May 22 2:00 1:00 S -+Rule Hungary 1955 only - Oct 2 3:00 0 - -+# https://library.hungaricana.hu/hu/view/HevesMegyeiNepujsag_1956_06/?pg=0 -+# https://library.hungaricana.hu/hu/view/EszakMagyarorszag_1956_06/?pg=6 -+# https://library.hungaricana.hu/hu/view/SzolnokMegyeiNeplap_1957_04/?pg=120 -+# https://library.hungaricana.hu/hu/view/PestMegyeiHirlap_1957_09/?pg=143 -+Rule Hungary 1956 1957 - Jun Sun>=1 2:00 1:00 S -+Rule Hungary 1956 1957 - Sep lastSun 3:00 0 - -+# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1980/?pg=1227 -+Rule Hungary 1980 only - Apr 6 0:00 1:00 S -+Rule Hungary 1980 only - Sep 28 1:00 0 - -+# https://library.hungaricana.hu/hu/view/Delmagyarorszag_1981_01/?pg=79 -+# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1982/?pg=115 -+# https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1983/?pg=85 -+Rule Hungary 1981 1983 - Mar lastSun 0:00 1:00 S -+Rule Hungary 1981 1983 - Sep lastSun 1:00 0 - -+# - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone Europe/Budapest 1:16:20 - LMT 1890 Oct -+Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1 - 1:00 C-Eur CE%sT 1918 -- 1:00 Hungary CE%sT 1941 Apr 8 -+# https://library.hungaricana.hu/hu/view/OGYK_RT_1941/?pg=1204 -+ 1:00 Hungary CE%sT 1941 Apr 7 23:00 - 1:00 C-Eur CE%sT 1945 -- 1:00 Hungary CE%sT 1980 Sep 28 2:00s -+ 1:00 Hungary CE%sT 1984 - 1:00 EU CE%sT - - # Iceland -@@ -1601,7 +1678,7 @@ - # The information below is taken from the 1988 Almanak; see - # http://www.almanak.hi.is/klukkan.html - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Iceland 1917 1919 - Feb 19 23:00 1:00 - - Rule Iceland 1917 only - Oct 21 1:00 0 - - Rule Iceland 1918 1919 - Nov 16 1:00 0 - -@@ -1693,7 +1770,7 @@ - # to 1944-06-04; although Rome was an open city during this period, it - # was effectively controlled by Germany. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Italy 1916 only - Jun 3 24:00 1:00 S - Rule Italy 1916 1917 - Sep 30 24:00 0 - - Rule Italy 1917 only - Mar 31 24:00 1:00 S -@@ -1803,7 +1880,7 @@ - # urged Lithuania and Estonia to adopt a similar time policy, but it - # appears that they will not do so.... - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Latvia 1989 1996 - Mar lastSun 2:00s 1:00 S - Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 - - -@@ -1896,7 +1973,7 @@ - # Luxembourg - # Whitman disagrees with most of these dates in minor ways; - # go with Shanks & Pottenger. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Lux 1916 only - May 14 23:00 1:00 S - Rule Lux 1916 only - Oct 1 1:00 0 - - Rule Lux 1917 only - Apr 28 23:00 1:00 S -@@ -1937,7 +2014,7 @@ - # From Paul Eggert (2016-10-21): - # Assume 1900-1972 was like Rome, overriding Shanks. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Malta 1973 only - Mar 31 0:00s 1:00 S - Rule Malta 1973 only - Sep 29 0:00s 0 - - Rule Malta 1974 only - Apr 21 0:00s 1:00 S -@@ -2010,7 +2087,7 @@ - # says the 2014-03-30 spring-forward transition was at 02:00 local time. - # Guess that since 1997 Moldova has switched one hour before the EU. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S - Rule Moldova 1997 max - Oct lastSun 3:00 0 - - -@@ -2028,11 +2105,24 @@ - 2:00 Moldova EE%sT - - # Monaco --# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's --# more precise 0:09:21. -+# -+# From Michael Deckers (2020-06-12): -+# In the "Journal de Monaco" of 1892-05-24, online at -+# https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/b1c67c12c5af11b41ea888fb048e4fe8.pdf -+# we read: ... -+# [In virtue of a Sovereign Ordinance of the May 13 of the current [year], -+# legal time in the Principality will be set to, from the date of June 1, -+# 1892 onwards, to the meridian of Paris, as in France.] -+# In the "Journal de Monaco" of 1911-03-28, online at -+# https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/de74ffb7db53d4f599059fe8f0ed482a.pdf -+# we read an ordinance of 1911-03-16: ... -+# [Legal time in the Principality will be set, from the date of promulgation -+# of the present ordinance, to legal time in France.... Consequently, legal -+# time will be retarded by 9 minutes and 21 seconds.] -+# - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15 -- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time -+Zone Europe/Monaco 0:29:32 - LMT 1892 Jun 1 -+ 0:09:21 - PMT 1911 Mar 29 # Paris Mean Time - 0:00 France WE%sT 1945 Sep 16 3:00 - 1:00 France CE%sT 1977 - 1:00 EU CE%sT -@@ -2080,7 +2170,7 @@ - # The data entries before 1945 are taken from - # https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Neth 1916 only - May 1 0:00 1:00 NST # Netherlands Summer Time - Rule Neth 1916 only - Oct 1 0:00 0 AMT # Amsterdam Mean Time - Rule Neth 1917 only - Apr 16 2:00s 1:00 NST -@@ -2117,7 +2207,7 @@ - # Norway - # http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks & - # Pottenger. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Norway 1916 only - May 22 1:00 1:00 S - Rule Norway 1916 only - Sep 30 0:00 0 - - Rule Norway 1945 only - Apr 2 2:00s 1:00 S -@@ -2186,7 +2276,7 @@ - # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20), - # pp 1-2. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Poland 1918 1919 - Sep 16 2:00s 0 - - Rule Poland 1919 only - Apr 15 2:00s 1:00 S - Rule Poland 1944 only - Apr 3 2:00s 1:00 S -@@ -2257,7 +2347,7 @@ - # Guess that the Azores changed to EU rules in 1992 (since that's when Portugal - # harmonized with EU rules), and that they stayed +0:00 that winter. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not - # done every year, depending on what Spain did, because of railroad schedules. - # Go with Shanks & Pottenger. -@@ -2370,7 +2460,7 @@ - # assume that Romania and Moldova switched to EU rules in 1997, - # the same year as Bulgaria. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Romania 1932 only - May 21 0:00s 1:00 S - Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 - - Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S -@@ -3468,14 +3558,14 @@ - # fallback transition from the next day's 00:59... to 00:00. - - # From Michael Deckers (2016-12-15): --# The Royal Decree of 1900-06-26 quoted by Planesas, online at -+# The Royal Decree of 1900-07-26 quoted by Planesas, online at - # https://www.boe.es/datos/pdfs/BOE//1900/209/A00383-00384.pdf - # says in its article 5 (my translation): - # These dispositions will enter into force beginning with the - # instant at which, according to the time indicated in article 1, - # the 1st day of January of 1901 will begin. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Spain 1918 only - Apr 15 23:00 1:00 S - Rule Spain 1918 1919 - Oct 6 24:00s 0 - - Rule Spain 1919 only - Apr 6 23:00 1:00 S -@@ -3612,7 +3702,7 @@ - # By the end of the 18th century clocks and watches became commonplace - # and their performance improved enormously. Communities began to keep - # mean time in preference to apparent time - Geneva from 1780 .... --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # From Whitman (who writes "Midnight?"): - # Rule Swiss 1940 only - Nov 2 0:00 1:00 S - # Rule Swiss 1940 only - Dec 31 0:00 0 - -@@ -3699,7 +3789,7 @@ - # 1853-07-16, though it probably occurred at some other date in Zurich, and - # legal civil time probably changed at still some other transition date. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S - Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -3848,7 +3938,7 @@ - # Although Google Translate misfires on that source, it looks like - # Turkey reversed last month's decision, and so will stay at +03. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Turkey 1916 only - May 1 0:00 1:00 S - Rule Turkey 1916 only - Oct 1 0:00 0 - - Rule Turkey 1920 only - Mar 28 0:00 1:00 S -@@ -4006,7 +4096,7 @@ - 2:00 1:00 EEST 1991 Sep 29 3:00 - 2:00 E-Eur EE%sT 1995 - 2:00 EU EE%sT --# Ruthenia used CET 1990/1991. -+# Transcarpathia used CET 1990/1991. - # "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but - # "Uzhgorod" is more common in English. - Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct -diff --git a/make/data/tzdata/leapseconds b/make/data/tzdata/leapseconds ---- a/make/data/tzdata/leapseconds -+++ b/make/data/tzdata/leapseconds -@@ -91,11 +91,11 @@ - # Any additional leap seconds will come after this. - # This Expires line is commented out for now, - # so that pre-2020a zic implementations do not reject this file. --#Expires 2020 Dec 28 00:00:00 -+#Expires 2021 Jun 28 00:00:00 - - # POSIX timestamps for the data in this file: - #updated 1467936000 (2016-07-08 00:00:00 UTC) --#expires 1609113600 (2020-12-28 00:00:00 UTC) -+#expires 1624838400 (2021-06-28 00:00:00 UTC) - --# Updated through IERS Bulletin C59 --# File expires on: 28 December 2020 -+# Updated through IERS Bulletin C60 -+# File expires on: 28 June 2021 -diff --git a/make/data/tzdata/northamerica b/make/data/tzdata/northamerica ---- a/make/data/tzdata/northamerica -+++ b/make/data/tzdata/northamerica -@@ -193,7 +193,7 @@ - # U.S. government action. So even though the "US" rules have changed - # in the latest release, other countries won't be affected. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule US 1918 1919 - Mar lastSun 2:00 1:00 D - Rule US 1918 1919 - Oct lastSun 2:00 0 S - Rule US 1942 only - Feb 9 2:00 1:00 W # War -@@ -370,7 +370,7 @@ - # Eastern time (i.e., -4:56:01.6) just before the 1883 switch. Round to the - # nearest second. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule NYC 1920 only - Mar lastSun 2:00 1:00 D - Rule NYC 1920 only - Oct lastSun 2:00 0 S - Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D -@@ -454,7 +454,7 @@ - # The Tennessean 2007-05-11, republished 2015-04-06. - # https://www.tennessean.com/story/insider/extras/2015/04/06/archives-seigenthaler-for-100-years-the-tennessean-had-it-covered/25348545/ - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Chicago 1920 only - Jun 13 2:00 1:00 D - Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S - Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D -@@ -523,7 +523,7 @@ - # El Paso Times. 2018-10-24 06:40 -06. - # https://www.elpasotimes.com/story/news/local/el-paso/2018/10/24/el-pasoans-were-time-rebels-fought-stay-mountain-zone/1744509002/ - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D - Rule Denver 1920 only - Oct lastSun 2:00 0 S - Rule Denver 1921 only - May 22 2:00 0 S -@@ -576,7 +576,7 @@ - # https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&context=ca_ballot_props - # https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&context=ca_ballot_props - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule CA 1948 only - Mar 14 2:01 1:00 D - Rule CA 1949 only - Jan 1 2:00 0 S - Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D -@@ -934,7 +934,7 @@ - # going to switch from Central to Eastern Time on March 11, 2007.... - # http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/702070524/0/LOCAL - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D - Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S - Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D -@@ -953,7 +953,7 @@ - # - # Eastern Crawford County, Indiana, left its clocks alone in 1974, - # as well as from 1976 through 2005. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D - Rule Marengo 1951 only - Sep lastSun 2:00 0 S - Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D -@@ -972,7 +972,7 @@ - # Daviess, Dubois, Knox, and Martin Counties, Indiana, - # switched from eastern to central time in April 2006, then switched back - # in November 2007. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D - Rule Vincennes 1946 only - Sep lastSun 2:00 0 S - Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D -@@ -997,7 +997,7 @@ - # The Indianapolis News, Friday 27 October 1967 states that Perry County - # returned to CST. It went again to EST on 27 April 1969, as documented by the - # Indianapolis star of Saturday 26 April. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Perry 1955 only - May 1 0:00 1:00 D - Rule Perry 1955 1960 - Sep lastSun 2:00 0 S - Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D -@@ -1014,7 +1014,7 @@ - # - # Pike County, Indiana moved from central to eastern time in 1977, - # then switched back in 2006, then switched back again in 2007. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Pike 1955 only - May 1 0:00 1:00 D - Rule Pike 1955 1960 - Sep lastSun 2:00 0 S - Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D -@@ -1035,7 +1035,7 @@ - # An article on page A3 of the Sunday, 1991-10-27 Washington Post - # notes that Starke County switched from Central time to Eastern time as of - # 1991-10-27. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D - Rule Starke 1947 1954 - Sep lastSun 2:00 0 S - Rule Starke 1955 1956 - Oct lastSun 2:00 0 S -@@ -1052,7 +1052,7 @@ - # - # Pulaski County, Indiana, switched from eastern to central time in - # April 2006 and then switched back in March 2007. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D - Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S - Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S -@@ -1094,7 +1094,7 @@ - # - # Part of Kentucky left its clocks alone in 1974. - # This also includes Clark, Floyd, and Harrison counties in Indiana. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Louisville 1921 only - May 1 2:00 1:00 D - Rule Louisville 1921 only - Sep 1 2:00 0 S - Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D -@@ -1208,7 +1208,7 @@ - # election Michigan voters narrowly repealed DST, effective 1969. - # - # Most of Michigan observed DST from 1973 on, but was a bit late in 1975. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D - Rule Detroit 1948 only - Sep lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -1225,7 +1225,7 @@ - # - # Dickinson, Gogebic, Iron, and Menominee Counties, Michigan, - # switched from EST to CST/CDT in 1973. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -+# Rule NAME FROM TO - IN ON AT SAVE LETTER - Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D - Rule Menominee 1946 only - Sep lastSun 2:00 0 S - Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D -@@ -1395,7 +1395,7 @@ - # Oct 31, to Oct 27, 1918 (and Sunday is a more likely transition day - # than Thursday) in all Canadian rulesets. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Canada 1918 only - Apr 14 2:00 1:00 D - Rule Canada 1918 only - Oct 27 2:00 0 S - Rule Canada 1942 only - Feb 9 2:00 1:00 W # War -@@ -1418,7 +1418,7 @@ - # that follows the rules is the southeast corner, including Port Hope - # Simpson and Mary's Harbour, but excluding, say, Black Tickle. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule StJohns 1917 only - Apr 8 2:00 1:00 D - Rule StJohns 1917 only - Sep 17 2:00 0 S - # Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger. -@@ -1520,7 +1520,7 @@ - # bill say that it is "accommodating the customs and practices" of those - # regions, which suggests that they have always been in-line with Halifax. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Halifax 1916 only - Apr 1 0:00 1:00 D - Rule Halifax 1916 only - Oct 1 0:00 0 S - Rule Halifax 1920 only - May 9 0:00 1:00 D -@@ -1586,7 +1586,7 @@ - # clear that this was the case since at least 1993. - # For now, assume it started in 1993. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D - Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S - Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D -@@ -1795,7 +1795,7 @@ - # With some exceptions, the use of daylight saving may be said to be limited - # to those cities and towns lying between Quebec city and Windsor, Ont. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Toronto 1919 only - Mar 30 23:30 1:00 D - Rule Toronto 1919 only - Oct 26 0:00 0 S - Rule Toronto 1920 only - May 2 2:00 1:00 D -@@ -1893,7 +1893,7 @@ - # starting 1966. Since 02:00s is clearly correct for 1967 on, assume - # it was also 02:00s in 1966. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Winn 1916 only - Apr 23 0:00 1:00 D - Rule Winn 1916 only - Sep 17 0:00 0 S - Rule Winn 1918 only - Apr 14 2:00 1:00 D -@@ -1984,7 +1984,7 @@ - # long and rather painful to read. - # http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Regina 1918 only - Apr 14 2:00 1:00 D - Rule Regina 1918 only - Oct 27 2:00 0 S - Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D -@@ -2034,7 +2034,7 @@ - # Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017. - # ISBN 978-1459739123. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D - Rule Edm 1918 only - Oct 27 2:00 0 S - Rule Edm 1919 only - May 27 2:00 0 S -@@ -2143,7 +2143,7 @@ - # https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-july-7-1941-start-d-s-sept-27-end-of-d-s-1941 - # We have no further details, so omit them for now. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Vanc 1918 only - Apr 14 2:00 1:00 D - Rule Vanc 1918 only - Oct 27 2:00 0 S - Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War -@@ -2472,7 +2472,19 @@ - # consistency with nearby Dawson Creek, Creston, and Fort Nelson. - # https://yukon.ca/en/news/yukon-end-seasonal-time-change - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# From Andrew G. Smith (2020-09-24): -+# Yukon has completed its regulatory change to be on UTC -7 year-round.... -+# http://www.gov.yk.ca/legislation/regs/oic2020_125.pdf -+# What we have done is re-defined Yukon Standard Time, as we are -+# authorized to do under section 33 of our Interpretation Act: -+# http://www.gov.yk.ca/legislation/acts/interpretation_c.pdf -+# -+# From Paul Eggert (2020-09-24): -+# tzdb uses the obsolete YST abbreviation for standard time in Yukon through -+# about 1970, and uses PST for standard time in Yukon since then. Consistent -+# with that, use MST for -07, the new standard time in Yukon effective Nov. 1. -+ -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule NT_YK 1918 only - Apr 14 2:00 1:00 D - Rule NT_YK 1918 only - Oct 27 2:00 0 S - Rule NT_YK 1919 only - May 25 2:00 1:00 D -@@ -2526,12 +2538,12 @@ - Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 - -9:00 NT_YK Y%sT 1967 May 28 0:00 - -8:00 NT_YK P%sT 1980 -- -8:00 Canada P%sT 2020 Mar 8 2:00 -+ -8:00 Canada P%sT 2020 Nov 1 - -7:00 - MST - Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 - -9:00 NT_YK Y%sT 1973 Oct 28 0:00 - -8:00 NT_YK P%sT 1980 -- -8:00 Canada P%sT 2020 Mar 8 2:00 -+ -8:00 Canada P%sT 2020 Nov 1 - -7:00 - MST - - -@@ -2746,7 +2758,7 @@ - # 5- The islands, reefs and keys shall take their timezone from the - # longitude they are located at. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Mexico 1939 only - Feb 5 0:00 1:00 D - Rule Mexico 1939 only - Jun 25 0:00 0 S - Rule Mexico 1940 only - Dec 9 0:00 1:00 D -@@ -2951,7 +2963,7 @@ - # rules to sync with the U.S. starting in 2007.... - # http://www.jonesbahamas.com/?c=45&a=10412 - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Bahamas 1964 1975 - Oct lastSun 2:00 0 S - Rule Bahamas 1964 1975 - Apr lastSun 2:00 1:00 D - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -2963,7 +2975,7 @@ - - # For 1899 Milne gives -3:58:29.2; round that. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Barb 1977 only - Jun 12 2:00 1:00 D - Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S - Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D -@@ -2976,7 +2988,7 @@ - - # Belize - # Whitman entirely disagrees with Shanks; go with Shanks & Pottenger. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 -0530 - Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 CST - Rule Belize 1973 only - Dec 5 0:00 1:00 CDT -@@ -3013,7 +3025,7 @@ - - # Milne gives -5:36:13.3 as San José mean time; round to nearest. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D - Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S - Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D -@@ -3187,7 +3199,7 @@ - # From Paul Eggert (2012-11-03): - # For now, assume the future rule is first Sunday in November. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Cuba 1928 only - Jun 10 0:00 1:00 D - Rule Cuba 1928 only - Oct 10 0:00 0 S - Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D -@@ -3256,7 +3268,7 @@ - # decided to revert. - - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule DR 1966 only - Oct 30 0:00 1:00 EDT - Rule DR 1967 only - Feb 28 0:00 0 EST - Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430 -@@ -3273,7 +3285,7 @@ - - # El Salvador - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D - Rule Salv 1987 1988 - Sep lastSun 0:00 0 S - # There are too many San Salvadors elsewhere, so use America/El_Salvador -@@ -3302,7 +3314,7 @@ - # (2006-04-19), says DST ends at 24:00. See - # http://www.sieca.org.gt/Sitio_publico/Energeticos/Doc/Medidas/Cambio_Horario_Nac_190406.pdf - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Guat 1973 only - Nov 25 0:00 1:00 D - Rule Guat 1974 only - Feb 24 0:00 0 S - Rule Guat 1983 only - May 21 0:00 1:00 D -@@ -3383,7 +3395,7 @@ - # I have not been able to find a more authoritative source: - # https://www.haitilibre.com/en/news-20319-haiti-notices-time-change-in-haiti.html - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Haiti 1983 only - May 8 0:00 1:00 D - Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D - Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S -@@ -3431,7 +3443,7 @@ - # http://www.laprensahn.com/pais_nota.php?id04962=7386 - # So it seems that Honduras will not enter DST this year.... - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D - Rule Hond 1987 1988 - Sep lastSun 0:00 0 S - Rule Hond 2006 only - May Sun>=1 0:00 1:00 D -@@ -3522,7 +3534,7 @@ - # The natural sun time is restored in all the national territory, in that the - # time is returned one hour at 01:00 am of October 1 of 2006. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D - Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S - Rule Nic 2005 only - Apr 10 0:00 1:00 D -diff --git a/make/data/tzdata/pacificnew b/make/data/tzdata/pacificnew -deleted file mode 100644 ---- a/make/data/tzdata/pacificnew -+++ /dev/null -@@ -1,52 +0,0 @@ --# --# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. --# --# This code is free software; you can redistribute it and/or modify it --# under the terms of the GNU General Public License version 2 only, as --# published by the Free Software Foundation. Oracle designates this --# particular file as subject to the "Classpath" exception as provided --# by Oracle in the LICENSE file that accompanied this code. --# --# This code is distributed in the hope that it will be useful, but WITHOUT --# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or --# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --# version 2 for more details (a copy is included in the LICENSE file that --# accompanied this code). --# --# You should have received a copy of the GNU General Public License version --# 2 along with this work; if not, write to the Free Software Foundation, --# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. --# --# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA --# or visit www.oracle.com if you need additional information or have any --# questions. --# --# tzdb data for proposed US election time (this file is obsolete) -- --# This file is in the public domain, so clarified as of --# 2009-05-17 by Arthur David Olson. -- --# From Arthur David Olson (1989-04-05): --# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill --# establishing "Pacific Presidential Election Time"; it was not acted on --# by the Senate or signed into law by the President. --# You might want to change the "PE" (Presidential Election) below to --# "Q" (Quadrennial) to maintain three-character zone abbreviations. --# If you're really conservative, you might want to change it to "D". --# Avoid "L" (Leap Year), which won't be true in 2100. -- --# If Presidential Election Time is ever established, replace "XXXX" below --# with the year the law takes effect and uncomment the "##" lines. -- --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S --## Rule Twilite XXXX max - Apr Sun>=1 2:00 1:00 D --## Rule Twilite XXXX max uspres Oct lastSun 2:00 1:00 PE --## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S --## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S -- --# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL] --## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX --## -8:00 Twilite P%sT -- --# For now... --Link America/Los_Angeles US/Pacific-New ## -diff --git a/make/data/tzdata/southamerica b/make/data/tzdata/southamerica ---- a/make/data/tzdata/southamerica -+++ b/make/data/tzdata/southamerica -@@ -71,7 +71,7 @@ - # I am sending modifications to the Argentine time zone table... - # AR was chosen because they are the ISO letters that represent Argentina. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Arg 1930 only - Dec 1 0:00 1:00 - - Rule Arg 1931 only - Apr 1 0:00 0 - - Rule Arg 1931 only - Oct 15 0:00 1:00 - -@@ -792,7 +792,7 @@ - # From Paul Eggert (2013-10-17): - # For now, assume western Amazonas will change as well. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # Decree 20,466 (1931-10-01) - # Decree 21,896 (1932-01-10) - Rule Brazil 1931 only - Oct 3 11:00 1:00 - -@@ -1281,7 +1281,7 @@ - # For now, assume that they will not revert, - # since they have extended the expiration date once already. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Chile 1927 1931 - Sep 1 0:00 1:00 - - Rule Chile 1928 1932 - Apr 1 0:00 0 - - Rule Chile 1968 only - Nov 3 4:00u 1:00 - -@@ -1381,7 +1381,7 @@ - # Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes, - # "A variation of fifteen minutes in the public clocks of Bogota is not rare." - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule CO 1992 only - May 3 0:00 1:00 - - Rule CO 1993 only - Apr 4 0:00 0 - - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -1441,7 +1441,7 @@ - # (Not one step back), the clocks went back in 1993 and the experiment was not - # repeated. For now, assume transitions were at 00:00 local time country-wide. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Ecuador 1992 only - Nov 28 0:00 1:00 - - Rule Ecuador 1993 only - Feb 5 0:00 0 - - # -@@ -1535,7 +1535,7 @@ - # For now we will assume permanent -03 for the Falklands - # until advised differently (to apply for 2012 and beyond, after the 2011 - # experiment was apparently successful.) --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 - - Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 - - Rule Falk 1939 only - Oct 1 0:00 1:00 - -@@ -1581,7 +1581,7 @@ - # No time of the day is established for the adjustment, so people normally - # adjust their clocks at 0 hour of the given dates. - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Para 1975 1988 - Oct 1 0:00 1:00 - - Rule Para 1975 1978 - Mar 1 0:00 0 - - Rule Para 1979 1991 - Apr 1 0:00 0 - -@@ -1674,7 +1674,7 @@ - # From Paul Eggert (2006-03-22): - # Shanks & Pottenger don't have this transition. Assume 1986 was like 1987. - --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Peru 1938 only - Jan 1 0:00 1:00 - - Rule Peru 1938 only - Apr 1 0:00 0 - - Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 - -@@ -1770,7 +1770,7 @@ - # https://www.impo.com.uy/diariooficial/1926/03/10/2 - # https://www.impo.com.uy/diariooficial/1926/03/18/2 - # --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 - - Rule Uruguay 1924 1926 - Apr 1 0:00 0 - - # From Tim Parenti (2018-02-15): -diff --git a/make/data/tzdata/systemv b/make/data/tzdata/systemv -deleted file mode 100644 ---- a/make/data/tzdata/systemv -+++ /dev/null -@@ -1,62 +0,0 @@ --# --# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. --# --# This code is free software; you can redistribute it and/or modify it --# under the terms of the GNU General Public License version 2 only, as --# published by the Free Software Foundation. Oracle designates this --# particular file as subject to the "Classpath" exception as provided --# by Oracle in the LICENSE file that accompanied this code. --# --# This code is distributed in the hope that it will be useful, but WITHOUT --# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or --# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --# version 2 for more details (a copy is included in the LICENSE file that --# accompanied this code). --# --# You should have received a copy of the GNU General Public License version --# 2 along with this work; if not, write to the Free Software Foundation, --# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. --# --# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA --# or visit www.oracle.com if you need additional information or have any --# questions. --# --# tzdb data for System V rules (this file is obsolete) -- --# This file is in the public domain, so clarified as of --# 2009-05-17 by Arthur David Olson. -- --# Old rules, should the need arise. --# No attempt is made to handle Newfoundland, since it cannot be expressed --# using the System V "TZ" scheme (half-hour offset), or anything outside --# North America (no support for non-standard DST start/end dates), nor --# the changes in the DST rules in the US after 1976 (which occurred after --# the old rules were written). --# --# If you need the old rules, uncomment ## lines. --# Compile this *without* leap second correction for true conformance. -- --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S --Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D --Rule SystemV min 1973 - Oct lastSun 2:00 0 S --Rule SystemV 1974 only - Jan 6 2:00 1:00 D --Rule SystemV 1974 only - Nov lastSun 2:00 0 S --Rule SystemV 1975 only - Feb 23 2:00 1:00 D --Rule SystemV 1975 only - Oct lastSun 2:00 0 S --Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D --Rule SystemV 1976 max - Oct lastSun 2:00 0 S -- --# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL] --## Zone SystemV/AST4ADT -4:00 SystemV A%sT --## Zone SystemV/EST5EDT -5:00 SystemV E%sT --## Zone SystemV/CST6CDT -6:00 SystemV C%sT --## Zone SystemV/MST7MDT -7:00 SystemV M%sT --## Zone SystemV/PST8PDT -8:00 SystemV P%sT --## Zone SystemV/YST9YDT -9:00 SystemV Y%sT --## Zone SystemV/AST4 -4:00 - AST --## Zone SystemV/EST5 -5:00 - EST --## Zone SystemV/CST6 -6:00 - CST --## Zone SystemV/MST7 -7:00 - MST --## Zone SystemV/PST8 -8:00 - PST --## Zone SystemV/YST9 -9:00 - YST --## Zone SystemV/HST10 -10:00 - HST -diff --git a/make/gendata/GendataTZDB.gmk b/make/gendata/GendataTZDB.gmk ---- a/make/gendata/GendataTZDB.gmk -+++ b/make/gendata/GendataTZDB.gmk -@@ -29,7 +29,7 @@ - # Time zone data file creation - # - TZDATA_DIR := $(TOPDIR)/make/data/tzdata --TZDATA_TZFILE := africa antarctica asia australasia europe northamerica pacificnew southamerica backward etcetera gmt jdk11_backward -+TZDATA_TZFILE := africa antarctica asia australasia europe northamerica southamerica backward etcetera gmt jdk11_backward - TZDATA_TZFILES := $(addprefix $(TZDATA_DIR)/,$(TZDATA_TZFILE)) - - GENDATA_TZDB_DAT := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/tzdb.dat -diff --git a/src/java.base/aix/conf/tzmappings b/src/java.base/aix/conf/tzmappings ---- a/src/java.base/aix/conf/tzmappings -+++ b/src/java.base/aix/conf/tzmappings -@@ -568,7 +568,6 @@ - US/Michigan America/New_York - US/Mountain America/Denver - US/Pacific America/Los_Angeles --US/Pacific-New America/Los_Angeles - US/Samoa Pacific/Pago_Pago - USAST-2 Africa/Johannesburg - USAST-2USADT Europe/Istanbul -diff --git a/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java b/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java ---- a/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java -+++ b/src/java.base/share/classes/sun/util/resources/TimeZoneNames.java -@@ -1063,7 +1063,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_de.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_es.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_fr.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_it.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ja.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_ko.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_pt_BR.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_sv.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_CN.java -@@ -1035,7 +1035,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java ---- a/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java -+++ b/src/jdk.localedata/share/classes/sun/util/resources/ext/TimeZoneNames_zh_TW.java -@@ -1037,7 +1037,6 @@ - {"US/Michigan", EST}, - {"US/Mountain", MST}, - {"US/Pacific", PST}, -- {"US/Pacific-New", PST}, - {"US/Samoa", SAMOA}, - {"VST", ICT}, - {"W-SU", MSK}, -diff --git a/test/jdk/java/time/test/java/time/format/ZoneName.java b/test/jdk/java/time/test/java/time/format/ZoneName.java ---- a/test/jdk/java/time/test/java/time/format/ZoneName.java -+++ b/test/jdk/java/time/test/java/time/format/ZoneName.java -@@ -589,7 +589,6 @@ - "US/Michigan", "America_Eastern", "America/New_York", - "US/Mountain", "America_Mountain", "America/Denver", - "US/Pacific", "America_Pacific", "America/Los_Angeles", -- "US/Pacific-New", "America_Pacific", "America/Los_Angeles", - "US/Samoa", "Samoa", "Pacific/Pago_Pago", - "W-SU", "Moscow", "Europe/Moscow", - -@@ -973,7 +972,6 @@ - "US/Michigan", "America/Detroit", - "US/Mountain", "America/Denver", - "US/Pacific", "America/Los_Angeles", -- "US/Pacific-New", "America/Los_Angeles", - "US/Samoa", "Pacific/Pago_Pago", - "UTC", "Etc/UTC", - "Universal", "Etc/UTC", -diff --git a/test/jdk/java/time/test/java/time/zone/TestZoneRules.java b/test/jdk/java/time/test/java/time/zone/TestZoneRules.java ---- a/test/jdk/java/time/test/java/time/zone/TestZoneRules.java -+++ b/test/jdk/java/time/test/java/time/zone/TestZoneRules.java -@@ -88,7 +88,7 @@ - {CASABLANCA, LocalDate.of(2019, 5, 6), ZoneOffset.ofHours(0), ZoneOffset.ofHours(0), false}, - {CASABLANCA, LocalDate.of(2037, 10, 5), ZoneOffset.ofHours(0), ZoneOffset.ofHours(0), false}, - {CASABLANCA, LocalDate.of(2037, 11, 16), ZoneOffset.ofHours(1), ZoneOffset.ofHours(0), true}, -- {CASABLANCA, LocalDate.of(2038, 11, 1), ZoneOffset.ofHours(1), ZoneOffset.ofHours(0), true}, -+ {CASABLANCA, LocalDate.of(2038, 11, 8), ZoneOffset.ofHours(1), ZoneOffset.ofHours(0), true}, - }; - } - -diff --git a/test/jdk/sun/util/calendar/zi/TestZoneInfo310.java b/test/jdk/sun/util/calendar/zi/TestZoneInfo310.java ---- a/test/jdk/sun/util/calendar/zi/TestZoneInfo310.java -+++ b/test/jdk/sun/util/calendar/zi/TestZoneInfo310.java -@@ -48,7 +48,7 @@ - String TESTDIR = System.getProperty("test.dir", "."); - Path tzdir = Paths.get(System.getProperty("test.root"), - "..", "..", "make", "data", "tzdata"); -- String tzfiles = "africa antarctica asia australasia europe northamerica pacificnew southamerica backward etcetera systemv gmt"; -+ String tzfiles = "africa antarctica asia australasia europe northamerica southamerica backward etcetera gmt"; - Path jdk_tzdir = Paths.get(System.getProperty("test.src"), "tzdata_jdk"); - String jdk_tzfiles = "jdk11_backward"; - String zidir = TESTDIR + File.separator + "zi"; -@@ -215,8 +215,9 @@ - - // test getAvailableIDs(raw); - zids_new = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000); -- //Arrays.sort(zids_new); -+ Arrays.sort(zids_new); - zids_old = ZoneInfoOld.getAvailableIDs(-8 * 60 * 60 * 1000); -+ Arrays.sort(zids_old); - if (!Arrays.equals(zids_new, zids_old)) { - System.out.println("------------------------"); - System.out.println("NEW.getAvailableIDs(-8:00)"); diff --git a/SOURCES/rh1566890-CVE_2018_3639-speculative_store_bypass.patch b/SOURCES/rh1566890-CVE_2018_3639-speculative_store_bypass.patch deleted file mode 100644 index bd52828..0000000 --- a/SOURCES/rh1566890-CVE_2018_3639-speculative_store_bypass.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff --git openjdk/src/hotspot/os/linux/os_linux.cpp openjdk/src/hotspot/os/linux/os_linux.cpp ---- openjdk/src/hotspot/os/linux/os_linux.cpp -+++ openjdk/src/hotspot/os/linux/os_linux.cpp -@@ -107,6 +107,8 @@ - # include - # include - -+#include -+ - #ifndef _GNU_SOURCE - #define _GNU_SOURCE - #include -@@ -4984,6 +4986,48 @@ - extern void report_error(char* file_name, int line_no, char* title, - char* format, ...); - -+/* Per task speculation control */ -+#ifndef PR_GET_SPECULATION_CTRL -+# define PR_GET_SPECULATION_CTRL 52 -+#endif -+#ifndef PR_SET_SPECULATION_CTRL -+# define PR_SET_SPECULATION_CTRL 53 -+#endif -+/* Speculation control variants */ -+#ifndef PR_SPEC_STORE_BYPASS -+# define PR_SPEC_STORE_BYPASS 0 -+#endif -+/* Return and control values for PR_SET/GET_SPECULATION_CTRL */ -+ -+#ifndef PR_SPEC_NOT_AFFECTED -+# define PR_SPEC_NOT_AFFECTED 0 -+#endif -+#ifndef PR_SPEC_PRCTL -+# define PR_SPEC_PRCTL (1UL << 0) -+#endif -+#ifndef PR_SPEC_ENABLE -+# define PR_SPEC_ENABLE (1UL << 1) -+#endif -+#ifndef PR_SPEC_DISABLE -+# define PR_SPEC_DISABLE (1UL << 2) -+#endif -+#ifndef PR_SPEC_FORCE_DISABLE -+# define PR_SPEC_FORCE_DISABLE (1UL << 3) -+#endif -+#ifndef PR_SPEC_DISABLE_NOEXEC -+# define PR_SPEC_DISABLE_NOEXEC (1UL << 4) -+#endif -+ -+static void set_speculation() __attribute__((constructor)); -+static void set_speculation() { -+ if ( prctl(PR_SET_SPECULATION_CTRL, -+ PR_SPEC_STORE_BYPASS, -+ PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) { -+ return; -+ } -+ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0); -+} -+ - // this is called _before_ most of the global arguments have been parsed - void os::init(void) { - char dummy; // used to get a guess on initial stack address diff --git a/SOURCES/rh1750419-redhat_alt_java.patch b/SOURCES/rh1750419-redhat_alt_java.patch new file mode 100644 index 0000000..e6355f2 --- /dev/null +++ b/SOURCES/rh1750419-redhat_alt_java.patch @@ -0,0 +1,116 @@ +diff -r 1356affa5e44 make/launcher/Launcher-java.base.gmk +--- openjdk/make/launcher/Launcher-java.base.gmk Wed Nov 25 08:27:15 2020 +0100 ++++ openjdk/make/launcher/Launcher-java.base.gmk Tue Dec 01 12:29:30 2020 +0100 +@@ -41,6 +41,16 @@ + OPTIMIZATION := HIGH, \ + )) + ++#Wno-error=cpp is present to allow commented warning in ifdef part of main.c ++$(eval $(call SetupBuildLauncher, alt-java, \ ++ CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES -DREDHAT_ALT_JAVA -Wno-error=cpp, \ ++ LDFLAGS_solaris := -R$(OPENWIN_HOME)/lib$(OPENJDK_TARGET_CPU_ISADIR), \ ++ LIBS_windows := user32.lib comctl32.lib, \ ++ EXTRA_RC_FLAGS := $(JAVA_RC_FLAGS), \ ++ VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \ ++ OPTIMIZATION := HIGH, \ ++)) ++ + ifeq ($(OPENJDK_TARGET_OS), windows) + $(eval $(call SetupBuildLauncher, javaw, \ + CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \ + +diff -r 25e94aa812b2 src/share/bin/alt_main.h +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/src/java.base/share/native/launcher/alt_main.h Tue Jun 02 17:15:28 2020 +0100 +@@ -0,0 +1,73 @@ ++/* ++ * Copyright (c) 2019, Red Hat, Inc. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++#ifdef REDHAT_ALT_JAVA ++ ++#include ++ ++ ++/* Per task speculation control */ ++#ifndef PR_GET_SPECULATION_CTRL ++# define PR_GET_SPECULATION_CTRL 52 ++#endif ++#ifndef PR_SET_SPECULATION_CTRL ++# define PR_SET_SPECULATION_CTRL 53 ++#endif ++/* Speculation control variants */ ++#ifndef PR_SPEC_STORE_BYPASS ++# define PR_SPEC_STORE_BYPASS 0 ++#endif ++/* Return and control values for PR_SET/GET_SPECULATION_CTRL */ ++ ++#ifndef PR_SPEC_NOT_AFFECTED ++# define PR_SPEC_NOT_AFFECTED 0 ++#endif ++#ifndef PR_SPEC_PRCTL ++# define PR_SPEC_PRCTL (1UL << 0) ++#endif ++#ifndef PR_SPEC_ENABLE ++# define PR_SPEC_ENABLE (1UL << 1) ++#endif ++#ifndef PR_SPEC_DISABLE ++# define PR_SPEC_DISABLE (1UL << 2) ++#endif ++#ifndef PR_SPEC_FORCE_DISABLE ++# define PR_SPEC_FORCE_DISABLE (1UL << 3) ++#endif ++#ifndef PR_SPEC_DISABLE_NOEXEC ++# define PR_SPEC_DISABLE_NOEXEC (1UL << 4) ++#endif ++ ++static void set_speculation() __attribute__((constructor)); ++static void set_speculation() { ++ if ( prctl(PR_SET_SPECULATION_CTRL, ++ PR_SPEC_STORE_BYPASS, ++ PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) { ++ return; ++ } ++ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0); ++} ++ ++#endif // REDHAT_ALT_JAVA +diff -r 25e94aa812b2 src/share/bin/main.c +--- openjdk/src/java.base/share/native/launcher/main.c Wed Feb 05 12:20:36 2020 -0300 ++++ openjdk/src/java.base/share/native/launcher/main.c Tue Jun 02 17:15:28 2020 +0100 +@@ -34,6 +34,14 @@ + #include "jli_util.h" + #include "jni.h" + ++#ifdef REDHAT_ALT_JAVA ++#if defined(__linux__) && defined(__x86_64__) ++#include "alt_main.h" ++#else ++#warning alt-java requested but SSB mitigation not available on this platform. ++#endif ++#endif ++ + #ifdef _MSC_VER + #if _MSC_VER > 1400 && _MSC_VER < 1600 + diff --git a/SOURCES/rh1842572-rsa_default_for_keytool.patch b/SOURCES/rh1842572-rsa_default_for_keytool.patch index db74cdc..9f1dabc 100644 --- a/SOURCES/rh1842572-rsa_default_for_keytool.patch +++ b/SOURCES/rh1842572-rsa_default_for_keytool.patch @@ -1,12 +1,12 @@ diff --git openjdk.orig/src/java.base/share/classes/sun/security/tools/keytool/Main.java openjdk/src/java.base/share/classes/sun/security/tools/keytool/Main.java --- openjdk.orig/src/java.base/share/classes/sun/security/tools/keytool/Main.java +++ openjdk/src/java.base/share/classes/sun/security/tools/keytool/Main.java -@@ -1122,7 +1122,7 @@ +@@ -1135,7 +1135,7 @@ } } else if (command == GENKEYPAIR) { if (keyAlgName == null) { - keyAlgName = "DSA"; + keyAlgName = "RSA"; } - doGenKeyPair(alias, dname, keyAlgName, keysize, sigAlgName); + doGenKeyPair(alias, dname, keyAlgName, keysize, groupName, sigAlgName); kssave = true; diff --git a/SOURCES/s390-8214206_fix.patch b/SOURCES/s390-8214206_fix.patch deleted file mode 100644 index 1d0c686..0000000 --- a/SOURCES/s390-8214206_fix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git openjdk.orig/jdk/src/hotspot/share/runtime/os.cpp openjdk/jdk/src/hotspot/share/runtime/os.cpp ---- openjdk.orig/src/hotspot/share/runtime/os.cpp -+++ openjdk/src/hotspot/share/runtime/os.cpp -@@ -1368,7 +1368,7 @@ - } - - void os::set_memory_serialize_page(address page) { -- int count = log2_intptr(sizeof(class JavaThread)) - log2_int(64); -+ int count = log2_intptr((uintptr_t) sizeof(class JavaThread)) - log2_int(64); - _mem_serialize_page = (volatile int32_t *)page; - // We initialize the serialization page shift count here - // We assume a cache line size of 64 bytes diff --git a/SPECS/java-11-openjdk.spec b/SPECS/java-11-openjdk.spec index b2cb131..af9f1cf 100644 --- a/SPECS/java-11-openjdk.spec +++ b/SPECS/java-11-openjdk.spec @@ -41,10 +41,11 @@ %global normal_suffix "" %global debug_warning This package is unoptimised with full debugging. Install only as needed and remove ASAP. -%global debug_on with full debug on +%global debug_on with full debugging on +%global fastdebug_on with minimal debugging on %global fastdebug_warning This package is optimised with full debugging. Install only as needed and remove ASAP. -%global for_fastdebug_on with minimal debug on -%global for_debug for packages with debug on +%global for_fastdebug_on for packages with minimal debugging on +%global for_debug for packages with debugging on %if %{with release} %global include_normal_build 1 @@ -105,6 +106,8 @@ %global shenandoah_arches x86_64 %{aarch64} # Set of architectures for which we build the Z garbage collector %global zgc_arches x86_64 +# Set of architectures for which alt-java has SSB mitigation +%global ssbd_arches x86_64 # By default, we build a debug build during main build on JIT architectures %if %{with slowdebug} @@ -259,16 +262,18 @@ %endif # New Version-String scheme-style defines -%global majorver 11 -# If you bump majorver, you must also bump vendor_version_string +%global featurever 11 +%global interimver 0 +%global updatever 10 +%global patchver 0 +# If you bump featurever, you must bump also vendor_version_string # Used via new version scheme. JDK 11 was # GA'ed in September 2018 => 18.9 %global vendor_version_string 18.9 -%global securityver 9 -# buildjdkver is usually same as %%{majorver}, -# but in time of bootstrap of next jdk, it is majorver-1, +# buildjdkver is usually same as %%{featurever}, +# but in time of bootstrap of next jdk, it is featurever-1, # and this it is better to change it here, on single place -%global buildjdkver %{majorver} +%global buildjdkver %{featurever} # Add LTS designator for RHEL builds %if 0%{?rhel} %global lts_designator "LTS" @@ -305,26 +310,37 @@ %global origin openjdk %global origin_nice OpenJDK %global top_level_dir_name %{origin} -%global minorver 0 -%global buildver 11 -%global rpmrelease 4 +%global buildver 1 +%global rpmrelease 1 #%%global tagsuffix %%{nil} -# priority must be 8 digits in total; untill openjdk 1.8 we were using 18..... so when moving to 11 we had to add another digit +# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk -%global priority %( printf '%02d%02d%02d%02d' %{majorver} %{minorver} %{securityver} %{buildver} ) +# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions +# It is very unlikely we will ever have a patch version > 4 or a build version > 20, so we combine as (patch * 20) + build. +# This means 11.0.9.0+11 would have had a priority of 11000911 as before +# A 11.0.9.1+1 would have had a priority of 11000921 (20 * 1 + 1), thus ensuring it is bigger than 11.0.9.0+11 +%global combiver $( expr 20 '*' %{patchver} + %{buildver} ) +%global priority %( printf '%02d%02d%02d%02d' %{featurever} %{interimver} %{updatever} %{combiver} ) %else # for techpreview, using 1, so slowdebugs can have 0 %global priority %( printf '%08d' 1 ) %endif -%global newjavaver %{majorver}.%{minorver}.%{securityver} +%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver} -%global javaver %{majorver} +# Omit trailing 0 in filenames when the patch version is 0 +%if 0%{?patchver} > 0 +%global filever %{newjavaver} +%else +%global filever %{featurever}.%{interimver}.%{updatever} +%endif + +%global javaver %{featurever} # Define milestone (EA for pre-releases, GA for releases) # Release will be (where N is usually a number starting at 1): # - 0.N%%{?extraver}%%{?dist} for EA releases, # - N%%{?extraver}{?dist} for GA releases -%global is_ga 1 +%global is_ga 0 %if %{is_ga} %global ea_designator "" %global ea_designator_zip "" @@ -338,7 +354,7 @@ %endif # parametrized macros are order-sensitive -%global compatiblename java-%{majorver}-%{origin} +%global compatiblename java-%{featurever}-%{origin} %global fullversion %{compatiblename}-%{version}-%{release} # images directories from upstream build %global jdkimage jdk @@ -954,8 +970,7 @@ Requires: ca-certificates Requires: javapackages-filesystem # Require zone-info data provided by tzdata-java sub-package # 2020b required as of JDK-8254177 in October CPU -# Temporarily held at 2020a until 2020b has shipped -Requires: tzdata-java >= 2020a +Requires: tzdata-java >= 2020b # for support of kernel stream control # libsctp.so.1 is being `dlopen`ed on demand Requires: lksctp-tools%{?_isa} @@ -1094,7 +1109,7 @@ Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist} # provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". Epoch: 1 -Summary: %{origin_nice} Runtime Environment %{majorver} +Summary: %{origin_nice} %{featurever} Runtime Environment Group: Development/Languages # HotSpot code is licensed under GPLv2 @@ -1117,7 +1132,7 @@ URL: http://openjdk.java.net/ # to regenerate source0 (jdk) run update_package.sh # update_package.sh contains hard-coded repos, revisions, tags, and projects to regenerate the source archives -Source0: jdk-updates-jdk%{majorver}u-jdk-%{newjavaver}+%{buildver}%{?tagsuffix:-%{tagsuffix}}-4curve.tar.xz +Source0: jdk-updates-jdk%{featurever}u-jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}}-4curve.tar.xz # Use 'icedtea_sync.sh' to update the following # They are based on code contained in the IcedTea project (3.x). @@ -1160,6 +1175,8 @@ Patch1: rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch Patch2: rh1648644-java_access_bridge_privileged_security.patch # NSS via SunPKCS11 Provider (disabled due to memory leak). Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch +# enable build of speculative store bypass hardened alt-java +Patch600: rh1750419-redhat_alt_java.patch # RH1655466: Support RHEL FIPS mode using SunPKCS11 provider Patch1001: rh1655466-global_crypto_and_fips.patch # RH1818909: No ciphersuites availale for SSLSocket in FIPS mode @@ -1193,8 +1210,6 @@ Patch1006: rh1883849-cryptoki_access_to_sunjce_with_security_manager.patch Patch3: rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch # PR3694, RH1340845: Add security.useSystemPropertiesFile option to java.security to use system crypto policy Patch4: pr3694-rh1340845-support_fedora_rhel_system_crypto_policy.patch -# RH1566890: CVE-2018-3639 -Patch6: rh1566890-CVE_2018_3639-speculative_store_bypass.patch # PR3695: Allow use of system crypto policy to be disabled by the user Patch7: pr3695-toggle_system_crypto_policy.patch # RH1868754: FIPS: Ciphers remain in broken state (unusable), after being supplied with wrongly sized buffer @@ -1209,12 +1224,8 @@ Patch11: rh1868754-pkcs11_cancel_on_failure.patch # able to be removed once that release is out # and used by this RPM. ############################################# -# JDK-8222286: S390 ambiguous log2_intptr call -Patch8: s390-8214206_fix.patch -# JDK-8254177: (tz) Upgrade time-zone data to tzdata2020b -Patch9: jdk8254177-tzdata2020b.patch -# JDK-8236512: PKCS11 Connection closed after Cipher.doFinal and NoPadding -Patch10: jdk8236512-pkcs11_incorrrect_session_closure.patch +# JDK-8250861, RH1895274: Crash in MinINode::Ideal(PhaseGVN*, bool) +Patch12: jdk8250861-rh1895274-crash_in_MinINode_Ideal.patch BuildRequires: autoconf BuildRequires: automake @@ -1229,6 +1240,7 @@ BuildRequires: freetype-devel BuildRequires: giflib-devel BuildRequires: gcc-c++ BuildRequires: gdb +BuildRequires: harfbuzz-devel BuildRequires: lcms2-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel @@ -1253,8 +1265,7 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel BuildRequires: libffi-devel %endif # 2020b required as of JDK-8254177 in October CPU -# Temporarily held at 2020a until 2020b has shipped -BuildRequires: tzdata-java >= 2020a +BuildRequires: tzdata-java >= 2020b # Earlier versions have a bug in tree vectorization on PPC BuildRequires: gcc >= 4.8.3-8 @@ -1267,241 +1278,241 @@ BuildRequires: systemtap-sdt-devel %{java_rpo %{nil}} %description -The %{origin_nice} runtime environment. +The %{origin_nice} %{featurever} runtime environment. %if %{include_debug_build} %package slowdebug -Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} Runtime Environment %{debug_on} Group: Development/Languages %{java_rpo -- %{debug_suffix_unquoted}} %description slowdebug -The %{origin_nice} runtime environment. +The %{origin_nice} %{featurever} runtime environment. %{debug_warning} %endif %if %{include_fastdebug_build} %package fastdebug -Summary: %{origin_nice} Runtime Environment %{majorver} %{fastdebug_on} +Summary: %{origin_nice} %{featurever} Runtime Environment %{fastdebug_on} Group: Development/Languages %{java_rpo -- %{fastdebug_suffix_unquoted}} %description fastdebug -The %{origin_nice} runtime environment. +The %{origin_nice} %{featurever} runtime environment. %{fastdebug_warning} %endif %if %{include_normal_build} %package headless -Summary: %{origin_nice} Headless Runtime Environment %{majorver} +Summary: %{origin_nice} %{featurever} Headless Runtime Environment Group: Development/Languages %{java_headless_rpo %{nil}} %description headless -The %{origin_nice} runtime environment %{majorver} without audio and video support. +The %{origin_nice} %{featurever} runtime environment without audio and video support. %endif %if %{include_debug_build} %package headless-slowdebug -Summary: %{origin_nice} Runtime Environment %{debug_on} +Summary: %{origin_nice} %{featurever} Runtime Environment %{debug_on} Group: Development/Languages %{java_headless_rpo -- %{debug_suffix_unquoted}} %description headless-slowdebug -The %{origin_nice} runtime environment %{majorver} without audio and video support. +The %{origin_nice} %{featurever} runtime environment without audio and video support. %{debug_warning} %endif %if %{include_fastdebug_build} %package headless-fastdebug -Summary: %{origin_nice} Runtime Environment %{fastdebug_on} +Summary: %{origin_nice} %{featurever} Runtime Environment %{fastdebug_on} Group: Development/Languages %{java_headless_rpo -- %{fastdebug_suffix_unquoted}} %description headless-fastdebug -The %{origin_nice} runtime environment %{majorver} without audio and video support. +The %{origin_nice} %{featurever} runtime environment without audio and video support. %{fastdebug_warning} %endif %if %{include_normal_build} %package devel -Summary: %{origin_nice} Development Environment %{majorver} +Summary: %{origin_nice} %{featurever} Development Environment Group: Development/Tools %{java_devel_rpo %{nil}} %description devel -The %{origin_nice} development tools %{majorver}. +The %{origin_nice} %{featurever} development tools. %endif %if %{include_debug_build} %package devel-slowdebug -Summary: %{origin_nice} Development Environment %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} Development Environment %{debug_on} Group: Development/Tools %{java_devel_rpo -- %{debug_suffix_unquoted}} %description devel-slowdebug -The %{origin_nice} development tools %{majorver}. +The %{origin_nice} ${featurever} development tools. %{debug_warning} %endif %if %{include_fastdebug_build} %package devel-fastdebug -Summary: %{origin_nice} Development Environment %{majorver} %{fastdebug_on} +Summary: %{origin_nice} %{featurever} Development Environment %{fastdebug_on} Group: Development/Tools %{java_devel_rpo -- %{fastdebug_suffix_unquoted}} %description devel-fastdebug -The %{origin_nice} development tools %{majorver}. +The %{origin_nice} %{featurever} development tools. %{fastdebug_warning} %endif %if %{include_normal_build} %package static-libs -Summary: %{origin_nice} libraries for static linking %{majorver} +Summary: %{origin_nice} %{featurever} libraries for static linking %{java_static_libs_rpo %{nil}} %description static-libs -The %{origin_nice} libraries for static linking %{majorver}. +The %{origin_nice} %{featurever} libraries for static linking. %endif %if %{include_debug_build} %package static-libs-slowdebug -Summary: %{origin_nice} libraries for static linking %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} libraries for static linking %{debug_on} %{java_static_libs_rpo -- %{debug_suffix_unquoted}} %description static-libs-slowdebug -The %{origin_nice} libraries for static linking %{majorver}. +The %{origin_nice} %{featurever} libraries for static linking. %{debug_warning} %endif %if %{include_fastdebug_build} %package static-libs-fastdebug -Summary: %{origin_nice} libraries for static linking %{majorver} %{fastdebug_on} +Summary: %{origin_nice} %{featurever} libraries for static linking %{fastdebug_on} %{java_static_libs_rpo -- %{fastdebug_suffix_unquoted}} %description static-libs-fastdebug -The %{origin_nice} libraries for static linking %{majorver}. +The %{origin_nice} %{featurever} libraries for static linking. %{fastdebug_warning} %endif %if %{include_normal_build} %package jmods -Summary: JMods for %{origin_nice} %{majorver} +Summary: JMods for %{origin_nice} %{featurever} Group: Development/Tools %{java_jmods_rpo %{nil}} %description jmods -The JMods for %{origin_nice}. +The JMods for %{origin_nice} %{featurever}. %endif %if %{include_debug_build} %package jmods-slowdebug -Summary: JMods for %{origin_nice} %{majorver} %{debug_on} +Summary: JMods for %{origin_nice} %{featurever} %{debug_on} Group: Development/Tools %{java_jmods_rpo -- %{debug_suffix_unquoted}} %description jmods-slowdebug -The JMods for %{origin_nice} %{majorver}. +The JMods for %{origin_nice} %{featurever}. %{debug_warning} %endif %if %{include_fastdebug_build} %package jmods-fastdebug -Summary: JMods for %{origin_nice} %{majorver} %{fastdebug_on} +Summary: JMods for %{origin_nice} %{featurever} %{fastdebug_on} Group: Development/Tools %{java_jmods_rpo -- %{fastdebug_suffix_unquoted}} %description jmods-fastdebug -The JMods for %{origin_nice} %{majorver}. +The JMods for %{origin_nice} %{featurever}. %{fastdebug_warning} %endif %if %{include_normal_build} %package demo -Summary: %{origin_nice} Demos %{majorver} +Summary: %{origin_nice} %{featurever} Demos Group: Development/Languages %{java_demo_rpo %{nil}} %description demo -The %{origin_nice} demos %{majorver}. +The %{origin_nice} %{featurever} demos. %endif %if %{include_debug_build} %package demo-slowdebug -Summary: %{origin_nice} Demos %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} Demos %{debug_on} Group: Development/Languages %{java_demo_rpo -- %{debug_suffix_unquoted}} %description demo-slowdebug -The %{origin_nice} demos %{majorver}. +The %{origin_nice} %{featurever} demos. %{debug_warning} %endif %if %{include_fastdebug_build} %package demo-fastdebug -Summary: %{origin_nice} Demos %{majorver} %{fastdebug_on} +Summary: %{origin_nice} %{featurever} Demos %{fastdebug_on} Group: Development/Languages %{java_demo_rpo -- %{fastdebug_suffix_unquoted}} %description demo-fastdebug -The %{origin_nice} demos %{majorver}. +The %{origin_nice} %{featurever} demos. %{fastdebug_warning} %endif %if %{include_normal_build} %package src -Summary: %{origin_nice} Source Bundle %{majorver} +Summary: %{origin_nice} %{featurever} Source Bundle Group: Development/Languages %{java_src_rpo %{nil}} %description src -The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver} +The %{compatiblename}-src sub-package contains the complete %{origin_nice} %{featurever} class library source code for use by IDE indexers and debuggers. %endif %if %{include_debug_build} %package src-slowdebug -Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug} +Summary: %{origin_nice} %{featurever} Source Bundle %{for_debug} Group: Development/Languages %{java_src_rpo -- %{debug_suffix_unquoted}} %description src-slowdebug -The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice} %{majorver} - class library source code for use by IDE indexers and debuggers. Debugging %{for_debug}. +The %{compatiblename}-src-slowdebug sub-package contains the complete %{origin_nice} %{featurever} + class library source code for use by IDE indexers and debuggers, %{for_debug}. %endif %if %{include_fastdebug_build} %package src-fastdebug -Summary: %{origin_nice} Source Bundle %{majorver} %{for_fastdebug} +Summary: %{origin_nice} %{featurever} Source Bundle %{for_fastdebug} Group: Development/Languages %{java_src_rpo -- %{fastdebug_suffix_unquoted}} %description src-fastdebug -The java-%{origin}-src-fastdebug sub-package contains the complete %{origin_nice} %{majorver} - class library source code for use by IDE indexers and debuggers. Debugging %{for_fastdebug}. +The %{compatiblename}-src-fastdebug sub-package contains the complete %{origin_nice} %{featurever} + class library source code for use by IDE indexers and debuggers, %{for_fastdebug}. %endif %if %{include_normal_build} %package javadoc -Summary: %{origin_nice} %{majorver} API documentation +Summary: %{origin_nice} %{featurever} API documentation Group: Documentation Requires: javapackages-filesystem Obsoletes: javadoc-debug @@ -1509,10 +1520,10 @@ Obsoletes: javadoc-debug %{java_javadoc_rpo %{nil}} %description javadoc -The %{origin_nice} %{majorver} API documentation. +The %{origin_nice} %{featurever} API documentation. %package javadoc-zip -Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive +Summary: %{origin_nice} %{featurever} API documentation compressed in a single archive Group: Documentation Requires: javapackages-filesystem Obsoletes: javadoc-zip-debug @@ -1520,7 +1531,7 @@ Obsoletes: javadoc-zip-debug %{java_javadoc_rpo %{nil}} %description javadoc-zip -The %{origin_nice} %{majorver} API documentation compressed in a single archive. +The %{origin_nice} %{featurever} API documentation compressed in a single archive. %endif %prep @@ -1575,15 +1586,13 @@ pushd %{top_level_dir_name} %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch6 -p1 %patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 %patch11 -p1 +%patch12 -p1 popd # openjdk %patch1000 +%patch600 %patch1001 %patch1002 %patch1003 @@ -1711,6 +1720,7 @@ bash ../configure \ --with-giflib=system \ --with-libpng=system \ --with-lcms=system \ + --with-harfbuzz=system \ --with-stdc++lib=dynamic \ --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \ --with-extra-cflags="$EXTRA_CFLAGS" \ @@ -1761,7 +1771,6 @@ ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/lib/tzdb.dat # Create fake alt-java as a placeholder for future alt-java pushd ${JAVA_HOME} -cp -a bin/java bin/%{alt_java_name} # add alt-java man page echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1 cat man/man1/java.1 >> man/man1/%{alt_java_name}.1 @@ -1794,6 +1803,16 @@ $JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||") $JAVA_HOME/bin/javac -d . %{SOURCE16} $JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" %{oj_vendor_url} %{oj_vendor_bug_url} +# Check java launcher has no SSB mitigation +if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi + +# Check alt-java launcher has SSB mitigation on supported architectures +%ifarch %{ssbd_arches} +nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation +%else +if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false; fi +%endif + # Check debug symbols in static libraries (smoke test) export STATIC_LIBS_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{static_libs_image} readelf --debug-dump $STATIC_LIBS_HOME/lib/libfdlibm.a | grep w_remainder.c @@ -1941,8 +1960,9 @@ if ! echo $suffix | grep -q "debug" ; then # Install Javadoc documentation install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} cp -a %{buildoutputdir $suffix}/images/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir $suffix} - built_doc_archive=jdk-%{newjavaver}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip - cp -a %{buildoutputdir -- $suffix}/bundles/${built_doc_archive} $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip + built_doc_archive=jdk-%{filever}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip + cp -a %{buildoutputdir -- $suffix}/bundles/${built_doc_archive} \ + $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip || ls -l %{buildoutputdir -- $suffix}/bundles/ fi # Install release notes @@ -2239,6 +2259,50 @@ end %endif %changelog +* Tue Jan 12 2021 Andrew John Hughes - 1:11.0.10.0.1-0.1.ea +- Update to jdk-11.0.10.0+1 +- Update release notes to 11.0.10.0+1 +- Use JEP-322 Time-Based Versioning so we can handle a future 11.0.9.1-like release correctly. +- Still use 11.0.x rather than 11.0.x.0 for file naming, as the trailing zero is omitted from tags. +- Revert configure and built_doc_archive hacks to build 11.0.9.1 from 11.0.9.0 sources, and synced with RHEL version. +- Cleanup debug package descriptions and version number placement. +- Switch to EA mode for 11.0.10 pre-release builds. +- Drop JDK-8222286, JDK-8236512 & JDK-8254177 as applied upstream +- Use system harfbuzz now this is supported. +- Use system tzdata2020b now it's available. +- Adjust RH1842572 patch due to context change from JDK-8213400 +- Resolves: rhbz#1903908 + +* Tue Dec 29 2020 Andrew Hughes - 1:11.0.9.11-9 +- Introduced ssbd_arches to denote architectures with SSBD mitigation (currently only x86_64) +- Introduced nm-based check to verify alt-java on ssbd_arches is patched, and no other alt-java or java binaries are patched +- RH1750419 patch amended to emit a warning on architectures where alt-java is the same as java +- Resolves: rhbz#1784116 + +* Tue Dec 29 2020 Jiri Vanek - 1:11.0.9.11-9 +- Redefined linux -> __linux__ and __x86_64 -> __x86_64__ in RH1750419 patch +- Resolves: rhbz#1784116 + +* Tue Dec 29 2020 Andrew Hughes - 1:11.0.9.11-8 +- Update release notes for 11.0.9.1 release. +- Resolves: rhbz#1895274 + +* Tue Dec 01 2020 Jiri Vanek - 1:11.0.9.11-7 +- removed patch6, rh1566890-CVE_2018_3639-speculative_store_bypass.patch, surpassed by new patch +- added patch600, rh1750419-redhat_alt_java.patch, suprassing removed patch +- no longer copying of java->alt-java as it is created by patch600 +- Resolves: rhbz#1784116 + +* Wed Nov 11 2020 Andrew Hughes - 1:11.0.9.11-6 +- Fix typo of build_doc_archive/built_doc_archive +- Resolves: rhbz#1895274 + +* Wed Nov 04 2020 Severin Gehwolf - 1:11.0.9.11-5 +- Update to jdk-11.0.9.1+1 +- RPM version stays at 11.0.9.11 so as to not break upgrade path. +- Adds a single patch for JDK-8250861. +- Resolves: rhbz#1895274 + * Thu Oct 29 2020 Jiri Vanek - 1:11.0.9.11-4 - Move all license files to NVR-specific JVM directory. - This bad placement was killing parallel installability and thus having a bad impact on leapp, if used.