Re: [systemd-devel] [Question] timezones in timers
Hi, I've implemented support for timezones in timers (at least I am not sure if there are some other places that need some changes). Here is a diff of what I've committed so far: https://github.com/systemd/systemd/compare/master...zerkms:TIMER_TIMEZONE In the very bottom in the tests file you may see what is supported and how. In short: the IANA timezone name are supported. Basically, any timezone from the `timedatectl list-timezones` output is supported. The most basic example of the timer: 2017-09-09 20:42:00 Pacific/Auckland Implementation takes into account standard/summer time change. Implementation might be improved further via a small refactoring to remove the `CalendarSpec::utc` field, since it effectively is not necessary now, given that one may use `spec->timezone = "UTC";` instead. I'm looking for your feedback, thanks. On 7 September 2017 at 08:12, Ivan Kurnosovwrote: > I'm doing it with the libc and doing it out of the process: > > https://github.com/zerkms/systemd/blob/d09815ef6df4705e06bd0b3a276c4c > bd8630859f/src/basic/calendarspec.c#L902 > > I believe parsing is portable standard C with libc and time conversion > will be very similar to that. > > On 7 September 2017 at 01:25, Lennart Poettering > wrote: > >> On Mi, 06.09.17 13:18, Mantas Mikulėnas (graw...@gmail.com) wrote: >> >> > On Wed, Sep 6, 2017 at 12:58 PM, Ivan Kurnosov >> wrote: >> > >> > > I've started working on it (as a crazy experiment for myself >> primarily) >> > > >> > > At the moment I added support for timezones (IANA) to the >> `CalendarSpec`, >> > > the parser and the formatter. >> > > >> > > https://github.com/zerkms/systemd/commit/367325ae7a2c4df2c05 >> > > 13e8bb8e9925aaf24feef >> > > >> > >> > systemd actually used to have code for parsing *tzdata files* (and >> showing >> > DST information in timedatectl); you might want to find that in Git. >> >> While it did parse that I don't think we should go that route >> here. When converting local time into unix time and back we really >> should let the libc deal with that, and not replicate that. it's not >> pretty to do this in libc, as there's no way to do time calculation in >> a non-default timezone except by manipulating env vars, but it's >> doable, as long as we do this out-of-process... >> >> Lennart >> >> -- >> Lennart Poettering, Red Hat >> > > > > -- > With best regards, Ivan Kurnosov > -- With best regards, Ivan Kurnosov ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [Question] timezones in timers
I'm doing it with the libc and doing it out of the process: https://github.com/zerkms/systemd/blob/d09815ef6df4705e06bd0b3a276c4cbd8630859f/src/basic/calendarspec.c#L902 I believe parsing is portable standard C with libc and time conversion will be very similar to that. On 7 September 2017 at 01:25, Lennart Poetteringwrote: > On Mi, 06.09.17 13:18, Mantas Mikulėnas (graw...@gmail.com) wrote: > > > On Wed, Sep 6, 2017 at 12:58 PM, Ivan Kurnosov wrote: > > > > > I've started working on it (as a crazy experiment for myself primarily) > > > > > > At the moment I added support for timezones (IANA) to the > `CalendarSpec`, > > > the parser and the formatter. > > > > > > https://github.com/zerkms/systemd/commit/367325ae7a2c4df2c05 > > > 13e8bb8e9925aaf24feef > > > > > > > systemd actually used to have code for parsing *tzdata files* (and > showing > > DST information in timedatectl); you might want to find that in Git. > > While it did parse that I don't think we should go that route > here. When converting local time into unix time and back we really > should let the libc deal with that, and not replicate that. it's not > pretty to do this in libc, as there's no way to do time calculation in > a non-default timezone except by manipulating env vars, but it's > doable, as long as we do this out-of-process... > > Lennart > > -- > Lennart Poettering, Red Hat > -- With best regards, Ivan Kurnosov ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [Question] timezones in timers
On Mi, 06.09.17 13:18, Mantas Mikulėnas (graw...@gmail.com) wrote: > On Wed, Sep 6, 2017 at 12:58 PM, Ivan Kurnosovwrote: > > > I've started working on it (as a crazy experiment for myself primarily) > > > > At the moment I added support for timezones (IANA) to the `CalendarSpec`, > > the parser and the formatter. > > > > https://github.com/zerkms/systemd/commit/367325ae7a2c4df2c05 > > 13e8bb8e9925aaf24feef > > > > systemd actually used to have code for parsing *tzdata files* (and showing > DST information in timedatectl); you might want to find that in Git. While it did parse that I don't think we should go that route here. When converting local time into unix time and back we really should let the libc deal with that, and not replicate that. it's not pretty to do this in libc, as there's no way to do time calculation in a non-default timezone except by manipulating env vars, but it's doable, as long as we do this out-of-process... Lennart -- Lennart Poettering, Red Hat ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [Question] timezones in timers
On Wed, Sep 6, 2017 at 12:58 PM, Ivan Kurnosovwrote: > I've started working on it (as a crazy experiment for myself primarily) > > At the moment I added support for timezones (IANA) to the `CalendarSpec`, > the parser and the formatter. > > https://github.com/zerkms/systemd/commit/367325ae7a2c4df2c05 > 13e8bb8e9925aaf24feef > systemd actually used to have code for parsing *tzdata files* (and showing DST information in timedatectl); you might want to find that in Git. -- Mantas Mikulėnas ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [Question] timezones in timers
I've started working on it (as a crazy experiment for myself primarily) At the moment I added support for timezones (IANA) to the `CalendarSpec`, the parser and the formatter. https://github.com/zerkms/systemd/commit/367325ae7a2c4df2c0513e8bb8e992 5aaf24feef On 5 September 2017 at 19:11, Lennart Poetteringwrote: > On Di, 05.09.17 09:41, Ivan Kurnosov (zer...@zerkms.ru) wrote: > > > Hi, > > > > was it even considered initially to have proper timezones support in > timers? > > > > Or perhaps it is somewhere in the roadmap? > > > > In particular, I'm speaking of `[Timer] OnCalendar` > > You mean as in explicitly per-unit configurable timezones? > > It's nasty to do, since Linux APIs for that aren't really > existent. But it's not impossible to do, but so far nobody put > together a patch. > > Lennart > > -- > Lennart Poettering, Red Hat > -- With best regards, Ivan Kurnosov ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [Question] timezones in timers
On Di, 05.09.17 09:41, Ivan Kurnosov (zer...@zerkms.ru) wrote: > Hi, > > was it even considered initially to have proper timezones support in timers? > > Or perhaps it is somewhere in the roadmap? > > In particular, I'm speaking of `[Timer] OnCalendar` You mean as in explicitly per-unit configurable timezones? It's nasty to do, since Linux APIs for that aren't really existent. But it's not impossible to do, but so far nobody put together a patch. Lennart -- Lennart Poettering, Red Hat ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] [Question] timezones in timers
Hi, was it even considered initially to have proper timezones support in timers? Or perhaps it is somewhere in the roadmap? In particular, I'm speaking of `[Timer] OnCalendar` -- With best regards, Ivan Kurnosov ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel