[exim-conf] сборка exim и libspf2 на DragonFly BSD

Victor Ustugov victor на corvax.kiev.ua
Вс Июн 20 16:12:48 EEST 2010


приветствую

реализована сборка exim с моими патчами под DragonFly BSD:
http://mta.org.ua/exim-4.69-conf/pkgsrc-dragonfly/exim-4.72/

механизм сборки похож на сборку под OpenBSD и FreeBSD и практически не
отличается от механизма сборки pkgsrc для NetBSD.

нужно два раза выполнить gmake sync.
после первого раза обновиться Makefile, в ходе второго будет выполнен
gmake sync_pkgsrc_dragonfly

нужно обновить дерево портов.

если бы была нужна проверка соответствия адреса хоста отправителя SPF
записи домена отправителя, нужно было бы перейти в каталог
pkgsrc-dragonfly/libspf2-1.2.9 и выполнить gmake patch_port, потом
выполнить gmake install
команду gmake patch_port нужно выполнить разово для добавления в файл
distinfo контрольных сумм патчей.
при выполнении gmake install порт libspf2 соберется с моими патчами и
будет установлен.

перед сборкой эксима нужно в каталоге pkgsrc-dragonfly/exim-4.72 разово
выполнить команду gmake patch_port. при этом в дереве портов будет
модифицировать файл options.mk (добавлен синтаксис для сборки exim с
поддержкой dlfunc, spf, embedded perl) и в файл distinfo будут добавлены
контрольные суммы новых патчей.

далее нужно скопировать файл Makefile.local.sample в Makefile.local, при
необходимости отредактировать его.

при необходимости собрать exim с поддержкой libspf2 нужно в переменной
PKG_OPTIONS указать значение exim-spf.

при этом надо обратить внимание, что в этой же переменной нужно оставить
значение exim-expand-dlfunc, т. к. dlfunc сейчас широко применяется в
конфигураторе и собирать exim без поддержки dlfunc я не рекомендую.

т. к. по умолчанию в переменной confMAILERTABLE_LMTP включено
использование lmtp транспорта в mailertable, то в значении переменной
PKG_OPTIONS нужно указать и exim-transport-lmtp. если необходимости в
роутинге почты по LTMP нет, то можно в conf/site указать NO в качестве
значения confMAILERTABLE_LMTP и не указывать exim-transport-lmtp в
значении PKG_OPTIONS в Makefile.local.

как я уже писал в предыдущем письме, в следующей версии конфигуратора
значение по умолчанию для confMAILERTABLE_LMTP будет изменено с `YES' на
`NO'.

далее нужно выполнить gmake build, далее gmake install

что касается сборки exim с поддержкой embedded perl, то с этим пока
возникли проблемы, аналогичные проблемам сборки exim с поддержкой
embedded perl под NetBSD.

учитывая, что на данный момент времени в конфигурации паровоза, близкой
к дефолтовой, embedded perl используется только для определения основной
MX записи домена при указании в mailertable конструкции /bestMX, было
решено решение этой проблемы отложить.

на DragonFly BSD (как и на NetBSD) временно можно просто не использовать
confPERL. тогда конструкция /bestMX в mailertable будет обрабатываться
как /MX.

опять же, как я уже писал, в следующей версии конфигуратора будет
применено определение основной MX записи домена с помощью ${reduce, а не
с помощью функции bestmx на embedded perl.
реализация уже готова и протестирована:

http://mta.org.ua/exim-4.70-conf/deliveries/mailertable.m4

в данном случае имеется ввиду следущий фрагмент роутеров:
     route_data        = ${sg{${sg\
                 {$address_data}\
                 {\N(?i)([^:\s]+?)\/bestMX\N}\
                 {\N\
                     ${extract{2}{ }{\
                     ${reduce{<\n ${lookup dnsdb{mx=$1}}}{999999
localhost}{${if
<{${extract{1}{ }{$item}}}{${extract{1}{ }{$value}}}{$item}{$value}}}}\
                     }}\N\
                 }\
                 }}{\N\s\N}{}}

как я уже писал, идея использовать ${reduce принадлежит Андрею
Октябрьскому. и как справедливо заметил dawnshade, неплохо было бы
указать e-mail/url Андрея. на сколько я понимаю, актуальным адресом
является ano на bestmx.ru.

при сборке exim с libspf2 и sqlite3, собранных с -lpthread, я пока не
наблюдал проблем, с которыми столкнулся на NetBSD. так что на DragonFly
BSD можно использовать основной backend проверки SPF записей, а именно
libspf2.

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