В помощь начинающему разработчику

Возможные причины отказа в доступе к Sisyphus для пакета

Вот несколько причин, по которым пакету может быть отказано в доступе в репозиторий (более подробные сведения находятся в ALT-Packaging-HOWTO):

  • Несоответствие требованиям репозитория (см. выше);

  • Пакет не подписан GPG-ключом мантейнера;

  • В пакете недопустимые %post, %preun, %pre скрипты. Например:

    • нельзя изменять на этапе установки/удаления какие-либо системные файлы;

    • не допускается доустанавливать дополнительные программы, производить их перемещения из одного места в другое;

  • Недопустимые права на файлы (немотивированный SUID/SGID, World-writeable файлы);

  • Ложные или недопустимые зависимости пакета (Requires);

  • Ложные или недопустимые зависимости сборки (BuildReqs);

  • Полное несоответствие spec-файла требованиям ALT Linux Team (более подробно в ALT-Packaging-HOWTO). Например, использование BuildRoot, %clean, defattr(-,-,root);

  • Избыточная информация в версии пакета (например, 1.2.3pre5) может повредить корректному обновлению (1.2.3 до 1.2.3pre5, несмотря на то, что 1.2.3 — это финальная версия). Переносите все дополнительные сведения в номер сборки (например, alt0.1.pre5);

  • Необоснованное увеличение Serial. Увеличение следует производить только в случае необходимости отката по версии;

На самом деле правил и ограничений намного больше, самый надёжный способ всегда быть в курсе это использовать утилиту sisyphus_check из пакета sisyphus для проверки своих пакетов перед отправкой в incoming. Также рекомендуется использовать утилиту add_changelog из пакета rpm-utils для добавления changelog к пакету.

Примерное содержание файла .rpmmacros

Очень удобно и настоятельно рекомендуется создать в своем домашнем каталоге файл .rpmmacros. В нем вы можете определить такие параметры, как:

  • Месторасположение структуры каталогов для сборки;

  • Каким ключом подписывать пакеты;

  • Значение полей, таких, как Packager, Vendor и Distribution;

%vendor ALT Linux Team
%distribution   ALT Linux

%_topdir /home/pupkin/RPM/
%_gpg_name pupkin@altlinux.ru
%packager Vasja Pupkin <pupkin@altlinux.ru>