8.4 - net/relayd won't start at boot but launches fine from rc.d, complains about missing libs

Damien Fleuriot ml at my.gd
Mon Sep 8 16:19:58 UTC 2014


Hello List,



So, I've been stuck on this odd problem for a few days now and reinstalling
a fresh host didn't help.


/usr/local/sbin/relayd from net/relayd won't start at boot complaining
about a missing OpenSSL library.
It does start just fine when further invoked with
/usr/local/etc/rc.d/relayd start


At boot time, dmesg shows :
### dmesg -a
Starting relayd.
/libexec/ld-elf.so.1:
Shared object "libssl.so.8" not found, required by "relayd"

/etc/rc: WARNING: failed to start relayd
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib


ldconfig correctly shows the incriminated library as per :
### ldconfig -r
91:-lssl.6 => /usr/lib/libssl.so.6
109:-lssl.8 => /usr/local/lib/libssl.so.8


Additionally the relayd binary itself shows what looks like correct linking
to the library :
### ldd /usr/local/sbin/relayd
/usr/local/sbin/relayd:
libmd.so.5 => /lib/libmd.so.5 (0x800678000)
libssl.so.8 => /usr/local/lib/libssl.so.8 (0x800788000)
libcrypto.so.8 => /usr/local/lib/libcrypto.so.8 (0x8008f0000)
libc.so.7 => /lib/libc.so.7 (0x800bdf000)
libthr.so.3 => /lib/libthr.so.3 (0x800e18000)


pkg info confirms the library was installed by openssl :
### pkg which /usr/local/lib/libssl.so.8
/usr/local/lib/libssl.so.8 was installed by package openssl-1.0.1_14



Thus far, I have tried, to no avail :
- entirely reinstall the host
- reinstall openssl
- reinstall relayd


How to fix :
ln -s /usr/local/lib/libssl.so.8 /usr/lib/
ln -s /usr/local/lib/libcrypto.so.8 /lib/

ldconfig -r now says :
### ldconfig -r
92:-lssl.6 => /usr/lib/libssl.so.6
108:-lssl.8 => /usr/lib/libssl.so.8
111:-lssl.8 => /usr/local/lib/libssl.so.8

ldd now says :
### ldd /usr/local/sbin/relayd
/usr/local/sbin/relayd:
libmd.so.5 => /lib/libmd.so.5 (0x800678000)
libssl.so.8 => /usr/lib/libssl.so.8 (0x800788000)
libcrypto.so.8 => /lib/libcrypto.so.8 (0x8008f0000)
libc.so.7 => /lib/libc.so.7 (0x800bdf000)
libthr.so.3 => /lib/libthr.so.3 (0x800e18000)


The host itself is installed with base openssl + openssl 1.0.1 from ports.

Openssl from ports is required by nginx and NRPE so I have to make do with
it (and yes, I know it's outdated, this is a test box).



Again, relayd starts just fine from /usr/local/etc/rc.d/ when I log into
the box, it's just at boot that it won't, without moving symbolic links
around.


Has anyone else experienced the same issues ?
I find the behaviour quite odd and definitely misleading here.


More information about the freebsd-questions mailing list