[exim-conf] сборка exim, exim-conf и сопутствующих пакетов на RedHat/Fedora

Victor Ustugov victor на corvax.kiev.ua
Пн Ноя 8 13:01:10 EET 2004


вот, навеяло системой портов 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




Подробная информация о списке рассылки exim-conf