| Newsgroups |
gmane.linux.lfs.beyond.book |
| Message-ID |
<[email protected]> |
#23234: libical-4.0.0
-------------------------+--------------------------
Reporter: Bruce Dubbs | Owner: Bruce Dubbs
Type: enhancement | Status: assigned
Priority: normal | Milestone: 13.1
Component: BOOK | Version: git
Severity: normal | Resolution:
Keywords: |
-------------------------+--------------------------
Comment (by Bruce Dubbs):
## [4.0.0] - 2026-04-30
This is a major release and is **not** source or binary compatible with
version 3.x.
Please see [Version 4 Migration Guide](MigrationGuide_to_4.md)
for details about API changes since libical 3.x.
Included in this release is a **Technical Preview (TP)** of our new
library libicalvcard
for handling VCARD formatted data. We encourage users to try-out this new
library
and provide feedback to our issue tracker at
<https://github.com/libical/libical/issues>.
Note that the libicalvcard API is not finalized and no source or binary
compatibility
is guaranteed until sometime later in 4.x release cycle. Additionally,
there are currently
no C++ bindings available for libicalvcard (volunteers wanted).
Please **do not** use libicalvcard for production or other non-
experimental purposes
until the Technical Preview phase is completed.
### Added
- REUSE compliant licensing
- Supports multi-valued parameters (DELEGATED-FROM, DELEGATED-TO, MEMBER,
DISPLAY, FEATURE, etc)
- Adds java bindings
- (TP) Brand new icalvcard library that follows the libical API.
- draft-ietf-calext-eventpub-extensions-19 (RFC 9073) support added
- draft-ietf-calext-valarm-extensions-07 (RFC 9074) support added
- Added support for Event Publishing (RFC 9073) and VALARM (RFC 9074)
Extensions
- New CMake option "LIBICAL_ENABLE_64BIT_ICALTIME_T" to use 64-bit
time_t implementations on 32-bit systems (where available and
supported. Windows-only so far)
- GEO property has arbitrary precision (values are internally stored as
strings, not doubles)
- Allow previous recurrence iteration
- icalparser_ctrl setting defines how to handle invalid CONTROL characters
during parsing
- Full support for `BYSETPOS`, i.e. remove the limitation to MONTHLY and
YEARLY frequencies
- An API for setting/getting internal library limits (`icallimit_set` and
`icallimit_get`)
### Changed
- Built-in timezones updated to tzdata2026a to include historical data
- Requires MSVC 2013 or higher (when building on Windows with MSVC)
- Requires CMake v3.20.0 or higher
- For the C++ bindings, requires a C++11 compliant C++ compiler
- libical-glib requires glib 2.38 or higher
- libical-glib requires a C11 compliant C compiler
- Replace gtk-doc with gi-docgen to produce libical-glib developer
documentation
- libical-glib API is considered stable; no longer need to define
LIBICAL_GLIB_UNSTABLE_API=1
before including <libical-glib/libical-glib.h>
- By default, only shared libraries are built; to get static libraries one
must invoke
separate build using the CMake `-DLIBICAL_STATIC=True` option.
- CMake option -DGOBJECT_INTROSPECTION=True by default.
- `icaltzutil_get_zone_directory()` can use the TZDIR environment to find
system zoneinfo
- `icaltimezone_set_tzid_prefix()` now allows setting an empty tzid
prefix.
- `icaldurationtype_from_int` and `icaldurationtype_as_int` have been
renamed to
`icaldurationtype_from_seconds` and `icaldurationtype_as_seconds`,
respectively.
- Components and properties with arbitrary iana-token names now are parsed
with kind
ICAL_IANA_COMPONENT and ICAL_IANA_PROPERTY if the
`ical_unknown_token_handling`
setting is ICAL_ASSUME_IANA_TOKEN. Otherwise, they are handled as error.
- Property and parameter names that start with "x-" (lowercase) now also
are parsed as X kind.
- The `icalproperty_remove_parameter_by_(kind|name)` functions now remove
all matching parameters.
Before, they only removed the first matching parameter contrary to their
documentation.
- `icalrecurrencetype_new_from_string()` is more strict against overflows
and empty rule parts.
E.g. it now rejects RRULE parts like `BYDAY=255SU` (which used to be
interpreted as `BYDAY=-1SU`).
### Deprecated
- Several CMake options are renamed in favor of a "namespaced" equivalent.
Please port your buildscripts to the new CMake option names.
A complete list is provided in this "CMake options" section of the
[Version 4 Migration Guide](MigrationGuide_to_4.md)
### Removed
- The old src/python code is removed in favor of the glib-introspection
generated
Python bindings. Requires building with -DGOBJECT_INTROSPECTION=True
### Fixed
- Fixed `icalcomponent_get_duration()` to account for DTEND/DUE TZID
- Improved performance of recurrence iterators
- Improved handling of BYWEEKNO when BYDAY is not present
- Fixed `icalcomponent_get_dtend()` and
`icalcomponent_foreach_recurrence()`
to correctly handle nominal durations
- Fixed `icalcomponent_foreach_recurrence` to filter out duplicate
instances
--
Ticket URL: <https://wiki.linuxfromscratch.org/blfs/ticket/23234#comment:9>
BLFS Trac <https://wiki.linuxfromscratch.org/blfs/>
Beyond Linux From Scratch
--
http://lists.linuxfromscratch.org/sympa/info/blfs-book
Unsubscribe: See the above information page