Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROS Kinetic regression (lib install includes architecture) #116

Closed
wxmerkt opened this issue Nov 14, 2019 · 5 comments
Closed

ROS Kinetic regression (lib install includes architecture) #116

wxmerkt opened this issue Nov 14, 2019 · 5 comments

Comments

@wxmerkt
Copy link
Member

wxmerkt commented Nov 14, 2019

This issue is to track the issues with the eigenpy package distributed via the ROS buildfarm on Ubuntu 16.04 which affects pinocchio (regression, does not build) and moveit (works because added eigenpyConfig.cmake). Currently, only pinocchio and other pkg-config consumers are broken.

Note: This problem only happens on 16.04/kinetic due to the old version of debhelper.

  • eigenpy uses GNUInstallDirs. On the ros_buildfarm, the CMAKE_INSTALL_FULL_LIBDIR includes the system architecture for the pkg-config file, while the library is correctly installed in lib/.
  • libdir and pkglibdir both include the system architecture:
cat /opt/ros/kinetic/lib/x86_64-linux-gnu/pkgconfig/eigenpy.pc 
prefix=/opt/ros/kinetic
exec_prefix=/opt/ros/kinetic
**libdir=/opt/ros/kinetic/lib/x86_64-linux-gnu**
bindir=/opt/ros/kinetic/bin
**pkglibdir=/opt/ros/kinetic/lib/x86_64-linux-gnu/eigenpy**
includedir=/opt/ros/kinetic/include
datarootdir=/opt/ros/kinetic/share
pkgdatarootdir=/opt/ros/kinetic/share
docdir=/opt/ros/kinetic/share/doc/eigenpy
doxygendocdir=/opt/ros/kinetic/share/doc/eigenpy/doxygen-html

Related issues:

@tfoote: Is there any way of resolving this apart from changing the rules in the packaging manually (e.g. mrpt-ros-pkg-release/mrpt1-release@17361d7)? The most relevant answer to the issue here is from ros-infrastructure/ros_buildfarm#543 (comment)

@tfoote
Copy link

tfoote commented Nov 15, 2019

There have been some other projects that hit this bug in the past too: ros/console_bridge#15

With a follow up here: ros/console_bridge#19 and ros/console_bridge#29

wxmerkt added a commit to wxmerkt/eigenpy that referenced this issue Nov 15, 2019
The pkg-config template uses the _FULL_ variables while the install happens without the prefix.
This addresses stack-of-tasks#116
@wxmerkt
Copy link
Member Author

wxmerkt commented Nov 15, 2019

Thank you @tfoote. I think I found the issue. The cmake-modules that this project depends on sets variables for where to find the library in the pkg-config template that do not match the ones where it actually gets installed to. I will push for a merge + release to the buildfarm today, this should fix the Pinocchio regression.

jcarpent added a commit that referenced this issue Nov 15, 2019
@jcarpent
Copy link
Contributor

Thanks @tfoote and @wxmerkt for the fix. Solved by #120.

@wxmerkt
Copy link
Member Author

wxmerkt commented Nov 15, 2019

Thank you. Release made:

@wxmerkt
Copy link
Member Author

wxmerkt commented Nov 16, 2019

While #120 fixed the mismatch between the pkg-config and the actual installed layout, it didn't resolve the original issue. The toolchain appears to configure in such a way that on Xenial that the system architecture is used in the path (-DCMAKE_INSTALL_PREFIX=/usr, which is a special case in GNUInstallDirs). This one isn't sourced on the PKG_CONFIG_PATH which is why the dependent Pinocchio build continues to fail. I haven't found a neat work-around yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants