[exim-conf] механизм сборки exim 4.80.1 из pkgsrc на OpenBSD

Victor Ustugov victor на corvax.kiev.ua
Пт Ноя 23 09:40:29 EET 2012


приветствую

> давно я не собирал ничего под OpenBSD.
> 
> поставил свежую OpenBSD 5.2, обновил порты, в них нашел exim 4.77p2
> 
> вот механизм сборки этого порта с моими патчами:
> http://mta.org.ua/exim-4.76-conf/packages/ports-openbsd/exim-4.77p2/
> 
> по сравнению с механизмом сборки exim 4.72 из порта для OpenBSD 4.8:
> 
> - упразднен FLAVOR alt-config-root-only
> 
> - упразднен параметр сборки WITH_EXPERIMENTAL_RFC2047-UTF8-FIX, т. к.
> соответствующий патч patch-src::rfc2047-utf8-fix.patch принят в релиз
> 
> - упразднены параметры сборки WITH_HIDE_LDAP_PASS, WITH_HIDE_LDAP_ERROR
> и WITH_HIDE_EXPAND_ERROR, т. к. соответствующий патч
> patch-src::hide_expand_error.patch принят в релиз
> 
> - добавлен FLAVOR disable-dkim для сборки exim без поддержки DKIM
> 
> - добавлено использование -export-dynamic -rdynamic в значении EXTRALIBS
> при сборке exim с поддержкой dlfunc

т. к. даже в свежей OpenBSD 5.2 версия exim далеко не самая новая, была
предпринята попытка развернуть pkgsrc на OpenBSD для сборки свежей
версии exim.

попытка совместить ПО, собранное из портов OpenBSD, с ПО, собранным из
pkgsrc, оказалась неудачной.

т. о. пришлось сделать копию виртуалки, удалить все ПО, собранное из
портов, удалить все ПО, собранное из pkgsrc, удалить pkgsrc, развернуть
pkgsrc заново, указав альтернативный путь в параметре --pkgdbdir при
запуске bootstrap. теоретически этого можно не делать, если не собирать
софт из портов, но я решил перестраховаться.

далее в путях поиска нужно указать /usr/pkg/bin и /usr/pkg/sbin раньше
других каталогов. дополнительно я таки переименовал все /usr/sbin/pkg_*,
добавив суффикс .orig (все равно у меня не будет установлено ничего из
портов на этой виртуалке).

вот механизм сборки exim из pkgsrc для OpenBSD:

http://mta.org.ua/exim-4.76-conf/packages/pkgsrc-openbsd/exim-4.80.1/

отличия от сборки pkgsrc для других систем:

- в дополнение к обычно используемому каталогу patches-port используются
patches-port-OpenBSD-4 и patches-port-OpenBSD-5 в зависимости от версии
OpenBSD. вызвано это тем, что в четверке не использовались стартовые
скрипты из /etc/rc.d, а в пятерке используются, а механизм сборки у меня
один

- mail wrapper mailer.conf взят из порта exim 4.77 и модифицирован для
работы с exim из /usr/pkg/sbin/exim. механизм копирования файла
mailer.conf также взят из этого порта и также модифицирован.

- в случае установки на OpenBSD 4.x (на самом деле в этом случае
анализируется не версия ОС, а отсутствие каталога /etc/rc.d) стартовый
скрипт копируется из /usr/pkg/share/examples/exim/rc.exim.sh в /etc/rc.exim

- в случае установки на OpenBSD 5.x (на самом деле в этом случае
анализируется не версия ОС, а наличие каталога /etc/rc.d) стартовый
скрипт копируется из /usr/pkg/share/examples/exim/exim.sh в /etc/rc.d/exim

- добавлен патч patch-src::spf-ns_type.patch, необходимый при сборке
exim с поддержкой spf

- т. к. основным спосбом сборки exim считается таки сборка из портов, в
site/conf нужно указать значения некоторых переменных, которые будут
отличаться от выбранных исходя из используемой ОС:

define(`confCONFDIR', `/usr/pkg/etc/exim')
define(`confEXIM_USER', `mail')
define(`confEXIM_GROUP', `mail')

при использовании MDIR_VIRTUAL в значении confDELIVERY_TO нужно будет
еще указать:
define(`confVIRT_MDIR_USER', `mail')dnl
define(`confVIRT_MDIR_GROUP', `mail')dnl

при использовании confSYSTEM_FILTER нужно еще указать:
define(`confSYSTEM_FILTER_USER', `mail')dnl
define(`confSYSTEM_FILTER_GROUP', `mail')dnl


в остальном (включая параметры сборки exim 4.80.1 из pkgsrc) механизм
ничем не отличается от таких же механизмов сборки для других ОС.

-- 
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