вот, навеяло системой портов FreeBSD...
итак, после двойного make sync в паровозе появится подкаталог redhat.
в нем будут присутствовать подкаталоги, соответствующие примерам спеков
из samples/specs:
exim-4.43-0_28.nigel
exim-4.43-1.corvax
exim-4.43-1.fedora
exim-4.43-1.nvi
exim-conf-20041106-1.nvi
libspf2-1.0.4-1
libspf2-1.0.4-1.nvi
каждый каталог соответствует одному пакету. название, версия пакета, а
также пекаджер указаны в имени каталога.
для сборки пакета нужно просто зайти в соответствующий каталог и
выполнить make build.
установка пакета производиться не будет - это уже дело рук каждого.
теперь о кастомизации:
в самом каталоге redhat паровоза присутствуют три файла:
Makefile - общий для всех пакетов
make.conf-default - значения по умолчанию переменных, общих для всех пакетов
make.conf - значения переменных, общих для всех пакетов, но которые
специфичны для данного хоста
файл make.conf при синхронизации обновляться не будет.
пока единственная переменная, используемая в
make.conf/make.conf-default, это DISTFILES_DIR - путь к каталогу, куда
будут скачиваться базовые src.rpm. пока ее значение по умолчанию вообще
слабовменяемое - /tmp/distfiles.
дальше, как можно кастомизировать сборку отдельного пакета:
в качестве пример приведу сборку своего вариант exim'а. в спеке
предусмотрены разнообразные параметры:
--without readline
--without ipv6
--without nis
--without nisplus
--with mysql
--with nonlocal_clamd
--with spf2
--without exim_mon
если необходимо собрать пакет с какими-то доп. параметрами, их нужно
указать в файле Makefile.local внутри каталога, соответствующего пакету.
например:
# cat redhat/exim-4.43-1.corvax/Makefile.local
RPMBUILD_OPTIONS+= --without ipv6
RPMBUILD_OPTIONS+= --with mysql
RPMBUILD_OPTIONS+= --without nis
RPMBUILD_OPTIONS+= --without nisplus
RPMBUILD_OPTIONS+= --with nonlocal_clamd
RPMBUILD_OPTIONS+= --with spf2
RPMBUILD_OPTIONS+= --without exim_mon
файлы Makefile.local обновляться и перезаписываться при синхронизации не
будут.
таким образом, если в паровоз будет положен новый патч, используемый в
каком-то из этих пакетов, нужно будет просто выполнить make sync (т. е.
провести обычную синхронизацию паровоза, в течении которой будет получен
этот новый патч и подправленный спек) и make build внутри каталога,
соответствующего пакету.
вроде все
2nvi: может теперь упразним samples/specs, т. к. все равно эти спеки
теперь лежат еще и в каталоге redhat паровоза?
и еще - ты бы отразил данные изменения в exim-conf.spec
--
Best wishes Victor Ustugov mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ: 77186900, 32418694 CRV2-RIPE, CRV-UANIC