From mcrha at redhat.com  Tue Feb  6 05:52:25 2018
From: mcrha at redhat.com (Milan Crha)
Date: Tue, 06 Feb 2018 14:52:25 +0100
Subject: COMPLETED is strictly DATE-TIME
Message-ID: <b283c73164562d45e986fec9ec01a96147516d54.camel@redhat.com>

	Hi,
I just realized that since libical 3.0 the COMPLETED property is
provided as strictly DATE-TIME, while previous versions (like 2.0)
could save DATE there. I know RFC 5545 defines the property
as DATE-TIME only, but there are plenty of already saved components
which are DATE.

The worse is that when I try to save the date-only value into the
COMPLETED property, then it is changed to:

   COMPLETED:00000000T000000

and when I read it back from the disk I receive:

   X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:Can't parse as DATE-TIME 
    value in COMPLETED property. Removing entire property: 00000000T000000

and when I try to load the already saved DATE value, it's turned into:

   X-LIC-ERROR;X-LIC-ERRORTYPE=PARAMETER-VALUE-PARSE-ERROR:Invalid VALUE 
    type for property COMPLETED: VALUE=DATE

That's pretty bad behaviour, breaking backward compatibility, and the
most problematic I cannot just fix this on load, because it's the
parses which breaks it first (or I do not know how to do that).

Is there any way to deal with this situation gracefully, please?

	Thanks and bye,
	Milan


From winter at kde.org  Sat Feb 17 08:15:14 2018
From: winter at kde.org (Allen Winter)
Date: Sat, 17 Feb 2018 11:15:14 -0500
Subject: [ANNOUNCE] Libical v3.0.2
Message-ID: <2773898.0voJR1bInP@zazzy>

Announcing Libical 3.0.2
This is the second bugfix release for Libical 3.0.0 and is fully source and binary compatible with libical 3.0.x

Highlights of this Release:
    * No longer attempt to detect the need for -DUSE_32BIT_TIME_T with MSVC
   * New CMake option ICAL_BUILD_DOCS which can be used to disable the docs target
   * Fix threading hang in BSD type systems (OpenBSD, MacOS,...)
   * Improvied build with Ninja

The source code can be found on GitHub at: https://github.com/libical/libical

Tarballs and zipballs are available from: https://github.com/libical/libical/releases

Libical is an Open Source implementation of the iCalendar protocols and protocol data units. The iCalendar specification describes how calendar clients can communicate with calendar servers so users can store their calendar data and arrange meetings with other users.

Libical implements RFC2445, RFC2446 and some of RFC2447.

For more information about Libical, please visit http://libical.github.io/libical/






From winter at kde.org  Sat Feb 17 09:14:41 2018
From: winter at kde.org (Allen Winter)
Date: Sat, 17 Feb 2018 12:14:41 -0500
Subject: COMPLETED is strictly DATE-TIME
In-Reply-To: <b283c73164562d45e986fec9ec01a96147516d54.camel@redhat.com>
References: <b283c73164562d45e986fec9ec01a96147516d54.camel@redhat.com>
Message-ID: <11533997.Rck3un5xAp@zazzy>

Apologies.  I completely forgot about this for the 3.0.2 release.
Certainly we should have a graceful way of handling legacy ics files.

the application code should be fixed (perhaps with a conditional compile on libical3) to use the datetime value.

Milan, can you send me a legacy ics file I can play with?
This way, I'm sure what you need fixed.

I can make a 3.0.3 release easily enough.


On Tuesday, February 6, 2018 8:52:25 AM EST Milan Crha wrote:
> 	Hi,
> I just realized that since libical 3.0 the COMPLETED property is
> provided as strictly DATE-TIME, while previous versions (like 2.0)
> could save DATE there. I know RFC 5545 defines the property
> as DATE-TIME only, but there are plenty of already saved components
> which are DATE.
> 
> The worse is that when I try to save the date-only value into the
> COMPLETED property, then it is changed to:
> 
>    COMPLETED:00000000T000000
> 
> and when I read it back from the disk I receive:
> 
>    X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:Can't parse as DATE-TIME 
>     value in COMPLETED property. Removing entire property: 00000000T000000
> 
> and when I try to load the already saved DATE value, it's turned into:
> 
>    X-LIC-ERROR;X-LIC-ERRORTYPE=PARAMETER-VALUE-PARSE-ERROR:Invalid VALUE 
>     type for property COMPLETED: VALUE=DATE
> 
> That's pretty bad behaviour, breaking backward compatibility, and the
> most problematic I cannot just fix this on load, because it's the
> parses which breaks it first (or I do not know how to do that).
> 
> Is there any way to deal with this situation gracefully, please?
> 
> 	Thanks and bye,
> 	Milan
> 
> _______________________________________________
> libical-devel mailing list
> libical-devel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/libical-devel
> 


-- 
Allen Winter | allen.winter at kdab.com | Senior Software Engineer
KDAB (USA) LLC, a KDAB Group company
Tel. USA +1-866-777-KDAB(5322) ext3
KDAB - The Qt, C++ and OpenGL Experts





From mcrha at redhat.com  Sun Feb 18 06:23:21 2018
From: mcrha at redhat.com (Milan Crha)
Date: Sun, 18 Feb 2018 15:23:21 +0100
Subject: COMPLETED is strictly DATE-TIME
In-Reply-To: <11533997.Rck3un5xAp@zazzy>
References: <b283c73164562d45e986fec9ec01a96147516d54.camel@redhat.com>
 <11533997.Rck3un5xAp@zazzy>
Message-ID: <1fd18663d72ac6bce72f293292c14f3a741fb199.camel@redhat.com>

On Sat, 2018-02-17 at 12:14 -0500, Allen Winter wrote:
> Milan, can you send me a legacy ics file I can play with?
> This way, I'm sure what you need fixed.

	Hi,
the attached is a test case, which doesn't claim good or bad, but it
contains cases I used for testing (for human inspection). I expect the
output should either match the one when run with libical 2.x, or at
least the COMPLETED should not be lost, but switched to date+time at
midnight (which is the closest value for the stored date, form my point
of view).

I know the following is not that important, but it seems to be lost
here as well (my fault, I'm sorry):
http://lists.infradead.org/pipermail/libical-devel/2018-January/000784.html

	Bye,
	Milan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ical.c
Type: text/x-csrc
Size: 1294 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/libical-devel/attachments/20180218/39e12f4d/attachment.bin>

From mcrha at redhat.com  Mon Feb 19 09:30:32 2018
From: mcrha at redhat.com (Milan Crha)
Date: Mon, 19 Feb 2018 18:30:32 +0100
Subject: COMPLETED is strictly DATE-TIME
In-Reply-To: <e982a492-4a47-9e51-7779-b892e86370ca@kde.org>
References: <b283c73164562d45e986fec9ec01a96147516d54.camel@redhat.com>
 <11533997.Rck3un5xAp@zazzy>
 <1fd18663d72ac6bce72f293292c14f3a741fb199.camel@redhat.com>
 <e982a492-4a47-9e51-7779-b892e86370ca@kde.org>
Message-ID: <2d2b60cd8dc5424aa6fd6747e8a29fad35d8a50b.camel@redhat.com>

On Mon, 2018-02-19 at 11:50 -0500, Allen Winter wrote:
> Milan,
> Please test this patch.
> Basically, this means that COMPLETED can be a DATE or a DATE-TIME

	Hi,
it seems to do the trick here. I also see it's a fallout of
commit ed24a7da3493b76d4bfd6f7b17830a7a2a23bf6f.

Are you fine you'll diverge from the RFC with this change? Because
the RFC says the COMPLETED is DATE-TIME only.
	Thanks and bye,
	Milan


From winter at kde.org  Tue Feb 27 08:14:19 2018
From: winter at kde.org (Allen Winter)
Date: Tue, 27 Feb 2018 11:14:19 -0500
Subject: [ANNOUNCE] Libical v3.0.3
Message-ID: <217128036.gUcN0M6O1j@zazzy>

Announcing Libical 3.0.3
This is the third bugfix release for Libical 3.0.0 and is fully source and binary compatible with libical 3.0.x

Highlights of this Release:
 * VTODO COMPLETED property can be a DATE-TIME or DATE (for backward compatibility)
 * Improved recurrence iteration
 
The source code can be found on GitHub at: https://github.com/libical/libical

Tarballs and zipballs are available from: https://github.com/libical/libical/releases

Libical is an Open Source implementation of the iCalendar protocols and protocol data units. The iCalendar specification describes how calendar clients can communicate with calendar servers so users can store their calendar data and arrange meetings with other users.

For more information about Libical, please visit http://libical.github.io/libical/







