Bug #21265 mysqld_error.h file not installed when building only client libraries
Submitted: 25 Jul 2006 5:45 Modified: 26 Jan 2007 2:48
Reporter: Mark Johnson (Basic Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL 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 CPU Architecture:Any

[25 Jul 2006 5: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 21: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 3: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 7: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 7: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 11:09] Sveta Smirnova
Bug #25367 has been marked as duplicate of this one
[25 Jan 2007 18: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 2:48] Paul DuBois
Noted in 5.0.34, 5.1.15 changelogs.
[18 Apr 2008 0: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 15:37] Sveta Smirnova
Ken,

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