Re: [BLFS Trac] #23234: libical-4.0.0

"BLFS Trac" ([email protected] via blfs-book Mailing List) <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.