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

Victor Ustugov victor на corvax.kiev.ua
Пт Ноя 23 15:30:59 EET 2012


Andrey N. Oktyabrski wrote:
> On 11/23/2012 11:40 AM, Victor Ustugov wrote:
>> т. о. пришлось сделать копию виртуалки, удалить все ПО, собранное из
>> портов, удалить все ПО, собранное из pkgsrc, удалить pkgsrc, развернуть
>> pkgsrc заново, указав альтернативный путь в параметре --pkgdbdir при
>> запуске bootstrap. теоретически этого можно не делать, если не собирать
>> софт из портов, но я решил перестраховаться.
>>
>> далее в путях поиска нужно указать /usr/pkg/bin и /usr/pkg/sbin раньше
>> других каталогов. дополнительно я таки переименовал все /usr/sbin/pkg_*,
>> добавив суффикс .orig (все равно у меня не будет установлено ничего из
>> портов на этой виртуалке).
> Добавлю ещё, что вот это обязательно к прочтению перед бутстрапом:
> /usr/pkgsrc/bootstrap/README.OpenBSD
> 
> И я для себя сделал вывод, что лучше сразу ставить софтинку только из
> pkgsrc, родными ейными портками не пользоваться вообще. Основных причин
> две:
> - Чтобы обновить порты, мне надо обновить всю систему. Маразм.
> - Чтобы компилировать что-то (а чтобы поставить exim в том виде, в каком
> он мне нужен, я должен его откомпилировать), мне надо поставить иксы.
> Ещё один маразм.

там ставится только xbase. и то, мне кажется не для exim понадобилось

> Кроме того, обновление многих портов - большой праздник. В pkgsrc как-то
> это всё же порегулярнее происходит.
> 
> Ещё один плюс - на разных системах одинаковые настройки при
> использовании на них pkgsrc.

кстати, вчера я не смог собрать screen из pkgsrc на OpenBSD 5.2, при
этом на OpenBSD 4.8 собирается он без проблем.

# cd /usr/pkgsrc/misc/screen
# bmake clean build

...

In file included from screen.c:240:
extern.h:149: error: conflicting types for 'execvpe'
/usr/include/unistd.h:316: error: previous declaration of 'execvpe' was here
*** Error code 1

и действительно, в 149-й строке файла
/usr/pkgsrc/misc/screen/work/screen-4.0.3/extern.h одно описание:

extern void  execvpe __P((char *, char **, char **));

а в 316-й строке файла /usr/include/unistd.h - другое:

int	 execvpe(const char *, char *const *, char *const *);

в 4.8 в unistd.h вообще не было описания execvpe

в 5.2 оно внутри внутри #if __BSD_VISIBLE/#endif

т. е. эта виртуалка нужна была только для того, чтобы собрать exim из
pkgsrc без собранных портов, я бросил разбираться

так что и с pkgsrc бывают вопросы. особенно на ОС, отличных от NetBSD и
DragonFly BSD, для которых 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