From 1a61c08b15eb73ebeae202fe92b65809e77edd42 Mon Sep 17 00:00:00 2001 From: Joseph Nobes Date: Mon, 20 Jul 2026 14:15:29 +0100 Subject: [PATCH 1/5] Migrated odin-control to PyPI based install Also added python3 to package name for consistency --- .../classes/odin-control-instance.bbclass | 2 +- .../classes/python3-odin-control.bbclass | 16 ++++++++++++++++ .../loki-update/loki-update-adapter.bb | 4 ++-- .../odin-control/python3-odin-control_1.6.2.bb | 10 ++++++++++ 4 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass create mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_1.6.2.bb diff --git a/os/petalinux-custom/project-spec/meta-user/classes/odin-control-instance.bbclass b/os/petalinux-custom/project-spec/meta-user/classes/odin-control-instance.bbclass index d8562ea4..17d5fc78 100644 --- a/os/petalinux-custom/project-spec/meta-user/classes/odin-control-instance.bbclass +++ b/os/petalinux-custom/project-spec/meta-user/classes/odin-control-instance.bbclass @@ -1,5 +1,5 @@ # RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "odin-control (>=1.3.0)" +RDEPENDS:${PN} += "python3-odin-control (>=1.3.0)" RDEPENDS:${PN} += "odin-sequencer (>=0.2.0)" RDEPENDS:${PN} += "odin-devices (>=1.1.0)" RDEPENDS:${PN} += "python3-msgpack" diff --git a/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass b/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass new file mode 100644 index 00000000..155b7d43 --- /dev/null +++ b/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass @@ -0,0 +1,16 @@ +SUMMARY = "This is a recipe to build odin-control on PetaLinux from PyPI" + +# Based on the pypi bbclass from langdale: https://docs.yoctoproject.org/langdale/ref-manual/classes.html#pypi-bbclass +# This ssets the URI, SECTION, HOMEPAGE, UPSTREAM_CHECK_URI, UPSTREAM_CHECK_REGEX and CVE_PRODUCT. It will automatically +# pull from the same package name as this file, with python-/python3- stripped if necessary. + +# Update the package name- this would normally come from the filename, but in our case it needs an underscore, +# which is not allowed. +PYPI_PACKAGE = "odin_control" + +# This has to be in the format expected in Yocto's license list... +LICENSE = "Apachev2" +# Get this value by running md5sum on the license file +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" + +inherit pypi setuptools3 diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/loki-update/loki-update-adapter.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/loki-update/loki-update-adapter.bb index 0a37a081..888c8919 100644 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/loki-update/loki-update-adapter.bb +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/loki-update/loki-update-adapter.bb @@ -2,7 +2,7 @@ SUMMARY = "A recipe for the Loki Update adapter" HOMEPAGE = "https://github.com/stfc-aeg/loki-update" -RDEPENDS:${PN} += "odin-control (>= 1.6.0)" +RDEPENDS:${PN} += "python3-odin-control (= 1.6.2)" RDEPENDS:${PN} += "python3-pyfdt" # Repo will be cloned into here @@ -30,4 +30,4 @@ do_install:prepend() { LICENSE = "CLOSED" -S = "${WORKDIR}/git" \ No newline at end of file +S = "${WORKDIR}/git" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_1.6.2.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_1.6.2.bb new file mode 100644 index 00000000..2dc3f7d0 --- /dev/null +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_1.6.2.bb @@ -0,0 +1,10 @@ +inherit python3-odin-control + +RDEPENDS:${PN} += "python3-setuptools" +RDEPENDS:${PN} += "python3-tornado (>=4.3)" +RDEPENDS:${PN} += "python3-fcntl" +RDEPENDS:${PN} += "python3-future" +RDEPENDS:${PN} += "python3-pyzmq (>=17.1.0)" +RDEPENDS:${PN} += "python3-psutil (>=5.0)" + +SRC_URI[sha256sum] = "b159dbdcd6427105e0a35a0e56b9cb96639ccb84c92d466ab8ffffefb5a537f3" From 78559cc115629a850c8bd3af7ea094a38bc4e6c5 Mon Sep 17 00:00:00 2001 From: Joseph Nobes Date: Wed, 22 Jul 2026 14:23:30 +0100 Subject: [PATCH 2/5] Update python setuptools-scm to version 8.0.4 to allow for modern version syntax Modern projects, including odin-control, use version_file rather than write_to. This change appeared in setuptools-scm 8, meaning that older versions no longer recognise the syntax. This is not a version change that can be sitestepped, and also does not seem to cause any breakages (it is only coming from version 7). This is likely to prevent issues with many other modern recipes. Updating this system pacakge requires the signature to be unlocked --- .../project-spec/meta-user/conf/layer.conf | 7 +++- ...0001-respect-GIT_CEILING_DIRECTORIES.patch | 35 +++++++++++++++++++ .../python/python3-setuptools-scm_8.0.4.bb | 32 +++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-devtools/python/python3-setuptools-scm/0001-respect-GIT_CEILING_DIRECTORIES.patch create mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-devtools/python/python3-setuptools-scm_8.0.4.bb diff --git a/os/petalinux-custom/project-spec/meta-user/conf/layer.conf b/os/petalinux-custom/project-spec/meta-user/conf/layer.conf index 32e4e814..1ec9c88c 100644 --- a/os/petalinux-custom/project-spec/meta-user/conf/layer.conf +++ b/os/petalinux-custom/project-spec/meta-user/conf/layer.conf @@ -11,5 +11,10 @@ BBFILE_PRIORITY_meta-loki-bsp-legacy = "8" LAYERSERIES_COMPAT_meta-loki-bsp-legacy = "langdale" OE_TERMINAL = "screen" -SIGGEN_UNLOCKED_RECIPES += " dropbear tzdata" + +# These recipes are locked to keep you from updating core components in the current Yocto version. +# They have been upgraded only where absolutely necessary, and could be removed if the entire +# Yocto version was advanced. +SIGGEN_UNLOCKED_RECIPES += " dropbear tzdata python3-setuptools-scm-native" + IMAGE_INSTALL:append = " libgpiod-tools nfs-utils git ntp ntpdate ntpq sntp tzdata parted u-boot-tools python-loki-adapter loki-user loki-config loki-update python3-zoneinfo" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-devtools/python/python3-setuptools-scm/0001-respect-GIT_CEILING_DIRECTORIES.patch b/os/petalinux-custom/project-spec/meta-user/recipes-devtools/python/python3-setuptools-scm/0001-respect-GIT_CEILING_DIRECTORIES.patch new file mode 100644 index 00000000..a79ed8f4 --- /dev/null +++ b/os/petalinux-custom/project-spec/meta-user/recipes-devtools/python/python3-setuptools-scm/0001-respect-GIT_CEILING_DIRECTORIES.patch @@ -0,0 +1,35 @@ +From a1cc419a118560d63e1ab8838c256a3622185750 Mon Sep 17 00:00:00 2001 +From: Etienne Cordonnier +Date: Thu, 13 Feb 2025 15:44:40 +0100 +Subject: [PATCH] respect GIT_CEILING_DIRECTORIES + +Fix for https://github.com/pypa/setuptools-scm/issues/1103 + +When searching for the root-directory of the git repository e.g. with git rev-parse --show-toplevel, +git stops the search when reaching $GIT_CEILING_DIRECTORIES. By ignoring this variable, the function +_git_toplevel can go above the real git repository (e.g. when packaging a tarball without .git repository), +and then runs "git archive" on an unrelated git repository. + +Upstream-Status: Pending + +Signed-off-by: Ross Burton +Signed-off-by: Etienne Cordonnier +--- + src/setuptools_scm/_run_cmd.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/setuptools_scm/_run_cmd.py b/src/setuptools_scm/_run_cmd.py +index f2a8285..7e13d9f 100644 +--- a/src/setuptools_scm/_run_cmd.py ++++ b/src/setuptools_scm/_run_cmd.py +@@ -98,7 +98,7 @@ def no_git_env(env: Mapping[str, str]) -> dict[str, str]: + k: v + for k, v in env.items() + if not k.startswith("GIT_") +- or k in ("GIT_EXEC_PATH", "GIT_SSH", "GIT_SSH_COMMAND") ++ or k in ("GIT_CEILING_DIRECTORIES", "GIT_EXEC_PATH", "GIT_SSH", "GIT_SSH_COMMAND") + } + + +-- +2.43.0 diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-devtools/python/python3-setuptools-scm_8.0.4.bb b/os/petalinux-custom/project-spec/meta-user/recipes-devtools/python/python3-setuptools-scm_8.0.4.bb new file mode 100644 index 00000000..d5f8358a --- /dev/null +++ b/os/petalinux-custom/project-spec/meta-user/recipes-devtools/python/python3-setuptools-scm_8.0.4.bb @@ -0,0 +1,32 @@ +SUMMARY = "the blessed package to manage your versions by scm tags" +HOMEPAGE = "https://pypi.org/project/setuptools-scm/" +DESCRIPTION = "setuptools_scm handles managing your Python package \ +versions in SCM metadata instead of declaring them as the version \ +argument or in a SCM managed file." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2" + +SRC_URI += "file://0001-respect-GIT_CEILING_DIRECTORIES.patch" +SRC_URI[sha256sum] = "b5f43ff6800669595193fd09891564ee9d1d7dcb196cab4b2506d53a2e1c95c7" + +inherit pypi python_setuptools_build_meta + +UPSTREAM_CHECK_REGEX = "scm-(?P.*)\.tar" + +DEPENDS += "python3-tomli-native python3-packaging-native python3-typing-extensions-native" + +RDEPENDS:${PN} = "\ + python3-packaging \ + python3-pip \ + python3-pyparsing \ + python3-setuptools \ + python3-tomli \ + python3-typing-extensions \ +" + +RDEPENDS:${PN}:append:class-target = " \ + python3-debugger \ + python3-json \ +" + +BBCLASSEXTEND = "native nativesdk" From 22792eddcbe0256f6b2e06d07c6cc0f91470546c Mon Sep 17 00:00:00 2001 From: Joseph Nobes Date: Wed, 22 Jul 2026 14:26:05 +0100 Subject: [PATCH 3/5] Updated class to avoid new setuptools dependencies, and support only odin 2.0 There is no good reason to support older versions of odin, as the point of this PR is a step change. The dependencies were making this more trouble than it was worth, so the 1.6.2 recipe has been removed. There is still currently a patch to remove build requirements, but this should no longer be needed with the addition of setuptools-scm 8.0.4 --- .../meta-user/classes/python3-odin-control.bbclass | 8 +++++++- .../remove-build-system-requirements.patch | 10 ++++++++++ .../odin-control/python3-odin-control_1.6.2.bb | 10 ---------- .../python3-odin-control_2.%.%.bbappend | 0 .../odin-control/python3-odin-control_2.0.0.bb | 13 +++++++++++++ 5 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control/remove-build-system-requirements.patch delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_1.6.2.bb create mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.%.%.bbappend create mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.0.0.bb diff --git a/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass b/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass index 155b7d43..a4261fd8 100644 --- a/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass +++ b/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass @@ -13,4 +13,10 @@ LICENSE = "Apachev2" # Get this value by running md5sum on the license file LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" -inherit pypi setuptools3 +inherit pypi python_setuptools_build_meta +#inherit pypi python_poetry_core + +DEPENDS += " \ + python3-setuptools-scm-native \ + python3-toml-native \ +" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control/remove-build-system-requirements.patch b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control/remove-build-system-requirements.patch new file mode 100644 index 00000000..ee4515fb --- /dev/null +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control/remove-build-system-requirements.patch @@ -0,0 +1,10 @@ +diff --git a/pyproject.toml b/pyproject.toml +index 1234567..abcdef0 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,3 +1,3 @@ + [build-system] +-requires = ["setuptools>=64", "setuptools_scm[toml]>=8"] +-build-backend = "setuptools.build_meta" ++requires = ["setuptools", "setuptools_scm"] ++build-backend = "setuptools.build_meta" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_1.6.2.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_1.6.2.bb deleted file mode 100644 index 2dc3f7d0..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_1.6.2.bb +++ /dev/null @@ -1,10 +0,0 @@ -inherit python3-odin-control - -RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "python3-tornado (>=4.3)" -RDEPENDS:${PN} += "python3-fcntl" -RDEPENDS:${PN} += "python3-future" -RDEPENDS:${PN} += "python3-pyzmq (>=17.1.0)" -RDEPENDS:${PN} += "python3-psutil (>=5.0)" - -SRC_URI[sha256sum] = "b159dbdcd6427105e0a35a0e56b9cb96639ccb84c92d466ab8ffffefb5a537f3" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.%.%.bbappend b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.%.%.bbappend new file mode 100644 index 00000000..e69de29b diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.0.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.0.0.bb new file mode 100644 index 00000000..91ff95a7 --- /dev/null +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.0.0.bb @@ -0,0 +1,13 @@ +inherit python3-odin-control + +RDEPENDS:${PN} += "python3-tornado (>=6.0)" +RDEPENDS:${PN} += "python3-psutil (>=5.0)" + +SRC_URI += "file://remove-build-system-requirements.patch" + +SRC_URI[sha256sum] = "52f74abe94aebcdd19018894dcc343950d65e022ff68f7be4604edd472632eb3" + +# Specific build tool versions for installation from the pyproject.toml +DEPENDS += " \ + python3-setuptools (>=64) \ +" From 0c6a23ea166c41a60e3abb93d55b7347847b3393 Mon Sep 17 00:00:00 2001 From: Joseph Nobes Date: Wed, 22 Jul 2026 14:28:19 +0100 Subject: [PATCH 4/5] Change recipes requiring odin-control to new python3-odin-control Old recipes for odin-control also removed --- .../classes/odin-control-instance.bbclass | 2 +- .../loki-update/loki-update-adapter.bb | 2 +- .../odin-control/odin-control_1.0.0.bb | 22 ------------ .../odin-control/odin-control_1.0.0.bbappend | 14 -------- .../odin-control/odin-control_1.1.0.bb | 24 ------------- .../odin-control/odin-control_1.1.0.bbappend | 14 -------- .../odin-control/odin-control_1.2.0.bb | 25 ------------- .../odin-control/odin-control_1.3.0.bb | 25 ------------- .../odin-control/odin-control_1.5.0.bb | 22 ------------ .../odin-control/odin-control_1.6.0.bb | 35 ------------------- .../odin-devices/odin-devices_1.0.0.bb | 2 +- .../odin-devices/odin-devices_1.1.0.bb | 2 +- .../odin-loki-adapter/python-loki-adapter.bb | 2 +- .../odin-sequencer/odin-sequencer_0.2.0.bb | 2 +- 14 files changed, 6 insertions(+), 187 deletions(-) delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.0.0.bb delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.0.0.bbappend delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.1.0.bb delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.1.0.bbappend delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.2.0.bb delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.3.0.bb delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.5.0.bb delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.6.0.bb diff --git a/os/petalinux-custom/project-spec/meta-user/classes/odin-control-instance.bbclass b/os/petalinux-custom/project-spec/meta-user/classes/odin-control-instance.bbclass index 17d5fc78..99b8235e 100644 --- a/os/petalinux-custom/project-spec/meta-user/classes/odin-control-instance.bbclass +++ b/os/petalinux-custom/project-spec/meta-user/classes/odin-control-instance.bbclass @@ -1,5 +1,5 @@ # RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "python3-odin-control (>=1.3.0)" +RDEPENDS:${PN} += "python3-odin-control (>=2.0.0)" RDEPENDS:${PN} += "odin-sequencer (>=0.2.0)" RDEPENDS:${PN} += "odin-devices (>=1.1.0)" RDEPENDS:${PN} += "python3-msgpack" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/loki-update/loki-update-adapter.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/loki-update/loki-update-adapter.bb index 888c8919..3efad418 100644 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/loki-update/loki-update-adapter.bb +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/loki-update/loki-update-adapter.bb @@ -2,7 +2,7 @@ SUMMARY = "A recipe for the Loki Update adapter" HOMEPAGE = "https://github.com/stfc-aeg/loki-update" -RDEPENDS:${PN} += "python3-odin-control (= 1.6.2)" +RDEPENDS:${PN} += "python3-odin-control (>=2.0.0)" RDEPENDS:${PN} += "python3-pyfdt" # Repo will be cloned into here diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.0.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.0.0.bb deleted file mode 100644 index 228cbd69..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.0.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "This is a recipe to build odin-control on PetaLinux" - -# RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "python3-tornado (>=4.3)" -RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "python3-fcntl" -RDEPENDS:${PN} += "python3-future" - -SRC_URI = "git://github.com/odin-detector/odin-control.git;tag=${PV} \ - file://odin-control-fix-non-required-dependencies.patch" - -# SRCREV is the git tag, defined by the filename package version (wildcard) -#SRCREV = ${PV} - -# This has to be in the format expected in Yocto's license list... -LICENSE = "Apachev2" -# Get this value by running md5sum on the license file -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" - -inherit setuptools3 - -S = "${WORKDIR}/git" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.0.0.bbappend b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.0.0.bbappend deleted file mode 100644 index ff9642e4..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.0.0.bbappend +++ /dev/null @@ -1,14 +0,0 @@ -# Temporary bbappend to force odin_control recipes to use the async_adapter branch needed for mercury support. -# Eventually when async support is merged into odin_control's master tagged revisions, this will not be required. -# -# To use this recipe, require odin-control-async. - -#PACKAGES += "${PN}-async" -#SRC_URI_${PN}-async = "git://github.com/odin-detector/odin-control.git;branch=async_adapter" -#SRCREV_${PN}-async = "75210de500890a6b181433cc12dfbd5133975948" -#PV_${PN}-async = "1.0+git${SRCPV}" - -SRC_URI = "git://github.com/odin-detector/odin-control.git;branch=async_adapter" -SRCREV = "75210de500890a6b181433cc12dfbd5133975948" - -# PV is not updated so that recipes that require specific versions of odin_control are not disrupted. diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.1.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.1.0.bb deleted file mode 100644 index 8103b3ad..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.1.0.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "This is a recipe to build odin-control on PetaLinux" - -# RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "python3-tornado (<6.0)" -RDEPENDS:${PN} += "python3-fcntl" -RDEPENDS:${PN} += "python3-future" -RDEPENDS:${PN} += "python3-pyzmq (>=17.0)" -RDEPENDS:${PN} += "python3-psutil" - -SRC_URI = "git://github.com/odin-detector/odin-control.git;tag=${PV}" -# file://odin-control-fix-non-required-dependencies.patch" - -# SRCREV is the git tag, defined by the filename package version (wildcard) -#SRCREV = ${PV} - -# This has to be in the format expected in Yocto's license list... -LICENSE = "Apachev2" -# Get this value by running md5sum on the license file -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" - -inherit setuptools3 - -S = "${WORKDIR}/git" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.1.0.bbappend b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.1.0.bbappend deleted file mode 100644 index 18240a20..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.1.0.bbappend +++ /dev/null @@ -1,14 +0,0 @@ -# Temporary bbappend to force odin_control recipes to use the async_adapter branch needed for mercury support. -# Eventually when async support is merged into odin_control's master tagged revisions, this will not be required. -# -# To use this recipe, require odin-control-async. - -#PACKAGES += "${PN}-async" -#SRC_URI_${PN}-async = "git://github.com/odin-detector/odin-control.git;branch=async_adapter" -#SRCREV_${PN}-async = "75210de500890a6b181433cc12dfbd5133975948" -#PV_${PN}-async = "1.0+git${SRCPV}" - -SRC_URI = "git://git@github.com/odin-detector/odin-control.git;protocol=ssh" -SRCREV = "75210de500890a6b181433cc12dfbd5133975948" - -# PV is not updated so that recipes that require specific versions of odin_control are not disrupted. diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.2.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.2.0.bb deleted file mode 100644 index 54ae15d3..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.2.0.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "This is a recipe to build odin-control on PetaLinux" - -# RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "python3-tornado (<6.0)" -RDEPENDS:${PN} += "python3-fcntl" -RDEPENDS:${PN} += "python3-future" -RDEPENDS:${PN} += "python3-pyzmq (>=17.0)" -RDEPENDS:${PN} += "python3-psutil" - -SRC_URI = "git://git@github.com/odin-detector/odin-control.git;protocol=ssh;tag=${PV}" -SRC_URI[md5sum] = "1af5b49ffe84b3360b23086c7bb06a15" - -# SRCREV is the git tag, defined by the filename package version (wildcard) -#SRCREV = ${PV} - -# This has to be in the format expected in Yocto's license list... -LICENSE = "Apachev2" -# Get this value by running md5sum on the license file -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" - - -inherit setuptools3 - -S = "${WORKDIR}/git" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.3.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.3.0.bb deleted file mode 100644 index 54ae15d3..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.3.0.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "This is a recipe to build odin-control on PetaLinux" - -# RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "python3-tornado (<6.0)" -RDEPENDS:${PN} += "python3-fcntl" -RDEPENDS:${PN} += "python3-future" -RDEPENDS:${PN} += "python3-pyzmq (>=17.0)" -RDEPENDS:${PN} += "python3-psutil" - -SRC_URI = "git://git@github.com/odin-detector/odin-control.git;protocol=ssh;tag=${PV}" -SRC_URI[md5sum] = "1af5b49ffe84b3360b23086c7bb06a15" - -# SRCREV is the git tag, defined by the filename package version (wildcard) -#SRCREV = ${PV} - -# This has to be in the format expected in Yocto's license list... -LICENSE = "Apachev2" -# Get this value by running md5sum on the license file -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" - - -inherit setuptools3 - -S = "${WORKDIR}/git" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.5.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.5.0.bb deleted file mode 100644 index 490e33cb..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.5.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "This is a recipe to build odin-control on PetaLinux" - -# RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "python3-tornado (<6.0)" -RDEPENDS:${PN} += "python3-fcntl" -RDEPENDS:${PN} += "python3-future" -RDEPENDS:${PN} += "python3-pyzmq (>=17.0)" -RDEPENDS:${PN} += "python3-psutil" - -SRC_URI = "git://github.com/odin-detector/odin-control.git;protocol=http;tag=${PV}" -SRC_URI[md5sum] = "1af5b49ffe84b3360b23086c7bb06a15" - -# This has to be in the format expected in Yocto's license list... -LICENSE = "Apachev2" -# Get this value by running md5sum on the license file -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" - - -inherit setuptools3 - -S = "${WORKDIR}/git" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.6.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.6.0.bb deleted file mode 100644 index 6c0aafc0..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/odin-control_1.6.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "This is a recipe to build odin-control on PetaLinux" - -# RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "python3-tornado (>=4.3)" -RDEPENDS:${PN} += "python3-fcntl" -RDEPENDS:${PN} += "python3-future" -RDEPENDS:${PN} += "python3-pyzmq (>=17.1.0)" -RDEPENDS:${PN} += "python3-psutil (>=5.0)" - - -# To build to a tag, update the tag here as well as the commit hash below. -# You can fetch the git hash with git ls-remote https://github.com/ refs/tags/ -GIT_TAG = "1.6.0" -GIT_HASH = "a5a399d21818405c262a1f09cdfe32a944e5f084" - -PV = "${GIT_TAG}+git${SRCPV}" - -# AUTOREV will just pull latest version -#SRCREV = "${AUTOREV}" -# SRCREV must now be the git hash of the target tag since Yocto does not like hanging references. -SRCREV = "${GIT_HASH}" - -SRC_URI = "git://github.com/odin-detector/odin-control.git;protocol=http;branch=main" -SRC_URI[md5sum] = "1af5b49ffe84b3360b23086c7bb06a15" - -# This has to be in the format expected in Yocto's license list... -LICENSE = "Apachev2" -# Get this value by running md5sum on the license file -LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" - - -inherit setuptools3 - -S = "${WORKDIR}/git" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-devices/odin-devices_1.0.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-devices/odin-devices_1.0.0.bb index 582ca1d2..5ed768a5 100644 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-devices/odin-devices_1.0.0.bb +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-devices/odin-devices_1.0.0.bb @@ -2,7 +2,7 @@ SUMMARY = "This is a recipe to build odin-devices on PetaLinux" # RDEPENDS specifies packages that are required at runtime on the host, as well as for build. RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "odin-control" +RDEPENDS:${PN} += "python3-odin-control (>=1.6.0)" RDEPENDS:${PN} += "python3-spidev" RDEPENDS:${PN} += "python3-smbus" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-devices/odin-devices_1.1.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-devices/odin-devices_1.1.0.bb index dd91305c..1a7021f2 100644 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-devices/odin-devices_1.1.0.bb +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-devices/odin-devices_1.1.0.bb @@ -2,7 +2,7 @@ SUMMARY = "This is a recipe to build odin-devices on PetaLinux" # RDEPENDS specifies packages that are required at runtime on the host, as well as for build. RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "odin-control" +RDEPENDS:${PN} += "python3-odin-control (>=1.6.0)" RDEPENDS:${PN} += "python3-spidev" RDEPENDS:${PN} += "python3-smbus2" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-loki-adapter/python-loki-adapter.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-loki-adapter/python-loki-adapter.bb index 2f213b2f..241e38ad 100644 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-loki-adapter/python-loki-adapter.bb +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-loki-adapter/python-loki-adapter.bb @@ -3,7 +3,7 @@ SECTION = "examples" LICENSE = "CLOSED" RDEPENDS:${PN} += "python3-setuptools" -RDEPENDS:${PN} += "odin-control (>=1.3.0)" +RDEPENDS:${PN} += "python3-odin-control (>=2.0.0)" RDEPENDS:${PN} += "odin-devices (>=1.1.0)" SRC_URI = "file://setup.py \ diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-sequencer/odin-sequencer_0.2.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-sequencer/odin-sequencer_0.2.0.bb index 86793678..adcc07fe 100644 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-sequencer/odin-sequencer_0.2.0.bb +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-sequencer/odin-sequencer_0.2.0.bb @@ -1,7 +1,7 @@ SUMMARY = "This is a recipe to build odin-sequencer on PetaLinux" # RDEPENDS specifies packages that are required at runtime on the host, as well as for build. -RDEPENDS:${PN} += "odin-control" +RDEPENDS:${PN} += "python3-odin-control (>=1.6.0)" RDEPENDS:${PN} += "python3-inotify" # To build to a tag, update the tag here as well as the commit hash below. From 01ed67959f59548ffac0d2b0c98e7af76ad42799 Mon Sep 17 00:00:00 2001 From: Joseph Nobes Date: Wed, 22 Jul 2026 15:59:59 +0100 Subject: [PATCH 5/5] Tidying, remove patch no longer required Remove pointless comments. Also, since the setuptools-scm version has been updated, the patch is no longer required. --- .../classes/python3-odin-control.bbclass | 1 - ...n-control-fix-non-required-dependencies.patch | 16 ---------------- .../remove-build-system-requirements.patch | 10 ---------- .../python3-odin-control_2.%.%.bbappend | 0 .../odin-control/python3-odin-control_2.0.0.bb | 3 +-- 5 files changed, 1 insertion(+), 29 deletions(-) delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/files/odin-control-fix-non-required-dependencies.patch delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control/remove-build-system-requirements.patch delete mode 100644 os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.%.%.bbappend diff --git a/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass b/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass index a4261fd8..c5c0eb56 100644 --- a/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass +++ b/os/petalinux-custom/project-spec/meta-user/classes/python3-odin-control.bbclass @@ -14,7 +14,6 @@ LICENSE = "Apachev2" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" inherit pypi python_setuptools_build_meta -#inherit pypi python_poetry_core DEPENDS += " \ python3-setuptools-scm-native \ diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/files/odin-control-fix-non-required-dependencies.patch b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/files/odin-control-fix-non-required-dependencies.patch deleted file mode 100644 index 7f2d1980..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/files/odin-control-fix-non-required-dependencies.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/setup.py b/setup.py -index 0d442e6..ef50e48 100644 ---- a/setup.py -+++ b/setup.py -@@ -3,10 +3,7 @@ from setuptools import setup, find_packages - import versioneer - - install_requires = [ -- 'tornado>=4.3', -- 'pyzmq>=17.0', -- 'future', -- 'psutil>=5.0', -+ 'tornado>=4.3' - ] - - if sys.version_info[0] == 2: diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control/remove-build-system-requirements.patch b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control/remove-build-system-requirements.patch deleted file mode 100644 index ee4515fb..00000000 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control/remove-build-system-requirements.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff --git a/pyproject.toml b/pyproject.toml -index 1234567..abcdef0 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -1,3 +1,3 @@ - [build-system] --requires = ["setuptools>=64", "setuptools_scm[toml]>=8"] --build-backend = "setuptools.build_meta" -+requires = ["setuptools", "setuptools_scm"] -+build-backend = "setuptools.build_meta" diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.%.%.bbappend b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.%.%.bbappend deleted file mode 100644 index e69de29b..00000000 diff --git a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.0.0.bb b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.0.0.bb index 91ff95a7..8af4e895 100644 --- a/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.0.0.bb +++ b/os/petalinux-custom/project-spec/meta-user/recipes-apps/odin-control/python3-odin-control_2.0.0.bb @@ -3,11 +3,10 @@ inherit python3-odin-control RDEPENDS:${PN} += "python3-tornado (>=6.0)" RDEPENDS:${PN} += "python3-psutil (>=5.0)" -SRC_URI += "file://remove-build-system-requirements.patch" - SRC_URI[sha256sum] = "52f74abe94aebcdd19018894dcc343950d65e022ff68f7be4604edd472632eb3" # Specific build tool versions for installation from the pyproject.toml DEPENDS += " \ python3-setuptools (>=64) \ + python3-setuptools-scm-native (>=8) \ "