Re: [systemd-devel] [Question] timezones in timers

2017-09-09 Thread Ivan Kurnosov
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  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 
> 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

2017-09-06 Thread Ivan Kurnosov
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 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
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [Question] timezones in timers

2017-09-06 Thread Lennart Poettering
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
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [Question] timezones in timers

2017-09-06 Thread Mantas Mikulėnas
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.

-- 
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

2017-09-06 Thread Ivan Kurnosov
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 Poettering 
wrote:

> 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

2017-09-05 Thread Lennart Poettering
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

2017-09-04 Thread Ivan Kurnosov
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