[BuildTools] BuildTools issues for debian packages

Miles Lubin miles.lubin at gmail.com
Sun Sep 8 23:27:08 EDT 2013


Hi,

I've been working on updating the debian packages for Clp, Cbc, and
related Coin projects, which are out of date and no longer of interest
to the previous maintainer. I wanted to raise a few issues with the
build system which I've run into during this process:

1) I'm unable to regenerate the autotools-generated files. Debian
prefers to rerun autotools so that newer architectures like ARM64 are
properly supported. I've tried using the `run_autotools` script, but
the libtool version used (1.5.22) is no longer available within
debian. The older versions of autoconf (2.59) and automake (1.9.6) are
okay since they are still actively maintained as debian packages.

2) "make install" fails when DESTDIR is not the same as the
installation prefix (and pkg-config is installed). To reproduce,
building OSI, for example:
$ ./configure
$ make
$ mkdir installdir
$ make DESTDIR=`pwd`/installdir install
...
make  install-data-hook
make[4]: Entering directory `/home/mlubin/osi/Osi-0.106.1/CoinUtils'
PKG_CONFIG_PATH=/home/mlubin/osi/Osi-0.106.1/lib64/pkgconfig:/home/mlubin/osi/Osi-0.106.1/lib/pkgconfig:/home/mlubin/osi/Osi-0.106.1/share/pkgconfig:
\
    pkg-config --libs coinutils >
/home/mlubin/osi/Osi-0.106.1/installdir/home/mlubin/osi/Osi-0.106.1/share/coin/doc/CoinUtils/coinutils_addlibs.txt
Package coinutils was not found in the pkg-config search path.
Perhaps you should add the directory containing `coinutils.pc'
to the PKG_CONFIG_PATH environment variable
No package 'coinutils' found


Debian packages are built using DESTDIR, so I've had to patch this to
remove this code. I might suggest simply not generating the
*_addlibs.txt files, since these are redundant to pkg-config.


3) Shared libraries do not properly list their runtime dependencies;
e.g. libClp.so does not, but should, depend on libCoinUtils.so,
libbz2.so, liblapack.so, etc., as reported by the ldd tool. This has
been raised a few times:
http://list.coin-or.org/pipermail/clp/2012-June/001265.html,
http://list.coin-or.org/pipermail/coin-discuss/2008-October/003480.html,
and in a private communication with Stefan Vigerske this past
December. While this isn't too difficult to deal with when developing
compiled applications, it significantly complicates using the shared
library from within dynamic languages like Python or Julia (relatedly,
I am the maintainer of the Clp and Cbc interfaces for Julia). The
Debian package system also uses shared library dependencies to infer
package dependencies, and this procedure is broken for coin libraries.


These issues can be worked around/ignored for the current packaging
effort, but hopefully they can be fixed in a future version of
BuildTools.


Best,
Miles Lubin


More information about the BuildTools mailing list