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

ishapes and a bit on so files #35

Merged
merged 2 commits into from
Jan 30, 2024
Merged

ishapes and a bit on so files #35

merged 2 commits into from
Jan 30, 2024

Conversation

vermaete
Copy link
Contributor

Hi,

First comit is needed to have the ishapes demo (second patch) working on a Raspberry Pi 4.

The second commit is to have 'ishapes' a packageconfig of the opendds recipe. What's new.

I probably will open an 'issue' about a strange behavior of 'ishapes' later this week.

br,

* renamed 'FILES:SOLIBSDEV' to 'FILES_SOLIBSDEV'.
  The ':' variant doesn't exist in Yocto
  Fixed a oelint-adv issue
* SOLIBS = ".so*"
  This will add all the versions of the so libraries into the 'opendds'
  package.  What's not the default in Linux/Yocto.  The '*.so' file
  should be in the opendds-dev package.
  But without the ishapes demo isn't working.
* Removed some code in the 'do_configure'
  This was making the '.so.MAJOR' and 'so.MAJOR.MINOR' versions of the
  libraries.  Those are also not part when installing with 'configure, make, make --install'
  e.g.:
    /usr/lib/libTAO.so.3.1 was removed
    /usr/lib/libTAO.so.3 was removed

The buildhistory-diff:
    packages/cortexa72-poky-linux/opendds/opendds-dev: FILELIST:
    removed "/usr/lib/libOpenDDS_Udp.so
             /usr/lib/libTAO_Valuetype.so
             /usr/lib/libOpenDDS_Dcps.so
             /usr/lib/libTAO_ImR_Client.so
             /usr/lib/libTAO_PI.so
             /usr/lib/libACE_XML_Utils.so
             /usr/lib/libTAO_IORManip.so
             /usr/lib/libTAO_CSD_Framework.so
             /usr/lib/libTAO_BiDirGIOP.so
             /usr/lib/libTAO_IORTable.so
             /usr/lib/libOpenDDS_InfoRepoLib.so
             /usr/lib/libTAO_AnyTypeCode.so
             /usr/lib/libOpenDDS_Model.so
             /usr/lib/libTAO_PortableServer.so
             /usr/lib/libOpenDDS_Multicast.so
             /usr/lib/libOpenDDS_monitor.so
             /usr/lib/libOpenDDS_FACE.so
             /usr/lib/libTAO.so
             /usr/lib/libOpenDDS_QOS_XML_XSC_Handler.so
             /usr/lib/libTAO_Svc_Utils.so
             /usr/lib/libOpenDDS_Shmem.so
             /usr/lib/libTAO_DynamicInterface.so
             /usr/lib/libTAO_CSD_ThreadPool.so
             /usr/lib/libTAO_IDL_FE.so
             /usr/lib/libOpenDDS_Tcp.so
             /usr/lib/libTAO_Async_IORTable.so
             /usr/lib/libTAO_Codeset.so
             /usr/lib/libOpenDDS_InfoRepoDiscovery.so
             /usr/lib/libTAO_CodecFactory.so
             /usr/lib/libOpenDDS_InfoRepoServ.so
             /usr/lib/libOpenDDS_Security.so
             /usr/lib/libTAO_Messaging.so
             /usr/lib/libOpenDDS_Rtps_Udp.so
             /usr/lib/libOpenDDS_Rtps.so
             /usr/lib/libACE.so
             /usr/lib/libOpenDDS_Federator.so"
    packages/cortexa72-poky-linux/opendds/opendds-dev: RDEPENDS: removed "opendds"
    packages/cortexa72-poky-linux/opendds/opendds: FILELIST: removed "
             /usr/lib/libTAO_IDL_FE.so.3.1
             /usr/lib/libTAO_IORManip.so.3.1
             /usr/lib/libOpenDDS_InfoRepoLib.so.3
             /usr/lib/libOpenDDS_Rtps.so.3
             /usr/lib/libTAO_CodecFactory.so.3.1
             /usr/lib/libTAO_DynamicInterface.so.3.1
             /usr/lib/libOpenDDS_Multicast.so.3
             /usr/lib/libTAO_PI.so.3.1
             /usr/lib/libTAO_Messaging.so.3
             /usr/lib/libTAO_IDL_FE.so.3
             /usr/lib/libOpenDDS_Federator.so.3.26
             /usr/lib/libTAO_Async_IORTable.so.3
             /usr/lib/libTAO_IORTable.so.3.1
             /usr/lib/libOpenDDS_Shmem.so.3
             /usr/lib/libOpenDDS_Multicast.so.3.26
             /usr/lib/libOpenDDS_Dcps.so.3
             /usr/lib/libACE.so.7
             /usr/lib/libTAO_PI.so.3
             /usr/lib/libOpenDDS_Udp.so.3
             /usr/lib/libOpenDDS_Model.so.3.26
             /usr/lib/libTAO_Codeset.so.3.1
             /usr/lib/libTAO_CSD_Framework.so.3.1
             /usr/lib/libACE_XML_Utils.so.7.1
             /usr/lib/libOpenDDS_Rtps_Udp.so.3.26
             /usr/lib/libOpenDDS_Rtps.so.3.26
             /usr/lib/libTAO_CSD_ThreadPool.so.3
             /usr/lib/libTAO_CSD_ThreadPool.so.3.1
             /usr/lib/libOpenDDS_monitor.so.3.26
             /usr/lib/libOpenDDS_InfoRepoDiscovery.so.3.26
             /usr/lib/libTAO_Valuetype.so.3.1
             /usr/lib/libTAO_CSD_Framework.so.3
             /usr/lib/libOpenDDS_FACE.so.3
             /usr/lib/libOpenDDS_QOS_XML_XSC_Handler.so.3
             /usr/lib/libTAO_BiDirGIOP.so.3.1
             /usr/lib/libOpenDDS_InfoRepoServ.so.3.26
             /usr/lib/libACE_XML_Utils.so.7
             /usr/lib/libTAO_Svc_Utils.so.3.1
             /usr/lib/libOpenDDS_InfoRepoServ.so.3
             /usr/lib/libOpenDDS_Udp.so.3.26
             /usr/lib/libTAO_BiDirGIOP.so.3
             /usr/lib/libOpenDDS_FACE.so.3.26
             /usr/lib/libOpenDDS_Model.so.3
             /usr/lib/libTAO_PortableServer.so.3
             /usr/lib/libTAO.so.3
             /usr/lib/libOpenDDS_Dcps.so.3.26
             /usr/lib/libOpenDDS_monitor.so.3
             /usr/lib/libOpenDDS_Rtps_Udp.so.3
             /usr/lib/libTAO_Codeset.so.3
             /usr/lib/libTAO_AnyTypeCode.so.3.1
             /usr/lib/libOpenDDS_Security.so.3
             /usr/lib/libTAO_Async_IORTable.so.3.1
             /usr/lib/libOpenDDS_Federator.so.3
             /usr/lib/libTAO_ImR_Client.so.3
             /usr/lib/libOpenDDS_Tcp.so.3
             /usr/lib/libTAO.so.3.1
             /usr/lib/libOpenDDS_InfoRepoDiscovery.so.3
             /usr/lib/libOpenDDS_Tcp.so.3.26
             /usr/lib/libACE.so.7.1
             /usr/lib/libTAO_Messaging.so.3.1
             /usr/lib/libTAO_DynamicInterface.so.3
             /usr/lib/libOpenDDS_InfoRepoLib.so.3.26
             /usr/lib/libTAO_IORTable.so.3
             /usr/lib/libTAO_CodecFactory.so.3
             /usr/lib/libTAO_Svc_Utils.so.3
             /usr/lib/libOpenDDS_QOS_XML_XSC_Handler.so.3.26
             /usr/lib/libTAO_ImR_Client.so.3.1
             /usr/lib/libTAO_PortableServer.so.3.1
             /usr/lib/libTAO_IORManip.so.3
             /usr/lib/libTAO_Valuetype.so.3
             /usr/lib/libOpenDDS_Shmem.so.3.26
             /usr/lib/libTAO_AnyTypeCode.so.3
             /usr/lib/libOpenDDS_Security.so.3.26",
    added    "
             /usr/lib/libOpenDDS_Udp.so
             /usr/lib/libTAO_Valuetype.so
             /usr/lib/libOpenDDS_Dcps.so
             /usr/lib/libTAO_ImR_Client.so
             /usr/lib/libTAO_PI.so
             /usr/lib/libACE_XML_Utils.so
             /usr/lib/libTAO_IORManip.so
             /usr/lib/libTAO_CSD_Framework.so
             /usr/lib/libTAO_BiDirGIOP.so
             /usr/lib/libTAO_IORTable.so
             /usr/lib/libOpenDDS_InfoRepoLib.so
             /usr/lib/libTAO_AnyTypeCode.so
             /usr/lib/libOpenDDS_Model.so
             /usr/lib/libTAO_PortableServer.so
             /usr/lib/libOpenDDS_Multicast.so
             /usr/lib/libOpenDDS_monitor.so
             /usr/lib/libOpenDDS_FACE.so
             /usr/lib/libTAO.so
             /usr/lib/libOpenDDS_QOS_XML_XSC_Handler.so
             /usr/lib/libTAO_Svc_Utils.so
             /usr/lib/libOpenDDS_Shmem.so
             /usr/lib/libTAO_CSD_ThreadPool.so
             /usr/lib/libTAO_DynamicInterface.so
             /usr/lib/libTAO_IDL_FE.so
             /usr/lib/libOpenDDS_Tcp.so
             /usr/lib/libTAO_Async_IORTable.so
             /usr/lib/libTAO_Codeset.so
             /usr/lib/libOpenDDS_InfoRepoDiscovery.so
             /usr/lib/libTAO_CodecFactory.so
             /usr/lib/libOpenDDS_InfoRepoServ.so
             /usr/lib/libOpenDDS_Security.so
             /usr/lib/libTAO_Messaging.so
             /usr/lib/libOpenDDS_Rtps_Udp.so
             /usr/lib/libOpenDDS_Rtps.so
             /usr/lib/libACE.so
             /usr/lib/libOpenDDS_Federator.so"

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
By default: disabled
Testen on Rpi4

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
@mitza-oci
Copy link
Member

Instead of patching the mwc file the strategy I typically recommend for this is to configure with --tests and then build just the targets that are needed, for example running make ishapes.

@vermaete
Copy link
Contributor Author

@mitza-oci

Thanks for the review.

I'm not sure if first generating the makefile with configure in the do_configuration step of Yocto.
And then not using the make all in the default do_compile step of Yocto. But instead do a kind of make all except the tests and then a make ishapes is a good Yocto practice.
Unless I'm missed a kind of exclude-a-target flag of the make command.

And one of my next steps will be having the OpenDDS tests in the ptest framework of Yocto.
What will make the bitbake recipe even more complicated if there is no patching done on the mwc file.

It looks like when going to the 4.0 release of OpenDDS with CMake it will be fixed anyhow.

Could we have his PR in the main/master for now?

@mitza-oci
Copy link
Member

I'm not sure if first generating the makefile with configure in the do_configuration step of Yocto. And then not using the make all in the default do_compile step of Yocto. But instead do a kind of make all except the tests and then a make ishapes is a good Yocto practice. Unless I'm missed a kind of exclude-a-target flag of the make command.

Just from a system architecture / theoretical perspective, what's the point of having different "recipes" if each one must be exactly the same?

And one of my next steps will be having the OpenDDS tests in the ptest framework of Yocto. What will make the bitbake recipe even more complicated if there is no patching done on the mwc file.

I guess we can discuss in its own PR, but wouldn't that change mean using DDS_TAOv2_all.mwc anyway?

It looks like when going to the OpenDDS/OpenDDS#4405 release of OpenDDS with CMake it will be fixed anyhow.

Even OpenDDS 3.x can now be built with CMake - with certain caveats.

Could we have his PR in the main/master for now?

Sorry it's taken some time to get back to this. I'll take a look before the end of the day today.

@mitza-oci
Copy link
Member

I meant to add before...

Unless I'm missed a kind of exclude-a-target flag of the make command.

It's not an exclude-a-target, but it does have a way to build a certain target and all of its dependencies, which is the make ishapes example. The part that makes it more complicated is that I think you want to build the union of "all (or most?) targets that would be built with a --no-tests configure" and "ishapes and its dependencies". I think this is not something currently available in the MPC-generated makefiles, but it could be added.

Another approach would be to run something like mwc.pl -type gnuace examples/DCPS/ishapes after configure which will result in an independent makefile in the ishapes directory. Use the setenv.sh script for this like do_install:append:class-target().

@vermaete
Copy link
Contributor Author

@mitza-oci

When is the 4.0 release expected?
Or does it make sense to move in this meta layer of Yocto already to the cmake style?
This would make the recipe of opendds much more common and less complex.

br

@mitza-oci
Copy link
Member

When is the 4.0 release expected?

Please post a question in the OpenDDS repository. (I'm not trying to avoid answering, I actually don't have an answer.)

Or does it make sense to move in this meta layer of Yocto already to the cmake style?

You're certainly free to try. If you haven't yet done so I suggest reading the OpenDDS release notes that discuss what is and isn't supported in a CMake build.

@jrw972 jrw972 merged commit da649fa into OpenDDS:master Jan 30, 2024
1 check passed
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

Successfully merging this pull request may close these issues.

4 participants