Bug #7401 libmysqlclient shared libraries have no .so extension
Submitted: 18 Dec 2004 11:46 Modified: 17 Jan 2005 13:39
Reporter: Jürgen Daubert
Status: Closed
Category:Server Severity:S3 (Non-critical)
Version:4.1.8 OS:Linux (Linux)
Assigned to: Lenz Grimmer Target Version:

[18 Dec 2004 11:46] Jürgen Daubert
Description:
The problem is that the ltmain.sh shipped with mysql 4.1.8 is ancient.  It does not
recognize the "shrext_cmds" configuration variable which is set in the "libtool" file
generated by ./configure.

How to repeat:
Run the usual configure/make commands

Suggested fix:
I've fixed this here by running "libtoolize --force". Update ltmain.sh
[18 Dec 2004 23:04] Hartmut Holzgraefe
can you please tell us which libtool (and autoconf, automake) versions you are using
or which distribution/version this happens on?
[19 Dec 2004 12:03] Jürgen Daubert
I'm using the following program versions:
autoconf 2.59
automake 1.9.3
libtool 1.5.10
[19 Dec 2004 12:08] Jürgen Daubert
One additional remark: I have'nt had this problem with mysql 4.1.7
[20 Dec 2004 12:11] Lenz Grimmer
We have moved the creation of the source tarball to a newer build host. Looks like this
version of libtool requires some changes to the ltmain.sh file - our ltmain.sh file
includes a few modifications that are not part of the ltmain.sh included in libtool (to
fix some bugs in building on "exotic" OSes). We should investigate if these are still
needed.

As a workaround, you can try the following command sequence inside of the extracted
source archive:

aclocal
autoheader
libtoolize --automake --force
automake
autoconf

This should fix the issue with the missing ".so" file name extension - "libtoolize
--force" will replace ltmain.sh with the one included in the libtool distribution.
[20 Dec 2004 12:13] Lenz Grimmer
I will assign this bug to me to investigate/fix it.
[20 Dec 2004 18:36] Curt Rebelein
I have this exact same problem on a Slackware Linux 10.0 box.

My version information is as follows:
automake - 1.8.5
autoconf - 2.59
libtool - 1.5.6
linux kernel - 2.6.9
make - GNU Make 3.80

Hopefully this information will be of some help to you...
[22 Dec 2004 7:41] Alasdair Lumsden
I also have this problem, on FreeBSD 4.10-STABLE. Compiling MySQL 4.1.8 from source 
yields libmysqlclient.14 and libmysqlclient instead of libmysqlclient.14.so and 
libmysqlclient.so 
 
Additionally, the suggested workaround doesn't seem to fix it (I'm afraid I'm not 
familiar with autoconf at all): 
 
# tar -zxf mysql-4.1.8.tar.gz 
# cd mysql-4.1.8/ 
# cd mysql-4.1.8 
# aclocal19 && autoheader259 && libtoolize15 --automake --force && automake19 && 
autoconf259 
configure.in:219: error: possibly undefined macro: AC_PROG_LIBTOOL 
      If this token and others are legitimate, please use m4_pattern_allow. 
      See the Autoconf documentation. 
 
Hopefully this will be helpful.
[23 Dec 2004 5:33] [ name withheld ]
MySQL-4.0.23 has this problem also.
[24 Dec 2004 17:32] Hartmut Holzgraefe
see also bug #7522
[27 Dec 2004 18:22] Lenz Grimmer
I have now created new source tarballs for 4.0.23 and 4.1.8, released as 4.0.23a and
4.1.8a - these archives include an updated configure script (I updated ltmain.sh by
running "libtoolize --force --automake --copy first). Please give these ones a try and
let me know if these resolve the problem. Thanks!
[28 Dec 2004 0:15] Bent Vangli
Hi Lenz

I followed your advice given in [20 Dec 3:11am], just as written on a Fedora Core 2
installation. Compilation and running then worked perfect.

I also tried to download your 4.1.8a version, but mirrors haven't been updated yet. I
will retry tomorrow and give feedback.

Merry Christmas and Happy New Year

Bent Vangli
Oslo, Norway
[28 Dec 2004 12:49] Bent Vangli
Hi Lenz

I have testet 4.1.8.a source tree. On a Fedora Core 2 it configures, compiles, installs
and run perfect without any modification. However, doing the same on a RedHat 8.0 server,
MySQL server itself runs ok, but the mysql client can't find the libmysqlclient.so.14
file. When applying aclocal; autoheader; libtoolize --automake --force; automake;
autoconf on the source tree and then reconfigure, compile, install and run - all works
perfect.

With best regards
Bent Vangli
Oslo, Norway
[28 Dec 2004 18:03] Jürgen Daubert
Yep, 4.1.8a solved the problem for me, but I didn't test version 4.0.23a though.
Thanks.
[4 Jan 2005 19:53] Curt Rebelein
4.1.8a worked correctly for me as well.

My version information is as follows:
   automake - 1.8.5
   autoconf - 2.59
   libtool - 1.5.6
   linux kernel - 2.6.10
   make - GNU Make 3.80
[17 Jan 2005 13:39] Lenz Grimmer
It seems like starting with the 4.1.8a release this problem (missing .so extension for
shared libraries) has been resolved. I will close this bug as fixed.

@Bent Vangli: please file a separate bug report about the other issue you reported
(client can't find the libmysqlclient.so.14 file on RH8), if you can still reproduce it
with MySQL 4.1.9 (please include detailed instructions on how to reproduce it, thanks)