Bug 32346 - Настройка времени / часового пояса
: Настройка времени / часового пояса
Status: NEW
: Sisyphus
(All bugs in Sisyphus/systemd)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
: RS
:
: 30940 32650
  Show dependency tree
 
Reported: 2016-08-03 10:47 by
Modified: 2018-10-03 19:20 (History)


Attachments
Скриншот с подробностями (588.31 KB, image/png)
2016-08-03 10:47, Evgeniy Korneechev
no flags Details
учит chrooted делать симлинк вместо копирования (1.39 KB, patch)
2018-04-03 01:08, Михаил Новоселов
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2016-08-03 10:47:04
Created an attachment (id=6782) [details]
Скриншот с подробностями

Некорректные значения часового пояса после установки ОС, в результате чего
требуются дополнительные настройки после установки.
Важно: После изменения часового пояса с помощью timedatectl, в граф. интерфейсе
нельзя будет выбрать страну часового пояса.
----------------   
        timedatectl
      Local time: Вт 2016-08-02 13:02:46 UTC
  Universal time: Вт 2016-08-02 13:02:46 UTC
        RTC time: Вт 2016-08-02 13:02:46
       Time zone: n/a (UTC, +0000)
 Network time on: n/a
NTP synchronized: no
 RTC in local TZ: no
------- Comment #1 From 2016-09-07 14:57:53 -------
необходимо выполнить команду:
timedatectl set-timezone Europe/Moscow (ну или другой)

хотелось бы внести это исправление, чтобы после установки ОС, сразу был верный
часовой пояс.
------- Comment #2 From 2016-11-28 17:05:07 -------
На Рабочей станции 8.1 (от 22.11.16) - все тоже самое:

# timedatectl 
      Local time: Пн 2016-11-28 13:59:58 UTC
  Universal time: Пн 2016-11-28 13:59:58 UTC
        RTC time: Пн 2016-11-28 13:59:58
       Time zone: n/a (UTC, +0000)
 Network time on: n/a
NTP synchronized: no
 RTC in local TZ: no

# rpm -q alterator-datetime 
alterator-datetime-2.6-alt1
------- Comment #3 From 2016-11-28 17:54:55 -------
Эх, блокер не сообразил тогда повесить и забыл.  На 8.2 теперь.
------- Comment #4 From 2017-12-25 13:32:23 -------
Вроде бы имеет смысл просто создать симлинк вместо файла /etc/localtime на
нужную зону из ../usr/share/zoneinfo/

И если я правильно понимаю, это может касаться alterator-tzone
------- Comment #5 From 2017-12-25 16:53:22 -------
Значит так. При установки совершенно верно вызывается tzupdate и делает
хардлинк в /etc/localtime на ../usr/share/zoneinfo/$tzname.
Но timedatectl его не принимает.
При вызове 
(In reply to comment #1)
> timedatectl set-timezone Europe/Moscow (ну или другой)
создаётся симлинк.
Даже если просто руками сделать его, то timedatectl начинает показывать то, что
нам всем так хочется увидеть.
------- Comment #6 From 2017-12-26 18:32:41 -------
Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime не симлинк, а
хардлинк.
------- Comment #7 From 2017-12-26 20:13:07 -------
(В ответ на комментарий №6)
> Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime
> не симлинк, а хардлинк.
Читать и писать можно содержимое в файл, а симлинк/хардлинк -- то, чем сам
/etc/localtime может являться :)

ldv@ говорит, что патч такой в systemd был, но безумный апстрим его выкинул --
мол, "у всех уже симлинк".  То, что эти дятлы идут наперекор unix-концепции
(когда простые программы работают для неограниченного круга задач) и сужают мир
до стационарной орбиты своего распухающего глюкодрома -- их личный выбор, но
нам этот патч хорошо бы вернуть (а для этого сначала идентифицировать).
------- Comment #8 From 2017-12-26 20:23:21 -------
(In reply to comment #7)
> (В ответ на комментарий №6)
> > Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime
> > не симлинк, а хардлинк.
> Читать и писать можно содержимое в файл, а симлинк/хардлинк -- то, чем сам
> /etc/localtime может являться :)

Спасибо, Миш, за то, что дополнил мой комментарий. Я написал коротко, потому
побоялся ляпнуть не то. Я совершенно не понимаю, по какой причине они переходят
от "хорошей идеи" к "плохой идее".
------- Comment #9 From 2018-01-09 11:33:42 -------
ping
------- Comment #10 From 2018-01-09 15:07:23 -------
(В ответ на комментарий №6)
> Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime не симлинк, а
> хардлинк.
Но зачем хардлинк? Ведь /usr может быть на отдельной партиции?
------- Comment #11 From 2018-01-09 18:26:31 -------
(In reply to comment #10)
> (В ответ на комментарий №6)
> > Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime не симлинк, а
> > хардлинк.
> Но зачем хардлинк? Ведь /usr может быть на отдельной партиции?

tzupdate делает хардлинк если может. Если не может - копирует файл. Симлинк не
подходит, т.к. /usr может быть не смонтирован.
------- Comment #12 From 2018-01-09 19:10:17 -------
(В ответ на комментарий №11)
> (In reply to comment #10)
> > (В ответ на комментарий №6)
> > > Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime не симлинк, а
> > > хардлинк.
> > Но зачем хардлинк? Ведь /usr может быть на отдельной партиции?
> 
> tzupdate делает хардлинк если может. Если не может - копирует файл. Симлинк не
> подходит, т.к. /usr может быть не смонтирован.
Почему он может быть не смонтирован?
И зачем запускать tzupdate когда не смонтирован /usr (ведь настройки зон в
/usr)?
Когда не смонтирован /usr, надо разбираться почему он не смонтирован, в этот
момент как настроена зона никого не волнует.
------- Comment #13 From 2018-01-10 10:20:05 -------
(В ответ на комментарий №12)
> (В ответ на комментарий №11)
> > (In reply to comment #10)
> > > (В ответ на комментарий №6)
> > > > Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime не симлинк, а
> > > > хардлинк.
> > > Но зачем хардлинк? Ведь /usr может быть на отдельной партиции?
> > 
> > tzupdate делает хардлинк если может. Если не может - копирует файл. Симлинк не
> > подходит, т.к. /usr может быть не смонтирован.
> Почему он может быть не смонтирован?
> И зачем запускать tzupdate когда не смонтирован /usr (ведь настройки зон в
> /usr)?
> Когда не смонтирован /usr, надо разбираться почему он не смонтирован, в этот
> момент как настроена зона никого не волнует.
В настоящий момент хотелось бы вернуть ранний патч, который работал с обоими
вариантами, так как на уже установленных системах это обычный файл.
------- Comment #14 From 2018-01-10 12:53:28 -------
(В ответ на комментарий №12)
> (В ответ на комментарий №11)
> > (In reply to comment #10)
> > > (В ответ на комментарий №6)
> > > > Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime не симлинк, а
> > > > хардлинк.
> > > Но зачем хардлинк? Ведь /usr может быть на отдельной партиции?
> > 
> > tzupdate делает хардлинк если может. Если не может - копирует файл. Симлинк не
> > подходит, т.к. /usr может быть не смонтирован.
> Почему он может быть не смонтирован?
> И зачем запускать tzupdate когда не смонтирован /usr (ведь настройки зон в
> /usr)?
> Когда не смонтирован /usr, надо разбираться почему он не смонтирован, в этот
> момент как настроена зона никого не волнует.

Я не знаю, может ли такой повисший симлинк вызвать какие-то проблемы, но тем не
менее гораздо лучше иметь этот файл, а не симлинк, указывающий в никуда. Вообще
мне кажется очевидным, что файл точно не хуже, чем симлинк на него. Друге дело
если systemd читает содержимое симлинка и как-то использует как
конфигурационное значение.
------- Comment #15 From 2018-01-11 19:43:38 -------
(В ответ на комментарий №13)
> (В ответ на комментарий №12)
> > (В ответ на комментарий №11)
> > > (In reply to comment #10)
> > > > (В ответ на комментарий №6)
> > > > > Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime не симлинк, а
> > > > > хардлинк.
> > > > Но зачем хардлинк? Ведь /usr может быть на отдельной партиции?
> > > 
> > > tzupdate делает хардлинк если может. Если не может - копирует файл. Симлинк не
> > > подходит, т.к. /usr может быть не смонтирован.
> > Почему он может быть не смонтирован?
> > И зачем запускать tzupdate когда не смонтирован /usr (ведь настройки зон в
> > /usr)?
> > Когда не смонтирован /usr, надо разбираться почему он не смонтирован, в этот
> > момент как настроена зона никого не волнует.
> В настоящий момент хотелось бы вернуть ранний патч, который работал с обоими
> вариантами, так как на уже установленных системах это обычный файл.

Если я правильно понимаю, то этот код был удалён более 5 лет назад, в версии
v190(2012-09-20). Я опасаюсь его возвращать, т.к. не знаю где ещё этот легаси
может вылезти.
------- Comment #16 From 2018-01-11 19:52:06 -------
(В ответ на комментарий №14)
> (В ответ на комментарий №12)
> > (В ответ на комментарий №11)
> > > (In reply to comment #10)
> > > > (В ответ на комментарий №6)
> > > > > Надо пропатчить systemd, чтобы он читал и писал в /etc/localtime не симлинк, а
> > > > > хардлинк.
> > > > Но зачем хардлинк? Ведь /usr может быть на отдельной партиции?
> > > 
> > > tzupdate делает хардлинк если может. Если не может - копирует файл. Симлинк не
> > > подходит, т.к. /usr может быть не смонтирован.
> > Почему он может быть не смонтирован?
> > И зачем запускать tzupdate когда не смонтирован /usr (ведь настройки зон в
> > /usr)?
> > Когда не смонтирован /usr, надо разбираться почему он не смонтирован, в этот
> > момент как настроена зона никого не волнует.
> 
> Я не знаю, может ли такой повисший симлинк вызвать какие-то проблемы, но тем не
> менее гораздо лучше иметь этот файл, а не симлинк, указывающий в никуда. Вообще
> мне кажется очевидным, что файл точно не хуже, чем симлинк на него. Друге дело
> если systemd читает содержимое симлинка и как-то использует как
> конфигурационное значение.

Надо не забывать, что в RH приняли решение, что отдельного /usr больше не
бывает. Поэтому их не волнуют другие ситуации, и им хватает простого симлинка
/etc/localtime.
Мы, типа, поддерживаем вариант с отдельным /usr. Его монтирование происходит на
самой ранней стадии. Поэтому у нас тоже должен быть симлинк /etc/localtime, и
не в коем случае не хардлинк (вдруг я завтра решу перенести /usr на отдельную
партицию).
Если мы решили сидеть на двух стульях (поддерживать и sysV, и systemd), то
давайте подстраиваться друг под друга.

PS: вроде проблем с переездом /etc/mtab на симлинк ни у кого не было, давайте и
тут просто переедем на симлинк.
------- Comment #17 From 2018-01-12 00:05:09 -------
(В ответ на комментарий №16)
> PS: вроде проблем с переездом /etc/mtab на симлинк ни у кого не было,
> давайте и тут просто переедем на симлинк.
А копировать не лучше ли тогда?

(что в редхате с /usr шорох затеяли четверорукие, и так хорошо известно)
------- Comment #18 From 2018-03-12 17:33:28 -------
Кажется я понял, почему хочется /etc/localtime как файл или hardlink.
Потому что copy_resolv_conf в /etc/chroot.d/functions не умеет разыменовывать
symlink, и в chroot попадает битый symlink.
Может научим /etc/chroot.d/functions обрабатывать /etc/localtime как symlink?
------- Comment #19 From 2018-04-02 14:44:04 -------
*** Bug 34743 has been marked as a duplicate of this bug. ***
------- Comment #20 From 2018-04-02 21:05:38 -------
Правильно ли я понял, что симлинк /etc/localtime ->
/usr/share/zoneinfo/Europe/Moscow рабочее решение, но вся проблема только в
update chroot /etc/chroot.d/ , и это останаливает от переобучения Альтератора с
хадлинка на симлинк?
------- Comment #21 From 2018-04-03 01:08:53 -------
Created an attachment (id=7485) [details]
учит chrooted делать симлинк вместо копирования
------- Comment #22 From 2018-04-03 01:11:37 -------
> Может научим /etc/chroot.d/functions
> обрабатывать /etc/localtime как symlink?
Вроде бы научил. Патч выше.
Теперь нужно, чтобы Альтератор делал симлинк + какой-то механизм миграции
обновлением существующих установок с просто файла на симлинк
------- Comment #23 From 2018-04-03 02:17:05 -------
Сначала пакет tzdata надо обучить стилинку
------- Comment #24 From 2018-04-03 02:17:20 -------
Сначала пакет tzdata надо обучить стилинку
------- Comment #25 From 2018-04-03 11:02:37 -------
На sysvinit тоже симлинк делать, или только на systemd?
------- Comment #26 From 2018-04-03 11:05:38 -------
# rpm -qf /etc/localtime
glibc-core-2.27-alt3.x86_64

почему glibc-core...?
------- Comment #27 From 2018-04-03 11:21:11 -------
Нашел.
/usr/sbin/tzupdate обновляет /etc/localtime, а postinstall-скрипт пакета tzdata
его вызывает
------- Comment #28 From 2018-04-04 09:52:24 -------
Заменил файл/хардлинк на софтлинк

http://git.altlinux.org/people/mvoronov/packages/?p=tzdata.git;a=commitdiff;h=e982ba0c53598d6c95cc52d2086bb4d09212574a
------- Comment #29 From 2018-05-07 15:21:09 -------
(В ответ на комментарий №28)
> Заменил файл/хардлинк на софтлинк
> 
> http://git.altlinux.org/people/mvoronov/packages/?p=tzdata.git;a=commitdiff;h=e982ba0c53598d6c95cc52d2086bb4d09212574a

Алексей?
------- Comment #30 From 2018-05-07 15:55:07 -------
Вроде как уже всё в Sisyphus и работает как надо
------- Comment #31 From 2018-05-08 11:45:20 -------
(В ответ на комментарий №30)
> Вроде как уже всё в Sisyphus и работает как надо

Тогда почему статус NEW? Проверьте и закройте, пожалуйста.
------- Comment #32 From 2018-07-27 02:35:01 -------
В сизифе - не знаю, а в p8 проблема все еще актуальна.

$ timedatectl status
                      Local time: Чт 2018-07-26 23:34:12 UTC
                  Universal time: Чт 2018-07-26 23:34:12 UTC
                        RTC time: Чт 2018-07-26 23:34:11
                       Time zone: n/a (UTC, +0000)
       System clock synchronized: no
systemd-timesyncd.service active: n/a
                 RTC in local TZ: no
------- Comment #33 From 2018-10-02 17:17:12 -------
(In reply to comment #30)
> Вроде как уже всё в Sisyphus и работает как надо

А точно как надо, потому что после установки регулярки с Cinnamon у людей
вылезло

https://bugzilla.altlinux.org/show_bug.cgi?id=35467
------- Comment #34 From 2018-10-03 19:20:23 -------
(В ответ на комментарий №32)
> В сизифе - не знаю, а в p8 проблема все еще актуальна.

В сизифе всё по-прежнему.