Bug #5112 ssl includes missing from some Makefiles
Submitted: 19 Aug 2004 18:36 Modified: 27 Aug 2004 20:40
Reporter: Kent Mein Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:4.0.20 OS:Solaris (Solaris 2.8 and 2.7)
Assigned to: CPU Architecture:Any

[19 Aug 2004 18:36] Kent Mein
Description:
Hi My name is Kent Mein and I work at the University of Minnesota.
I've been compiling on a Sun workstation with the following options to configure:

./configure --prefix=/soft/mysql-4.0.20 \
   --exec-prefix=/soft/mysql-4.0.20/SunOS5.7 \
   --with-openssl \
   --with-openssl-includes=/soft/ssl/openssl-0.9.7d/include \
   --with-openssl-libs=/soft/ssl/openssl-0.9.7d/lib \
        --enable-thread-safe-client --enable-assembler \
        --disable-shared        --without-server 

As you'll note we have ssl installed in a non standard location, and it caused a couple of problems.  I had to hand add the include path to the following Makefiles:

 strings/Makefile,  dbug/Makefile, mysys/Makefile,
        extra/Makefile, regex/Makefile, isam/Makefile, merge/Makefile,
        innobase/os/Makefile, innobase/ut/Makefile, innobase/btr/Makefile,
        innobase/buf/Makefile, innobase/data/Makefile, innobase/dict/Makefile,
        innobase/dyn/Makefile, innobase/eval/Makefile, innobase/fil/Makefile,
        innobase/fsp/Makefile, innobase/fut/Makefile, innobase/ha/Makefile,
        innobase/ibuf/Makefile, innobase/lock/Makefile, innobase/log/Makefile,
        innobase/mach/Makefile, innobase/mem/Makefile, innobase/mtr/Makefile,
        innobase/page/Makefile, innobase/pars/Makefile, innobase/que/Makefile,
        innobase/read/Makefile, innobase/rem/Makefile, innobase/row/Makefile,
        innobase/srv/Makefile, innobase/sync/Makefile, innobase/thr/Makefile,
        innobase/trx/Makefile, innobase/usr/Makefile, myisam/Makefile,
        myisammrg/Makefile, heap/Makefile, 

Here is a sample error message to see what I'm talking about:
In file included from ../../innobase/include/univ.i:33,
                 from ../../innobase/include/read0read.h:12,
                 from read0read.c:9:
../../include/my_global.h:1129:30: openssl/opensslv.h: No such file or directory
make[4]: *** [read0read.o] Error 1

I also had to by hand add a -R for the the runtime linker which was kind of a pain,
but I can understand if you don't want to add a fix for that into the build system.

Feel free to bug me with any followup questions.

Thanks,

Kent Mein

How to repeat:
Remove a standard install of openssl and install it in a non standard location and then
try to compile.

Suggested fix:
Add the ssl includes to the listed Makefiles.
[23 Aug 2004 23:43] Matthew Lord
I couldn't repeat this on my x86 linux box, I had the following two lines in the necessary files:
openssl_includes = -I/tmp/openssl/include -I/usr/kerberos/include
openssl_libs = -L/tmp/openssl/lib -lssl -lcrypto

I installed the latest version of openssl in /tmp/openssl and built this way:

./configure --prefix=/soft/mysql-4.0.20  --with-vio    --with-openssl    --with-openssl-includes=/
tmp/openssl/include --with-openssl-libs=/tmp/openssl/lib --enable-thread-safe-client --enable-
assembler

I was able to get a successful build.

I don't have root privileges on any solaris machines but I would be very surprised if the configure 
process went differently. 

You are able to repeat this everytime and on other machines as well?  I can't think of what
would be causing it.  A good one to check is myisam/Makefile.

Best Regards
[24 Aug 2004 0:24] Matthew Lord
Hi,

Can you try it again on your machine using the --with-vio configure option as well?  This is also
required for ssl support.  I noticed that you didn't use that option.

Best Regards
[27 Aug 2004 12:55] Sergei Golubchik
From: Kent Mein <mein@cs.umn.edu>
Subject: Re: Bug #5112 [Opn->CRp]: ssl includes missing from some Makefiles
Date: Thu, 26 Aug 2004 07:37:47 -0500

Sorry it took so long to get back to you on this,  I was out sick for
a couple of days.

I added the --with-vio opition but that did not help.
My current configure info is:

./configure --prefix=/scratch/jessica/soft/mysql-4.0.20 \
   --exec-prefix=/scratch/jessica/soft/mysql-4.0.20/SunOS5.8 \
   --with-openssl \
   --with-openssl-includes=/soft/ssl/openssl-0.9.7d/include \
   --with-openssl-libs=/soft/ssl/openssl-0.9.7d/lib \
        --enable-thread-safe-client --enable-assembler \
        --disable-shared        --without-server  --with-vio

and the first error I'm getting is:
gcc -O3 -DDBUG_OFF -D_FILE_OFFSET_BITS=64 -DHAVE_CURSES_H
+-I/scratch/jessica/mysql-4.0.20/include -DHAVE_RWLOCK_T -o conf_to_src conf_to_src.o
+-lpthread -lthread -lz -lposix4 -lcrypt -lgen -lsocket -lnsl -lm -lpthread -lthread
+-L/soft/ssl/openssl-0.9.7d/lib -lssl -lcrypto
./conf_to_src ..  latin1 > \
              ./ctype_extra_sources.c
ld.so.1: ./conf_to_src: fatal: libssl.so.0.9.7: open failed: No such file or directory
make[2]: *** [ctype_extra_sources.c] Error 137
make[2]: Leaving directory `/scratch/jessica/mysql-4.0.20/libmysql_r'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/scratch/jessica/mysql-4.0.20'
make: *** [all] Error 2
[7:32] /scratch/jessica/mysql-4.0.20(mein@cc) %

I would run ldd on your resulting binary if your having problems reproducing it,
I'm guessing youre linking against another version of ssl.

Thanks,

Kent Mein
[27 Aug 2004 20:40] Matthew Lord
Hi,

I was able to do a successful build of 4.0.21 from our source repository on a solaris 8 machine 
without openssl installed.  I installed openssl in ~/openssl/ and built mysql with:

./configure --prefix=/export/spare/mysqldev/mlord/mysql-4.0.21-bk --with-openssl --with-vio --
with-openssl-includes=/export/spare/mysqldev/openssl/include --with-openssl-libs=/export/
spare/mysqldev/openssl/lib --enable-thread-safe-client --enable-assembler --disable-shared

I'm not sure what the problem could be on your machine.  Could it be that the user configure was 
running as didn't have read perms to the openssl directories?  I have all the necessary includes 
added.  

I've now tested this on x86 linux and on solaris 8 sparc and I am unable to reproduce the 
problem.

Best Regards
[27 Aug 2004 21:16] Kent Mein
Hi Matthew,  I'll have to try 4.0.21.
I've tried it on both a 5.8 and 5.7 machine and had the exact same problem.
After hand editing the files mentioned it worked fine so its not a permissions issue
It just wasn't adding the include paths.

I do have it built though I just had to hand edit the Makefiles mentioned above.
[16 Sep 2004 21:40] [ name withheld ]
This is the same bug I just reported as 5494.  Mr. Holzgraefe can not repeat
the bug, but I am having the same issue.

Is there a solution for this besides hand editing all the make files?

Please let me know.

akita_kobe -at- yahoo.com