Началось тестирование первой альфа-версии KDE Frameworks 5, который включает в себя реструктуризированный и портированный на Qt5 базовый набор библиотек и runtime-компонентов, лежащих в основе KDE. Первый стабильный релиз KDE Frameworks 5 ожидается в июне.
По сравнению с предварительной тестовой версией в альфа-выпуске добавлены дополнительные .pri-файла для упрощения сборки проектов на базе qmake, использующих отдельные библиотеки из состава KDE Frameworks 5. В состав включено два новых фреймворка: kactivities и plasma-framework, в которых представлены библиотеки и runtime-компоненты, необходимые для организации работы "комнат" и рабочих столов. Runtime-компоненты Plasma пока подготовлены только для Linux X11 и Wayland, в библиотеках обеспечена набота на всех поддерживаемых в Qt платформах. Значительно улучшена поддержка работы компонентов KDE Frameworks на платформе Windows.
KDE Frameworks 5 состоит из 59 модулей, разделённых на три категории:
- 19 функциональных дополнений к Qt, расширяющих возможности Qt в определённых направлениях, например в плане предоставления средств для управления конфигурацией. Отнесённые к данной категории библиотеки не требуют дополнительных зависимостей, кроме Qt. Среди входящих в данную категорию модулей: KArchive, KPlotting, Threadweaver, KConfig, KCoreAddons, KCodecs, KDBusAddons, KJS, KWindowSystem, Sonnet (проверка орфографии), Solid (обработка событий от оборудования);
- 9 библиотек для интеграции с операционной системой, расширяющих функции первой категории зависимостями, специфичными для различных операционных систем (например, libktimezone может использовать ktimezoned в Linux и отдельный API на платформе Windows). Среди входящих в данную категорию модулей: KDNSSD, KAuth, KCompletion, KCrash, KI18n, KNotifications, KWallet;
- 31 библиотека, составляющая полнофункциональный программный стек KDE, включающий зависимости от дополнительных библиотек и runtime-компонентов. Среди входящих в данную категорию модулей: KIO (KDE Input/Output), KService, KBookmarks, KConfigWidgets, KDEWebKit, KMediaPlayer, Plasma, KActivities.
В отличие от ранее поставляемых монолитных пакетов (kdesupport, kdelibs и kde-runtime), в KDE Frameworks 5 осуществлён переход к модульной архитектуре, подразумевающей наличие взаимодействующих друг с другом независимых и кроссплатформенных фреймворков, доступных для использования не только в KDE, но в любых приложениях на базе Qt. Ранее при желании использовать в своей программе возможности библиотек KDE, такие как меню, панели инструментов, средства проверки орфографии и функции для работы с файлами, требовалось установить монолитный пакет kdelibs, состоящий из неразрывно связанных между собой библиотек.
KDE Frameworks 5, благодаря разбиению kdelibs на независимые модули, связанные явно определёнными зависимости, позволяет установить только библиотеки, необходимые для работы программы. Подобный подход предоставляет возможность использования библиотек KDE в сторонних Qt-проектах, не привязанных к KDE, и открывает двери для постепенного выноса не специфичной для KDE функциональности в состав Qt.
В целом API остался неизменным, изменения связаны только с перераспределением функциональности по библиотекам и внутренней адаптацией для использования Qt 5. Пакет kdelibs разбит на модули, оформленные в виде дополнений к Qt, в расчете один модуль на каждую библиотеку. Сохранение базовой обратной совместимости API позволяет упростить портирование существующих приложений на технологии KDE Frameworks 5, как правило, достаточно внести минимальные изменения в сценарий сборки и заголовочные файлы.
Бинарные пакеты с KDE Frameworks 5 подготовлены для Kubuntu (PPA), openSUSE и Arch Linux. Оценить работу KDE Frameworks 5 и Plasma 2 можно воспользовавшись iso-образом от проекта Neon.