Skip to content

third party packages install to lib/<arch> on focal #642

@flixr

Description

@flixr

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:

Any thoughts on how to fix this?
One option could be to not set DEB_HOST_MULTIARCH for debhelper versions >= 11.4...

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions