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 Kurnosov <zer...@zerkms.ru> wrote: > 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 <lenn...@poettering.net> > 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 <zer...@zerkms.ru> >> 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