Вслед за тестовой версией оболочки рабочего стола KDE Plasma 2 (http://www.opennet.me/opennews/art.shtml?num=38702) представлен первый предварительный выпуск KDE Frameworks 5 (http://dot.kde.org/2014/01/07/frameworks-5-tech-preview). KDE Frameworks 5 включает в себя реструктуризированный и портированный на Qt5 базовый набор библиотек и runtime-компонентов, лежащих в основе KDE. Бинарные пакеты с KDE Frameworks 5 подготовлены (http://community.kde.org/Frameworks/Binary_Packages) для Kubuntu (PPA (https://launchpad.net/~kubuntu-ppa/+archive/experimental/+pa...)), openSUSE и Arch Linux. Оценить работу KDE Frameworks 5 и Plasma 2 можно воспользовавшись iso-образом (http://files.kde.org/snapshots/neon5-latest.iso) от проекта Neon. Первый стабильный релиз KDE Frameworks 5 ожидается в начале июня.
В отличие от ранее поставляемых монолитных пакетов (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 состоит из 57 модулей (http://community.kde.org/Frameworks/List), разделённых на три категории:
- 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;
- 29 библиотек, составляющих полнофункциональный программный стек KDE, включающий зависимости от дополнительных библиотек и runtime-компонентов. Среди входящих в данную категорию модулей: KIO (KDE Input/Output), KService, KBookmarks, KConfigWidgets, KDEWebKit, KMediaPlayer.
<center><a href="http://agateau.com/2013/12/05/kf5-diagrams/tier3-kcmutils-si... src="http://www.opennet.me/opennews/pics_base/0_1386266990.png" style="border-style: solid; border-color: #606060; border-width: 1px;" title="" border="0"></a></center>
<center><a href="http://agateau.com/2013/12/05/kf5-diagrams/kf5.png">... src="http://www.opennet.me/opennews/pics_base/0_1386266934.png" style="border-style: solid; border-color: #606060; border-width: 1px;" title="" border="0"></a></center>
<center><a href="http://agateau.com/2013/12/05/kf5-diagrams/tier3-kio-simplif... src="http://www.opennet.me/opennews/pics_base/0_1386267019.png" style="border-style: solid; border-color: #606060; border-width: 1px;" title="" border="0"></a></center>
<center><a href="http://dot.kde.org/sites/dot.kde.org/files/KDE%20Framew... src="http://www.opennet.me/opennews/pics_base/0_1378325112.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border="0"></a></center>
URL: http://dot.kde.org/2014/01/07/frameworks-5-tech-preview
Новость: http://www.opennet.me/opennews/art.shtml?num=38804