| Bug #20842 | client libraries installed in wrong location | ||
|---|---|---|---|
| Submitted: | 4 Jul 2006 4:49 | Modified: | 4 Jul 2006 10:01 |
| Reporter: | Mark Johnson (Basic Quality Contributor) | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Compiling | Severity: | S4 (Feature request) |
| Version: | 5.0.22 | OS: | Linux (Linux 2.6.15/Slackware 10.2) |
| Assigned to: | CPU Architecture: | Any | |
[4 Jul 2006 7:43]
Mark Johnson
Trying to find a workaround, I did: $./configure --prefix=/usr \ --libdir=/usr/lib \ --without-server $make $DESTDIR=`pwd`/tmp make install The libraries are still found in `pwd`/tmp/usr/lib/mysql. This is not the directory specified by --libdir.
[4 Jul 2006 8:10]
Valeriy Kravchuk
Sorry, but you explicitely asked to use $DESTDIR=`pwd`/tmp for "make install". Why do think this should be ignored and DEFAULT (compile time) setting should be used?
[4 Jul 2006 8:55]
Mark Johnson
I do not claim that DESTDIR should be ignored. "--libdir=/usr/lib" combined with DESTDIR means I should find the libraries in $DESTDIR/usr/lib. However, they are actually being installed to $DESTDIR/usr/lib/mysql. That is the problem. The mysql directory should not be there with this value of --libdir. Nor should it be there with the default value of --libdir.
[4 Jul 2006 9:13]
Valeriy Kravchuk
Sorry for misuderstanding you. Putting libraries in mysql subdirectory of libdir is not a bug, but intended behaviour. Please, read the Makefile: pkgdatadir = $(datadir)/mysql pkglibdir = $(libdir)/mysql pkgincludedir = $(includedir)/mysql I think, it is reasonable. You can use ln -s to make links to the libraries in whatever directory you want.
[4 Jul 2006 9:40]
Mark Johnson
I should not have to read the Makefile to see that this is the intended behaviour. Therefore, I request two things: 1. that "./configure --help" be updated to show that this is the intended behaviour. 2. that when I explicitly specify --libdir, it should override this default location, and put the libraries where requested.
[4 Jul 2006 10:01]
Valeriy Kravchuk
I agree that either ./configure --help should explicitely state that mysql subdirectory is created for libraries in --libdir, or there should be some way to set explicit location for the libraries. So, this is a reasonable feature request, for me.

Description: When building just the client libraries, the libraries are not installed in the location indicated by ./configure --help. $ uname -a Linux ds9 2.6.15 #1 SMP PREEMPT Fri Mar 3 06:57:32 MST 2006 i686 unknown unknown GNU/Linux $ gcc --version gcc (GCC) 3.3.6 Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ make --version GNU Make 3.80 Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. How to repeat: 1. ./configure --help | less Observe the lines: Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] ...... --libdir=DIR object code libraries [EPREFIX/lib] 2. ./configure --prefix=/usr --without-server 3. make 4. DESTDIR=`pwd`/tmp make install 5. Observe that the libraries are installed in `pwd`/tmp/usr/lib/mysql According to --libdir, above, they should be in `pwd`/usr/lib Suggested fix: I see two possibilities: 1. install the libraries where --libdir's help says they should go. 2. Change the help string for --libdir to indicate the actual default value of [EPREFIX/lib/mysql] My preference is for #1. It would not require me to change the configuration of ldconfig, my LD_LIBRARY_PATH, etc.