From patchwork Tue Apr 7 15:11:05 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adolf Belka X-Patchwork-Id: 9641 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (not verified)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4fqqRl53wZz3wkS for ; Tue, 07 Apr 2026 15:12:03 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "E7" (not verified)) by mail01.ipfire.org (Postfix) with ESMTPS id 4fqqRl2k46z5jw for ; Tue, 07 Apr 2026 15:12:03 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4fqqRF5RSZz37J2 for ; Tue, 07 Apr 2026 15:11:37 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (not verified)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4fqqQy2qXKz37Bj for ; Tue, 07 Apr 2026 15:11:22 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4fqqQx3TrLz5hN; Tue, 07 Apr 2026 15:11:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1775574681; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/jy6BkunC2exMX6PJms4wlBEPKxlrZVTnKa+6V3sr5E=; b=KNKcuDF04uoWmmPhI3XJ3Gh2QlNjopnfJL4Vsqe0a1I2CCDtswiXqh1qcWEiGasRtf369M 5T5cXC7SAdi+JbxRFa5GczJRPc6flVXKG3d12nQ2OxTDkUTf20oKuVas4OHKb3PEBhbarg Ix/bTk1FtdtjSC1Lbe0VrFYAInXmDxDpT4g8LyggFMOKd7vga48LJwTYkTD2gk8UMfYBLA EOEOui0pBARwwVPxXDlgWd1y0KZgfCVOiYZRb1PDFGPdudyrmGiOoilQhXj/+7GE2MvTaG JIdDXmYBXQs8JVaZaZrIdL3TxPxRuRp9W28ez3Pte4QsHTcsPMFYPDy/HgngWw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1775574681; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/jy6BkunC2exMX6PJms4wlBEPKxlrZVTnKa+6V3sr5E=; b=EkO3mfBkHYVSRwTidDR+wBmDxkLjvUPRCJ2Lvf4cuuo6iah3pLR2fi+xFBPv7bHnhcEf9+ Ter8hekKO/A8uABw== From: Adolf Belka To: development@lists.ipfire.org Cc: Adolf Belka Subject: [PATCH] tzdata: Update to version 2026a Date: Tue, 7 Apr 2026 17:11:05 +0200 Message-ID: <20260407151108.3472751-32-adolf.belka@ipfire.org> In-Reply-To: <20260407151108.3472751-1-adolf.belka@ipfire.org> References: <20260407151108.3472751-1-adolf.belka@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 - Update from version 2025c to 2026a - No change to rootfile - Changelog 2026a Briefly: Moldova has used EU transition times since 2022. The "right" TZif files are no longer installed by default. -DTZ_RUNTIME_LEAPS=0 disables runtime support for leap seconds. TZif files are no longer limited to 50 bytes of abbreviations. zic is no longer limited to 50 leap seconds. Several integer overflow bugs have been fixed. Changes to past and future timestamps Since 2022 Moldova has observed EU transition times, that is, it has sprung forward at 03:00, not 02:00, and has fallen back at 04:00, not 03:00. (Thanks to Heitor David Pinto.) Changes to data Remove Europe/Chisinau from zonenow.tab, as it now agrees with Europe/Athens for future timestamps. Changes to build procedure The Makefile no longer by default installs an alternate set of TZif files for system clocks that count leap seconds. Install with 'make REDO=posix_right' to get the old default, which is rarely used in major downstream distributions. If your system clock counts leap seconds (contrary to POSIX), it is better to install with 'make REDO=right_only'. This change does not affect the leapseconds file, which is still installed as before. The Makefile's POSIXRULES option, which was declared obsolete in release 2019b, has been removed. The Makefile's build procedure thus no longer optionally installs the obsolete posixrules file. Changes to code Compiling with the new option -DTZ_RUNTIME_LEAPS=0 disables runtime support for leap seconds. Although this conforms to POSIX, shrinks tzcode's attack surface, and is more efficient, it fails to support Internet RFC 9636's leap seconds. zic now can generate, and localtime.c can now use, TZif files that hold up to 256 bytes of abbreviations, counting trailing NULs. The previous limit was 50 bytes, and some tzdata TZif files were already consuming 40 bytes. zic -v warns if it generates a file that exceeds the old 50-byte limit. zic -L can now generate TZif files with more than 50 leap seconds. This helps test TZif readers not limited to 50 leap seconds, as tzcode's localtime.c is; it has little immediate need for practical timekeeping as there have been only 27 leap seconds and possibly there will be no more, due to planned changes to UTC. zic -v warns if its output exceeds the old 50-second limit. localtime.c no longer accesses the posixrules file generated by zic -p. Hence for obsolete and nonconforming settings like TZ="AST4ADT" it now typically falls back on US DST rules, rather than attempting to override this fallback with the contents of the posixrules file. This removes library support that was declared obsolete in release 2019b, and fixes some undefined behavior. (Undefined behavior reported by GitHub user Naveed8951.) The posix2time, posix2time_z, time2posix, and time2posix_z functions now set errno=EOVERFLOW and return ((time_t) -1) if the result is not representable. Formerly they had undefined behavior that could in practice result in crashing, looping indefinitely, or returning an incorrect result. As before, these functions are defined only when localtime.c is compiled with the -DSTD_INSPIRED option. Some other undefined behavior, triggered by TZif files containing outlandish but conforming UT offsets or leap second corrections, has also been fixed. (Some of these bugs reported by Naveed8951.) localtime.c no longer rejects TZif files that exactly fit in its internal structures, fixing off-by-one typos introduced in 2014g. zic no longer generates a no-op transition when simultaneous Rule and Zone changes cancel each other out. This occurs in tzdata only in Asia/Tbilisi on 1997-03-30. (Thanks to Renchunhui for a test case showing the bug.) zic no longer assumes you can fflush a read-only stream. (Problem reported by Christos Zoulas.) zic no longer generates UT offsets equal to -2**31 and localtime.c no longer accepts them, as they can cause trouble in both localtime.c and its callers. RFC 9636 prohibits such offsets. zic -p now warns that the -p option is obsolete and likely ineffective. Signed-off-by: Adolf Belka --- lfs/tzdata | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lfs/tzdata b/lfs/tzdata index ca813384f..50410a8ff 100644 --- a/lfs/tzdata +++ b/lfs/tzdata @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2025 IPFire Team # +# Copyright (C) 2007-2026 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,8 @@ include Config -VER = 2025c +VER = 2026a +# https://data.iana.org/time-zones/releases/.tar.gx & .asc TZDATA_VER = $(VER) TZCODE_VER = $(VER) @@ -46,8 +47,8 @@ objects = tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz tzdata$(TZDATA_VER).tar.gz = $(DL_FROM)/tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz = $(DL_FROM)/tzcode$(TZCODE_VER).tar.gz -tzdata$(TZDATA_VER).tar.gz_BLAKE2 = f7d8fa0286f72e90058693dcdc39b8e9ddca198b157807b8d7d33969c07a2ee5a0391c6ebe8f3d86990de765216f563cf7ca75d8ea6f5c3b2950a16b973827de -tzcode$(TZCODE_VER).tar.gz_BLAKE2 = b649847fcc59db2e43bc3f942e9ee4abb5968ac45114f6dcf362ec0ec23bd60117f976b539412cf062d8ba097a9d9a85f642ba46c5fbd96e2fb1a5e7b6f2ed53 +tzdata$(TZDATA_VER).tar.gz_BLAKE2 = 01fd07f9bfef107c8fb1ca677b0c25b3162220377610173de6d3591a6e714d25ab763cd2b3121dabeed3f6c95f27a4f402ac4ab59f3959b6f6418824c28fdfc5 +tzcode$(TZCODE_VER).tar.gz_BLAKE2 = 6e427e937a91ed814dc3c25bfb2b64703b2fdaa2129f8a39ecc302090eccd1939403d9eb39b41d7a9252249f970deb106ac5e13030e2c79b90a5f2fcc9acb419 install : $(TARGET)