Увидел свет KDE Frameworks 5
8 июля 2014 года
Проект KDE анонсировал первый стабильный выпуск KDE Frameworks 5, который включает в себя реструктуризированный и портированный на Qt5 базовый набор библиотек и runtime-компонентов, лежащих в основе KDE. Бинарные пакеты с KDE Frameworks 5 подготовлены для Kubuntu ( PPA), openSUSE, Mageia, Arch Linux и Fedora. Перешедшее на KDE Frameworks 5 пользовательское окружение KDE Plasma 5 планируется выпустить 16 июля. Оценить работу KDE Frameworks 5 и Plasma 5 можно воспользовавшись iso-образом (Архивная копия от 6 января 2017 на Wayback Machine) от проекта Neon.
В отличие от ранее поставляемых монолитных пакетов (kdesupport, kdelibs и kde-runtime), в KDE Frameworks 5 осуществлён переход к модульной архитектуре, подразумевающей наличие взаимодействующих друг с другом независимых и кроссплатформенных фреймворков, доступных для использования не только в KDE, но в любых приложениях на базе Qt. Ранее при желании использовать в своей программе возможности библиотек KDE, такие как меню, панели инструментов, средства проверки орфографии и функции для работы с файлами, требовалось установить монолитный пакет kdelibs, состоящий из неразрывно связанных между собой библиотек.
Сам по себе API остался неизменным, изменения связаны только с перераспределением функциональности по библиотекам и проведением внутренней адаптации для использования Qt 5. Сохранение базовой обратной совместимости API позволяет упростить портирование существующих приложений на технологии KDE Frameworks 5, как правило, достаточно внести минимальные изменения в сценарий сборки и заголовочные файлы.
Пакет kdelibs разбит на модули, оформленные в виде дополнений к Qt, в расчете один модуль на каждую библиотеку. Благодаря разбиению kdelibs на независимые модули, связанные явно определёнными зависимостями, KDE Frameworks 5 позволяет установить только библиотеки, необходимые для работы программы. Подобный подход предоставляет возможность использования библиотек KDE в сторонних Qt-проектах, не привязанных к KDE, и открывает двери для постепенного выноса не специфичной для KDE функциональности в состав Qt.
KDE Frameworks 5 состоит из 59 модулей, разделённых на несколько категорий. Уровни определяют степень зависимости модулей, например, компоненты уровня 1 не зависят от других уровней и могут использоваться в Qt-приложениях как самодостаточные библиотеки. Для работы компонентов уровня 2 требуется наличие библиотек первого уровня. Уровень 3 лежит поверх 2 уровня и связан с ним зависимостями, кроме того компоненты уровня 3 связаны зависимостями между собой.
- Уровень 1. 21 функциональное дополнение к Qt, расширяющее возможности Qt в определённых направлениях, например в плане предоставления средств для управления конфигурацией. Отнесённые к данной категории библиотеки не требуют дополнительных зависимостей, кроме Qt.
Среди входящих в данную категорию модулей: KArchive, KPlotting, Threadweaver, KConfig, KCoreAddons, KCodecs, KDBusAddons, KWindowSystem, Sonnet (проверка орфографии), Solid (обработка событий от оборудования);
- Уровень 2. 10 библиотек для интеграции с операционной системой, расширяющих функции первой категории зависимостями, специфичными для различных операционных систем (например, libktimezone может использовать ktimezoned в Linux и отдельный API на платформе Windows).
Среди входящих в данную категорию модулей: KDNSSD, KAuth, KCompletion, KCrash, KI18n, KNotifications, KWallet;
- Уровень 3. 23 библиотеки, составляющие полнофункциональный программный стек KDE, включающий зависимости от дополнительных библиотек и runtime-компонентов.
Среди входящих в данную категорию модулей: KIO (KDE Input/Output), KService, KBookmarks, KConfigWidgets, KDEWebKit, Plasma, KActivities.
- Набор с необзательными для использования или специфичными интеграционными компонентами. В категорию включен набор плагинов FrameworkIntegration, обеспечивающих интеграцию с различными платформами;
- Набор модулей с реализацией возможностей, признанных устаревшими и не включённых в состав KDE Frameworks 5. Набор позиционируется только как вспомогательное средство для сглаживания и упрощения процесса портирования, поддержка набора будет ограничена тремя циклами релизов KDE 5. В состав включены 7 модулей: KDELibs4Support, KHtml, KJS, KJsEmbed, KMediaPlayer, Kross, KRunner.
Из полезных библиотек, которые ранее были неделимой частью KDE, а теперь могут использоваться отдельно, отмечаются:
- KArchive - набор функций для работы с архивами и различными форматами сжатия данных. Позволяет быстро интегрировать в любое Qt-приложение средства для распаковки архивов или хранения данных в сжатом виде;
- ThreadWeaver - высокоуровневый API для организации многопоточности при помощи интерфейсов на основе работ и очередей. Предоставляет планировщик, обеспечивающий запуск потоков на основании установленной зависимости между потоками;
- KConfig - фреймворк для сохранения и извлечения параметров конфигурации. Поддерживает работу с группами настроек, генерацию кода на основе XML-файлов, может обрабатывать ini-файлы и каскадные иерархии директорий с настройками, соответствующими спецификации XDG;
- Solid - компоненты для определения подключения оборудования и
обработки событий от оборудования. Может использоваться для информирования приложения об устройствах хранения, типе CPU, статусе заряда аккумулятора, состоянии сети, Bluetooth и т.п. Для работы с шифрованными разделами, управления питанием и сетью требуется запуск специальных фоновых процессов;
- KI18n - фреймворк для интернационализации на основе Gettext. Упрощает процесс перевода интерфейса приложений;
- Sonnet - компонент для интеграции в приложения средств для проверки правописания. Поддерживается интеграция с HSpell, Enchant, ASpell и HUNSPELL;
- KPlotting - класс на основе QWidget для быстрого формирования 2D-графиков на основании заданного набора данных.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.