Daily Ports+ #8: Fixing Broken Library2008年02月12日 13時22分16秒

A bug was found on ports+-1.93. The problem is that some of dynamic libraries was not kept in the compat so that all programs require them could not start.

% seamonkey
/libexec/ld-elf.so.1: Shared object "libicui18n.so.36" not found, required by "l

Just in case for that ever happens, Ports+ leaves package backups under /usr/local/ports+, at this moment. These will be deleted once 'ports+ clean' is executed; it is better to leave them for a while.

The fix is easy. Extract these libraries and put them under /usr/local/lib/compat for applications to load.

# cd /usr/local/ports+/
# tar xvf icu-3.6.tar '*libicu*'
x lib/libicudata.so.36.0
x lib/libicudata.so
x lib/libicudata.so.36
x lib/libicuuc.so.36.0
x lib/libicuuc.so
x lib/libicuuc.so.36
x lib/libicui18n.so.36.0
x lib/libicui18n.so
x lib/libicui18n.so.36
x lib/libicule.so.36.0
x lib/libicule.so
x lib/libicule.so.36
x lib/libiculx.so.36.0
x lib/libiculx.so
x lib/libiculx.so.36
x lib/libicuio.so.36.0
x lib/libicuio.so
x lib/libicuio.so.36
x lib/libicutu.so.36.0
x lib/libicutu.so.36
x lib/libicutu.so
# cd lib
# mv *.36* /usr/local/lib/compat
# cd ..
# rm -rf lib

This fixed the problem.

I will have to look into the cause of this. This was the first failure of save copying libraries over the past 9 months. This may take a while to find the root of this problem.