После семи лет разработки анонсирован выпуск PackageKit 1.0.0, фреймворка для унификации установки и обновления приложений. PackageKit выступает в роли прослойки между пользовательскими интерфейсами для работы с пакетами и пакетными менеджерами различных дистрибутивов, использующей PolicyKit для организации выполнения привилегированных операций и обрабатывающей запросы через D-Bus.
Ключевые новшества:
- Переработана реализация offline-режима обновления системы, совместно развиваемого разработчиками GNOME, PackageKit и systemd. Offline-режим подразумевает установку обновлений для некоторых ключевых компонентов системы (например, glibc и других основных библиотек) на начальном этапе загрузки системы, при котором обновляемые компоненты не могут привести к конфликту и проблемам в работе уже работающих приложений. В PackageKit 1.0.0 для управления offline-обновлениями задействован интерфейс D-Bus, вместо ранее предлагаемых вспомогательных модулей pkexec для systemd, поддержка которых прекращена. Новый интерфейс уже задействован в экспериментальном выпуске GNOME 3.13.92;
- Отказ от использования плагинов (поддержка бэкендов оставлена) и удаление программного интерфейса для плагинов. Вместо плагинов проект вернулся к практике встраивания функциональности в основную кодовую базу, например, в демон уже интегрированы средства offline-обновлений systemd. Подобное решение обусловлено проблемами со стабильностью работы плагинов;
- Удалены бэкенды для пакетных менеджеров conary, opkg, smart и yum, которые остались без сопровождающих и последние два года находились в неработоспособном состоянии;
- Обновлены бэкенды для пакетных менеджеров alpm, aptcc, hif и zypp, в которых учтены новые возможности указанных систем;
- Прекращена поддержка дистрибутивов, не поддерживающих /etc/os-release, продвигаемый разработчиками systemd единый файл с информацией о используемом выпуске дистрибутива.
Дополнительно можно отметить публикацию отчёта о развитии проекта Listaller, в рамках которого развивается не зависящий от отдельных дистрибутивов установщик пакетов, тесно интегрируемый с PackageKit. Listaller позволяет формировать устанавливаемые в различных дистрибутивах ipk-пакеты, которые можно использовать для распространения сторонних приложений. В настоящее время начался процесс капительной переработки Listaller (Listaller.NEXT) с учётом задействования AppStream и других современных инструментов работы с пакетами.
Причиной переработки Listaller практически с нуля является прекращение интерфейса плагинов в PackageKit. Новая реинкарнация Listaller пока рассчитана на работу только со статически собранными приложениями, что позволит подготовить компактное и надёжное ядро для дальнейшего расширения функциональности. В дальнейшем, по мере необходимости, Listaller будет обрастать дополнительной функциональностью, в том числе может быть реализована доустановка зависимостей из штатных репозиториев дистрибутвов. Также планируется уйти от привязки только к установке GUI-приложений и предоставить средства для поставки серверных приложений.