OpenDDS / meta-opendds

Open Embedded Layer for the OpenDDS package
Other
7 stars 4 forks source link

Yocto Kirkstone OpenDDS do_package Errors #47

Open cebele opened 2 weeks ago

cebele commented 2 weeks ago

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 commented 2 weeks ago

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

cebele commented 2 weeks ago

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 commented 1 week ago

@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?

vermaete commented 1 week ago

@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 commented 1 week ago

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 commented 1 week ago

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 commented 1 week ago

@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 commented 1 week ago

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 commented 1 week ago

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 commented 1 week ago

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

That's why I posted https://github.com/OpenDDS/meta-opendds/issues/47#issuecomment-2368875123

For more context:

$ 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.

vermaete commented 1 week ago

@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 commented 1 week ago

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

cebele commented 1 day ago

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.