From c905fa529293b0ffcfb31f9ce1a609b1782935d4 Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Tue, 24 Sep 2024 20:56:54 +0200 Subject: [PATCH 1/9] ace_tao unpack in do_unpack and not in do_configure. Moved the unpacking of the ACE/TAO archive from the do_configure step to the do_unpack step of Yocto. This makes is possible to apply patches in the do_patch phase that is in between do_unpack and do_configure. Signed-off-by: Jan Vermaete --- recipes-connectivity/opendds/opendds_3.29.1.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes-connectivity/opendds/opendds_3.29.1.bb b/recipes-connectivity/opendds/opendds_3.29.1.bb index 67b41cd..252ff37 100644 --- a/recipes-connectivity/opendds/opendds_3.29.1.bb +++ b/recipes-connectivity/opendds/opendds_3.29.1.bb @@ -9,9 +9,9 @@ DOC_TAO4_URI = "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE+TAO-${ DDS_SRC_BRANCH = "branch-DDS-3.29" SRC_URI = "\ git://github.com/OpenDDS/OpenDDS.git;protocol=https;branch=${DDS_SRC_BRANCH};name=opendds \ - ${@bb.utils.contains('PACKAGECONFIG', 'doc-group2', '${DOC_TAO2_URI};name=ace_tao2;unpack=0;subdir=git', '' ,d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'doc-group3', '${DOC_TAO3_URI};name=ace_tao3;unpack=0;subdir=git', '' ,d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'doc-group4', '${DOC_TAO4_URI};name=ace_tao4;unpack=0;subdir=git', '' ,d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'doc-group2', '${DOC_TAO2_URI};name=ace_tao2;unpack=1;subdir=git', '' ,d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'doc-group3', '${DOC_TAO3_URI};name=ace_tao3;unpack=1;subdir=git', '' ,d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'doc-group4', '${DOC_TAO4_URI};name=ace_tao4;unpack=1;subdir=git', '' ,d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'ishapes', 'file://0001-adding-the-ishapes-demo.patch', '', d)} \ file://0010-WIP-test-filter-tests-that-should-not-run-on-the-tar.patch \ " From 988322af1ec11d2f0630641b337c688955c100ee Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Sat, 12 Oct 2024 19:02:46 +0200 Subject: [PATCH 2/9] Nanbield release of Yocto is EOL Signed-off-by: Jan Vermaete --- conf/layer.conf | 2 +- .../opendds/{opendds_3.29.1.bb => opendds_3.30.0.bb} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename recipes-connectivity/opendds/{opendds_3.29.1.bb => opendds_3.30.0.bb} (100%) diff --git a/conf/layer.conf b/conf/layer.conf index 37660a3..4933a17 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "opendds-layer" BBFILE_PATTERN_opendds-layer = "^${LAYERDIR}/" BBFILE_PRIORITY_opendds-layer = "6" -LAYERSERIES_COMPAT_opendds-layer = "kirkstone nanbield scarthgap styhead" +LAYERSERIES_COMPAT_opendds-layer = "kirkstone scarthgap styhead" LAYERDEPENDS_opendds-layer = "core" LICENSE_PATH += "${LAYERDIR}/licenses" diff --git a/recipes-connectivity/opendds/opendds_3.29.1.bb b/recipes-connectivity/opendds/opendds_3.30.0.bb similarity index 100% rename from recipes-connectivity/opendds/opendds_3.29.1.bb rename to recipes-connectivity/opendds/opendds_3.30.0.bb From 7b2044081bc37cf70125d5168f85ff2000967344 Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Sat, 12 Oct 2024 19:03:44 +0200 Subject: [PATCH 3/9] opendds: version bump 3.29.1 -> 3.30.0 * changelog: https://opendds.readthedocs.io/en/latest-release/news.html#v3-30-0 * ptest passed in QEMU (with docgroup4) Signed-off-by: Jan Vermaete --- README | 2 +- recipes-connectivity/opendds/opendds_3.30.0.bb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README b/README index fc5f90e..5a625aa 100644 --- a/README +++ b/README @@ -37,7 +37,7 @@ II. Misc The layer contains two recipes for OpenDDS: one versioned and one not. -If PREFERRED_VERSION is not specifed in your local.conf then the OpenDDS 3.29.1 recipe will be +If PREFERRED_VERSION is not specifed in your local.conf then the OpenDDS 3.30.0 recipe will be selected for build by default The versioned recipe will use the DOC Group ACE/TAO v2 by default. diff --git a/recipes-connectivity/opendds/opendds_3.30.0.bb b/recipes-connectivity/opendds/opendds_3.30.0.bb index 252ff37..1fec353 100644 --- a/recipes-connectivity/opendds/opendds_3.30.0.bb +++ b/recipes-connectivity/opendds/opendds_3.30.0.bb @@ -1,12 +1,12 @@ DOC_TAO2_VERSION = "6.5.21" DOC_TAO3_VERSION = "7.1.3" -DOC_TAO4_VERSION = "8.0.0" +DOC_TAO4_VERSION = "8.0.1" DOC_TAO2_URI = "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE+TAO-${@'${DOC_TAO2_VERSION}'.replace('.','_')}/ACE+TAO-src-${DOC_TAO2_VERSION}.tar.gz" DOC_TAO3_URI = "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE+TAO-${@'${DOC_TAO3_VERSION}'.replace('.','_')}/ACE+TAO-src-${DOC_TAO3_VERSION}.tar.gz" DOC_TAO4_URI = "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE+TAO-${@'${DOC_TAO4_VERSION}'.replace('.','_')}/ACE+TAO-src-${DOC_TAO4_VERSION}.tar.gz" -DDS_SRC_BRANCH = "branch-DDS-3.29" +DDS_SRC_BRANCH = "branch-DDS-3.30" SRC_URI = "\ git://github.com/OpenDDS/OpenDDS.git;protocol=https;branch=${DDS_SRC_BRANCH};name=opendds \ ${@bb.utils.contains('PACKAGECONFIG', 'doc-group2', '${DOC_TAO2_URI};name=ace_tao2;unpack=1;subdir=git', '' ,d)} \ @@ -18,7 +18,7 @@ SRC_URI = "\ require opendds.inc -SRCREV = "53414662d60f5e222aad9ca4383da0d856a577df" +SRCREV = "e792fb8486972c9bd70097ffc42001808b1dc766" SRC_URI[ace_tao2.sha256sum] = "212a9ab7be08aaca69d209d56e264143733d894d715dcb573eae909c5688e3e1" SRC_URI[ace_tao3.sha256sum] = "7d394cfcc71d0e90824fd1399f93640b4c9423016b88974ad3e4694c5301d96a" -SRC_URI[ace_tao4.sha256sum] = "5767e49101a49a8597e0ba0597200eb72b3100d59217585650ddd171cbf44561" +SRC_URI[ace_tao4.sha256sum] = "a5f7b647a6a7f617a4673e455c0c800b6793c478c560087bb693cc8cb94a8a61" From 334979b4177a76c580cfe0d9c0866f25ed0adc4d Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Sat, 12 Oct 2024 19:07:47 +0200 Subject: [PATCH 4/9] kas: Use latest Yocto release (Scarthgat -> Styhead) meta-qt5 and meta-raspberrypi at master because no Styhead branch yet available Signed-off-by: Jan Vermaete --- README | 4 ++-- kas/ishapes.yaml | 2 +- kas/qemu.yaml | 4 ++-- kas/rpi.yaml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README b/README index 5a625aa..c852dd7 100644 --- a/README +++ b/README @@ -6,10 +6,10 @@ Dependencies ============ URI: git://git.openembedded.org/meta-openembedded - branch: scarthgap + branch: styhead URI: https://git.yoctoproject.org/git/poky/meta - branch: scarthgap + branch: styhead Patches ======= diff --git a/kas/ishapes.yaml b/kas/ishapes.yaml index d694591..4ee2c92 100644 --- a/kas/ishapes.yaml +++ b/kas/ishapes.yaml @@ -5,7 +5,7 @@ repos: meta-qt5: url: https://github.com/meta-qt5/meta-qt5/ path: layers/meta-qt5 - branch: scarthgap + branch: master local_conf_header: opendds-ishapes: | diff --git a/kas/qemu.yaml b/kas/qemu.yaml index 9e3c598..868f251 100644 --- a/kas/qemu.yaml +++ b/kas/qemu.yaml @@ -10,14 +10,14 @@ repos: poky: url: https://git.yoctoproject.org/git/poky path: layers/poky - branch: scarthgap + branch: styhead layers: meta: meta-poky: meta-openembedded: url: http://git.openembedded.org/meta-openembedded path: layers/meta-openembedded - branch: scarthgap + branch: styhead layers: meta-oe: meta-python: diff --git a/kas/rpi.yaml b/kas/rpi.yaml index fdc44f3..935f3d9 100644 --- a/kas/rpi.yaml +++ b/kas/rpi.yaml @@ -12,18 +12,18 @@ repos: meta-raspberrypi: url: https://github.com/agherzan/meta-raspberrypi path: layers/meta-raspberrypi - branch: scarthgap + branch: master poky: url: https://git.yoctoproject.org/git/poky path: layers/poky - branch: scarthgap + branch: styhead layers: meta: meta-poky: meta-openembedded: url: http://git.openembedded.org/meta-openembedded path: layers/meta-openembedded - branch: scarthgap + branch: styhead layers: meta-oe: meta-python: From 8aec6200412dfc478d82824e15d29e9d90ca119a Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Sun, 13 Oct 2024 11:33:01 +0200 Subject: [PATCH 5/9] opendds: Get the version of Perl with get_perl_version of cpan-base Current Yocto switched from 5.38.2 to 5.40.x Signed-off-by: Jan Vermaete --- recipes-connectivity/opendds/opendds.inc | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/recipes-connectivity/opendds/opendds.inc b/recipes-connectivity/opendds/opendds.inc index 205e900..85d6046 100644 --- a/recipes-connectivity/opendds/opendds.inc +++ b/recipes-connectivity/opendds/opendds.inc @@ -5,7 +5,7 @@ BUGTRACKER = "https://github.com/OpenDDS/OpenDDS/issues" LICENSE = "OpenDDS" LIC_FILES_CHKSUM = "file://LICENSE;md5=11ee76f6fb51f69658b5bb8327c50b11" -inherit autotools ptest +inherit autotools ptest cpan-base SRC_URI:append = " file://run-ptest" @@ -225,10 +225,10 @@ do_install_ptest() { # A symbolic link because the test script will search the execuables under DDS_ROOT. # But because of the --prefix in the configure they are installed under /usr/bin ln -s ${bindir} ${D}${datadir}/DDS_ROOT/bin - install -d ${D}/usr/lib/perl5/5.38.2/PerlACE - install -m 644 ${S}/ACE_wrappers/bin/PerlACE/*.pm ${D}/usr/lib/perl5/5.38.2/PerlACE - install -d ${D}/usr/lib/perl5/5.38.2/PerlDDS - install -m 644 ${S}/bin/PerlDDS/*.pm ${D}/usr/lib/perl5/5.38.2/PerlDDS + install -d ${D}/usr/lib/perl5/${@get_perl_version(d)}/PerlACE + install -m 644 ${S}/ACE_wrappers/bin/PerlACE/*.pm ${D}/usr/lib/perl5/${@get_perl_version(d)}/PerlACE + install -d ${D}/usr/lib/perl5/${@get_perl_version(d)}/PerlDDS + install -m 644 ${S}/bin/PerlDDS/*.pm ${D}/usr/lib/perl5/${@get_perl_version(d)}/PerlDDS install -d ${D}${datadir}/DDS_ROOT/tools/scripts/modules install -m 644 ${S}/tools/scripts/modules/*.pm ${D}${datadir}/DDS_ROOT/tools/scripts/modules @@ -236,12 +236,13 @@ do_install_ptest() { PACKAGES += "${PN}-ishapes" -INSANE_SKIP:${PN} += "dev-so" -INSANE_SKIP:${PN}-dev += "libdir" +INSANE_SKIP:${PN} += "buildpaths dev-so libdir" +INSANE_SKIP:${PN}-dbg += "buildpaths dev-so libdir" +INSANE_SKIP:${PN}-dev += "buildpaths libdir" FILES:${PN}-dev += "${datadir}" FILES:${PN}-ishapes += "${bindir}/ishapes" -FILES:${PN}-ptest += "${libdir}/perl5/5.38.2/PerlACE ${libdir}/perl5/5.38.2/PerlDDS" +FILES:${PN}-ptest += "${libdir}/perl5/${@get_perl_version(d)}/PerlACE ${libdir}/perl5/${@get_perl_version(d)}/PerlDDS" ALLOW_EMPTY:${PN}-ishapes = "1" From 334a4b14a21e149383175fb3bad3ae07af6c1db7 Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Sun, 13 Oct 2024 15:32:46 +0200 Subject: [PATCH 6/9] README: adding info about the opendds_git.bb file and having no network What can happen when working with DDS :-) Signed-off-by: Jan Vermaete --- README | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README b/README index c852dd7..0b4d6a5 100644 --- a/README +++ b/README @@ -71,3 +71,7 @@ Note that simply providing a different branch and SRCREV may be insufficient. If your desired commit is significantly newer than that used for the versioned recipe, then the generic build instructions may be insufficient or incorrect. +Note that the _git version of the recipe uses AUTOREV, which requires a network +connection. This will not work in environments without network access.((e.g. air-gapped networks). +To resolve this, the the folloging line to your local.conf file. +BBMASK += 'meta-opendds/recipes-connectivity/opendds/opendds_git.bb' From 2f65843eb040b88825199e03b3a3c7ad7f1f8922 Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Sun, 13 Oct 2024 20:54:49 +0200 Subject: [PATCH 7/9] QA: Solving multiple shlib providers This avoid installing so files in opendds-dev package. The files are available in the opendds package. E.g.: ERROR: opendds-dev: Multiple shlib providers for libACE.so.8.0.1: opendds-dev, opendds (used by files: /home/jan/projects/meta-opendds/build/tmp/work/core2-64-poky-linux/opendds/3.30.0/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/Dispose/test) Signed-off-by: Jan Vermaete --- recipes-connectivity/opendds/opendds.inc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipes-connectivity/opendds/opendds.inc b/recipes-connectivity/opendds/opendds.inc index 85d6046..8ee7cc0 100644 --- a/recipes-connectivity/opendds/opendds.inc +++ b/recipes-connectivity/opendds/opendds.inc @@ -123,6 +123,10 @@ 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 files from DDS_ROOT to avoid packing them twice + # one in the opendds package and one in the opendds-dev 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}/ From 14f986aa688cd7ded72f94dcbdf22d7d36157852 Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Tue, 15 Oct 2024 09:53:01 +0200 Subject: [PATCH 8/9] opendds: removed security from the default PACKAGECONFIG Signed-off-by: Jan Vermaete --- recipes-connectivity/opendds/opendds.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes-connectivity/opendds/opendds.inc b/recipes-connectivity/opendds/opendds.inc index 8ee7cc0..05e9249 100644 --- a/recipes-connectivity/opendds/opendds.inc +++ b/recipes-connectivity/opendds/opendds.inc @@ -13,7 +13,7 @@ SRC_URI:append = " \ ${@bb.utils.contains('PACKAGECONFIG', 'tests', 'file://0003-tests-added-dependencies-to-run-all-tests.patch', '', d)} \ " -PACKAGECONFIG ??= "doc-group2 security ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'tests', '', d)}" +PACKAGECONFIG ??= "doc-group2 ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'tests', '', d)}" PACKAGECONFIG:class-native ??= "doc-group2" PACKAGECONFIG[security] = "--security, , openssl xerces-c, " PACKAGECONFIG[ishapes] = "--qt=${STAGING_DIR_NATIVE}${prefix_native} --qt-include=${STAGING_INCDIR},,qtbase qtbase-native" From 256fce95c97e07ef1d1fd36a38701fbe7dd428ec Mon Sep 17 00:00:00 2001 From: Jan Vermaete Date: Tue, 15 Oct 2024 09:32:50 +0200 Subject: [PATCH 9/9] opendss-example: recipe added with the Messenger example of the DevGuideExamples Demo code of an OpenDDS application with CMake. See: * https://github.com/OpenDDS/OpenDDS/tree/master/DevGuideExamples/DCPS/Messenger * https://opendds.readthedocs.io/en/latest-release/devguide/getting_started.html TODO: * this example is not working when 'security' is added the the PACKAGECONFIG of OpenDDS * native version of this recipe is still misssing Signed-off-by: Jan Vermaete --- kas/opendds-example.yaml | 6 +++ .../opendds/opendds-example/readme.md | 23 +++++++++++ .../opendds/opendds-example_3.30.0.bb | 39 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 kas/opendds-example.yaml create mode 100644 recipes-connectivity/opendds/opendds-example/readme.md create mode 100644 recipes-connectivity/opendds/opendds-example_3.30.0.bb diff --git a/kas/opendds-example.yaml b/kas/opendds-example.yaml new file mode 100644 index 0000000..a1a720f --- /dev/null +++ b/kas/opendds-example.yaml @@ -0,0 +1,6 @@ +header: + version: 1 + +local_conf_header: + opendds-example: | + IMAGE_INSTALL:append = " opendds-example" diff --git a/recipes-connectivity/opendds/opendds-example/readme.md b/recipes-connectivity/opendds/opendds-example/readme.md new file mode 100644 index 0000000..e30587f --- /dev/null +++ b/recipes-connectivity/opendds/opendds-example/readme.md @@ -0,0 +1,23 @@ +OpenDDS demo application +======================== + +See: + +* https://github.com/OpenDDS/OpenDDS/tree/master/DevGuideExamples/DCPS/Messenger +* https://opendds.readthedocs.io/en/latest-release/devguide/getting_started.html + +Run publisher +------------- + +``` +cd /usr/bin/opendds-example +./publisher -DCPSConfigFile rtps.ini +``` + +Run subscriber +-------------- + +``` +cd /usr/bin/opendds-example +./subscriber -DCPSConfigFile rtps.ini +``` diff --git a/recipes-connectivity/opendds/opendds-example_3.30.0.bb b/recipes-connectivity/opendds/opendds-example_3.30.0.bb new file mode 100644 index 0000000..1a24636 --- /dev/null +++ b/recipes-connectivity/opendds/opendds-example_3.30.0.bb @@ -0,0 +1,39 @@ +SUMMARY = "OpenDDS example" +DESCRIPTION = "DevGuideExample DCPS Example from OpenDDS" +HOMEPAGE = "https://opendds.readthedocs.io/en/latest-release/devguide/getting_started.html" +LICENSE = "OpenDDS" +LIC_FILES_CHKSUM = "file://README.md;md5=3c38eddba8f9be09c2acc10026ca0ee1" + +DEPENDS = "\ + opendds \ + opendds-native \ +" + +DDS_SRC_BRANCH = "branch-DDS-3.29" + +SRC_URI = "\ + git://github.com/OpenDDS/OpenDDS.git;protocol=https;branch=${DDS_SRC_BRANCH};subpath=DevGuideExamples/DCPS/Messenger \ + file://readme.md \ +" + +SRCREV = "53414662d60f5e222aad9ca4383da0d856a577df" + +S = "${WORKDIR}/Messenger" + +inherit cmake + +EXTRA_OECMAKE += "\ + -DCMAKE_PREFIX_PATH=${WORKDIR}/recipe-sysroot/usr/ \ +" + +do_install() { + install -d ${D}${bindir}/${BPN} + install -m 0755 publisher ${D}${bindir}/${BPN} + install -m 0755 subscriber ${D}${bindir}/${BPN} + install -m 0644 rtps.ini ${D}${bindir}/${BPN} + install -m 0644 ${UNPACKDIR}/readme.md ${D}${bindir}/${BPN} +} + +RDEPENDS:${PN} += "opendds" + +INSANE_SKIP:${PN}-src += "buildpaths"