Bug #21265 mysqld_error.h file not installed when building only client libraries
Submitted: 25 Jul 2006 7:45 Modified: 26 Jan 2007 3:48
Reporter: Mark Johnson (Basic Quality Contributor)
Status: Closed
Category:Server: Compiling Severity:S3 (Non-critical)
Version:4.1.22, 5.0.22, 5.1.14 OS:Linux (linux 2.6.15/Slackware 10.2)
Assigned to: Kent Boortz Target Version:

[25 Jul 2006 7:45] Mark Johnson
Description:
The build of MyODBC connector fails without the mysqld_error.h file present.  However,
installing only the client libraries does not include this file.  A client-only install
should suffice to build MyODBC.

(See also bug 20811)

How to repeat:
-extract MySQL source.
$ ./configure --prefix=/usr --libdir=/usr/lib --without-server
--enable-thread-safe-client
$ make
$ DESTDIR=`pwd`/tmp make install
- built and installed a Slackware package for MySQL Client libraries.
-extracted mysql-connector-odbc-3.51.12.tar.gz
./configure --with-mysql-path=/usr/local --with-unixODBC=/usr
make

Make fails with the following error:
error.c:42:26: mysqld_error.h: No such file or directory

Suggested fix:
Please include mysqld_error.h in this install of client only libraries.
[25 Jul 2006 23:03] Sveta Smirnova
Thank you for the report.

But I can not repeat it using last BK sources:
$./configure --prefix=/users/ssmirnova/mysql5.0client --without-server
--enable-thread-safe-client
$make
$make install
$ls -la ../mysql5.0client/include/mysql/mysqld_error*
-rw-r--r--  1 ssmirnova ssmirnova 16448 Jul 25 23:01
../mysql5.0client/include/mysql/mysqld_error.h
[26 Jul 2006 5:27] Mark Johnson
My apologies.  I filed this too hastily and got the configure options wrong.

The corrected method to repeat:
tar xzf mysql-5.0.22.tar.gz
cd mysql-5.0.22
./configure --prefix=/usr --libdir=/usr/lib --without-server
make
DESTDIR=`pwd`/tmp make install
ls tmp/usr/include/mysql/mysqld*
/usr/bin/ls: tmp/usr/include/mysql/mysqld*: No such file or directory

(Note there are many other header files in that directory.)

So, the file is installed if one builds the thread-safe client, but not if one only
builds the non-thread-safe client.  With luck, my error will provide a clue.
[26 Jul 2006 9:59] Sveta Smirnova
Yes, there is not mysqld_error.h when configured without --enable-thread-safe-client
option, but with --without-server option.

As discussed with Valeriy in bug #20811 I reclassify the bug to feature request with
summary "Consider installing the mysqld_error.h file when only the NON-thread-safe client
is built."
[1 Jan 2007 8:49] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/17497

ChangeSet@1.2359, 2007-01-01 08:49:17+01:00, kent@mysql.com +1 -0
  configure.in:
    Build "mysqld_error.h" even if configured --withouth-server (bug#21265)
[9 Jan 2007 12:09] Sveta Smirnova
Bug #25367 has been marked as duplicate of this one
[25 Jan 2007 19:59] Joerg Bruehe
The patch was pushed into 5.1.15 on Jan 11 already :-(
and it is in 5.0.34,
but it will not be fixed in 4.1 which is in "extended maintenance" only.
[26 Jan 2007 3:48] Paul DuBois
Noted in 5.0.34, 5.1.15 changelogs.
[18 Apr 2008 2:40] Ken Dreyer
Did the fix this bug not make it into the community release of 5.0.51? I'm still
experiencing the problem as described by the reporter, and I'm using 5.0.51a. I'm
wondering if it is related to Bug #32898.
[22 Apr 2008 17:37] Sveta Smirnova
Ken,

thank you for the feedback. I just tested 5.0.51a package and can confirm the fix exists.