Как-то в упор мне не верится то, что все люди обходятся какими-то собственными костылями (как я), а особенно такие монстры как redhat. Есть же наверное какая-то хорошая система, в свободном доступе итд, которая поможет в следующей ситуации:
Есть проект, состоящий из нескольких GIT репозиториев:
- модуль для iptables
- ядерный модуль для netfilter
- набор userspace утилит для работы с этим самым модулем и не только
- набор автотестов, которые имеет смысл запускать только на настроенном стенде
- сам spec-файл (вернее его шаблон).
Иными словами мы получаем от каждого репозитория набор исходников, часть из которых нужно сперва собрать (некоторым нужно особое окружение, в данном случае развёрнутые исходники ядра Linux нужной версии), часть просто скопировать и в итоге получить содержимое RPM'ки.
Плюс хочется чтобы поддерживались:
- сборки пакета из различных веток, скажем, master, devel, experimental, автоматическое подтягивание изменений из master в devel, из devel во все остальные, при сборке.
- автоинкремент билда.
- автоматическая генерация ChangeLog из коммитов в git
- выкладывание собранных RPM на удалённый сервер (складывание в публичный репозиторий).
- ругань на незакоммиченные изменения и неразрешённые конфликты в репозиториях
- поддержка CI, хотя бы на уровне «закинуть на стенд, попробовать установить».
В общем хочется чего-то в следующем духе: установил centos, настроил сеть, поставил yum'ом систему сборки, подложил конфиг с другой системы или из бэкапа (мало ли, всё сгорит), запустить эдакий bootstrap и на выходе получить рабочую систему сборки, ничем не отличающуюся от других.
Пока копал в сторону Mock, но судя по описаниям он годится только на то, чтобы пересобирать уже имеющиеся src.rpm под разные архитектуры.
Просто, если такой системы не существует, то, наверное мне стоило бы выложить свой набор костылей в opensource, но чтобы это сделать, мне нужно побороть свой стыд и подчистить код.