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

Yocto Kirkstone OpenDDS do_package Errors #47

Open
cebele opened this issue Sep 18, 2024 · 16 comments
Open

Yocto Kirkstone OpenDDS do_package Errors #47

cebele opened this issue Sep 18, 2024 · 16 comments

Comments

@cebele
Copy link

cebele commented Sep 18, 2024

Hello,

I started bitbake for the Yocto Kirkstone version. I added the meta-opendds layer to my distro.

I clone the layer from the OpenDDS kirkstone branch and added the layer to my bblayers.conf file.

However, when I start bitbake, I get the following errors in the opendds-3.24-r0 do_package step.

After this error, the yocto image is created but none of the subscriber or publisher example applications in opendds are added to my rootfs.

Best regards.

Error Logs:
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/ImR_Client/libTAO_ImR_Client.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/IORTable/libTAO_IORTable.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/udp/libOpenDDS_Udp.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/shmem/libOpenDDS_Shmem.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/tools/repoctl/repoctl)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/InfoRepo/libOpenDDS_InfoRepoServ.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_PI.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/Messaging/libTAO_Messaging.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/tools/modeling/codegen/model/libOpenDDS_Model.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/InfoRepo/libOpenDDS_InfoRepoServ.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_AnyTypeCode.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/PortableServer/libTAO_PortableServer.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_CodecFactory.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/CSD_Framework/libTAO_CSD_Framework.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_AnyTypeCode.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/DynamicInterface/libTAO_DynamicInterface.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_PortableServer.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/DynamicInterface/libTAO_DynamicInterface.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/IORTable/libTAO_IORTable.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/RTPS/libOpenDDS_Rtps.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_InfoRepoDiscovery.so.3.24.1: opendds, opendds-dev (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/InfoRepo/libOpenDDS_Federator.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/rtps_udp/libOpenDDS_Rtps_Udp.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/rtps_udp/libOpenDDS_Rtps_Udp.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/security/libOpenDDS_Security.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/tools/modeling/codegen/model/libOpenDDS_Model.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/udp/libOpenDDS_Udp.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/security/libOpenDDS_Security.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/udp/libOpenDDS_Udp.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/InfoRepo/libOpenDDS_InfoRepoLib.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/libOpenDDS_Dcps.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Tcp.so.3.24.1: opendds, opendds-dev (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/InfoRepo/libOpenDDS_InfoRepoServ.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Dcps.so.3.24.1: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/RTPS/libOpenDDS_Rtps.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Federator.so.3.24.1: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/InfoRepo/libOpenDDS_InfoRepoServ.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/multicast/libOpenDDS_Multicast.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/multicast/libOpenDDS_Multicast.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/Messaging/libTAO_Messaging.so.2.5.19)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_BiDirGIOP.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/InfoRepoDiscovery/libOpenDDS_InfoRepoDiscovery.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_AnyTypeCode.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/InfoRepoDiscovery/libOpenDDS_InfoRepoDiscovery.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/FACE/libOpenDDS_FACE.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_PortableServer.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/InfoRepo/libOpenDDS_InfoRepoLib.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE_XML_Utils.so.6.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/security/libOpenDDS_Security.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Dcps.so.3.24.1: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/monitor/libOpenDDS_monitor.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/DCPS/transport/multicast/libOpenDDS_Multicast.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/tools/modeling/codegen/model/libOpenDDS_Model.so.3.24.1)
ERROR: opendds-3.24-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.19: opendds-dev, opendds (used by files: /home/yocto/imx-yocto-bsp/build-yocto/tmp/work/armv8a-poky-linux/opendds/3.24-r0/packages-split/opendds-dev/usr/share/DDS_ROOT/dds/libOpenDDS_Dcps.so.3.24.1)

@jrw972
Copy link
Contributor

jrw972 commented Sep 18, 2024

Is this a problem with the most recent version of OpenDDS (3.29.1)?

@cebele
Copy link
Author

cebele commented Sep 19, 2024

Is this a problem with the most recent version of OpenDDS (3.29.1)?

Hello @jrw972,

Yes, unfortunately I get the same errors with OpenDDS (3.29.1).

I did a fresh Ubuntu installation and started a Yocto Scarthgap build.

I added OpenDDS to my local.conf file as "IMAGE_INSTALL:append = "opendds", but I still get the same errors. You can find the errors below.

There are 347 of these errors and due to the comment character limit I could only add these.

Best regards.

Error Logs:
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.21: opendds-dev, opendds (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/FindTopic/findtopic)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Dcps.so.3.29.1: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/FooType/libDcpsFooType.so.3.29.1)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_Valuetype.so.2.5.21: opendds-dev, opendds (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/security/IDL_Serialization/Security_IDL_Serialization)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.21: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/PI/libTAO_PI.so.2.5.21)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Rtps.so.3.29.1: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/RtpsDurableReplay/publisher)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libTAO_PortableServer.so.2.5.21: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/orbsvcs/ImplRepo_Service/tao_imr)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Dcps.so.3.29.1: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/Reliability/IDL/libReliability.so.3.29.1)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Dcps.so.3.29.1: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/Prst_delayed_subscriber/publisher)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libOpenDDS_Dcps.so.3.29.1: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/security/ConcurrentAuthLimit/ConcurrentAuthLimit)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.21: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/KeyTest/IsBounded)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libTAO.so.2.5.21: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/FACE/CallbackAndReceive/Publisher/publisher)
ERROR: opendds-3.29.1-r0 do_package: opendds-dev: Multiple shlib providers for libACE.so.6.5.21: opendds, opendds-dev (used by files: /home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/LivelinessTimeout/publisher)

@jrw972
Copy link
Contributor

jrw972 commented Sep 20, 2024

@vermaete Any ideas on this one?

Am I reading it correctly that the opendds and opendds-dev package are both providing libACE.so.6.5.21 and the others?

@jrw972 jrw972 closed this as completed Sep 20, 2024
@jrw972 jrw972 reopened this Sep 20, 2024
@vermaete
Copy link
Contributor

@jrw972
@cebele

Well, it's indeed a problem of the meta-opendds layer. Or how OpenDDS is compiled (=mpc). I'm not sure.

What I do know is that there is some technical dept in what to be placed in the -dev package.
And this for already a long time. But Yocto is getting more and more strict on QA warning.

I'm not the export in the topic.
But what I do understand is that in Yocto and most distro's the .so files are not distributed. Except for development.
What is distributed are the versioned .so files (.so.1, .so.1.2.3).
So the .so files should be in the -dev package.

But this is not the case in meta-opendds.
Mainly because it was like this already of a long time. And I don't use the -dev package. And building it twice was fixing the issue.

And Yocto is complaining the so files are packed in to packages (opendds and opendds-dev).

I will put a patch on my fork how to solve it. BUT....
With his patch, the ishapes demo is not working anymore. And I don't know what else.
Ishapes is crashing with a core dump.
Running it with strace is giving this:

openat(AT_FDCWD, "/usr/lib/OpenDDS_Rtps_Udp.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
munmap(0x7fb0401000, 12559)             = 0
openat(AT_FDCWD, "/usr/lib/OpenDDS_Rtps_Udp", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=12559, ...}) = 0
mmap(NULL, 12559, PROT_READ, MAP_PRIVATE, 7, 0) = 0x7fb0401000
close(7)                                = 0

So it looks like it tries to open the .so file. The not versioned version. The one that should not be on a system.

ldd doesn't show this:

root@rpi4-opendds:~# ldd /usr/bin/ishapes 
	linux-vdso.so.1 (0x0000007fb4240000)
	libOpenDDS_Rtps_Udp.so.3.29.1 => /usr/lib/libOpenDDS_Rtps_Udp.so.3.29.1 (0x0000007fb4030000)
	libOpenDDS_Rtps.so.3.29.1 => /usr/lib/libOpenDDS_Rtps.so.3.29.1 (0x0000007fb3ac0000)
	libOpenDDS_Dcps.so.3.29.1 => /usr/lib/libOpenDDS_Dcps.so.3.29.1 (0x0000007fb2940000)
	libTAO_Valuetype.so.3.1.3 => /usr/lib/libTAO_Valuetype.so.3.1.3 (0x0000007fb2900000)
	libTAO.so.3.1.3 => /usr/lib/libTAO.so.3.1.3 (0x0000007fb2760000)
	libACE.so.7.1.3 => /usr/lib/libACE.so.7.1.3 (0x0000007fb25a0000)
	libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x0000007fb1e70000)
	libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x0000007fb1740000)
	libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x0000007fb10c0000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0000007fb0e60000)
	libm.so.6 => /usr/lib/libm.so.6 (0x0000007fb0db0000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x0000007fb0d70000)
	libc.so.6 => /usr/lib/libc.so.6 (0x0000007fb0bc0000)
	/usr/lib/ld-linux-aarch64.so.1 (0x0000007fb4203000)
	libTAO_AnyTypeCode.so.3.1.3 => /usr/lib/libTAO_AnyTypeCode.so.3.1.3 (0x0000007fb0ae0000)
	libGL.so.1 => /usr/lib/libGL.so.1 (0x0000007fb0a40000)
	libpng16.so.16 => /usr/lib/libpng16.so.16 (0x0000007fb09e0000)
	libz.so.1 => /usr/lib/libz.so.1 (0x0000007fb09a0000)
	libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x0000007fb0920000)
	libzstd.so.1 => /usr/lib/libzstd.so.1 (0x0000007fb0850000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x0000007fb06d0000)
	libglapi.so.0 => /usr/lib/libglapi.so.0 (0x0000007fb0660000)
	libdrm.so.2 => /usr/lib/libdrm.so.2 (0x0000007fb0620000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x0000007fb04c0000)
	libxcb-glx.so.0 => /usr/lib/libxcb-glx.so.0 (0x0000007fb0480000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x0000007fb0430000)
	libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x0000007fb0400000)
	libxcb-dri2.so.0 => /usr/lib/libxcb-dri2.so.0 (0x0000007fb03d0000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0x0000007fb0390000)
	libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x0000007fb0360000)
	libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x0000007fb0330000)
	libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x0000007fb0300000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x0000007fb02b0000)
	libxshmfence.so.1 => /usr/lib/libxshmfence.so.1 (0x0000007fb0280000)
	libxcb-randr.so.0 => /usr/lib/libxcb-randr.so.0 (0x0000007fb0250000)
	libxcb-dri3.so.0 => /usr/lib/libxcb-dri3.so.0 (0x0000007fb0220000)
	libxcb-present.so.0 => /usr/lib/libxcb-present.so.0 (0x0000007fb01f0000)
	libxcb-sync.so.1 => /usr/lib/libxcb-sync.so.1 (0x0000007fb01c0000)
	libxcb-xfixes.so.0 => /usr/lib/libxcb-xfixes.so.0 (0x0000007fb0190000)
	libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x0000007fb0110000)
	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x0000007fb00e0000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x0000007fb00b0000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x0000007fb0080000)

If somebody could help figuring out why ishapes is trying to open the .so.

@vermaete
Copy link
Contributor

vermaete commented Sep 22, 2024

This patch, for now.
Not yet tested....

diff --git a/recipes-connectivity/opendds/opendds.inc b/recipes-connectivity/opendds/opendds.inc
index 205e900..f853289 100644
--- a/recipes-connectivity/opendds/opendds.inc
+++ b/recipes-connectivity/opendds/opendds.inc
@@ -87,8 +87,8 @@ OECONF:append:class-nativesdk = "\
     --host-tools-only \
 "
 
-SOLIBS = ".so*"
-FILES_SOLIBSDEV = ""
+#SOLIBS = ".so*"
+#FILES_SOLIBSDEV = ""
 
 do_configure() {
     ./configure ${OECONF}
@@ -123,6 +123,9 @@ do_install:append:class-target() {
     cp -r ${DDS_ROOT}/ACE_wrappers/lib ${D}${datadir}/DDS_ROOT/ACE_wrappers
     cp ${DDS_ROOT}/ACE_wrappers/*.txt ${D}${datadir}/DDS_ROOT/ACE_wrappers
 
+    # remove all *.so* from the to be made -deb package
+    find ${D}${datadir} -name *.so.* -exec rm -rf {} \;
+
     if [ "${@bb.utils.contains("PACKAGECONFIG", "ishapes", "1", "0", d)}" = "1" ]; then
         install -d ${D}${bindir}
         install -m 0755 ${S}/examples/DCPS/ishapes/ishapes ${D}${bindir}/
@@ -236,10 +239,10 @@ do_install_ptest() {
 
 PACKAGES += "${PN}-ishapes"
 
-INSANE_SKIP:${PN} += "dev-so"
-INSANE_SKIP:${PN}-dev += "libdir"
+#INSANE_SKIP:${PN} += "dev-so"
+#INSANE_SKIP:${PN}-dev += "libdir"
 
-FILES:${PN}-dev += "${datadir}"
+FILES:${PN}-dev += "${datadir}/dds ${datadir}/ace ${datadir}/tao ${datadir}/DDS_ROOT"
 FILES:${PN}-ishapes += "${bindir}/ishapes"
 FILES:${PN}-ptest += "${libdir}/perl5/5.38.2/PerlACE ${libdir}/perl5/5.38.2/PerlDDS"

@mitza-oci
Copy link
Member

There are libraries that can be loaded at runtime (via dlopen) which are unversioned. It's an application decision whether or not to load libraries at runtime. I guess the yocto packaging could decide to not support it.

@vermaete
Copy link
Contributor

@cebele

If you want you can try this patch at the master of meta-opendds.
I did run the ptests of opendds at qemu and for not I don't see a difference. What's good :-)
But the ishapes demo does not work. The error is above.
As long as the ishapes demo is not working I would not apply this patch to git.

@mitza-oci could you point me in a direction about the crash of Ishapes?

Could you let me know if it works, or not.

diff --git a/recipes-connectivity/opendds/opendds.inc b/recipes-connectivity/opendds/opendds.inc
index 205e900..9e4b052 100644
--- a/recipes-connectivity/opendds/opendds.inc
+++ b/recipes-connectivity/opendds/opendds.inc
@@ -87,13 +87,19 @@ OECONF:append:class-nativesdk = "\
     --host-tools-only \
 "
 
-SOLIBS = ".so*"
-FILES_SOLIBSDEV = ""
+#SOLIBS = ".so*"
+#FILES_SOLIBSDEV = ""
 
 do_configure() {
     ./configure ${OECONF}
 }
 
+
+do_install:prepend:class-target() {
+    # remove all *.so* from the to be made -deb package
+    find ${DDS_ROOT} -name *.so.* -exec rm -rf {} \;
+}
+
 do_install:append:class-target() {
     rm ${D}${datadir}/dds/dds/Version.h
     cp ${D}${includedir}/dds/Version.h ${D}${datadir}/dds/dds
@@ -236,10 +242,11 @@ do_install_ptest() {
 
 PACKAGES += "${PN}-ishapes"
 
-INSANE_SKIP:${PN} += "dev-so"
+#INSANE_SKIP:${PN} += "dev-so"
 INSANE_SKIP:${PN}-dev += "libdir"
+INSANE_SKIP:${PN}-dbg += "libdir"
 
-FILES:${PN}-dev += "${datadir}"
+FILES:${PN}-dev += "${datadir}/dds ${datadir}/ace ${datadir}/tao ${datadir}/DDS_ROOT"
 FILES:${PN}-ishapes += "${bindir}/ishapes"
 FILES:${PN}-ptest += "${libdir}/perl5/5.38.2/PerlACE ${libdir}/perl5/5.38.2/PerlDDS"

@cebele
Copy link
Author

cebele commented Sep 24, 2024

Hi all,

I still have do_package errors with opendds_3.24.

After adding opendds to distro, why publisher and subscriber runnables are not included in rootfs?

Could you please help me with this issue?

Best regards.

@vermaete
Copy link
Contributor

Hi @cebele

I have tried it at the latest version. This could be a difference.

I assume publisher and subscriber are applications (mostly for testing) that using OpenDDS as communication layer.
They are not included in the rootfs because the opendds recipe is to install everything in the rootfs to allow own written application to use OpenDDS.

But you have a point that an example Bitbake/Yocto recipe how to write an application could be useful in this meta layer.

If you still would like to have the examples and tests installed you can enable the PACAGECONFIG[tests].
https://github.com/OpenDDS/meta-opendds/blob/master/recipes-connectivity/opendds/opendds.inc#L23

Br

@mitza-oci
Copy link
Member

@mitza-oci could you point me in a direction about the crash of Ishapes?

That's why I posted #47 (comment)

For more context:

  • When an application binary or shared library depends on (at build time) another shared library, the linker writes a NEEDED entry into the ELF headers based on the -l options given to the compiler
$ objdump -x publisher | grep NEEDED
  NEEDED               libOpenDDS_Dcps.so.3.30.0-dev
  NEEDED               libTAO_Valuetype.so.3.1.3
  NEEDED               libTAO.so.3.1.3
  NEEDED               libACE.so.7.1.3
  NEEDED               libstdc++.so.6
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.6

This is what ldd is using. These libraries are versioned.

  • The application may call ldopen(), which I believe is what you're seeing in the strace output: openat(AT_FDCWD, "/usr/lib/OpenDDS_Rtps_Udp.so". The arguments passed to ldopen are not versioned.

@vermaete
Copy link
Contributor

@mitza-oci

Is this also related? As I understand OpenDDS is using ACE to load the shared libraries:
https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ace/DLL_Manager.h
And there is a search order to find a lib. But as far as I see now it isn't looking for a versioned version of the so file.

Now that the unversioned version of the library (*.so) is not assumed to be installed anymore in Yocto and Debian this could cause issues.
E.g. the list of files of libusb in Debian . This without the so file.
And the .so file is in the -dev package.

@mitza-oci
Copy link
Member

It is, by design, not looking for the versioned so.

@cebele
Copy link
Author

cebele commented Oct 2, 2024

Hi @cebele

I have tried it at the latest version. This could be a difference.

I assume publisher and subscriber are applications (mostly for testing) that using OpenDDS as communication layer. They are not included in the rootfs because the opendds recipe is to install everything in the rootfs to allow own written application to use OpenDDS.

But you have a point that an example Bitbake/Yocto recipe how to write an application could be useful in this meta layer.

If you still would like to have the examples and tests installed you can enable the PACAGECONFIG[tests]. https://github.com/OpenDDS/meta-opendds/blob/master/recipes-connectivity/opendds/opendds.inc#L23

Br

Hi @vermaete,

Unfortunately, this method did not work. Because there is no such line in the opendds 3.24 recipe.

What changes should I make in the recipes to avoid getting these errors?

Could you please help me with this issue?

Best regards.

@vermaete
Copy link
Contributor

@cebele I believe your reported error 'Multiple shlib providers' should be fixed in the current master of meta-opendds.
However, this is at the latest version of OpenDDS (3.30.0).

@cebele
Copy link
Author

cebele commented Oct 21, 2024

@cebele I believe your reported error 'Multiple shlib providers' should be fixed in the current master of meta-opendds. However, this is at the latest version of OpenDDS (3.30.0).

Thank you for your support.

However, due to my Yocto version (Kirkstone) I can use OpenDDS version 3.24.

How can I fix these errors in OpenDDS version 3.24. Although there are errors, the Yocto image is created and the .so files with these errors appear in my image.

How can I fix these errors?

Best regards.

@vermaete
Copy link
Contributor

@cebele

The key should be here: https://github.com/OpenDDS/meta-opendds/blob/master/recipes-connectivity/opendds/opendds.inc#L128
But I leave it as an exercise to bring it to an older version. Being, sorry but I have not time for older versions.

br

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

4 participants