-
Notifications
You must be signed in to change notification settings - Fork 99
Description
Hi,
I encountered an issue with third party packages on focal (at least for those using GNUInstallDirs): libraries are installed into /opt/ros/noetic/lib/x86_64-linux-gnu instead of just /opt/ros/noetic/lib (as in bionic).
This leads to the problem that other packages won't find these libs if this path is not added to e.g. LD_LIBRARY_PATH.
On bionic:
03:39:56 dh_auto_configure -- \
03:39:56 -DCMAKE_INSTALL_PREFIX="/opt/ros/melodic" \
03:39:56 -DCMAKE_PREFIX_PATH="/opt/ros/melodic"
03:39:56 install -d obj-x86_64-linux-gnu
03:39:56 cd obj-x86_64-linux-gnu && cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_PREFIX=/opt/ros/melodic -DCMAKE_PREFIX_PATH=/opt/ros/melodic
On focal:
03:40:19 dh_auto_configure -- \
03:40:19 -DCMAKE_INSTALL_PREFIX="/opt/ros/noetic" \
03:40:19 -DCMAKE_PREFIX_PATH="/opt/ros/noetic"
03:40:19 install -d obj-x86_64-linux-gnu
03:40:19 cd obj-x86_64-linux-gnu && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DCMAKE_INSTALL_PREFIX=/opt/ros/noetic -DCMAKE_PREFIX_PATH=/opt/ros/noetic ..
See e.g.
https://build.ros.org/job/Mbin_uB64__rcdiscover__ubuntu_bionic_amd64__binary/11/console
https://build.ros.org/job/Nbin_uF64__rcdiscover__ubuntu_focal_amd64__binary/4/console
This happens because of a change introduced in debhelper version 11.4 which explicitly sets CMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu in the configure step:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=722697
This seems to only affect third party packages as there the generated debian rules has
export DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
Related issues:
- Set CMAKE_INSTALL_LIBDIR explicitly when building Debian packages #268
- .deb generation fails for Xenial, works in Bionic ("dpkg-shlibdeps can't find libs building non-catkin pkg") ros_buildfarm#543
Any thoughts on how to fix this?
One option could be to not set DEB_HOST_MULTIARCH for debhelper versions >= 11.4...