Bug 39537

Summary: get_timezone() expects /etc/localtime to be a symlink
Product: Sisyphus Reporter: Pavel Nakonechnyi <zorg>
Component: systemdAssignee: Alexey Shabalin <shaba>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: aen, arseny, iv, shaba, zerg
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Pavel Nakonechnyi 2021-01-13 15:40:24 MSK
В systemd код определения часового пояса ломается об /etc/localtime, если это не симлинк. См. https://github.com/systemd/systemd/blob/master/src/basic/time-util.c#L1454

Из-за этого не работает systemd-networkd в режиме DHCP сервера, если явно не указан часовой пояс в настройках собственно DHCP сервера:

 [DHCPServer]
 Timezone=UTC
 
Кроме этого места, get_timezone() еще используется только в timedated.c. Тем не менее, из-за такой особенности не работает умолчально ожидаемое поведение nspawn контейнеров с виртуальными интерфейсами внутри.
Comment 1 Sergey V Turchin 2021-01-13 15:51:35 MSK
В случае, если /etc/localtime не симлинк, нужно парсить /etc/sysconfig/clock, как сделано в других проектах.
Comment 2 Alexey Shabalin 2021-08-18 15:45:41 MSK
(Ответ для Sergey V Turchin на комментарий #1)
> В случае, если /etc/localtime не симлинк, нужно парсить
> /etc/sysconfig/clock, как сделано в других проектах.

не надо его никому пакрсить, /etc/sysconfig/clock это ALT специфик, никто не знает про такие настройки.
Comment 3 Sergey V Turchin 2021-08-18 15:52:40 MSK
(Ответ для Alexey Shabalin на комментарий #2)
> /etc/sysconfig/clock это ALT специфик,
Не выдумывай ерунду, пожалуйста.

> никто не знает про такие настройки.
Все кроме тебя знают, похоже.