Вот несколько причин, по которым пакету может быть отказано в доступе в репозиторий (более подробные сведения находятся в 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. В нем вы можете определить такие параметры, как:
Месторасположение структуры каталогов для сборки;
Каким ключом подписывать пакеты;
Значение полей, таких, как 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>