Ralf Wildenhues wrote:
Hello David,
* Dr. David Kirkby wrote on Sat, Dec 12, 2009 at 12:08:11PM CET:
I have seen issues in the Sage mathematics software
where problems arise if a library included in Sage is installed on
the system too. Sage included the source for all the libraries it
needs (e.g. readline), in case the system does not have that
library. That sometimes causes problems, if the option "-L
$SAGE_HOME/local/lib" is added and the library is also on the
system.
Is libtool used to create this library? Then this shouldn't happen
(famous last words), and if it does, it's typically the sign of a bug in
the makefiles or in libtool somewhere.
In case libtool is used, please send a message to the bug-libtool at
gnu.org mailing list, including a reference to this thread, and the
output of the `.../libtool --mode=link ...' command that fails, but with
--debug added as first argument to libtool, as well as the output of
.../libtool --config
Thanks,
Ralf
Thank you Ralf,
No, libtool is not used. Nor is autoconf or automake. Sage consists of about 100
open source packages. For each one, there is a small script which builds that
package, which at the bare essentials might be:
#!/bin/sh
cd src
configure --prefix=$SAGE_LOCAL
make
make install
In other cases it might the script which does the building might be a python
script. Each one is customised to build that particular bit of software.
Sometimes patches are applied. In each case the 'src' directory is the
unmodified open-source software. Any patches in Sage are then added. So there
might be something like
#!/bin/sh
cp patches/Makefile-new src/Makefile
configure --prefix=$SAGE_LOCAL
make
make install
That's resulting in a mixup of libraries, as nothing actually checks if the
system has libraries of the type.
I believe a fundamentally different way might be needed, but I don't have the
knowledge to implement it, nor do I have sufficient knowledge to argue why this
is wrong. I just believe it is wrong.