databases/mysql55-server, Error: shared library "mysqlclient.18" does not exist

L Campbell lcampbell at ironclad.mobi
Thu Jun 9 19:03:15 UTC 2011


For some reason, I can't compile databases/mysql55-server on a fresh
install; it errors out with

$ cd /usr/ports/databases/mysql55-server && make
===>   mysql-server-5.5.12 depends on file: /usr/local/bin/cmake - found
===>   mysql-server-5.5.12 depends on shared library: mysqlclient.18 - not found
===>    Verifying install for mysqlclient.18 in
/usr/ports/databases/mysql55-client
===>   Returning to build of mysql-server-5.5.12
Error: shared library "mysqlclient.18" does not exist
*** Error code 1

The dependency on the library is set in Mk/bsd.database.mk:

$ grep LIB_DEPENDS /usr/ports/Mk/bsd.database.mk | grep mysqlclient
LIB_DEPENDS+=	mysqlclient.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/${_MYSQL_CLIENT}

Checking, the library is installed, except in ${LOCALBASE}/lib/mysql --

$ find /usr/local/lib -name libmysqlclient.so.18
/usr/local/lib/mysql/libmysqlclient.so.18

For some reason, LIB_DEPENDS isn't checking any subdirectories of
${LOCALBASE}/lib; I'm not sure if it's meant to check in any
subdirectories. The quick fix I came up with is to symlink the library
in /usr/local/lib/mysql to /usr/local/lib, e.g.,

$ ln -s /usr/local/lib/mysql/libmysqlclient.so.18
/usr/local/lib/libmysqlclient.so.18

Which fixes the problem.

Can we change it such that either

1) The LIB_DEPENDS in bsd.database.mk checks the appropriate install
directory for the MySQL client libs

or

2) databases/mysqlX-client automatically symlinks the libraries into
/usr/local/lib so that the install scripts pick them up properly.

I can submit a PR and patches if necessary. Please CC me, as I am not
subscribed to ports at .

Thanks!
L Campbell.


More information about the freebsd-ports mailing list