[exim-conf] механизм сборки exim 4.72 и libspf2 1.2.9 для FreeBSD, exim 4.71 и libspf2 1.2.9 для OpenBSD

Victor Ustugov victor на corvax.kiev.ua
Вс Июн 13 16:31:55 EEST 2010


приветствую

выложен механизм сборки порта exim 4.72 для FreeBSD:
http://mta.org.ua/exim-4.69-conf/ports-freebsd/exim-4.72/

никаких принципиальных изменений по сравнению с механизмом сборки порта 
exim 4.71 нет.


выложен механизм сборки порта exim 4.71 для OpenBSD:
http://mta.org.ua/exim-4.69-conf/ports-openbsd/exim-4.71/

на OpenBSD обнаружились странности сборки exim с поддержкой libspf2.

в libspf2 заложена следующая логика - если в системе не определен тип 
данных ns_type (который на той же FreeBSD определен в 
/usr/include/arpa/nameser.h), то при сборке libspf2 используется свой 
файл с описанием в том числе этого типа - src/libreplace/arpa_nameser.h.

при этом в исходных текстах exim'а в файлах src/spf.h и 
src/lookups/spf.c если не объявлена опция HAVE_NS_TYPE, она объявляется 
с комментарием "Yes, we do have ns_type. spf.h redefines it if we don't 
set this. Doh". при этом в файле /usr/local/include/spf2/spf_dns.h тип 
данных ns_type переобъявляется только если не была объявлена опция 
сборки HAVE_NS_TYPE.

в общем и целом, в этом случае тип ns_type не объявляется никем и сборка 
exim прерывается с сообщением об ошибке.

для решения проблемы был создан крошечный патч, препятствующий 
объявлению опции сборки HAVE_NS_TYPE, если она еще не была объявлена при 
сборке exim:
http://mta.org.ua/exim-4.69-conf/patches/exim-4.72-spf-ns_type/patch-src::spf-ns_type.patch

этот патч включен в состав моего порта exim 4.71 для OprnBSD. он 
используется по умолчанию. его использование может быть отключено путем 
добавления в файл ports-openbsd/exim-4.71/Makefile.local следующей строки:
WITH_REPLACE_NS_TYPE=

кстати, штатно порт exim'а на OpenBSD не предназначен для сборки его с 
поддержкой spf и dlfunc. поэтому кроме патчей исходников самого эксима 
нужно будет после обновления дерева портов разово пропатчить сам порт.

делается это путем выполненения команда gmake patch_port в каталоге 
ports-openbsd/exim-4.71

после этого можно копировать Makefile.local.sample в Makefile.local, при 
необходимости править Makefile.local и выполнять gmake build


теперь о libspf2 1.2.9

механизм сборки обновлен и для FreeBSD и для OpenBSD:
http://mta.org.ua/exim-4.69-conf/ports-freebsd/libspf2-1.2.9_1/
http://mta.org.ua/exim-4.69-conf/ports-openbsd/libspf2-1.2.9/

в процессе сборки под обеими ОС просто накладываются пара старых патчей.

-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC




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