From 63512e51692b48ad645dba0a21858cc48d5b416f Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Thu, 26 May 2022 10:38:07 -0400 Subject: kuksa-dbc-feeder: add recipe and dependencies Add a kuksa-dbc-feeder recipe to build the sample CAN feeder for the KUKSA.val Vehicle Information Service (VIS) server and add it to the agl-demo-platform image by adding it to packagegroup-agl-ivi-services. Local patches are applied to enable building with OpenEmbedded, make installation into standard Linux FHS locations feasible, and improve usability on target with respect to logging and error handling. These will be discussed with upstream to hopefully get them integrated. Additional changes: - Add a recipe for the required kuksa-viss-client Python module included with the KUKSA.val source tree. The module is also available via pypi.org, but keeping all the pieces in lockstep for now seems better, so it is built out of a clone of the kuksa.val repo using the same SRCREV as the server and kuksa-dbc-feeder. - Add backports of recipes for required Python modules: python3-bitstruct, python3-can, python3-cantools, python3-cmd2, python3-diskcache, python3-importlib-metadata, python3-setuptools-scm, python3-textparser, python3-toml This is required to both add recipes missing from dunfell as well as to meet version requirements for kuksa-viss-client and kuksa-dbc-feeder. For the most part the recipes were picked from the poky and meta-openembedded kirkstone branches before the significant Python module build rework done for the kirkstone M4 milestone. There is some potential for updating them to newer backports, but this will be a low priority unless there are explicit requests. - Add bbappend for python3-cantools to add some missing runtime dependencies discovered during testing. This will be addressed upstream in meta-python as time permits. - Add new recipes for required Python modules: python3-argparse-addons, python3-can-j1939, python3-py-expression-eval, python3-setuptools-git-versioning These will be upstreamed to meta-python as time permits. - Add minimal DBC file and mapping configuration. At present the agl-vcar.dbc file only contains the minimum message definitions known to be required for the AGL demo platform, namely vehicle and engine speeds and the steering wheel events. - Add can-dev-helper recipe to install a systemd unit and script to ensure a CAN interface is available for testing. This is a tweaked version of what was previously used with agl-service-can-low-level. Bug-AGL: SPEC-4405 Signed-off-by: Scott Murray Change-Id: I4f9fe9c34165da30005d39689739c73dfdbbc615 --- .../python/python3-argparse-addons_0.7.0.bb | 10 ++++++++ .../python/python3-bitstruct_8.12.1.bb | 13 +++++++++++ recipes-devtools/python/python3-can-j1939_2.0.6.bb | 13 +++++++++++ recipes-devtools/python/python3-can_3.3.4.bb | 27 ++++++++++++++++++++++ recipes-devtools/python/python3-cantools_37.0.1.bb | 19 +++++++++++++++ .../python/python3-cantools_37.0.1.bbappend | 4 ++++ recipes-devtools/python/python3-cmd2_1.4.0.bb | 20 ++++++++++++++++ recipes-devtools/python/python3-diskcache_5.4.0.bb | 22 ++++++++++++++++++ .../python/python3-importlib-metadata_4.6.4.bb | 20 ++++++++++++++++ .../python/python3-py-expression-eval_0.3.14.bb | 14 +++++++++++ .../python3-setuptools-git-versioning_1.7.4.bb | 18 +++++++++++++++ .../python/python3-setuptools-scm_6.0.1.bb | 26 +++++++++++++++++++++ .../python/python3-textparser_0.23.0.bb | 14 +++++++++++ recipes-devtools/python/python3-toml_0.10.2.bb | 15 ++++++++++++ 14 files changed, 235 insertions(+) create mode 100644 recipes-devtools/python/python3-argparse-addons_0.7.0.bb create mode 100644 recipes-devtools/python/python3-bitstruct_8.12.1.bb create mode 100644 recipes-devtools/python/python3-can-j1939_2.0.6.bb create mode 100644 recipes-devtools/python/python3-can_3.3.4.bb create mode 100644 recipes-devtools/python/python3-cantools_37.0.1.bb create mode 100644 recipes-devtools/python/python3-cantools_37.0.1.bbappend create mode 100644 recipes-devtools/python/python3-cmd2_1.4.0.bb create mode 100644 recipes-devtools/python/python3-diskcache_5.4.0.bb create mode 100644 recipes-devtools/python/python3-importlib-metadata_4.6.4.bb create mode 100644 recipes-devtools/python/python3-py-expression-eval_0.3.14.bb create mode 100644 recipes-devtools/python/python3-setuptools-git-versioning_1.7.4.bb create mode 100644 recipes-devtools/python/python3-setuptools-scm_6.0.1.bb create mode 100644 recipes-devtools/python/python3-textparser_0.23.0.bb create mode 100644 recipes-devtools/python/python3-toml_0.10.2.bb (limited to 'recipes-devtools') diff --git a/recipes-devtools/python/python3-argparse-addons_0.7.0.bb b/recipes-devtools/python/python3-argparse-addons_0.7.0.bb new file mode 100644 index 000000000..e0ff0c3f5 --- /dev/null +++ b/recipes-devtools/python/python3-argparse-addons_0.7.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "Additional Python argparse types and actions." +HOMEPAGE = "https://github.com/eerimoq/argparse_addons" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=515e9da3e929c7b40dd13458363110a7" + +PYPI_PACKAGE = "argparse_addons" + +SRC_URI[sha256sum] = "f5da0fe676953e39bee7a6d0a9b2f5ccdcbf9d6a6b9929997caf8f6c6b23a5fb" + +inherit pypi setuptools3 diff --git a/recipes-devtools/python/python3-bitstruct_8.12.1.bb b/recipes-devtools/python/python3-bitstruct_8.12.1.bb new file mode 100644 index 000000000..f53f84f83 --- /dev/null +++ b/recipes-devtools/python/python3-bitstruct_8.12.1.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "This module performs conversions between Python values and C bit field structs represented as Python byte strings." +HOMEPAGE = "https://github.com/eerimoq/bitstruct" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd" + +SRC_URI[sha256sum] = "45b2b932ce6681f5c6ce8cba39abdd423b579b0568c76fa48b1e09c88368ede7" + +PYPI_PACKAGE = "bitstruct" + +inherit pypi setuptools3 + +CLEANBROKEN = "1" + diff --git a/recipes-devtools/python/python3-can-j1939_2.0.6.bb b/recipes-devtools/python/python3-can-j1939_2.0.6.bb new file mode 100644 index 000000000..b479340a8 --- /dev/null +++ b/recipes-devtools/python/python3-can-j1939_2.0.6.bb @@ -0,0 +1,13 @@ +SUMMARY = "An implementation of the CAN SAE J1939 standard for Python." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=32e7309a8200a5f4b7aec6efcfb8e77e" +PYPI_PACKAGE = "can-j1939" + +SRC_URI[sha256sum] = "beda5bf2e2502c4a7d97a989075c56b98e33e49b619ef8054ed13aca911be3d3" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += " \ + python3-can \ + python3-numpy \ +" diff --git a/recipes-devtools/python/python3-can_3.3.4.bb b/recipes-devtools/python/python3-can_3.3.4.bb new file mode 100644 index 000000000..760b5dde9 --- /dev/null +++ b/recipes-devtools/python/python3-can_3.3.4.bb @@ -0,0 +1,27 @@ +SUMMARY = "Controller Area Network (CAN) interface module for Python" +SECTION = "devel/python" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI[md5sum] = "305075968c56bd85130b19d86e9e505d" +SRC_URI[sha256sum] = "2d3c223b7adc4dd46ce258d4a33b7e0dbb6c339e002faa40ee4a69d5fdce9449" + +PYPI_PACKAGE="python-can" + +inherit pypi setuptools3 + +RDEPENDS:${PN}:class-target += "\ + ${PYTHON_PN}-aenum \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-codecs \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-fcntl \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-sqlite3 \ + ${PYTHON_PN}-wrapt \ + ${PYTHON_PN}-pkg-resources \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/recipes-devtools/python/python3-cantools_37.0.1.bb b/recipes-devtools/python/python3-cantools_37.0.1.bb new file mode 100644 index 000000000..9642bc528 --- /dev/null +++ b/recipes-devtools/python/python3-cantools_37.0.1.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "CAN BUS tools in Python 3." +HOMEPAGE = "https://github.com/eerimoq/cantools" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd" + +SRC_URI[sha256sum] = "5852ad9fd17ddd7b1a1ce87b21b000e7f5716b358cdac4fdaca13b3e292f4c99" + +PYPI_PACKAGE = "cantools" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += "\ + ${PYTHON_PN}-can \ + ${PYTHON_PN}-bitstruct \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-textparser \ +" + +CLEANBROKEN = "1" diff --git a/recipes-devtools/python/python3-cantools_37.0.1.bbappend b/recipes-devtools/python/python3-cantools_37.0.1.bbappend new file mode 100644 index 000000000..1c1148dff --- /dev/null +++ b/recipes-devtools/python/python3-cantools_37.0.1.bbappend @@ -0,0 +1,4 @@ +RDEPENDS:${PN} += "\ + python3-diskcache \ + python3-argparse-addons \ +" diff --git a/recipes-devtools/python/python3-cmd2_1.4.0.bb b/recipes-devtools/python/python3-cmd2_1.4.0.bb new file mode 100644 index 000000000..dfe493bd2 --- /dev/null +++ b/recipes-devtools/python/python3-cmd2_1.4.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Extra features for standard library's cmd module" +HOMEPAGE = "https://github.com/python-cmd2/cmd2" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9791cd24ca7d1807388ccd55cd066def" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native" + +SRC_URI[md5sum] = "520afccc1d46f833d117a23fab76ed8f" +SRC_URI[sha256sum] = "e59fa932418603af4e046a96c8985812b05af8a73bfd9d7a386cd1b02c6ab687" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-colorama \ + ${PYTHON_PN}-pyperclip \ + ${PYTHON_PN}-wcwidth \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/recipes-devtools/python/python3-diskcache_5.4.0.bb b/recipes-devtools/python/python3-diskcache_5.4.0.bb new file mode 100644 index 000000000..84d42e572 --- /dev/null +++ b/recipes-devtools/python/python3-diskcache_5.4.0.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Disk Cache -- Disk and file backed persistent cache." +HOMEPAGE = "http://www.grantjenks.com/docs/diskcache/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c60ef82f0f40155453f6d5f2c94b6e8e" + +SRC_URI[sha256sum] = "8879eb8c9b4a2509a5e633d2008634fb2b0b35c2b36192d89655dbde02419644" + +PYPI_PACKAGE = "diskcache" + +inherit pypi setuptools3 + +RDEPENDS:${PN} = "\ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-sqlite3 \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-threading \ +" + +CLEANBROKEN = "1" diff --git a/recipes-devtools/python/python3-importlib-metadata_4.6.4.bb b/recipes-devtools/python/python3-importlib-metadata_4.6.4.bb new file mode 100644 index 000000000..e5aad991e --- /dev/null +++ b/recipes-devtools/python/python3-importlib-metadata_4.6.4.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Read metadata from Python packages" +HOMEPAGE = "https://pypi.org/project/importlib-metadata/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e88ae122f3925d8bde8319060f2ddb8e" + +inherit pypi setuptools3 + +PYPI_PACKAGE = "importlib_metadata" +UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P(\d+[\.\-_]*)+)/" + +SRC_URI[sha256sum] = "7b30a78db2922d78a6f47fb30683156a14f3c6aa5cc23f77cc8967e9ab2d002f" + +S = "${WORKDIR}/importlib_metadata-${PV}" + +DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-toml-native" +RDEPENDS:${PN} += "${PYTHON_PN}-zipp ${PYTHON_PN}-pathlib2" +RDEPENDS:${PN}:append:class-target = " python3-misc" +RDEPENDS:${PN}:append:class-nativesdk = " python3-misc" + +BBCLASSEXTEND = "native nativesdk" diff --git a/recipes-devtools/python/python3-py-expression-eval_0.3.14.bb b/recipes-devtools/python/python3-py-expression-eval_0.3.14.bb new file mode 100644 index 000000000..15a295f10 --- /dev/null +++ b/recipes-devtools/python/python3-py-expression-eval_0.3.14.bb @@ -0,0 +1,14 @@ +SUMMARY = "Python Mathematical Expression Evaluator" +HOMEPAGE = "https://github.com/AxiaCore/py-expression-eval" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5a9126e7f56a0cf3247050de7f10d0f4" + +# NOTE: Pulling from github.com instead of pypi.org as the tarfiles on +# the latter do not include the LICENSE file. + +SRC_URI = "git://github.com/axiacore/py-expression-eval.git;protocol=https;branch=master" +SRCREV = "e7cfbedb3cdb1c428ae3dfbc967fe43deffa5e64" + +S = "${WORKDIR}/git" + +inherit setuptools3 diff --git a/recipes-devtools/python/python3-setuptools-git-versioning_1.7.4.bb b/recipes-devtools/python/python3-setuptools-git-versioning_1.7.4.bb new file mode 100644 index 000000000..5610711cb --- /dev/null +++ b/recipes-devtools/python/python3-setuptools-git-versioning_1.7.4.bb @@ -0,0 +1,18 @@ +SUMMARY = "Use git repo data for building a version number according PEP-440" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f22e7cb81b49604c2450680982bdc067" +PYPI_PACKAGE = "setuptools-git-versioning" + +DEPENDS = "python3-six-native" + +SRC_URI[sha256sum] = "be2901afcb7c865e3b500a38183598657fd029a1a72c8d1dfc7fbffb5c227dac" + +inherit pypi setuptools3 + +RDEPENDS:${PN} += " \ + python3-setuptools \ + python3-six \ + python3-typing \ +" + +BBCLASSEXTEND = "native" diff --git a/recipes-devtools/python/python3-setuptools-scm_6.0.1.bb b/recipes-devtools/python/python3-setuptools-scm_6.0.1.bb new file mode 100644 index 000000000..afbed17a2 --- /dev/null +++ b/recipes-devtools/python/python3-setuptools-scm_6.0.1.bb @@ -0,0 +1,26 @@ +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://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489" + +SRC_URI[sha256sum] = "d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92" + +PYPI_PACKAGE = "setuptools_scm" +inherit pypi setuptools3 + +UPSTREAM_CHECK_REGEX = "setuptools_scm-(?P.*)\.tar" + +RDEPENDS:${PN} = "\ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-py \ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-toml \ +" +RDEPENDS:${PN}:class-native = "\ + ${PYTHON_PN}-setuptools-native \ + ${PYTHON_PN}-toml-native \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/recipes-devtools/python/python3-textparser_0.23.0.bb b/recipes-devtools/python/python3-textparser_0.23.0.bb new file mode 100644 index 000000000..0c626e7aa --- /dev/null +++ b/recipes-devtools/python/python3-textparser_0.23.0.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "A text parser written in the Python language." +HOMEPAGE = "https://github.com/eerimoq/textparser" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fe9942a8bba5458a9dbd11277bc347ad" + +SRC_URI[md5sum] = "d5378eac93406156e9029114aaa1b515" +SRC_URI[sha256sum] = "f009d0f6f78aa7c1e648dca4e3961f6d67495f7f520f1a705245ffad33f4b470" + +PYPI_PACKAGE = "textparser" + +inherit pypi setuptools3 + +CLEANBROKEN = "1" + diff --git a/recipes-devtools/python/python3-toml_0.10.2.bb b/recipes-devtools/python/python3-toml_0.10.2.bb new file mode 100644 index 000000000..be29cac79 --- /dev/null +++ b/recipes-devtools/python/python3-toml_0.10.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "Python Library for Tom's Obvious, Minimal Language" +HOMEPAGE = "https://github.com/uiri/toml" +LICENSE = "MIT" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://LICENSE;md5=16c77b2b1050d2f03cb9c2ed0edaf4f0" + +SRC_URI[sha256sum] = "b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" + +inherit pypi setuptools3 + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS:${PN} += " \ + ${PYTHON_PN}-misc \ +" -- cgit 1.2.3-korg