Hlavní navigace

uClibc má problém s přechodem na letní čas

Ondřej Caletka

Poslední březnová neděle je tradičně spojena s přechodem ze standardního času na letní. Na linuxových systémech se o tento přechod stará obvykle knihovna glibc , která využívá volně šířitelnou databázi tz .

Na různých embedded platformách, jako třeba OpenWRT, se často používá odlehčená knihovna uClibc, která řeší časová pásma zjednodušeně. A právě v této knihovně byla již v říjnu loňského roku objevena chyba, která způsobí, že k přechodu na letní čas dojde až v neděli 1. dubna. Problém byl dlouho skrytý, projevil se totiž jen právě letos, kdy je přestupný rok a zároveň k přechodu dochází přesně 7 dní před začátkem dubna. Ještě v říjnu byla chyba odstraněna, oprava se však do spousty zařízení včas nedostala. To může být problém, pokud taková zařízení používáte například pro domácí automatizaci.

Nejjednodušší workaroud je dočasně upravit nastavení proměnné TZ do podoby:

CET-1CEST,M3.4.0,M10.5.0/3

V případě OpenWRT stačí tuto hodnotu zapsat do souboru /tmp/TZ (vydrží pouze do restartu), případně do konfigurace v souboru  /etc/config/system.

Workaround platí pouze pro letošní rok. Vysvětlení významu definice časového pásma je ve standardu IEEE 1003.1–2001, OpenWRT wiki uvádí tabulku časových zón pro různá místa na světě.

Tato zprávička byla zaslána čtenářem serveru Root.cz pomocí formuláře Přidat zprávičku. Děkujeme!

Našli jste v článku chybu?