forked from libical/libical
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReleaseNotes.txt
239 lines (215 loc) · 11 KB
/
ReleaseNotes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
Release Highlights
==================
Version 3.0.17 (14 October 2023):
---------------------------------
* Improved Android support
* Escape commas in x-property TEXT values
* Built-in timezones updated to tzdata2023c
* icalparser_ctrl setting defines how to handle invalid CONTROL characters during parsing
* New publicly available functions:
+ get_zone_directory()
+ icalparser_get_ctrl
+ icalparser_set_ctrl
Version 3.0.16 (17 October 2022):
---------------------------------
* Fix regressions in 3.0.15 due to improperly tested fuzz fixes
* Fix argument guards in icaltime_as_timet to match documentation and tests
Version 3.0.15 (06 October 2022):
---------------------------------
* Add missing property parameters into libical-glib
* Fix CMake option USE_32BIT_TIME_T actually uses a 32-bit time_t value
* Fix icaltime_as_timet, which returned incorrect results for years >= 2100,
to work properly between years 1902 and 10k.
* Fix x-property comma handling and escaping
* Built-in timezones updated to tzdata2022d (now with a VTIMEZONE for each time zone alias)
* Fix a fuzzer issue
* Handle unreachable-code compile warnings with clang
* Ensure all vanew_foo() calls finish with (void*)0 (not 0)
Version 3.0.14 (05 February 2022):
----------------------------------
* icalvalue: Reset non-UTC icaltimetype::zone on set
* Fix icalcomponent_set_due not removing TZID when necessary
Version 3.0.13 (17 January 2022):
---------------------------------
* icalcomponent_get_dtend() return icaltime_null_time(), unless called on VEVENT, VAVAILABILITY or VFREEBUSY
* icalcomponent_get_duration() for VTODO calculate with DUE instead of DTEND
* Replace CMake FindBDB with FindBerleyDB (https://github.com/sum01/FindBerkeleyDB)
* Fix finding ICU and BerkeleyDB on Mac (look for homebrew installs first)
Version 3.0.12 (08 December 2021):
----------------------------------
* Fix a libicalval crash in cleanVObject
* METHOD:DECLINECOUNTER must have DTEND or DURATION
* Handle if DTEND and DURATION are both missing
* Improved FindICU (copied from official CMake. see files in cmake/Kitware)
* Buildsystem fixes (especially for the Ninja generator)
* Built-in timezones updated to tzdata2021e
Version 3.0.11 (09 October 2021):
---------------------------------
* Fix icalrecur_iterator_set_start() for hourly, minutely, and secondly recurrences
* Fix build for Berkeley DB version greater than 5
* Fix vcal for some architectures (like aarch64, ppc64le and s390x)
* Fix memory leaks in vcal
* Prevent crash when looking for tzid in initialize_rscale
* Adjust libdir and includedir in generated pkgconfig files
* Built-in timezones updated to tzdata2021c
Version 3.0.10 (17 April 2021):
-------------------------------
* Fix building -DSTATIC_ONLY=True with Ninja
* Fix generating wrong recurrence rules (#478)
* Fix a bug computing transitions in tzfiles
* Fix reading TZif files to use TZ string in the footer as the last (non-terminating) transitions
* Fix reading TZif files to use more RRULEs and/or RDATEs whevever possible
* Built-in timezones updated to tzdata2021a
Version 3.0.9 (16 January 2021):
--------------------------------
* Add support for empty parameters, e.g. CN=""
* Accept VTIMEZONE with more than one X- property
* Several fixes for recurrences containing BYWEEKNO
* icalrecurrencetype_from_string() will reject any RRULE that contains a rule-part that occurs more than once
* Improve thread safety
* Fix compiled-in path for the built-in timezone data
* Fix reading TZif files with empty v1 data (use v2+ whenever possible)
* Add backwards compatibility for previous TZIDs
* Built-in timezones updated to tzdata2020d
* Fix build with newer libicu
* Fix cross-compile support in libical-glib
Version 3.0.8 (07 March 2020):
------------------------------
* Fix for icalattach_new_from_data() and the 'free_fn' argument
* Fix if recurrencetype contains both COUNT and UNTIL (only output UNTIL in the RRULE)
Version 3.0.7 (15 December 2019):
---------------------------------
* libical-glib: Fix ICalAttach handling of the icalattach native structure
* Let icalattach_new_from_data() use the 'free_fn' argument again
* Fix memory leaks in attachment handling and elsewhere
* Fix a multithreading race condition
* More fuzzification fixes
Version 3.0.6 (14 Sep 2019):
----------------------------
* Handle both COUNT and UNTIL in RRULEs
* Fix RRULE BYDAY with INTERVAL=2 conflict
* Various fuzzification fixes
* New publicly available function:
+ icaltimezone_truncate_vtimezone()
* Add option to disable building the test suite
* Built-in timezones updated to tzdata2019c
Version 3.0.5 (14 May 2019):
----------------------------
* New publicly available function:
+ icalproperty_get_datetime_with_component()
* Allow reset DATE/DATE-TIME VALUE parameter for all-day events
* icalproperty_get_datetime_with_component() will use location as TZID fallback.
* New CMake option ENABLE_GTK_DOC for disabling the libical-glib developer documentation
* GObject Introspection - use $MAJOR-0 versioning
* libical-glib API is considered unstable, define LIBICAL_GLIB_UNSTABLE_API=1 before
including <libical-glib/libical-glib.h> to be able to use it.
* Built-in timezones updated to tzdata2019a
* De-fuzzifications and Coverity fixes
Version 3.0.4 (14 Aug 2018):
----------------------------
* Silently fail RSCALE recurrence clauses when RSCALE is disabled
* Fixed icalcomponent_set_comment() and icalcomponent_set_uid()
* fix FREQ=MONTHLY;BYMONTH
* Skip UTF-8 marker when parsing
* Fix parsing <CR>?<LF> in VCF files produced by Outlook
* Fix TZID on DATE-TIME value can override time specified in UTC
* CMake discovery module for ICU uses pkg-config now
* New publicly available function:
+ icalparameter_kind_is_valid()
* Built-in timezones updated to tzdata2018e
Version 3.0.3 (27 Feb 2018):
----------------------------
* VTODO COMPLETED property can be a DATE-TIME or DATE (for backward compatibility)
* Improved recurrence iteration
Version 3.0.2 (17 Feb 2018):
----------------------------
* 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,...)
* Build with Ninja improvements
Version 3.0.1 (18 Nov 2017):
----------------------------
* Built-in timezones updated to tzdata2017c
* Fix a multi-threaded deadlock in icaltimezone_load_builtin_timezone()
* Fix a CMake problem with parallel builds
Version 3.0.0 (28 Oct 2017):
----------------------------
* Relicense from MPL 1.0 to MPL 2.0 (keep dual license for LGPL v2.1)
* Requires CMake v3.1.0 or higher along with various CMake and buildsystem fixes
* Added a 'make uninstall'
* Fixed use-after-free issues and some memory leaks
* Built-in timezones updated to tzdata2017b
* More accurate VTIMEZONE generation when using the system time zone data (when USE_BUILTIN_TZDATA=False)
* icalvalue_as_ical_string() returns "TRUE" (non-zero) or "FALSE" (zero) values only.
* New icalvalue.h convenience macros: ICAL_BOOLEAN_TRUE and ICAL_BOOLEAN_FALSE
* Better value type checking of property values when parsing
* icalvalue_new/set_date and icalvalue_new/set_datetime now enforce DATE and DATE-TIME values respectively
* draft-ietf-calext-extensions (RFC 7986) support added
* Parameter values are now en/decoded per RFC 6868
* Removed is_utc from icaltimetype struct
* Set icaltimetype.zone to icaltimezone_get_utc_timezone() to change a time to UTC
* Use icaltime_is_utc() to check if a time is in UTC
* Added support for VPATCH component
* New publicly available functions:
+ icalproperty_set_parent (icalproperty_get_parent was already public)
+ icalvalue_get_parent (icalvalue_set_parent was already public)
+ icalparameter_set_parent
+ icalparameter_get_parent
+ icalvalue_new_datetimedate (DATE or DATE-TIME)
+ icalvalue_set_datetimedate
+ icalvalue_get_datetimedate
+ icalrecur_iterator_set_start
+ icalcomponent_normalize()
+ icalproperty_normalize()
* Removed deprecated functions:
+ icaltime_from_timet (use icaltime_from_timet_with_zone)
+ icaltime_start_day_of_week (use icaltime_start_day_week)
+ icalproperty_remove_parameter (use icalproperty_remove_parameter_by_kind)
+ icalproperty_string_to_enum (use icalproperty_kind_and_string_to_enum)
* Signature changed for functions:
+ VObject *Parse_MIME_FromFileName(const char *fname)
+ icalgauge *icalgauge_new_from_sql(const char *sql, int expand)
+ const char *icallangbind_property_eval_string(icalproperty *prop, const char *sep)
+ const char *icallangbind_property_eval_string_r(icalproperty *prop, const char *sep)
+ void set_zone_directory(const char *path)
+ icalcalendar *icalcalendar_new(const char *dir)
+ int icalrecur_expand_recurrence(const char *rule, time_t start, int count, time_t *array)
Version 2.0.0 (28 Dec 2015):
----------------------------
* WARNING: Version 2 IS NOT Binary Compatible with Older Versions
* Version 2 is Source Compatible with Older Versions
* Lots of source code scrubbing
* [New] RSCALE support (requires libicu from http://www.icu-project.org)
* [New] CalDAV attachment support (draft-ietf-calext-caldav-attachments)
* [New] Resurrect the Berkeley DB storage support
* [Bug] issue83: Incorrect recurrence generation for weekly pattern
* Handle RRULEs better
* Handle threading better
Version 1.0.1 (11 Oct 2014):
----------------------------
* [Bug] issue74: Do not escape double quote character
* [Bug] issue80,issue92: fix crashes using icaltimezone_load_builtin_timezone() recursively
* [Bug] Fix icalcomponent_foreach_recurrence() and large durations between recurrences (e.g. FREQ=YEARLY)
* [Bug] Properly handle UTCOFFSETs of the form +/-00mmss
* [Bug] Properly skip bogus dates (e.g. 2/30, 4/31) in RRULE:FREQ=MONTHLY
* [Bug] Properly handle RRULE:FREQ=MONTHLY;BYDAY;BYMONTHDAY when DTSTART isn't on BYDAY
* [Bug] Fix RRULE:FREQ=YEARLY;BYDAY;BYWEEKNO - MUST use ISO weeks
* [Bug] Properly skip bogus dates (e.g. 2/29) in RRULE:FREQ=YEARLY[;BYMONTH][;BYMONTHDAY]
* [New] Update tzdata to version 2014g
* [New] Support added for schedule params: agent, status, force-send
* [New] Added a UID to the VFREEBUSY component
* [New] Allow dates > 2038 if sizeof(time_t) > 4
* [New] Add properties from draft-ietf-tzdist-service
* [New] Add support for RRULE:FREQ=YEARLY;BYDAY;BYYEARDAY and fixed RRULE:FREQ=YEARLY;BYYEARDAY with negative days
* [Build] Autotools build system is removed
* [Build] CMake version 2.8.9 (or higher) is required (was CMake version 2.4.0)
* [Build] Add new -DSHARED_ONLY and -DSTATIC_ONLY CMake options
* [Build] Remove -DSTATIC_LIBRARY CMake option
* [Build] MSYS2 builds (fixed instructions)
* [Build/Doc] Now can build api documentation with make docs
* [Quality] More regression tests added, in particular for recurrence
* [Quality] Almost all compile warnings silenced
* [Quality] A bunch of Coverity Scan warnings silenced
Version 1.0.0 (28 Jun 2014):
----------------------------
* Reborn