20090113

sulci jabber bot on debian lenny. «Unbound value Cryptokit.hash_string»


как полагается, скачал исходники из svn, дал команду make.
по мере возникающих ошибок доустанавливал требуемые пакеты.
пока дело не упёрлось в:
ocamlfind ocamlopt -package cryptokit,xml -c sasl.ml
File "sasl.ml", line 27, characters 10-31:
Unbound value Cryptokit.hash_string
make[3]: *** [sasl.cmi] Error 2

розыски уводят в логи jabber-конференций аж 2005-го года.
и нигде, нигде не написано хоть что-то внятное по поводу решения проблемы.
я абсолютно не знаком с ocaml-ом. но методом курения бамбука и научного тыка пришёл к такому выводу:
когда сборка доходит до этого самого cryptokit-а, а пакет libcryptokit-ocaml-dev не установлен, в каталоге site-lib создаётся каталог cryptokit. вот из-за наличия этого каталога сборка и обламывается.
не знаю, что именно там происходит в ocaml-овых глубинах, но, если заглянуть в файл site-lib/cryptokit/META, можно увидеть строку
version = "1.4"

кто и почему решил, что у cryptokit-а есть версия 1.4 — неизвестно. на сайте, куда отсылают (в sulci/README) за cryptokit-ом: http://caml.inria.fr/distrib/bazar-ocaml/ , самая последняя на данный момент версия — 1.3. google тоже ничего про версию 1.4 не знает.

резюмирую.
надо либо удалить каталог site-lib/cryptokit и сделать (на всякий пожарный) make clean.
либо до сборки установить libcryptokit-ocaml-dev.

кстати, вот минимальный набор пакетов, после которых sulci (у меня) благополучно собирается:
libocamlnet-ocaml-dev ocaml-ulex libssl-ocaml-dev libcryptokit-ocaml-dev libgdbm-dev libsqlite3-ocaml-dev

по зависимостям (вроде бы) устанавливается и всё остальное, что необходимо. по крайней мере всё, что перечислено в sulci/README.