В рамках проекта предпринята попытка структурирования интерфейсов, связанных с управлением пакетами, и предоставления утилит и обвязок, написанных на языке программирования Rust. Развиваемые проектом спецификации и утилиты основываются на функциональности Pacman. Переход на язык Rust после использования языка Cи в Pacman объясняется снижением вероятности совершения ошибок при работе с памятью. В качестве цели инициативы заявлена интеграция в ALPM поддержки всех возможностей по управлению репозиториями и созданию/проверке/установке пакетов, а также предоставление функциональности, способной заменить некоторые возможности пакетного менеджера Pacman.
Выделенные средства планируется потратить на финансирование работы 4 разработчиков над проектом ALPM в режиме неполного рабочего дня на протяжении 15 месяцев. Работа стартовала в октябре и продлится до конца 2025 года. Среди задач, которые планируют решить в рамках проводимой работы, упоминаются:
- Создание формальных спецификаций для форматов данных, используемых в пакетах. В текущем виде в пакетах Arch Linux используются недокументированные или плохо документированные типы файлов и метаданных. Информацию о низкоуровневой структуре пакетов намерены обобщить в виде версионированных спецификаций, явно регламентирующих все типы допустимых файлов и метаданных.
- Внедрение упрощённого механизма верификации артефактов пакетов по цифровым подписям, основанного на использовании OpenPGP, но не завязанного на старое централизованное хранилище ключей GnuPG.
- Предоставление Rust-библиотеки для создания, верификации и установки отдельных пакетов, соответствующих требованиям формальных спецификаций, явно определяющих допустимое содержимое пакетов и методы для их создания и обработки.
- Предоставление Rust-библиотеки для управления пакетами в системе (обработки состояния набора пакетов, составляющих начинку системы). Для совместимости со старыми приложениями, использующими библиотеку libalpm (например, применяется в pacman), планируется предоставить обвязку с C-API.
- Подготовка поддерживающего PGPKI (Web of Trust) и независимого от дистрибутивов стека OpenPGP для верификации артефактов дистрибутива. Вместо GnuPG планируют использовать альтернативы на языке Rust.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62378
(opennet.ru, основная лента)