eigenpy: robotpkg eigenpy binary does not depend on libeigen3-dev

I am setting up a new CI system and realised that installing robotpkg-py27-eigenpy does not install libeigen3-dev (i.e. does not depend on it).

Here is the output of dpkg:

$ dpkg -s robotpkg-py27-eigenpy
Package: robotpkg-py27-eigenpy
Status: install ok installed
Priority: extra
Section: robotpkg/math
Maintainer: hpp@laas.fr
Architecture: amd64
Source: /opt/robotpkg/var/lib/robotpkg/packages/bsd/Ubuntu-16.04-x86_64/pub/py27-eigenpy-1.6.1.tgz
Version: 1.6.1
Replaces: robotpkg-py27-eigenpy
Provides: robotpkg-py27-eigenpy
Depends: libboost-python1.58-dev (>= 1.34.1), libboost-python1.58.0 (>= 1.34.1), libstdc++6 | libstdc++6, python-numpy (>= 1:1), python2.7-minimal (>= 2.7), python2.7-minimal (<< 2.8), libpython2.7-dev (>= 2.7), libpython2.7-dev (<< 2.8)
Conflicts: robotpkg-py35-eigenpy (= 1.4.5), robotpkg-py27-eigenpy (= 1.4.3), robotpkg-py35-eigenpy (= 1.4.1r1), robotpkg-py27-eigenpy (= 1.4.1), robotpkg-py27-eigenpy (= 1.4.1r1), robotpkg-py35-eigenpy (= 1.4.1), robotpkg-py27-eigenpy (= 1.6.0), robotpkg-py27-eigenpy (= 1.6.1), robotpkg-py27-eigenpy (= 1.4.4), robotpkg-py35-eigenpy (= 1.4.4), robotpkg-py35-eigenpy (= 1.4.3), robotpkg-py35-eigenpy (= 1.6.1), robotpkg-py35-eigenpy (= 1.4.2), robotpkg-py35-eigenpy (= 1.6.0), robotpkg-py35-eigenpy (= 1.5.1), robotpkg-py27-eigenpy (= 1.4.5), robotpkg-py35-eigenpy (= 1.5.0), robotpkg-py27-eigenpy (= 1.5.0), robotpkg-py35-eigenpy (= 1.4.2r1), robotpkg-py27-eigenpy (= 1.5.1), robotpkg-py35-eigenpy (= 1.4.1r2), robotpkg-py27-eigenpy (= 1.4.2r1), robotpkg-py27-eigenpy (= 1.4.1r2), robotpkg-py27-eigenpy (= 1.4.2), robotpkg-eigenpy (= 1.3.0), robotpkg-eigenpy (= 1.3.2), robotpkg-eigenpy (= 1.3.3), robotpkg-eigenpy (= 1.3.1r1), robotpkg-eigenpy (= 1.4.0), robotpkg-eigenpy (= 1.3.0r1), robotpkg-eigenpy (= 1.4.0r2), robotpkg-eigenpy (= 1.3.1), robotpkg-eigenpy (= 1.4.0r1), robotpkg-py27-eigenpy
Description: Eigen bindings to python
 License: 2-clause-bsd
 Debian-Packager: robotpkg@laas.fr
 Bindings between numpy and eigen using boost::python
 .
 Homepage:
 https://github.com/stack-of-tasks/eigenpy
Homepage: https://github.com/stack-of-tasks/eigenp

I think it should have the dependency to install libeigen3-dev as it includes headers that depend on it. What do you think? @jcarpent @nim65s

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 17 (17 by maintainers)

Most upvoted comments

Hi @wxmerkt , and thanks for this question.

As Eigen is header only, eigenpy.so is not linked to it. And about the headers: do we really leak Eigen headers inside eigenpy’s public headers ? And if so, shouldn’t we avoid that ?

Anyway, I think we should be able to use eigenpy on a system where libeigen3-dev is not installed, as, from my understanding, all those lib*-dev packages are only necessary to compile things, and never required runtime dependencies, right ?

Then, we could even split the binary packages into eigenpy (with the .so) and libeigenpy-dev (with the headers, and this one should maybe depend on libeigen3-dev), and this way, we could even install libeigenpy-dev along py27-eigenpy & py36-eigenpy, which would be a nice thing to have, if we had time for this. Right now, py27-eigenpy & py36-eigenpy are conflicting, because they are both installing the same headers at the same place.

Our ultimate goal is always to embed stuff on robots, so avoiding non required dependencies is always a good idea 😃