Bug #45187 Compilation of DBD::mysql Makefile fail
Submitted: 29 May 2009 10:51 Modified: 4 Jun 2009 1:31
Reporter: Christine Tang Email Updates:
Status: Not a Bug Impact on me:
None 
Category:Connectors: DBD::mysql ( Perl ) Severity:S2 (Serious)
Version:DBD-mysql-4.011 OS:Linux
Assigned to: CPU Architecture:Any
Tags: DBD::MySQL

[29 May 2009 10:51] Christine Tang
Description:
I just downloaded DBD::mysql-4.011. I tried to install but compilation failed. It shows error. 

How to repeat:
1. make Makefile.pl
2. make
3. make test
4. make install

Output of step 1 is

  cflags        (mysql_config) = -I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv
  embedded      (mysql_config) =
  libs          (mysql_config) = -L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto
  mysql_config  (guessed     ) = mysql_config
  nocatchstderr (default     ) = 0
  nofoundrows   (default     ) = 0
  ssl           (guessed     ) = 1
  testdb        (default     ) = test
  testhost      (default     ) =
  testpassword  (default     ) =
  testsocket    (default     ) =
Use of uninitialized value in printf at Makefile.PL line 175, <PIPE> line 93.
  testuser      (            ) = tangsl

I couldn't display output of step 2 as it's too long.....
[29 May 2009 10:52] Christine Tang
Output of Step 1

Attachment: makefile_pl (application/octet-stream, text), 1.80 KiB.

[29 May 2009 10:53] Christine Tang
Output of Step 2

Attachment: log (application/octet-stream, text), 34.02 KiB.

[31 May 2009 0:04] Sveta Smirnova
Thank you for the report.

Please provide output of `ls /usr/include/mysql`
[2 Jun 2009 1:25] Christine Tang
I'm not able to produce the output of `ls /usr/include/mysql`
I do not have a mysql directory in my /usr/include directory....
When I execute 'mysql -V' command. I obtain the following output:
"mysql Ver 14.12 Distrib 5.0.45 for redhat-linux-gnu (x86_64) using readline 5.0."
[2 Jun 2009 5:09] Sveta Smirnova
Thank you for the feedback.

> I'm not able to produce the output of `ls /usr/include/mysql`
> I do not have a mysql directory in my /usr/include directory....

This is not a bug in this case: DBD::mysql package just can not find needed headers. Please specify correct path to mysql_config when you run perl Makfile.PL. See `perl Makefil.PL --help` for details.
[2 Jun 2009 8:29] Christine Tang
Hi!

My mysql_config file is found in the following paths:

/usr/bin/mysql_config
/usr/lib64/mysql/mysql_config

I tried "perl Makefile.PL --mysql_config=/usr/bin/mysql_config" and "perl Makefile.PL --mysql_config=/usr/lib64/mysql/mysql_config". Both gave me an error upon compiling using make. Is there something I am missing here?
[2 Jun 2009 8:43] Sveta Smirnova
Thank you for the feedback.

Please analyze error and paths printed in the error message and from output of mysql_config. If something new occurs provide output of perl Makefile.PL OPTIONS; make; PATH_TO_USED/mysql_config
[3 Jun 2009 10:01] Christine Tang
Well, there's seems to be an error during step 1...
perl Makefile.PL --mysql_config=/usr/lib64/mysql/mysql_config produces the following output:

Multiple copies of Driver.xst found in: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/ /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/ at Makefile.PL line 747

Output of /usr/lib64/mysql/mysql_config:

Usage: /usr/lib64/mysql/mysql_config [OPTIONS]
Options:
        --cflags         [-I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv]
        --include        [-I/usr/include/mysql]
        --libs           [-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto]
        --libs_r         [-L/usr/lib64/mysql -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -L/usr/lib64 -lssl -lcrypto]
        --socket         [/var/lib/mysql/mysql.sock]
        --port           [3306]
        --version        [5.0.45]
        --libmysqld-libs [-L/usr/lib64/mysql -lmysqld -lz -lpthread -lcrypt -lnsl -lm -lpthread -lrt -L/usr/lib64 -lssl -lcrypto]
[3 Jun 2009 10:04] Christine Tang
Output of 'make'

Attachment: log.txt (text/plain), 34.02 KiB.

[4 Jun 2009 1:31] Christine Tang
I've resolved the problem!
Thank you! :)