Wiki - https://fedoraproject.org/wiki/Changes/Libical4

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.

== Summary ==
Update the `libical` library to its 4.x series. It's the next
generation of the `libical` library, on which the upstream focuses the
most right now.

== Owner ==
* Name: [[User:mcrha| Milan Crha]]
* Email: <mcrha at redhat dot com>


== Detailed Description ==
The `libical` upstream begun to focus the main development on the new
4.x series, which is not API compatible with the 3.x series. These
cannot be used by a single executable together, similar to `libsoup2`
and `libsoup3`. Unlike `libsoup`, it does not verify in runtime
whether the other library is also loaded, thus it it harder to spot
the leftovers. Luckily, there are not that many direct dependencies
which use either `libical` or `libical-glib`, thus I'd go even without
a compact package and just flip the switch.

== Feedback ==
I asked for an opinion
[https://lists.fedoraproject.org/archives/list/[email protected]/thread/OAT6OWZ6OCN74HVAGHZB5SSHP6BMOU6E/
on the devel list] with almost no feedback. I built the dependencies
[https://copr.fedorainfracloud.org/coprs/mcrha/libical-4.x/builds/ in
COPR] checking which dependencies need a custom patch and which can be
build with either `libical` 3.x or 4.x. I also proposed patches to
some of the projects which needed them.

== Benefit to Fedora ==

Stay on the latest `libical` upstream stable series.

== Scope ==
* Proposal owners:
Just adapting the `libical'` spec file, already prepared in the COPR

* Other developers:
Simply rebuild the package against the new `libical` for those whom
are ready, or carry a custom patch to port to the new API changes.

* Release engineering:
[https://forge.fedoraproject.org/releng/tickets/issues/13504 #13504]

* Policies and guidelines: N/A (not needed for this Change)

* Trademark approval: N/A (not needed for this Change)

* Alignment with the Fedora Strategy:

== Upgrade/compatibility impact ==

C API/ABI: Applications not rebuilt will fail to run due to the soname change.

== Early Testing (Optional) ==

Do you require 'QA Blueprint' support? N

Propose pull request with the needed packaging changes is here:
https://src.fedoraproject.org/rpms/libical/pull-request/2

COPR build with the main users rebuilt is here:
https://copr.fedorainfracloud.org/coprs/mcrha/libical-4.x/

== How To Test ==

There should be no user visible changes, depending whether any of the
library users provide different features for different versions on the
`libical`.

== User Experience ==

It depends on the applications using the library.

== Dependencies ==

The users of the `libical` development packages:

    $ dnf repoquery --whatrequires "pkgconfig(libical)" \
        --whatrequires "pkgconfig(libical-glib)" \
        --whatrequires "libical-glib-devel" \
        --whatrequires "libical-devel" \
        --recursive --disablerepo=* --enablerepo=rawhide --srpm

    akonadi-calendar
    akonadi-search
    calendarsupport
    eventviews
    evolution
    evolution-data-server
    folks
    incidenceeditor
    kcalutils
    kf6-kcalendarcore
    kitinerary
    ktnef
    libkgapi

(excluding `libical` itself and `kf5` packages, which are orphaned at
the moment).

Packages requiring `libical`:

    $ dnf repoquery --whatrequires "libical" --recursive --srpm
--disablerepo=* --enablerepo=rawhide

    GoldenCheetah
    akonadi-calendar
    akonadi-calendar-tools
    akonadi-import-wizard
    akonadi-search
    akonadiconsole
    akregator
    almanah
    asterisk
    baresip
    bijiben
    blivet-gui
    blogilo
    bluedevil
    blueman
    bluez
    bubblemail
    cairo-dock
    cairo-dock-plug-ins
    calendarsupport
    calindori
    calligraplan
    calls
    chatty
    cinnamon
    claws-mail
    cyrus-imapd
    digikam
    digikam-gmic-qt
    eventviews
    evolution
    evolution-data-server
    evolution-ews
    evolution-rspam
    folks
    g3kb-switch
    gdm
    geary
    glabels
    gnokii
    gnome-applets
    gnome-bluetooth
    gnome-browser-connector
    gnome-calendar
    gnome-contacts
    gnome-flashback
    gnome-initial-setup
    gnome-panel
    gnome-phone-manager
    gnome-pomodoro
    gnome-session
    gnome-shell
    gnome-shell-extension-appindicator
    gnome-shell-extension-background-logo
    gnome-shell-extension-blur-my-shell
    gnome-shell-extension-bubblemail
    gnome-shell-extension-dash-to-dock
    gnome-shell-extension-dash-to-panel
    gnome-shell-extension-disconnect-wifi
    gnome-shell-extension-forge
    gnome-shell-extension-freon
    gnome-shell-extension-gamemode
    gnome-shell-extension-gamerzilla
    gnome-shell-extension-gsconnect
    gnome-shell-extension-ibus-font
    gnome-shell-extension-just-perfection
    gnome-shell-extension-kimpanel
    gnome-shell-extension-logo-menu
    gnome-shell-extension-netspeed
    gnome-shell-extension-pidgin
    gnome-shell-extension-pipewire-settings
    gnome-shell-extension-pop-shell
    gnome-shell-extension-refresh-wifi
    gnome-shell-extension-suspend-button
    gnome-shell-extension-system-monitor-applet
    gnome-shell-extension-unite
    gnome-shell-extension-vertical-workspaces
    gnome-shell-extensions
    gnome-shell-frippery
    gnome-todo
    gparted
    gpaste
    grantlee-editor
    incidenceeditor
    itinerary
    kaddressbook
    kalarm
    kcalutils
    kdepim
    kdepim-addons
    kdepim-runtime
    kdepimlibs
    kf6-kcalendarcore
    kio-gdrive
    kitinerary
    kleopatra
    kmail
    kmail-account-wizard
    kmailtransport
    kmymoney
    kongress
    kontact
    korganizer
    ktnef
    kuser
    libkgapi
    libksieve
    mailcommon
    mailimporter
    maui-agenda
    maui-mauikit-calendar
    mbox-importer
    merkuro
    messagelib
    mimetreeparser
    noctalia
    orage
    osmo
    phosh
    phosh-mobile-settings
    phrog
    pidgin-chime
    pim-data-exporter
    pim-sieve-editor
    pimcommon
    recoll
    redwax-tool
    syncevolution
    vakzination
    workrave
    xpra
    yaru-theme
    zanshin


== Contingency Plan ==

* Contingency mechanism:
** ABI Breakage: If the mass rebuild is unsuccessful or reveals
widespread, unresolvable issues, revert to the 3.x series.

* Contingency deadline: Beta freeze
* Blocks release? Yes


== Documentation ==

Upstream has a migration guide at
https://github.com/libical/libical/blob/4.0/docs/MigrationGuide_to_4.md

== Release Notes ==


-- 
Aoife Moloney

Fedora Operations Architect

Fedora Project

Matrix: @amoloney:fedora.im

IRC: amoloney

-- 
_______________________________________________
devel-announce mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://forge.fedoraproject.org/infra/tickets/issues/new
-- 
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://forge.fedoraproject.org/infra/tickets/issues/new

Reply via email to