Forum

Shared object "libcrypt.so.5" not found

Simon
26 September 2011, 16:12
Hi Hugo,

I have compiled from ports and installed Hiawatha version: 7.6 on Operating System: FreeBSD, when i do "hiawatha -k" ill get this message:

libexec/ld-elf.so.1: Shared object "libcrypt.so.5" not found, required by "hiawatha

Hiawatha is compiled with:
cache
largefile
monitor
ssl
toolkit
xslt

Here is the configure checklist:
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking for gcc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of cc... gcc3
checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel
checking how to run the C preprocessor... cpp
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking crypt.h usability... no
checking crypt.h presence... no
checking for crypt.h... no
checking rpcsvc/crypt.h usability... yes
checking rpcsvc/crypt.h presence... yes
checking for rpcsvc/crypt.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for library containing gethostbyname... none required
checking for library containing socket... none required
checking for caching... yes
checking for CommandChannel... no
checking for debug support... no
checking for monitor... yes
checking for ssl support... yes
checking for BIO_free in -lcrypto... yes
checking for SSL_library_init in -lssl... yes
checking for URL toolkit... yes
checking for xmlReadFile in -lxml2... yes
checking for xsltApplyStylesheet in -lxslt... yes
checking for clearenv... no
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for strnstr... yes
checking for strcasestr... yes
checking for strncasestr... no
checking for setenv... yes
checking for unsetenv... yes
checking for crypt... no
checking for gzdopen... no
checking for crypt in -lcrypt... yes
checking for gzdopen in -lz... yes
checking for socket in -lnetwork... no
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... -D_THREAD_SAFE
configure: creating ./config.status
config.status: creating Makefile
config.status: creating etc/hiawatha/hiawatha.conf
config.status: creating doc/hiawatha.1
config.status: creating doc/php-fcgi.1
config.status: creating doc/cgi-wrapper.1
config.status: creating config.h
config.status: executing depfiles commands
===> Building for hiawatha-7.6

When compiling is done i've got the following dependencies installed:
gettext-0.18.1.1
hiawatha-7.6
libgcrypt-1.5.0
libgpg-error-1.10
libiconv-1.13.1_1
libxml2-2.7.8_1
libxslt-1.1.26_3
pkg-config-0.25_1

So looking at the message: "libexec/ld-elf.so.1: Shared object "libcrypt.so.5" not found, required by "hiawatha" my conclusion is libcrypt.so.5 should be something like libgcrypt.so.5. I found out that by default port libxslt is depending on libgcrypt and i peeked at the configure file of hiawatha source and found "LIBCRYPT=-lcrypt".

checking crypt.h presence... no
checking for crypt.h... no
checking rpcsvc/crypt.h usability... yes
checking rpcsvc/crypt.h presence... yes
checking for rpcsvc/crypt.h... yes
checking for BIO_free in -lcrypto... yes
checking for crypt... no
checking for crypt in -lcrypt... yes

I could find a port called libcrypt that would solve the problem.
Hugo can you help me?
Hugo Leisink
26 September 2011, 19:34
I think this is not a Hiawatha issue, but a FreeBSD issue. Have you tried reinstalling the package that contains the file in question?
Simon
26 September 2011, 21:49
Well, i could not find libcrypt in the ports collection. The port Hiawatha is by default installed with the above dependencies. I am wondering what are the dependencies when using Hiawatha on a Linux distribution for example Debian/Ubuntu using the same compile options.
Simon
26 September 2011, 22:02
My burning question: is Hiawatha depending on libcrypt?
Simon
26 September 2011, 22:28
I have now recompiled Hiawatha without any compile options and installed but got the same message when i do "hiawata -k"
/libexec/ld-elf.so.1: Shared object "libcrypt.so.5" not found, required by "hiawatha"
Hugo Leisink
27 September 2011, 00:43
Hiawatha uses the crypt() function call. I have no idea what FreeBSD package you need for that. As I said earlier, this is not a Hiawatha issue. I would really like to help you, but I'm not enough familiar with FreeBSD to answer your question. You better ask on the FreeBSD forum which package you need. I think the best one to answer your question is the port maintainer. You can find that information at http://www.freshports.org/www/hiawatha.
This topic has been closed.