I just had to fix a curious bug related to the initialization order in
the boot process.
I was running named 9.2.2 (bind9 from ports) on FreeBSD 4.6.2, and
recently upgraded the system to 4.8. This was done in such a way that
/usr/lib and associated directories are now as they would be on a
cleanly installed 4.8 release with all the compat libraries installed.
The end result was that named could not be started during boot, but
could be started from the command line after booting. The reason of
course is that libcrypto.so.2 which was needed by my named build is
now in /usr/compat/lib, but the LD_LIBRARY_PATH isn't set to include
/usr/compat/lib until after named (and other network services) are
started.
This isn't a huge problem (I simply rebuilt named from sources so it
now links against the newer libcrypto in /usr/lib) but in general it
seems undesirable that upgrading the OS can cause these network
services to break even though we've got the compat libraries that are
needed.
Is there any reason why LD_LIBRARY_PATH is set after the network
services are started?
Cheers,
Mark