Bug #7401 libmysqlclient shared libraries have no .so extension
Submitted: 18 Dec 2004 10:46 Modified: 17 Jan 2005 12:39
Reporter: Jürgen Daubert Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.1.8 OS:Linux (Linux)
Assigned to: Lenz Grimmer CPU Architecture:Any

[18 Dec 2004 10: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 22: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 11: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 11:08] Jürgen Daubert
One additional remark: I have'nt had this problem with mysql 4.1.7
[20 Dec 2004 11: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 11:13] Lenz Grimmer
I will assign this bug to me to investigate/fix it.
[20 Dec 2004 17: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 6: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 4:33] [ name withheld ]
MySQL-4.0.23 has this problem also.
[24 Dec 2004 16:32] Hartmut Holzgraefe
see also bug #7522
[27 Dec 2004 17: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!
[27 Dec 2004 23: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 11: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 17: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 18: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 12: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)