приветствую
реализована сборка 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