Move base VSS and KUKSA.val recipes to meta-agl-kuksa-val 38/30038/2
authorScott Murray <scott.murray@konsulko.com>
Wed, 26 Jun 2024 19:11:03 +0000 (15:11 -0400)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 27 Jun 2024 15:49:13 +0000 (15:49 +0000)
Remove base VSS and KUKSA.val recipes, as they are moving to a new
meta-agl-kuksa-val layer in the meta-agl repository.  The recipes
for the Python modules they depend on have also been moved.

Additional changes:
- A new kuksa-can-provider-conf-agl recipe has been added to install
  our common AGL-specific kuksa-can-provider configuration.  The
  intent is that the kuksa-can-provider in meta-agl-kuksa-val not be
  dependent on our demo configuration choices.
- The other kuksa-can-provider configuration recipes have been
  tweaked to mark them as allarch.
- The python3-argparse-addons recipe and python3-cantools bbappend
  that used it have been removed, as it looks like it is no longer
  required.
- The dangling kuksa-val-agl-demo-cluster recipe has been removed,
  it was missed in the previous kuksa-val server removal.

Bug-AGL: SPEC-5136

Change-Id: I8c5aa556a796852c5ee3d8c26e045a089911f37e
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/30038
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
ci-image-build: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account
Tested-by: Jenkins Job builder account
43 files changed:
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl.bb [new file with mode: 0644]
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl/agl-vcar.dbc [moved from recipes-connectivity/kuksa-val/kuksa-can-provider/agl-vcar.dbc with 100% similarity]
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl/can-dev-helper.conf [new file with mode: 0644]
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl/can-provider.json.token [moved from recipes-connectivity/kuksa-val/kuksa-can-provider/can-provider.json.token with 100% similarity]
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl/can-provider.token [moved from recipes-connectivity/kuksa-val/kuksa-can-provider/can-provider.token with 100% similarity]
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl/config.ini [moved from recipes-connectivity/kuksa-val/kuksa-can-provider/config.ini with 100% similarity]
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl/dbc_default_values.json [moved from recipes-connectivity/kuksa-val/kuksa-can-provider/dbc_default_values.json with 100% similarity]
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-control-panel.bb
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-gw-control-panel.bb
recipes-connectivity/kuksa-val/kuksa-can-provider-conf-gw-hardware.bb
recipes-connectivity/kuksa-val/kuksa-can-provider/0001-dbc2val-add-installation-mechanism.patch [deleted file]
recipes-connectivity/kuksa-val/kuksa-can-provider/0002-dbc2val-usability-improvements.patch [deleted file]
recipes-connectivity/kuksa-val/kuksa-can-provider/0003-dbc2val-fix-token-file-configuration-option.patch [deleted file]
recipes-connectivity/kuksa-val/kuksa-can-provider/0004-Enable-val2dbc-for-sensor-values.patch [deleted file]
recipes-connectivity/kuksa-val/kuksa-can-provider/kuksa-can-provider.default [deleted file]
recipes-connectivity/kuksa-val/kuksa-can-provider/kuksa-can-provider.service [deleted file]
recipes-connectivity/kuksa-val/kuksa-can-provider/mapping.yml [deleted file]
recipes-connectivity/kuksa-val/kuksa-can-provider_git.bb [deleted file]
recipes-connectivity/kuksa-val/kuksa-client/0001-kuksa-client-Update-cmd2-completer-usage.patch [deleted file]
recipes-connectivity/kuksa-val/kuksa-client/0002-Tweak-grpcio-tools-requirement.patch [deleted file]
recipes-connectivity/kuksa-val/kuksa-client_git.bb [deleted file]
recipes-connectivity/kuksa-val/kuksa-databroker-crates.inc [deleted file]
recipes-connectivity/kuksa-val/kuksa-databroker/0001-Remove-protobuf-src-usage.patch [deleted file]
recipes-connectivity/kuksa-val/kuksa-databroker/kuksa-databroker.service [deleted file]
recipes-connectivity/kuksa-val/kuksa-databroker_git.bb [deleted file]
recipes-connectivity/kuksa-val/kuksa-val-agl-demo-cluster.bb [deleted file]
recipes-connectivity/kuksa-val/kuksa-val-agl-demo-cluster/kuksa-val.env [deleted file]
recipes-connectivity/vss/vss-agl_4.2.bb
recipes-connectivity/vss/vss-tools_4.2.bb [deleted file]
recipes-connectivity/vss/vss.inc [deleted file]
recipes-connectivity/vss/vss_4.2.bb [deleted file]
recipes-devtools/python/python3-anytree_2.8.0.bb [deleted file]
recipes-devtools/python/python3-argparse-addons_0.7.0.bb [deleted file]
recipes-devtools/python/python3-can-j1939_2.0.6.bb [deleted file]
recipes-devtools/python/python3-cantools_39.%.bbappend [deleted file]
recipes-devtools/python/python3-cantools_agldemo.inc [deleted file]
recipes-devtools/python/python3-deprecation_2.1.0.bb [deleted file]
recipes-devtools/python/python3-graphql-core_3.2.3.bb [deleted file]
recipes-devtools/python/python3-jsonpath-ng_1.5.3.bb [deleted file]
recipes-devtools/python/python3-py-expression-eval_0.3.14.bb [deleted file]
recipes-devtools/python/python3-setuptools-git-versioning_1.7.4.bb [deleted file]
recipes-platform/packagegroups/packagegroup-agl-kuksa-val-databroker.bb
templates/feature/agl-demo/50_bblayers.conf.inc

diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl.bb b/recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl.bb
new file mode 100644 (file)
index 0000000..64f194d
--- /dev/null
@@ -0,0 +1,32 @@
+SUMMARY = "KUKSA.val CAN provider configuration for AGL demos"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI = "file://config.ini \
+           file://can-provider.token \
+           file://dbc_default_values.json \
+           file://can-dev-helper.conf \
+           file://agl-vcar.dbc \
+"
+
+S = "${WORKDIR}"
+
+inherit allarch systemd
+
+do_compile[noexec] = "1"
+
+do_install() {
+    install -d ${D}${sysconfdir}/kuksa-can-provider
+    install -m 0644 ${WORKDIR}/config.ini ${D}${sysconfdir}/kuksa-can-provider/
+    install -m 0644 ${WORKDIR}/can-provider.token ${D}${sysconfdir}/kuksa-can-provider/
+    install -m 0644 ${WORKDIR}/dbc_default_values.json ${D}${sysconfdir}/kuksa-can-provider/
+    install -m 0644 ${WORKDIR}/agl-vcar.dbc ${D}${sysconfdir}/kuksa-can-provider/
+    install -d ${D}${systemd_system_unitdir}/kuksa-can-provider.service.d
+    install -m 0644 ${WORKDIR}/can-dev-helper.conf ${D}${systemd_system_unitdir}/kuksa-can-provider.service.d/
+}
+
+FILES:${PN} += "${systemd_system_unitdir}"
+
+RDEPENDS:${PN} += "kuksa-can-provider can-dev-helper"
+RPROVIDES:${PN} += "kuksa-can-provider-conf"
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl/can-dev-helper.conf b/recipes-connectivity/kuksa-val/kuksa-can-provider-conf-agl/can-dev-helper.conf
new file mode 100644 (file)
index 0000000..d6474fe
--- /dev/null
@@ -0,0 +1,3 @@
+[Unit]
+Requires=can-dev-helper.service
+After=can-dev-helper.service
index eba5f84..f34aed0 100644 (file)
@@ -7,7 +7,7 @@ SRC_URI = "file://kuksa-can-provider.control-panel"
 
 S = "${WORKDIR}"
 
-inherit update-alternatives
+inherit allarch update-alternatives
 
 do_compile[noexec] = "1"
 
@@ -22,4 +22,4 @@ RPROVIDES:${PN} = "kuksa-can-provider.env"
 ALTERNATIVE:${PN} = "kuksa-can-provider.env"
 ALTERNATIVE_TARGET_${PN} = "${sysconfdir}/default/kuksa-can-provider.control-panel"
 
-RDEPENDS:${PN} += "kuksa-can-provider"
+RDEPENDS:${PN} += "kuksa-can-provider kuksa-can-provider-conf-agl"
index 02483a8..f2e9e67 100644 (file)
@@ -22,4 +22,4 @@ RPROVIDES:${PN} = "kuksa-can-provider.env"
 ALTERNATIVE:${PN} = "kuksa-can-provider.env"
 ALTERNATIVE_TARGET_${PN} = "${sysconfdir}/default/kuksa-can-provider.gw-control-panel"
 
-RDEPENDS:${PN} += "kuksa-can-provider"
+RDEPENDS:${PN} += "kuksa-can-provider kuksa-can-provider-conf-agl"
index 1275235..723035b 100644 (file)
@@ -29,4 +29,4 @@ do_install() {
 
 FILES:${PN} += "${systemd_system_unitdir}"
 
-RDEPENDS:${PN} += "kuksa-can-provider vss-agl-gw-hardware"
+RDEPENDS:${PN} += "kuksa-can-provider kuksa-can-provider-conf-agl vss-agl-gw-hardware"
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider/0001-dbc2val-add-installation-mechanism.patch b/recipes-connectivity/kuksa-val/kuksa-can-provider/0001-dbc2val-add-installation-mechanism.patch
deleted file mode 100644 (file)
index 6a9c1ba..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-From 73dd680486b72d15d6f4c7aa129219ecdbcbd7b2 Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Wed, 19 Apr 2023 15:55:01 -0400
-Subject: [PATCH 1/4] dbc2val: add installation mechanism
-
-Add setup.py and setup.cfg to allow installing the dbcfeederlib
-module and dbcfeeder.py in a way suitable for packaging.
-
-Upstream-Status: pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- setup.cfg | 30 ++++++++++++++++++++++++++++++
- setup.py  | 14 ++++++++++++++
- 2 files changed, 44 insertions(+)
- create mode 100644 setup.cfg
- create mode 100644 setup.py
-
-diff --git a/setup.cfg b/setup.cfg
-new file mode 100644
-index 0000000..cb64407
---- /dev/null
-+++ b/setup.cfg
-@@ -0,0 +1,30 @@
-+[metadata]
-+name = dbcfeeder
-+author = Sebastian Schildt, Naresh Nayak, Wenwen Chen
-+author_email = sebastian.schildt@de.bosch.com, naresh.nayak@de.bosch.com, wenwen.chen@de.bosch.com
-+description = KUKSA.val CAN provider
-+long_description = file:README.md
-+long_description_content_type = text/markdown
-+url=https://github.com/eclipse-kuksa/kuksa-can-provider
-+project_urls=
-+  Source=https://github.com/eclipse-kuksa/kuksa-can-provider
-+  Bug Tracker=https://github.com/eclipse-kuksa/kuksa-can-provider/issues
-+classifiers =
-+    Intended Audience :: Developers
-+    Development Status :: 3 - Alpha
-+    Environment :: Console
-+    Programming Language :: Python :: 3
-+    License :: OSI Approved :: Apache Software License
-+    Operating System :: OS Independent
-+    Topic :: Software Development
-+
-+license_file = LICENSE
-+
-+[options]
-+python_requires = >=3.6
-+install_requires=
-+    pyserial
-+    pyyaml
-+    kuksa-client
-+packages=dbcfeederlib
-+scripts=dbcfeeder.py
-diff --git a/setup.py b/setup.py
-new file mode 100644
-index 0000000..c5fb2b7
---- /dev/null
-+++ b/setup.py
-@@ -0,0 +1,14 @@
-+from setuptools import setup
-+
-+setup(
-+    version_config={
-+        "template": "{tag}",
-+        "dev_template": "{tag}-{ccount}",
-+        "dirty_template": "{tag}+{ccount}-dirty",
-+        "starting_version": "0.1.0",
-+        "version_callback": None,
-+        "version_file": None,
-+        "count_commits_from_version_file": False
-+    },
-+    setup_requires=['setuptools-git-versioning'],
-+)
--- 
-2.44.0
-
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider/0002-dbc2val-usability-improvements.patch b/recipes-connectivity/kuksa-val/kuksa-can-provider/0002-dbc2val-usability-improvements.patch
deleted file mode 100644 (file)
index 91a3092..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From 2e4e1f9147f1ebe5b545ae0cab41341e3abb00ae Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Sat, 15 Jun 2024 13:13:17 -0400
-Subject: [PATCH 2/4] dbc2val: usability improvements
-
-Changes:
-- Tweaked default configuration file search path to better match
-  Linux FHS.  First look for a config.ini or dbc_feeder.ini in
-  /etc/kuksa-can-provider, then fall back to /etc/dbc_feeder.ini
-  before using trying other possible paths.
-- Add catching of exceptions around CAN device opening so that the
-  script can exit cleanly with an error message if the device is
-  not available.
-- Tweaked DBC default value file command line argument parsing so
-  that it does not attempt to fallback to "dbc_default_values.json"
-  in the current working directory.  That likely works for upstream
-  test scenarios, but prevents running on a target.
-
-Upstream-Status: pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- dbcfeeder.py | 19 +++++++++++++++----
- 1 file changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/dbcfeeder.py b/dbcfeeder.py
-index a1ef174..c252503 100755
---- a/dbcfeeder.py
-+++ b/dbcfeeder.py
-@@ -144,7 +144,11 @@ class Feeder:
-                     whitelisted_frame_ids.append(filter.can_id)  # type: ignore
-                 elm2canbridge.elm2canbridge(canport, self._elmcan_config, whitelisted_frame_ids)
--            self._reader.start()
-+            try:
-+                self._reader.start()
-+            except:
-+                log.error("Could not open %s, exiting", canport)
-+                sys.exit(-1)
-             receiver = threading.Thread(target=self._run_receiver)
-             receiver.start()
-@@ -165,7 +169,12 @@ class Feeder:
-             # For now creating another bus
-             # Maybe support different buses for downstream/upstream in the future
--            self._canclient = CANClient(interface="socketcan", channel=canport, can_fd=can_fd)
-+            self._canclient = None
-+            try:
-+                self._canclient = CANClient(interface="socketcan", channel=canport, can_fd=can_fd)
-+            except:
-+                log.error("Could not open %s, exiting", canport)
-+                sys.exit(-1)
-             transmitter = threading.Thread(target=self._run_transmitter)
-             transmitter.start()
-@@ -335,8 +344,10 @@ def _parse_config(filename: str) -> configparser.ConfigParser:
-         configfile = filename
-     else:
-         config_candidates = [
--            "/config/dbc_feeder.ini",
-+            "/etc/kuksa-can-provider/config.ini",
-+            "/etc/kuksa-can-provider/dbc_feeder.ini",
-             "/etc/dbc_feeder.ini",
-+            "/config/dbc_feeder.ini",
-             "config/dbc_feeder.ini",
-         ]
-         for candidate in config_candidates:
-@@ -534,7 +545,7 @@ def main(argv):
-     elif os.environ.get("DBC_DEFAULT_FILE"):
-         dbc_default = os.environ.get("DBC_DEFAULT_FILE")
-     else:
--        dbc_default = config.get(CONFIG_SECTION_CAN, CONFIG_OPTION_DBC_DEFAULT_FILE, fallback="dbc_default_values.json")
-+        dbc_default = config.get(CONFIG_SECTION_CAN, CONFIG_OPTION_DBC_DEFAULT_FILE, fallback=None)
-     if args.mapping:
-         mappingfile = args.mapping
--- 
-2.44.0
-
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider/0003-dbc2val-fix-token-file-configuration-option.patch b/recipes-connectivity/kuksa-val/kuksa-can-provider/0003-dbc2val-fix-token-file-configuration-option.patch
deleted file mode 100644 (file)
index faf94e0..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From 0b5822c6a8f8fa489bc7ae67f91284ac150f6518 Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Sat, 15 Jun 2024 13:18:08 -0400
-Subject: [PATCH 3/4] dbc2val: fix token file configuration option
-
-The client library changed the token option name to
-'token_or_tokenfile', update things to match so that token
-location can be configured again for dbcfeeder.py.
-
-Upstream-Status: pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- dbcfeederlib/serverclientwrapper.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dbcfeederlib/serverclientwrapper.py b/dbcfeederlib/serverclientwrapper.py
-index 498e1b6..fa43d28 100644
---- a/dbcfeederlib/serverclientwrapper.py
-+++ b/dbcfeederlib/serverclientwrapper.py
-@@ -56,7 +56,7 @@ class ServerClientWrapper(clientwrapper.ClientWrapper):
-         self._client_config["insecure"] = not self._tls
-         # Do not set token if it is empty to allow default client lib info to be used
-         if self._token_path != "":
--            self._client_config["token"] = self._token_path
-+            self._client_config["token_or_tokenfile"] = self._token_path
-         if self._root_ca_path:
-             self._client_config['cacertificate'] = self._root_ca_path
--- 
-2.44.0
-
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider/0004-Enable-val2dbc-for-sensor-values.patch b/recipes-connectivity/kuksa-val/kuksa-can-provider/0004-Enable-val2dbc-for-sensor-values.patch
deleted file mode 100644 (file)
index e45fb4c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-From 937218a357ac1914fe410cf3ad31a67d54a63270 Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Mon, 17 Jun 2024 17:07:44 -0400
-Subject: [PATCH 4/4] Enable val2dbc for sensor values
-
-Rework to allow val2dbc mode to write out sensor values in
-addition to actuator target values.
-
-Upstream-Status: pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- dbcfeeder.py                            |  8 ++++++--
- dbcfeederlib/databrokerclientwrapper.py | 18 ++++++++++++------
- dbcfeederlib/dbc2vssmapper.py           | 21 ++++++++++-----------
- dbcfeederlib/serverclientwrapper.py     |  2 +-
- mapping/README.md                       |  2 --
- 5 files changed, 29 insertions(+), 22 deletions(-)
-
-diff --git a/dbcfeeder.py b/dbcfeeder.py
-index c252503..c1e20c4 100755
---- a/dbcfeeder.py
-+++ b/dbcfeeder.py
-@@ -289,19 +289,23 @@ class Feeder:
-             log.debug("Processing %d VSS Data Entry updates", len(updates))
-             dbc_signal_names: Set[str] = set()
-             for update in updates:
-+                value = None
-                 if update.entry.value is not None:
--                    # This should never happen as we do not subscribe to current value
-                     log.warning(
-                         "Current value for %s is now: %s of type %s",
-                         update.entry.path, update.entry.value.value, type(update.entry.value.value)
-                     )
-+                    value = update.entry.value.value
-                 if update.entry.actuator_target is not None:
-                     log.debug(
-                         "Target value for %s is now: %s of type %s",
-                         update.entry.path, update.entry.actuator_target, type(update.entry.actuator_target.value)
-                     )
--                    affected_signals = self._mapper.handle_update(update.entry.path, update.entry.actuator_target.value)
-+                    value = update.entry.actuator_target.value
-+
-+                if value != None:
-+                    affected_signals = self._mapper.handle_update(update.entry.path, value)
-                     dbc_signal_names.update(affected_signals)
-             messages_to_send: Set[Message] = set()
-diff --git a/dbcfeederlib/databrokerclientwrapper.py b/dbcfeederlib/databrokerclientwrapper.py
-index 716ee6d..db2b80a 100644
---- a/dbcfeederlib/databrokerclientwrapper.py
-+++ b/dbcfeederlib/databrokerclientwrapper.py
-@@ -199,14 +199,20 @@ class DatabrokerClientWrapper(clientwrapper.ClientWrapper):
-     def supports_subscription(self) -> bool:
-         return True
--    async def subscribe(self, vss_names: List[str], callback):
-+    async def subscribe(self, vss_entries: dict[str, str], callback):
-         """Create a subscription and invoke the callback when data received."""
-         entries: List[SubscribeEntry] = []
--        for name in vss_names:
--            # Always subscribe to target
--            subscribe_entry = SubscribeEntry(name, View.FIELDS, [Field.ACTUATOR_TARGET])
--            log.info("Subscribe entry: %s", subscribe_entry)
--            entries.append(subscribe_entry)
-+        for name, signal_type in vss_entries.items():
-+            if signal_type == "actuator":
-+                subscribe_entry = SubscribeEntry(name, View.FIELDS, [Field.ACTUATOR_TARGET])
-+                log.info("Subscribe entry: %s", subscribe_entry)
-+                entries.append(subscribe_entry)
-+            if signal_type == "sensor":
-+                subscribe_entry = SubscribeEntry(name, View.FIELDS, [Field.VALUE])
-+                log.info("Subscribe entry: %s", subscribe_entry)
-+                entries.append(subscribe_entry)
-+        if not entries:
-+            return
-         # If there is a path VSSClient will request a secure connection
-         if self._tls and self._root_ca_path:
-diff --git a/dbcfeederlib/dbc2vssmapper.py b/dbcfeederlib/dbc2vssmapper.py
-index 218f693..2be5e98 100644
---- a/dbcfeederlib/dbc2vssmapper.py
-+++ b/dbcfeederlib/dbc2vssmapper.py
-@@ -69,12 +69,13 @@ class VSSMapping:
-     parser: Parser = Parser()
-     def __init__(self, vss_name: str, dbc_name: str, transform: dict, interval_ms: int,
--                 on_change: bool, datatype: str, description: str):
-+                 on_change: bool, signal_type: str, datatype: str, description: str):
-         self.vss_name = vss_name
-         self.dbc_name = dbc_name
-         self.transform = transform
-         self.interval_ms = interval_ms
-         self.on_change = on_change
-+        self.signal_type = signal_type
-         self.datatype = datatype
-         self.description = description
-         # For time comparison (interval_ms) we store last value used for comparison. Unit seconds.
-@@ -347,7 +348,7 @@ class Mapper(DBCParser):
-         if can_signal_name not in self._dbc2vss_mapping:
-             self._dbc2vss_mapping[can_signal_name] = []
-         mapping_entry = VSSMapping(expanded_name, can_signal_name, transformation_definition, interval, on_change,
--                                   node["datatype"], node["description"])
-+                                   node["type"], node["datatype"], node["description"])
-         self._dbc2vss_mapping[can_signal_name].append(mapping_entry)
-         for msg_def in self.get_messages_for_signal(can_signal_name):
-@@ -398,7 +399,7 @@ class Mapper(DBCParser):
-             log.warning("Ignoring \"interval_ms\" property of mapping definition for %s", expanded_name)
-         mapping_entry = VSSMapping(expanded_name, can_signal_name, transform, interval, on_change,
--                                   node["datatype"], node["description"])
-+                                   node["type"], node["datatype"], node["description"])
-         if can_signal_name not in self._vss2dbc_mapping:
-             self._vss2dbc_mapping[expanded_name] = []
-         self._vss2dbc_mapping[expanded_name].append(mapping_entry)
-@@ -426,12 +427,7 @@ class Mapper(DBCParser):
-         if dbc2vss_def is not None:
-             self._analyze_dbc2vss(expanded_name, node, dbc2vss_def)
-         if "vss2dbc" in node:
--            if node["type"] == "actuator":
--                self._analyze_vss2dbc(expanded_name, node, node["vss2dbc"])
--            else:
--                # vss2dbc is handled by subscription to target value, so only makes sense for actuators
--                log.error("vss2dbc only allowed for actuators, VSS signal %s is not an actuator!", expanded_name)
--                sys.exit(-1)
-+            self._analyze_vss2dbc(expanded_name, node, node["vss2dbc"])
-     def _traverse_vss_node(self, name, node, prefix=""):
-         """
-@@ -474,9 +470,12 @@ class Mapper(DBCParser):
-         """Get all CAN signal names for which a mapping to a VSS Data Entry exists."""
-         return self._dbc2vss_mapping.keys()
--    def get_vss2dbc_entries(self) -> KeysView[str]:
-+    def get_vss2dbc_entries(self) -> Dict[str, str]:
-         """Get all VSS Data Entry paths for which a mapping to a CAN signal name exists."""
--        return self._vss2dbc_mapping.keys()
-+        entries: Dict[str, str] = {}
-+        for name, mappings in self._vss2dbc_mapping.items():
-+            entries[name] = mappings[0].signal_type
-+        return entries
-     def get_vss_names(self) -> Set[str]:
-         """Get all VSS names used in mappings, both vss2dbc and dbc2vss"""
-diff --git a/dbcfeederlib/serverclientwrapper.py b/dbcfeederlib/serverclientwrapper.py
-index fa43d28..86b2ceb 100644
---- a/dbcfeederlib/serverclientwrapper.py
-+++ b/dbcfeederlib/serverclientwrapper.py
-@@ -122,6 +122,6 @@ class ServerClientWrapper(clientwrapper.ClientWrapper):
-         log.info("Feature not implemented")
-         return False
--    async def subscribe(self, vss_names: List[str], callback):
-+    async def subscribe(self, vss_entries: dict[str, str], callback):
-         log.error("Feature not implemented")
-         return
-diff --git a/mapping/README.md b/mapping/README.md
-index 2155f28..ea6de07 100644
---- a/mapping/README.md
-+++ b/mapping/README.md
-@@ -44,8 +44,6 @@ This is built on the assumption that the DBC provider always send target values
- Having separate configurations (`dbc2vss` and `vss2dbc`) is needed as wanted value and actual value never are sent
- by the same DBC signal, they are not even part of the same CAN-frame.
--*This means that `vss2dbc` only can be used for actuators, as only actuators have target values!*
--
- ## Example mapping files
- Example mapping files for various VSS versions can be found in this folder.
--- 
-2.44.0
-
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider/kuksa-can-provider.default b/recipes-connectivity/kuksa-val/kuksa-can-provider/kuksa-can-provider.default
deleted file mode 100644 (file)
index aad0bc4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# For output only mode:
-#EXTRA_ARGS="--val2dbc --no-dbc2val --dbc-default /etc/kuksa-can-provider/dbc_default_values.json"
-#LOG_LEVEL=debug
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider/kuksa-can-provider.service b/recipes-connectivity/kuksa-val/kuksa-can-provider/kuksa-can-provider.service
deleted file mode 100644 (file)
index 41258d2..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Eclipse KUKSA.val DBC feeder
-Requires=kuksa-databroker.service can-dev-helper.service
-After=kuksa-databroker.service can-dev-helper.service
-
-[Service]
-EnvironmentFile=-/etc/default/kuksa-can-provider
-ExecStart=/usr/bin/dbcfeeder.py $EXTRA_ARGS
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider/mapping.yml b/recipes-connectivity/kuksa-val/kuksa-can-provider/mapping.yml
deleted file mode 100644 (file)
index b1c1fec..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-# Mapping Speed
-PT_VehicleAvgSpeed:
-  minupdatedelay: 100
-  targets: 
-    Vehicle.Speed: {}
-
-PT_EngineSpeed:
-  minupdatedelay: 100
-  targets: 
-    Vehicle.Powertrain.CombustionEngine.Speed:
-      transform:
-        math: "floor(x+0.5)"
-
-#
-# NOTE:
-#
-# The following mappings depend on the AGL-specific VSS overlay
-# that adds the extra Vehicle.Cabin.SteeringWheel.Switches sensors.
-# Since the CAN events are coming from LIN polling, applications
-# need to filter/debounce themselves.  The minupdatedelay of 0 is
-# intentional to avoid missing events.
-#
-
-SW_Next:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.Next:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_Previous:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.Previous:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_Mode:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.Mode:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_Info:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.Info:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_CruiseEnable:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_CruiseSet:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_CruiseResume:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_CruiseCancel:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_VolumeUp:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_VolumeDown:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_VolumeMute:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_Horn:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.Horn:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
-
-SW_LaneDepartureWarning:
-  minupdatedelay: 0
-  targets:
-    Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
-      filter-duplicates: "true"
-      transform:
-        fullmapping:
-          0: "false"
-          1: "true"
diff --git a/recipes-connectivity/kuksa-val/kuksa-can-provider_git.bb b/recipes-connectivity/kuksa-val/kuksa-can-provider_git.bb
deleted file mode 100644 (file)
index 16861fc..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-SUMMARY = "CAN provider for KUKSA.val, the KUKSA Vehicle Abstraction Layer"
-HOMEPAGE = "https://github.com/eclipse-kuksa"
-BUGTRACKER = "https://github.com/eclips-kuksa/kuksa-can-provider/issues"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=175792518e4ac015ab6696d16c4f607e"
-
-DEPENDS = "python3-setuptools-git-versioning-native"
-
-PV = "0.4.3+git${SRCPV}"
-
-SRC_URI = "git://github.com/eclipse-kuksa/kuksa-can-provider.git;protocol=https;branch=main \
-           file://0001-dbc2val-add-installation-mechanism.patch \
-           file://0002-dbc2val-usability-improvements.patch \
-           file://0003-dbc2val-fix-token-file-configuration-option.patch \
-           file://0004-Enable-val2dbc-for-sensor-values.patch \
-           file://config.ini \
-           file://can-provider.token \
-           file://agl-vcar.dbc \
-           file://dbc_default_values.json \
-           file://kuksa-can-provider.service \
-          file://kuksa-can-provider.default \
-           "
-SRCREV = "d5fdcfa7574ce69059b6f449629571db0982c1cf"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3 systemd update-alternatives
-
-#SETUPTOOLS_SETUP_PATH = "${S}/dbc2val"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-
-do_install:append() {
-    install -d ${D}${sysconfdir}/kuksa-can-provider
-    install -m 0644 ${WORKDIR}/config.ini ${D}${sysconfdir}/kuksa-can-provider/
-    # Token should ideally not be readable by other users.
-    # The potential for running the feeder as non-root will take some
-    # investigation.
-    install -m 0600 ${WORKDIR}/can-provider.token ${D}${sysconfdir}/kuksa-can-provider/
-    install -m 0644 ${WORKDIR}/agl-vcar.dbc ${D}${sysconfdir}/kuksa-can-provider/
-    install -m 0644 ${WORKDIR}/dbc_default_values.json ${D}${sysconfdir}/kuksa-can-provider/
-    install -d ${D}${sysconfdir}/default
-    install -m 0644 ${WORKDIR}/kuksa-can-provider.default ${D}${sysconfdir}/default/
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        install -d ${D}${systemd_system_unitdir}
-        install -m 0644 ${WORKDIR}/kuksa-can-provider.service ${D}${systemd_system_unitdir}
-    fi
-}
-
-ALTERNATIVE_LINK_NAME[kuksa-can-provider.env] = "${sysconfdir}/default/kuksa-can-provider"
-
-ALTERNATIVE_TARGET_${PN} = "${sysconfdir}/default/kuksa-can-provider.default"
-FILES:${PN} += "${systemd_system_unitdir}"
-
-RDEPENDS:${PN} += " \
-    bash \
-    python3-pyserial \
-    python3-cantools \
-    python3-can \
-    python3-can-j1939 \
-    python3-pyyaml \
-    python3-py-expression-eval \
-    kuksa-client \
-    can-dev-helper \
-"
diff --git a/recipes-connectivity/kuksa-val/kuksa-client/0001-kuksa-client-Update-cmd2-completer-usage.patch b/recipes-connectivity/kuksa-val/kuksa-client/0001-kuksa-client-Update-cmd2-completer-usage.patch
deleted file mode 100644 (file)
index 3f55273..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-From acb2bbff3de6e9f0bafb8b96a339820a9ddfadca Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Mon, 27 Nov 2023 15:31:02 -0500
-Subject: [PATCH 1/2] kuksa-client: Update cmd2 completer usage
-
-Update cmd2 usage to avoid using internal methods and fix breakage
-with newer versions of the cmd2 module.
-
-Upstream-Status: pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- kuksa-client/kuksa_client/__main__.py | 33 +++++++++++++--------------
- 1 file changed, 16 insertions(+), 17 deletions(-)
-
-diff --git a/kuksa-client/kuksa_client/__main__.py b/kuksa-client/kuksa_client/__main__.py
-index 2b29623..7061ec1 100755
---- a/kuksa-client/kuksa_client/__main__.py
-+++ b/kuksa-client/kuksa_client/__main__.py
-@@ -36,7 +36,6 @@ from cmd2 import CompletionItem
- from cmd2 import with_argparser
- from cmd2 import with_category
- from cmd2 import constants
--from cmd2.utils import basic_complete
- from urllib.parse import urlparse
- from kuksa_client import KuksaClientThread
-@@ -151,7 +150,7 @@ class TestClient(Cmd):
-         self.pathCompletionItems = []
-         for sub_id in self.subscribeIds:
-             self.pathCompletionItems.append(CompletionItem(sub_id))
--        return basic_complete(text, line, begidx, endidx, self.pathCompletionItems)
-+        return Cmd.basic_complete(self, text, line, begidx, endidx, self.pathCompletionItems)
-     COMM_SETUP_COMMANDS = "Communication Set-up Commands"
-     VSS_COMMANDS = "Kuksa Interaction Commands (Supported by both KUKSA Databroker and KUKSA Server)"
-@@ -167,19 +166,19 @@ class TestClient(Cmd):
-     ap_disconnect = argparse.ArgumentParser()
-     ap_authorize = argparse.ArgumentParser()
--    tokenfile_completer_method = functools.partial(
-+    tokenfile_completer = functools.partial(
-         Cmd.path_complete,
-         path_filter=lambda path: (os.path.isdir(path) or path.endswith(".token")),
-     )
-     ap_authorize.add_argument(
-         "token_or_tokenfile",
-         help="JWT(or the file storing the token) for authorizing the client.",
--        completer_method=tokenfile_completer_method,
-+        completer=tokenfile_completer,
-     )
-     ap_setValue = argparse.ArgumentParser()
-     ap_setValue.add_argument(
--        "Path", help="Path to be set", completer_method=path_completer
-+        "Path", help="Path to be set", completer=path_completer
-     )
-     ap_setValue.add_argument("Value", nargs="+", help="Value to be set")
-     ap_setValue.add_argument(
-@@ -199,7 +198,7 @@ class TestClient(Cmd):
-     ap_getValue = argparse.ArgumentParser()
-     ap_getValue.add_argument(
--        "Path", help="Path to be read", completer_method=path_completer
-+        "Path", help="Path to be read", completer=path_completer
-     )
-     ap_getValue.add_argument(
-         "-a", "--attribute", help="Attribute to be get", default="value"
-@@ -210,7 +209,7 @@ class TestClient(Cmd):
-         "Path",
-         help="Path whose value is to be read",
-         nargs="+",
--        completer_method=path_completer,
-+        completer=path_completer,
-     )
-     ap_getValues.add_argument(
-         "-a", "--attribute", help="Attribute to be get", default="value"
-@@ -220,7 +219,7 @@ class TestClient(Cmd):
-     ap_setTargetValue.add_argument(
-         "Path",
-         help="Path whose target value to be set",
--        completer_method=path_completer,
-+        completer=path_completer,
-     )
-     ap_setTargetValue.add_argument("Value", help="Value to be set")
-@@ -236,7 +235,7 @@ class TestClient(Cmd):
-     ap_getTargetValue.add_argument(
-         "Path",
-         help="Path whose target value is to be read",
--        completer_method=path_completer,
-+        completer=path_completer,
-     )
-     ap_getTargetValues = argparse.ArgumentParser()
-@@ -244,12 +243,12 @@ class TestClient(Cmd):
-         "Path",
-         help="Path whose target value is to be read",
-         nargs="+",
--        completer_method=path_completer,
-+        completer=path_completer,
-     )
-     ap_subscribe = argparse.ArgumentParser()
-     ap_subscribe.add_argument(
--        "Path", help="Path to subscribe to", completer_method=path_completer
-+        "Path", help="Path to subscribe to", completer=path_completer
-     )
-     ap_subscribe.add_argument(
-         "-a", "--attribute", help="Attribute to subscribe to", default="value"
-@@ -264,7 +263,7 @@ class TestClient(Cmd):
-     ap_subscribeMultiple = argparse.ArgumentParser()
-     ap_subscribeMultiple.add_argument(
--        "Path", help="Path to subscribe to", nargs="+", completer_method=path_completer
-+        "Path", help="Path to subscribe to", nargs="+", completer=path_completer
-     )
-     ap_subscribeMultiple.add_argument(
-         "-a", "--attribute", help="Attribute to subscribe to", default="value"
-@@ -280,18 +279,18 @@ class TestClient(Cmd):
-     ap_unsubscribe.add_argument(
-         "SubscribeId",
-         help="Corresponding subscription Id",
--        completer_method=subscriptionIdCompleter,
-+        completer=subscriptionIdCompleter,
-     )
-     ap_getMetaData = argparse.ArgumentParser()
-     ap_getMetaData.add_argument(
-         "Path",
-         help="Path whose metadata is to be read",
--        completer_method=path_completer,
-+        completer=path_completer,
-     )
-     ap_updateMetaData = argparse.ArgumentParser()
-     ap_updateMetaData.add_argument(
--        "Path", help="Path whose MetaData is to update", completer_method=path_completer
-+        "Path", help="Path whose MetaData is to update", completer=path_completer
-     )
-     ap_updateMetaData.add_argument(
-         "Json",
-@@ -300,14 +299,14 @@ class TestClient(Cmd):
-     )
-     ap_updateVSSTree = argparse.ArgumentParser()
--    jsonfile_completer_method = functools.partial(
-+    jsonfile_completer = functools.partial(
-         Cmd.path_complete,
-         path_filter=lambda path: (os.path.isdir(path) or path.endswith(".json")),
-     )
-     ap_updateVSSTree.add_argument(
-         "Json",
-         help="Json tree to update VSS",
--        completer_method=jsonfile_completer_method,
-+        completer=jsonfile_completer,
-     )
-     # Constructor, request names after protocol to avoid errors
--- 
-2.44.0
-
diff --git a/recipes-connectivity/kuksa-val/kuksa-client/0002-Tweak-grpcio-tools-requirement.patch b/recipes-connectivity/kuksa-val/kuksa-client/0002-Tweak-grpcio-tools-requirement.patch
deleted file mode 100644 (file)
index fef2265..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From 43823a52a9cb25d906542d15dc207f6516579aa3 Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Tue, 18 Jun 2024 16:08:13 -0400
-Subject: [PATCH 2/2] Tweak grpcio-tools requirement
-
-Lower grpcio-tools requirement to 1.62.0 so building on YP scarthgap
-is possible.
-
-Upstream-Status: Pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- kuksa-client/pyproject.toml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kuksa-client/pyproject.toml b/kuksa-client/pyproject.toml
-index a7afaca..a8d70ff 100644
---- a/kuksa-client/pyproject.toml
-+++ b/kuksa-client/pyproject.toml
-@@ -1,6 +1,6 @@
- [build-system]
- requires = [
--    "grpcio-tools>=1.63.0",
-+    "grpcio-tools>=1.62.0",
-     "setuptools>=42",
-     "setuptools-git-versioning",
-     "wheel",
--- 
-2.44.0
-
diff --git a/recipes-connectivity/kuksa-val/kuksa-client_git.bb b/recipes-connectivity/kuksa-val/kuksa-client_git.bb
deleted file mode 100644 (file)
index e12816a..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Python client for KUKSA.val, the KUKSA Vehicle Abstraction Layer"
-HOMEPAGE = "https://github.com/eclipse/kuksa.val"
-BUGTRACKER = "https://github.com/eclipse/kuksa.val/issues"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-DEPENDS = " \
-    python3-setuptools-git-versioning-native \
-    python3-grpcio-tools-native \
-    python3-grpcio \
-"
-
-PV = "0.4.3"
-
-SRC_URI = "gitsm://github.com/eclipse-kuksa/kuksa-python-sdk.git;protocol=https;branch=main \
-           file://0001-kuksa-client-Update-cmd2-completer-usage.patch;patchdir=.. \
-           file://0002-Tweak-grpcio-tools-requirement.patch;patchdir=.. \
-"
-SRCREV = "d72777a6aec6bd9f9a2bdf5ae5d01a9bc2de423a"
-
-S = "${WORKDIR}/git/kuksa-client"
-
-inherit python_setuptools_build_meta
-
-RDEPENDS:${PN} += " \
-    python3-cmd2 \
-    python3-importlib-metadata \
-    python3-pkg-resources \
-    python3-pygments \
-    python3-websockets \
-    python3-grpcio \
-    python3-grpcio-tools \
-    python3-jsonpath-ng \
-"
-
-# A script for generating new certificates currently gets shipped inside
-# the client module, for now add bash to RDEPENDS to quiet the QA error.
-# This should probably be addressed with finer-grained packaging or some
-# other change worked out with upstream.
-RDEPENDS:${PN} += "bash"
diff --git a/recipes-connectivity/kuksa-val/kuksa-databroker-crates.inc b/recipes-connectivity/kuksa-val/kuksa-databroker-crates.inc
deleted file mode 100644 (file)
index 02adc11..0000000
+++ /dev/null
@@ -1,988 +0,0 @@
-# Autogenerated with 'bitbake -c update_crates kuksa-databroker'
-
-# from Cargo.lock
-SRC_URI += " \
-    crate://crates.io/addr2line/0.22.0 \
-    crate://crates.io/adler/1.0.2 \
-    crate://crates.io/aho-corasick/1.1.3 \
-    crate://crates.io/android-tzdata/0.1.1 \
-    crate://crates.io/android_system_properties/0.1.5 \
-    crate://crates.io/ansi_term/0.12.1 \
-    crate://crates.io/anstream/0.6.14 \
-    crate://crates.io/anstyle/1.0.7 \
-    crate://crates.io/anstyle-parse/0.2.4 \
-    crate://crates.io/anstyle-query/1.1.0 \
-    crate://crates.io/anstyle-wincon/3.0.3 \
-    crate://crates.io/anyhow/1.0.86 \
-    crate://crates.io/arc-swap/1.7.1 \
-    crate://crates.io/arrayref/0.3.7 \
-    crate://crates.io/arrayvec/0.5.2 \
-    crate://crates.io/async-stream/0.3.5 \
-    crate://crates.io/async-stream-impl/0.3.5 \
-    crate://crates.io/async-trait/0.1.80 \
-    crate://crates.io/autocfg/1.3.0 \
-    crate://crates.io/axum/0.6.20 \
-    crate://crates.io/axum-core/0.3.4 \
-    crate://crates.io/backtrace/0.3.72 \
-    crate://crates.io/base64/0.13.1 \
-    crate://crates.io/base64/0.21.7 \
-    crate://crates.io/base64/0.22.1 \
-    crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/bitflags/2.5.0 \
-    crate://crates.io/blake2b_simd/0.5.11 \
-    crate://crates.io/block-buffer/0.10.4 \
-    crate://crates.io/bstr/1.9.1 \
-    crate://crates.io/btoi/0.4.3 \
-    crate://crates.io/bumpalo/3.16.0 \
-    crate://crates.io/bytecount/0.6.8 \
-    crate://crates.io/byteorder/1.5.0 \
-    crate://crates.io/bytes/1.6.0 \
-    crate://crates.io/camino/1.1.7 \
-    crate://crates.io/cargo-platform/0.1.8 \
-    crate://crates.io/cargo_metadata/0.18.1 \
-    crate://crates.io/cc/1.0.98 \
-    crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/chrono/0.4.38 \
-    crate://crates.io/clap/4.5.4 \
-    crate://crates.io/clap_builder/4.5.2 \
-    crate://crates.io/clap_derive/4.5.4 \
-    crate://crates.io/clap_lex/0.7.0 \
-    crate://crates.io/clru/0.6.2 \
-    crate://crates.io/colorchoice/1.0.1 \
-    crate://crates.io/console/0.15.8 \
-    crate://crates.io/constant_time_eq/0.1.5 \
-    crate://crates.io/core-foundation-sys/0.8.6 \
-    crate://crates.io/cpufeatures/0.2.12 \
-    crate://crates.io/crc32fast/1.4.2 \
-    crate://crates.io/crossbeam-deque/0.8.5 \
-    crate://crates.io/crossbeam-epoch/0.9.18 \
-    crate://crates.io/crossbeam-utils/0.8.20 \
-    crate://crates.io/crypto-common/0.1.6 \
-    crate://crates.io/cucumber/0.20.2 \
-    crate://crates.io/cucumber-codegen/0.20.2 \
-    crate://crates.io/cucumber-expressions/0.3.0 \
-    crate://crates.io/data-encoding/2.6.0 \
-    crate://crates.io/deranged/0.3.11 \
-    crate://crates.io/derive_more/0.99.17 \
-    crate://crates.io/digest/0.10.7 \
-    crate://crates.io/dirs/1.0.5 \
-    crate://crates.io/dirs/4.0.0 \
-    crate://crates.io/dirs-sys/0.3.7 \
-    crate://crates.io/drain_filter_polyfill/0.1.3 \
-    crate://crates.io/dunce/1.0.4 \
-    crate://crates.io/either/1.12.0 \
-    crate://crates.io/encode_unicode/0.3.6 \
-    crate://crates.io/equivalent/1.0.1 \
-    crate://crates.io/errno/0.3.9 \
-    crate://crates.io/faster-hex/0.9.0 \
-    crate://crates.io/fastrand/2.1.0 \
-    crate://crates.io/filetime/0.2.23 \
-    crate://crates.io/fixedbitset/0.4.2 \
-    crate://crates.io/flate2/1.0.30 \
-    crate://crates.io/fnv/1.0.7 \
-    crate://crates.io/form_urlencoded/1.2.1 \
-    crate://crates.io/futures/0.3.30 \
-    crate://crates.io/futures-channel/0.3.30 \
-    crate://crates.io/futures-core/0.3.30 \
-    crate://crates.io/futures-executor/0.3.30 \
-    crate://crates.io/futures-io/0.3.30 \
-    crate://crates.io/futures-macro/0.3.30 \
-    crate://crates.io/futures-sink/0.3.30 \
-    crate://crates.io/futures-task/0.3.30 \
-    crate://crates.io/futures-util/0.3.30 \
-    crate://crates.io/generic-array/0.14.7 \
-    crate://crates.io/getrandom/0.1.16 \
-    crate://crates.io/getrandom/0.2.15 \
-    crate://crates.io/gherkin/0.14.0 \
-    crate://crates.io/gimli/0.29.0 \
-    crate://crates.io/gix/0.57.1 \
-    crate://crates.io/gix-actor/0.29.1 \
-    crate://crates.io/gix-bitmap/0.2.11 \
-    crate://crates.io/gix-chunk/0.4.8 \
-    crate://crates.io/gix-commitgraph/0.23.2 \
-    crate://crates.io/gix-config/0.33.1 \
-    crate://crates.io/gix-config-value/0.14.6 \
-    crate://crates.io/gix-date/0.8.6 \
-    crate://crates.io/gix-diff/0.39.1 \
-    crate://crates.io/gix-discover/0.28.1 \
-    crate://crates.io/gix-features/0.37.2 \
-    crate://crates.io/gix-fs/0.9.1 \
-    crate://crates.io/gix-glob/0.15.1 \
-    crate://crates.io/gix-hash/0.14.2 \
-    crate://crates.io/gix-hashtable/0.5.2 \
-    crate://crates.io/gix-index/0.28.2 \
-    crate://crates.io/gix-lock/12.0.1 \
-    crate://crates.io/gix-macros/0.1.5 \
-    crate://crates.io/gix-object/0.40.1 \
-    crate://crates.io/gix-odb/0.56.1 \
-    crate://crates.io/gix-pack/0.46.1 \
-    crate://crates.io/gix-path/0.10.7 \
-    crate://crates.io/gix-quote/0.4.12 \
-    crate://crates.io/gix-ref/0.40.1 \
-    crate://crates.io/gix-refspec/0.21.1 \
-    crate://crates.io/gix-revision/0.25.1 \
-    crate://crates.io/gix-revwalk/0.11.1 \
-    crate://crates.io/gix-sec/0.10.6 \
-    crate://crates.io/gix-tempfile/12.0.1 \
-    crate://crates.io/gix-trace/0.1.9 \
-    crate://crates.io/gix-traverse/0.36.2 \
-    crate://crates.io/gix-url/0.26.1 \
-    crate://crates.io/gix-utils/0.1.12 \
-    crate://crates.io/gix-validate/0.8.5 \
-    crate://crates.io/glob-match/0.2.1 \
-    crate://crates.io/globset/0.4.14 \
-    crate://crates.io/globwalk/0.8.1 \
-    crate://crates.io/h2/0.3.26 \
-    crate://crates.io/hashbrown/0.12.3 \
-    crate://crates.io/hashbrown/0.14.5 \
-    crate://crates.io/heck/0.4.1 \
-    crate://crates.io/heck/0.5.0 \
-    crate://crates.io/hermit-abi/0.3.9 \
-    crate://crates.io/home/0.5.9 \
-    crate://crates.io/http/0.2.12 \
-    crate://crates.io/http-body/0.4.6 \
-    crate://crates.io/httparse/1.8.0 \
-    crate://crates.io/httpdate/1.0.3 \
-    crate://crates.io/humantime/2.1.0 \
-    crate://crates.io/hyper/0.14.29 \
-    crate://crates.io/hyper-timeout/0.4.1 \
-    crate://crates.io/iana-time-zone/0.1.60 \
-    crate://crates.io/iana-time-zone-haiku/0.1.2 \
-    crate://crates.io/idna/0.5.0 \
-    crate://crates.io/ignore/0.4.22 \
-    crate://crates.io/indexmap/1.9.3 \
-    crate://crates.io/indexmap/2.2.6 \
-    crate://crates.io/inflections/1.1.1 \
-    crate://crates.io/inventory/0.3.15 \
-    crate://crates.io/is_terminal_polyfill/1.70.0 \
-    crate://crates.io/itertools/0.12.1 \
-    crate://crates.io/itoa/1.0.11 \
-    crate://crates.io/jemalloc-sys/0.5.4+5.3.0-patched \
-    crate://crates.io/jemallocator/0.5.4 \
-    crate://crates.io/js-sys/0.3.69 \
-    crate://crates.io/jsonwebtoken/9.3.0 \
-    crate://crates.io/lazy-regex/3.1.0 \
-    crate://crates.io/lazy-regex-proc_macros/3.1.0 \
-    crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/libc/0.2.155 \
-    crate://crates.io/libredox/0.1.3 \
-    crate://crates.io/linefeed/0.6.0 \
-    crate://crates.io/linked-hash-map/0.5.6 \
-    crate://crates.io/linux-raw-sys/0.4.14 \
-    crate://crates.io/lock_api/0.4.12 \
-    crate://crates.io/log/0.4.21 \
-    crate://crates.io/matchers/0.1.0 \
-    crate://crates.io/matchit/0.7.3 \
-    crate://crates.io/memchr/2.7.2 \
-    crate://crates.io/memmap2/0.9.4 \
-    crate://crates.io/mime/0.3.17 \
-    crate://crates.io/minimal-lexical/0.2.1 \
-    crate://crates.io/miniz_oxide/0.7.3 \
-    crate://crates.io/mio/0.8.11 \
-    crate://crates.io/mortal/0.2.4 \
-    crate://crates.io/multimap/0.10.0 \
-    crate://crates.io/nix/0.26.4 \
-    crate://crates.io/nom/7.1.3 \
-    crate://crates.io/nom_locate/4.2.0 \
-    crate://crates.io/nu-ansi-term/0.46.0 \
-    crate://crates.io/num-bigint/0.4.5 \
-    crate://crates.io/num-conv/0.1.0 \
-    crate://crates.io/num-integer/0.1.46 \
-    crate://crates.io/num-traits/0.2.19 \
-    crate://crates.io/num_cpus/1.16.0 \
-    crate://crates.io/num_threads/0.1.7 \
-    crate://crates.io/object/0.35.0 \
-    crate://crates.io/once_cell/1.19.0 \
-    crate://crates.io/overload/0.1.1 \
-    crate://crates.io/parking_lot/0.12.3 \
-    crate://crates.io/parking_lot_core/0.9.10 \
-    crate://crates.io/peg/0.6.3 \
-    crate://crates.io/peg-macros/0.6.3 \
-    crate://crates.io/peg-runtime/0.6.3 \
-    crate://crates.io/pem/3.0.4 \
-    crate://crates.io/percent-encoding/2.3.1 \
-    crate://crates.io/petgraph/0.6.5 \
-    crate://crates.io/phf/0.11.2 \
-    crate://crates.io/phf_codegen/0.11.2 \
-    crate://crates.io/phf_generator/0.11.2 \
-    crate://crates.io/phf_shared/0.11.2 \
-    crate://crates.io/pin-project/1.1.5 \
-    crate://crates.io/pin-project-internal/1.1.5 \
-    crate://crates.io/pin-project-lite/0.2.14 \
-    crate://crates.io/pin-utils/0.1.0 \
-    crate://crates.io/powerfmt/0.2.0 \
-    crate://crates.io/ppv-lite86/0.2.17 \
-    crate://crates.io/prettyplease/0.2.20 \
-    crate://crates.io/proc-macro2/1.0.85 \
-    crate://crates.io/prodash/28.0.0 \
-    crate://crates.io/prost/0.12.6 \
-    crate://crates.io/prost-build/0.12.6 \
-    crate://crates.io/prost-derive/0.12.6 \
-    crate://crates.io/prost-types/0.12.6 \
-    crate://crates.io/quote/1.0.36 \
-    crate://crates.io/rand/0.8.5 \
-    crate://crates.io/rand_chacha/0.3.1 \
-    crate://crates.io/rand_core/0.6.4 \
-    crate://crates.io/redox_syscall/0.1.57 \
-    crate://crates.io/redox_syscall/0.4.1 \
-    crate://crates.io/redox_syscall/0.5.1 \
-    crate://crates.io/redox_users/0.3.5 \
-    crate://crates.io/redox_users/0.4.5 \
-    crate://crates.io/regex/1.10.4 \
-    crate://crates.io/regex-automata/0.1.10 \
-    crate://crates.io/regex-automata/0.4.6 \
-    crate://crates.io/regex-syntax/0.6.29 \
-    crate://crates.io/regex-syntax/0.7.5 \
-    crate://crates.io/regex-syntax/0.8.3 \
-    crate://crates.io/ring/0.17.8 \
-    crate://crates.io/rust-argon2/0.8.3 \
-    crate://crates.io/rustc-demangle/0.1.24 \
-    crate://crates.io/rustix/0.38.34 \
-    crate://crates.io/rustls/0.22.4 \
-    crate://crates.io/rustls-pemfile/2.1.2 \
-    crate://crates.io/rustls-pki-types/1.7.0 \
-    crate://crates.io/rustls-webpki/0.102.4 \
-    crate://crates.io/rustversion/1.0.17 \
-    crate://crates.io/ryu/1.0.18 \
-    crate://crates.io/same-file/1.0.6 \
-    crate://crates.io/scopeguard/1.2.0 \
-    crate://crates.io/sd-notify/0.4.1 \
-    crate://crates.io/sealed/0.5.0 \
-    crate://crates.io/semver/1.0.23 \
-    crate://crates.io/serde/1.0.203 \
-    crate://crates.io/serde_derive/1.0.203 \
-    crate://crates.io/serde_json/1.0.117 \
-    crate://crates.io/serde_path_to_error/0.1.16 \
-    crate://crates.io/serde_urlencoded/0.7.1 \
-    crate://crates.io/sha1/0.10.6 \
-    crate://crates.io/sha1_smol/1.0.0 \
-    crate://crates.io/sharded-slab/0.1.7 \
-    crate://crates.io/signal-hook/0.3.17 \
-    crate://crates.io/signal-hook-registry/1.4.2 \
-    crate://crates.io/simple_asn1/0.6.2 \
-    crate://crates.io/siphasher/0.3.11 \
-    crate://crates.io/slab/0.4.9 \
-    crate://crates.io/smallstr/0.2.0 \
-    crate://crates.io/smallvec/1.13.2 \
-    crate://crates.io/smart-default/0.7.1 \
-    crate://crates.io/smawk/0.3.2 \
-    crate://crates.io/socket2/0.5.7 \
-    crate://crates.io/spin/0.9.8 \
-    crate://crates.io/sqlparser/0.16.0 \
-    crate://crates.io/strsim/0.11.1 \
-    crate://crates.io/subtle/2.5.0 \
-    crate://crates.io/syn/1.0.109 \
-    crate://crates.io/syn/2.0.66 \
-    crate://crates.io/sync_wrapper/0.1.2 \
-    crate://crates.io/synthez/0.3.1 \
-    crate://crates.io/synthez-codegen/0.3.1 \
-    crate://crates.io/synthez-core/0.3.1 \
-    crate://crates.io/tempfile/3.10.1 \
-    crate://crates.io/terminal_size/0.3.0 \
-    crate://crates.io/terminfo/0.8.0 \
-    crate://crates.io/textwrap/0.16.1 \
-    crate://crates.io/thiserror/1.0.61 \
-    crate://crates.io/thiserror-impl/1.0.61 \
-    crate://crates.io/thread_local/1.1.8 \
-    crate://crates.io/time/0.3.36 \
-    crate://crates.io/time-core/0.1.2 \
-    crate://crates.io/time-macros/0.2.18 \
-    crate://crates.io/tinyvec/1.6.0 \
-    crate://crates.io/tinyvec_macros/0.1.1 \
-    crate://crates.io/tokio/1.38.0 \
-    crate://crates.io/tokio-io-timeout/1.2.0 \
-    crate://crates.io/tokio-macros/2.3.0 \
-    crate://crates.io/tokio-rustls/0.25.0 \
-    crate://crates.io/tokio-stream/0.1.15 \
-    crate://crates.io/tokio-tungstenite/0.20.1 \
-    crate://crates.io/tokio-util/0.7.11 \
-    crate://crates.io/tonic/0.11.0 \
-    crate://crates.io/tonic-build/0.11.0 \
-    crate://crates.io/tonic-mock/0.3.0 \
-    crate://crates.io/tower/0.4.13 \
-    crate://crates.io/tower-layer/0.3.2 \
-    crate://crates.io/tower-service/0.3.2 \
-    crate://crates.io/tracing/0.1.40 \
-    crate://crates.io/tracing-attributes/0.1.27 \
-    crate://crates.io/tracing-core/0.1.32 \
-    crate://crates.io/tracing-subscriber/0.3.18 \
-    crate://crates.io/try-lock/0.2.5 \
-    crate://crates.io/tungstenite/0.20.1 \
-    crate://crates.io/typed-builder/0.15.2 \
-    crate://crates.io/typed-builder-macro/0.15.2 \
-    crate://crates.io/typenum/1.17.0 \
-    crate://crates.io/unicode-bidi/0.3.15 \
-    crate://crates.io/unicode-bom/2.0.3 \
-    crate://crates.io/unicode-ident/1.0.12 \
-    crate://crates.io/unicode-linebreak/0.1.5 \
-    crate://crates.io/unicode-normalization/0.1.23 \
-    crate://crates.io/unicode-width/0.1.13 \
-    crate://crates.io/untrusted/0.9.0 \
-    crate://crates.io/url/2.5.0 \
-    crate://crates.io/utf-8/0.7.6 \
-    crate://crates.io/utf8parse/0.2.1 \
-    crate://crates.io/uuid/1.8.0 \
-    crate://crates.io/vergen/8.3.1 \
-    crate://crates.io/version_check/0.9.4 \
-    crate://crates.io/walkdir/2.5.0 \
-    crate://crates.io/want/0.3.1 \
-    crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasm-bindgen/0.2.92 \
-    crate://crates.io/wasm-bindgen-backend/0.2.92 \
-    crate://crates.io/wasm-bindgen-macro/0.2.92 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.92 \
-    crate://crates.io/wasm-bindgen-shared/0.2.92 \
-    crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.8 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/windows-core/0.52.0 \
-    crate://crates.io/windows-sys/0.48.0 \
-    crate://crates.io/windows-sys/0.52.0 \
-    crate://crates.io/windows-targets/0.48.5 \
-    crate://crates.io/windows-targets/0.52.5 \
-    crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
-    crate://crates.io/windows_aarch64_gnullvm/0.52.5 \
-    crate://crates.io/windows_aarch64_msvc/0.48.5 \
-    crate://crates.io/windows_aarch64_msvc/0.52.5 \
-    crate://crates.io/windows_i686_gnu/0.48.5 \
-    crate://crates.io/windows_i686_gnu/0.52.5 \
-    crate://crates.io/windows_i686_gnullvm/0.52.5 \
-    crate://crates.io/windows_i686_msvc/0.48.5 \
-    crate://crates.io/windows_i686_msvc/0.52.5 \
-    crate://crates.io/windows_x86_64_gnu/0.48.5 \
-    crate://crates.io/windows_x86_64_gnu/0.52.5 \
-    crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
-    crate://crates.io/windows_x86_64_gnullvm/0.52.5 \
-    crate://crates.io/windows_x86_64_msvc/0.48.5 \
-    crate://crates.io/windows_x86_64_msvc/0.52.5 \
-    crate://crates.io/winnow/0.5.40 \
-    crate://crates.io/zeroize/1.8.1 \
-"
-
-SRC_URI[addr2line-0.22.0.sha256sum] = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
-SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
-SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-SRC_URI[anstream-0.6.14.sha256sum] = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
-SRC_URI[anstyle-1.0.7.sha256sum] = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
-SRC_URI[anstyle-parse-0.2.4.sha256sum] = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
-SRC_URI[anstyle-query-1.1.0.sha256sum] = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391"
-SRC_URI[anstyle-wincon-3.0.3.sha256sum] = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
-SRC_URI[anyhow-1.0.86.sha256sum] = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
-SRC_URI[arc-swap-1.7.1.sha256sum] = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
-SRC_URI[arrayref-0.3.7.sha256sum] = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
-SRC_URI[arrayvec-0.5.2.sha256sum] = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
-SRC_URI[async-stream-0.3.5.sha256sum] = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
-SRC_URI[async-stream-impl-0.3.5.sha256sum] = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
-SRC_URI[async-trait-0.1.80.sha256sum] = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
-SRC_URI[autocfg-1.3.0.sha256sum] = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
-SRC_URI[axum-0.6.20.sha256sum] = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
-SRC_URI[axum-core-0.3.4.sha256sum] = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
-SRC_URI[backtrace-0.3.72.sha256sum] = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
-SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
-SRC_URI[base64-0.22.1.sha256sum] = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
-SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-SRC_URI[bitflags-2.5.0.sha256sum] = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
-SRC_URI[blake2b_simd-0.5.11.sha256sum] = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
-SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-SRC_URI[bstr-1.9.1.sha256sum] = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
-SRC_URI[btoi-0.4.3.sha256sum] = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad"
-SRC_URI[bumpalo-3.16.0.sha256sum] = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
-SRC_URI[bytecount-0.6.8.sha256sum] = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce"
-SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
-SRC_URI[bytes-1.6.0.sha256sum] = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
-SRC_URI[camino-1.1.7.sha256sum] = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239"
-SRC_URI[cargo-platform-0.1.8.sha256sum] = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
-SRC_URI[cargo_metadata-0.18.1.sha256sum] = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
-SRC_URI[cc-1.0.98.sha256sum] = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
-SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[chrono-0.4.38.sha256sum] = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
-SRC_URI[clap-4.5.4.sha256sum] = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
-SRC_URI[clap_builder-4.5.2.sha256sum] = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
-SRC_URI[clap_derive-4.5.4.sha256sum] = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
-SRC_URI[clap_lex-0.7.0.sha256sum] = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
-SRC_URI[clru-0.6.2.sha256sum] = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59"
-SRC_URI[colorchoice-1.0.1.sha256sum] = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
-SRC_URI[console-0.15.8.sha256sum] = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
-SRC_URI[constant_time_eq-0.1.5.sha256sum] = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-SRC_URI[core-foundation-sys-0.8.6.sha256sum] = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
-SRC_URI[cpufeatures-0.2.12.sha256sum] = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
-SRC_URI[crc32fast-1.4.2.sha256sum] = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
-SRC_URI[crossbeam-deque-0.8.5.sha256sum] = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
-SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
-SRC_URI[crossbeam-utils-0.8.20.sha256sum] = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
-SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-SRC_URI[cucumber-0.20.2.sha256sum] = "8e5063d8cf24f4998ad01cac265da468a15ca682a8f4f826d50e661964e8d9b8"
-SRC_URI[cucumber-codegen-0.20.2.sha256sum] = "01091e28d1f566c8b31b67948399d2efd6c0a8f6228a9785519ed7b73f7f0aef"
-SRC_URI[cucumber-expressions-0.3.0.sha256sum] = "d794fed319eea24246fb5f57632f7ae38d61195817b7eb659455aa5bdd7c1810"
-SRC_URI[data-encoding-2.6.0.sha256sum] = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
-SRC_URI[deranged-0.3.11.sha256sum] = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
-SRC_URI[derive_more-0.99.17.sha256sum] = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
-SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-SRC_URI[dirs-1.0.5.sha256sum] = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
-SRC_URI[dirs-4.0.0.sha256sum] = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-SRC_URI[dirs-sys-0.3.7.sha256sum] = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-SRC_URI[drain_filter_polyfill-0.1.3.sha256sum] = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408"
-SRC_URI[dunce-1.0.4.sha256sum] = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
-SRC_URI[either-1.12.0.sha256sum] = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
-SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
-SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-SRC_URI[errno-0.3.9.sha256sum] = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
-SRC_URI[faster-hex-0.9.0.sha256sum] = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
-SRC_URI[fastrand-2.1.0.sha256sum] = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
-SRC_URI[filetime-0.2.23.sha256sum] = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
-SRC_URI[fixedbitset-0.4.2.sha256sum] = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
-SRC_URI[flate2-1.0.30.sha256sum] = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
-SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
-SRC_URI[futures-0.3.30.sha256sum] = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
-SRC_URI[futures-channel-0.3.30.sha256sum] = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
-SRC_URI[futures-core-0.3.30.sha256sum] = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
-SRC_URI[futures-executor-0.3.30.sha256sum] = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
-SRC_URI[futures-io-0.3.30.sha256sum] = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
-SRC_URI[futures-macro-0.3.30.sha256sum] = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
-SRC_URI[futures-sink-0.3.30.sha256sum] = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
-SRC_URI[futures-task-0.3.30.sha256sum] = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
-SRC_URI[futures-util-0.3.30.sha256sum] = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
-SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-SRC_URI[getrandom-0.1.16.sha256sum] = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
-SRC_URI[gherkin-0.14.0.sha256sum] = "20b79820c0df536d1f3a089a2fa958f61cb96ce9e0f3f8f507f5a31179567755"
-SRC_URI[gimli-0.29.0.sha256sum] = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
-SRC_URI[gix-0.57.1.sha256sum] = "6dd025382892c7b500a9ce1582cd803f9c2ebfe44aff52e9c7f86feee7ced75e"
-SRC_URI[gix-actor-0.29.1.sha256sum] = "da27b5ab4ab5c75ff891dccd48409f8cc53c28a79480f1efdd33184b2dc1d958"
-SRC_URI[gix-bitmap-0.2.11.sha256sum] = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae"
-SRC_URI[gix-chunk-0.4.8.sha256sum] = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52"
-SRC_URI[gix-commitgraph-0.23.2.sha256sum] = "7e8dcbf434951fa477063e05fea59722615af70dc2567377e58c2f7853b010fc"
-SRC_URI[gix-config-0.33.1.sha256sum] = "367304855b369cadcac4ee5fb5a3a20da9378dd7905106141070b79f85241079"
-SRC_URI[gix-config-value-0.14.6.sha256sum] = "fbd06203b1a9b33a78c88252a625031b094d9e1b647260070c25b09910c0a804"
-SRC_URI[gix-date-0.8.6.sha256sum] = "367ee9093b0c2b04fd04c5c7c8b6a1082713534eab537597ae343663a518fa99"
-SRC_URI[gix-diff-0.39.1.sha256sum] = "fd6a0454f8c42d686f17e7f084057c717c082b7dbb8209729e4e8f26749eb93a"
-SRC_URI[gix-discover-0.28.1.sha256sum] = "b8d7b2896edc3d899d28a646ccc6df729827a6600e546570b2783466404a42d6"
-SRC_URI[gix-features-0.37.2.sha256sum] = "d50270e8dcc665f30ba0735b17984b9535bdf1e646c76e638e007846164d57af"
-SRC_URI[gix-fs-0.9.1.sha256sum] = "7555c23a005537434bbfcb8939694e18cad42602961d0de617f8477cc2adecdd"
-SRC_URI[gix-glob-0.15.1.sha256sum] = "ae6232f18b262770e343dcdd461c0011c9b9ae27f0c805e115012aa2b902c1b8"
-SRC_URI[gix-hash-0.14.2.sha256sum] = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e"
-SRC_URI[gix-hashtable-0.5.2.sha256sum] = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242"
-SRC_URI[gix-index-0.28.2.sha256sum] = "9e50e63df6c8d4137f7fb882f27643b3a9756c468a1a2cdbe1ce443010ca8778"
-SRC_URI[gix-lock-12.0.1.sha256sum] = "f40a439397f1e230b54cf85d52af87e5ea44cc1e7748379785d3f6d03d802b00"
-SRC_URI[gix-macros-0.1.5.sha256sum] = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17"
-SRC_URI[gix-object-0.40.1.sha256sum] = "0c89402e8faa41b49fde348665a8f38589e461036475af43b6b70615a6a313a2"
-SRC_URI[gix-odb-0.56.1.sha256sum] = "46ae6da873de41c6c2b73570e82c571b69df5154dcd8f46dfafc6687767c33b1"
-SRC_URI[gix-pack-0.46.1.sha256sum] = "782b4d42790a14072d5c400deda9851f5765f50fe72bca6dece0da1cd6f05a9a"
-SRC_URI[gix-path-0.10.7.sha256sum] = "23623cf0f475691a6d943f898c4d0b89f5c1a2a64d0f92bce0e0322ee6528783"
-SRC_URI[gix-quote-0.4.12.sha256sum] = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff"
-SRC_URI[gix-ref-0.40.1.sha256sum] = "64d9bd1984638d8f3511a2fcbe84fcedb8a5b5d64df677353620572383f42649"
-SRC_URI[gix-refspec-0.21.1.sha256sum] = "be219df5092c1735abb2a53eccdf775e945eea6986ee1b6e7a5896dccc0be704"
-SRC_URI[gix-revision-0.25.1.sha256sum] = "aa78e1df3633bc937d4db15f8dca2abdb1300ca971c0fabcf9fa97e38cf4cd9f"
-SRC_URI[gix-revwalk-0.11.1.sha256sum] = "702de5fe5c2bbdde80219f3a8b9723eb927466e7ecd187cfd1b45d986408e45f"
-SRC_URI[gix-sec-0.10.6.sha256sum] = "fddc27984a643b20dd03e97790555804f98cf07404e0e552c0ad8133266a79a1"
-SRC_URI[gix-tempfile-12.0.1.sha256sum] = "a8ef376d718b1f5f119b458e21b00fbf576bc9d4e26f8f383d29f5ffe3ba3eaa"
-SRC_URI[gix-trace-0.1.9.sha256sum] = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e"
-SRC_URI[gix-traverse-0.36.2.sha256sum] = "65109e445ba7a409b48f34f570a4d7db72eade1dc1bcff81990a490e86c07161"
-SRC_URI[gix-url-0.26.1.sha256sum] = "8f0f17cceb7552a231d1fec690bc2740c346554e3be6f5d2c41dfa809594dc44"
-SRC_URI[gix-utils-0.1.12.sha256sum] = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc"
-SRC_URI[gix-validate-0.8.5.sha256sum] = "82c27dd34a49b1addf193c92070bcbf3beaf6e10f16a78544de6372e146a0acf"
-SRC_URI[glob-match-0.2.1.sha256sum] = "9985c9503b412198aa4197559e9a318524ebc4519c229bfa05a535828c950b9d"
-SRC_URI[globset-0.4.14.sha256sum] = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
-SRC_URI[globwalk-0.8.1.sha256sum] = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc"
-SRC_URI[h2-0.3.26.sha256sum] = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
-SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
-SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
-SRC_URI[hermit-abi-0.3.9.sha256sum] = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
-SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
-SRC_URI[http-0.2.12.sha256sum] = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
-SRC_URI[http-body-0.4.6.sha256sum] = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
-SRC_URI[httparse-1.8.0.sha256sum] = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-SRC_URI[httpdate-1.0.3.sha256sum] = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-SRC_URI[hyper-0.14.29.sha256sum] = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33"
-SRC_URI[hyper-timeout-0.4.1.sha256sum] = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
-SRC_URI[iana-time-zone-0.1.60.sha256sum] = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
-SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
-SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
-SRC_URI[ignore-0.4.22.sha256sum] = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
-SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-SRC_URI[indexmap-2.2.6.sha256sum] = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
-SRC_URI[inflections-1.1.1.sha256sum] = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a"
-SRC_URI[inventory-0.3.15.sha256sum] = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767"
-SRC_URI[is_terminal_polyfill-1.70.0.sha256sum] = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
-SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
-SRC_URI[itoa-1.0.11.sha256sum] = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
-SRC_URI[jemalloc-sys-0.5.4+5.3.0-patched.sha256sum] = "ac6c1946e1cea1788cbfde01c993b52a10e2da07f4bac608228d1bed20bfebf2"
-SRC_URI[jemallocator-0.5.4.sha256sum] = "a0de374a9f8e63150e6f5e8a60cc14c668226d7a347d8aee1a45766e3c4dd3bc"
-SRC_URI[js-sys-0.3.69.sha256sum] = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
-SRC_URI[jsonwebtoken-9.3.0.sha256sum] = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
-SRC_URI[lazy-regex-3.1.0.sha256sum] = "5d12be4595afdf58bd19e4a9f4e24187da2a66700786ff660a418e9059937a4c"
-SRC_URI[lazy-regex-proc_macros-3.1.0.sha256sum] = "44bcd58e6c97a7fcbaffcdc95728b393b8d98933bfadad49ed4097845b57ef0b"
-SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-SRC_URI[libc-0.2.155.sha256sum] = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
-SRC_URI[libredox-0.1.3.sha256sum] = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
-SRC_URI[linefeed-0.6.0.sha256sum] = "28715d08e35c6c074f9ae6b2e6a2420bac75d050c66ecd669d7d5b98e2caa036"
-SRC_URI[linked-hash-map-0.5.6.sha256sum] = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-SRC_URI[linux-raw-sys-0.4.14.sha256sum] = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
-SRC_URI[lock_api-0.4.12.sha256sum] = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
-SRC_URI[log-0.4.21.sha256sum] = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
-SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
-SRC_URI[matchit-0.7.3.sha256sum] = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
-SRC_URI[memchr-2.7.2.sha256sum] = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
-SRC_URI[memmap2-0.9.4.sha256sum] = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
-SRC_URI[mime-0.3.17.sha256sum] = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-SRC_URI[miniz_oxide-0.7.3.sha256sum] = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
-SRC_URI[mio-0.8.11.sha256sum] = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
-SRC_URI[mortal-0.2.4.sha256sum] = "2c624fa1b7aab6bd2aff6e9b18565cc0363b6d45cbcd7465c9ed5e3740ebf097"
-SRC_URI[multimap-0.10.0.sha256sum] = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03"
-SRC_URI[nix-0.26.4.sha256sum] = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
-SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
-SRC_URI[nom_locate-4.2.0.sha256sum] = "1e3c83c053b0713da60c5b8de47fe8e494fe3ece5267b2f23090a07a053ba8f3"
-SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-SRC_URI[num-bigint-0.4.5.sha256sum] = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
-SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
-SRC_URI[num-integer-0.1.46.sha256sum] = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
-SRC_URI[num-traits-0.2.19.sha256sum] = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
-SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-SRC_URI[num_threads-0.1.7.sha256sum] = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
-SRC_URI[object-0.35.0.sha256sum] = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
-SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
-SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
-SRC_URI[parking_lot-0.12.3.sha256sum] = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
-SRC_URI[parking_lot_core-0.9.10.sha256sum] = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
-SRC_URI[peg-0.6.3.sha256sum] = "9f76678828272f177ac33b7e2ac2e3e73cc6c1cd1e3e387928aa69562fa51367"
-SRC_URI[peg-macros-0.6.3.sha256sum] = "636d60acf97633e48d266d7415a9355d4389cea327a193f87df395d88cd2b14d"
-SRC_URI[peg-runtime-0.6.3.sha256sum] = "9555b1514d2d99d78150d3c799d4c357a3e2c2a8062cd108e93a06d9057629c5"
-SRC_URI[pem-3.0.4.sha256sum] = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
-SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
-SRC_URI[petgraph-0.6.5.sha256sum] = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
-SRC_URI[phf-0.11.2.sha256sum] = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
-SRC_URI[phf_codegen-0.11.2.sha256sum] = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
-SRC_URI[phf_generator-0.11.2.sha256sum] = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
-SRC_URI[phf_shared-0.11.2.sha256sum] = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
-SRC_URI[pin-project-1.1.5.sha256sum] = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
-SRC_URI[pin-project-internal-1.1.5.sha256sum] = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
-SRC_URI[pin-project-lite-0.2.14.sha256sum] = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
-SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
-SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-SRC_URI[prettyplease-0.2.20.sha256sum] = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
-SRC_URI[proc-macro2-1.0.85.sha256sum] = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
-SRC_URI[prodash-28.0.0.sha256sum] = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79"
-SRC_URI[prost-0.12.6.sha256sum] = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
-SRC_URI[prost-build-0.12.6.sha256sum] = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4"
-SRC_URI[prost-derive-0.12.6.sha256sum] = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
-SRC_URI[prost-types-0.12.6.sha256sum] = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0"
-SRC_URI[quote-1.0.36.sha256sum] = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
-SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-SRC_URI[redox_syscall-0.1.57.sha256sum] = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
-SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
-SRC_URI[redox_syscall-0.5.1.sha256sum] = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
-SRC_URI[redox_users-0.3.5.sha256sum] = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
-SRC_URI[redox_users-0.4.5.sha256sum] = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
-SRC_URI[regex-1.10.4.sha256sum] = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
-SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-SRC_URI[regex-automata-0.4.6.sha256sum] = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
-SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
-SRC_URI[regex-syntax-0.7.5.sha256sum] = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-SRC_URI[regex-syntax-0.8.3.sha256sum] = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
-SRC_URI[ring-0.17.8.sha256sum] = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
-SRC_URI[rust-argon2-0.8.3.sha256sum] = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
-SRC_URI[rustc-demangle-0.1.24.sha256sum] = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
-SRC_URI[rustix-0.38.34.sha256sum] = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
-SRC_URI[rustls-0.22.4.sha256sum] = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
-SRC_URI[rustls-pemfile-2.1.2.sha256sum] = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
-SRC_URI[rustls-pki-types-1.7.0.sha256sum] = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
-SRC_URI[rustls-webpki-0.102.4.sha256sum] = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
-SRC_URI[rustversion-1.0.17.sha256sum] = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
-SRC_URI[ryu-1.0.18.sha256sum] = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
-SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-SRC_URI[sd-notify-0.4.1.sha256sum] = "621e3680f3e07db4c9c2c3fb07c6223ab2fab2e54bd3c04c3ae037990f428c32"
-SRC_URI[sealed-0.5.0.sha256sum] = "f4a8caec23b7800fb97971a1c6ae365b6239aaeddfb934d6265f8505e795699d"
-SRC_URI[semver-1.0.23.sha256sum] = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
-SRC_URI[serde-1.0.203.sha256sum] = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
-SRC_URI[serde_derive-1.0.203.sha256sum] = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
-SRC_URI[serde_json-1.0.117.sha256sum] = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
-SRC_URI[serde_path_to_error-0.1.16.sha256sum] = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
-SRC_URI[serde_urlencoded-0.7.1.sha256sum] = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
-SRC_URI[sha1_smol-1.0.0.sha256sum] = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
-SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
-SRC_URI[signal-hook-0.3.17.sha256sum] = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
-SRC_URI[signal-hook-registry-1.4.2.sha256sum] = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
-SRC_URI[simple_asn1-0.6.2.sha256sum] = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
-SRC_URI[siphasher-0.3.11.sha256sum] = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
-SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-SRC_URI[smallstr-0.2.0.sha256sum] = "1e922794d168678729ffc7e07182721a14219c65814e66e91b839a272fe5ae4f"
-SRC_URI[smallvec-1.13.2.sha256sum] = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
-SRC_URI[smart-default-0.7.1.sha256sum] = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1"
-SRC_URI[smawk-0.3.2.sha256sum] = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
-SRC_URI[socket2-0.5.7.sha256sum] = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
-SRC_URI[spin-0.9.8.sha256sum] = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
-SRC_URI[sqlparser-0.16.0.sha256sum] = "7e9a527b68048eb95495a1508f6c8395c8defcff5ecdbe8ad4106d08a2ef2a3c"
-SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
-SRC_URI[subtle-2.5.0.sha256sum] = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-SRC_URI[syn-2.0.66.sha256sum] = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
-SRC_URI[sync_wrapper-0.1.2.sha256sum] = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
-SRC_URI[synthez-0.3.1.sha256sum] = "a3d2c2202510a1e186e63e596d9318c91a8cbe85cd1a56a7be0c333e5f59ec8d"
-SRC_URI[synthez-codegen-0.3.1.sha256sum] = "f724aa6d44b7162f3158a57bccd871a77b39a4aef737e01bcdff41f4772c7746"
-SRC_URI[synthez-core-0.3.1.sha256sum] = "78bfa6ec52465e2425fd43ce5bbbe0f0b623964f7c63feb6b10980e816c654ea"
-SRC_URI[tempfile-3.10.1.sha256sum] = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
-SRC_URI[terminal_size-0.3.0.sha256sum] = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
-SRC_URI[terminfo-0.8.0.sha256sum] = "666cd3a6681775d22b200409aad3b089c5b99fb11ecdd8a204d9d62f8148498f"
-SRC_URI[textwrap-0.16.1.sha256sum] = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
-SRC_URI[thiserror-1.0.61.sha256sum] = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
-SRC_URI[thiserror-impl-1.0.61.sha256sum] = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
-SRC_URI[thread_local-1.1.8.sha256sum] = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
-SRC_URI[time-0.3.36.sha256sum] = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
-SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
-SRC_URI[time-macros-0.2.18.sha256sum] = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
-SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-SRC_URI[tokio-1.38.0.sha256sum] = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
-SRC_URI[tokio-io-timeout-1.2.0.sha256sum] = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
-SRC_URI[tokio-macros-2.3.0.sha256sum] = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
-SRC_URI[tokio-rustls-0.25.0.sha256sum] = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
-SRC_URI[tokio-stream-0.1.15.sha256sum] = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
-SRC_URI[tokio-tungstenite-0.20.1.sha256sum] = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
-SRC_URI[tokio-util-0.7.11.sha256sum] = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
-SRC_URI[tonic-0.11.0.sha256sum] = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
-SRC_URI[tonic-build-0.11.0.sha256sum] = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2"
-SRC_URI[tonic-mock-0.3.0.sha256sum] = "ea9163cf065e21bf30e5ad1789bf334f5ae67e4a25f0e8200a7e375466e755ea"
-SRC_URI[tower-0.4.13.sha256sum] = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
-SRC_URI[tower-layer-0.3.2.sha256sum] = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
-SRC_URI[tower-service-0.3.2.sha256sum] = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
-SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
-SRC_URI[tracing-subscriber-0.3.18.sha256sum] = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
-SRC_URI[try-lock-0.2.5.sha256sum] = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
-SRC_URI[tungstenite-0.20.1.sha256sum] = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
-SRC_URI[typed-builder-0.15.2.sha256sum] = "7fe83c85a85875e8c4cb9ce4a890f05b23d38cd0d47647db7895d3d2a79566d2"
-SRC_URI[typed-builder-macro-0.15.2.sha256sum] = "29a3151c41d0b13e3d011f98adc24434560ef06673a155a6c7f66b9879eecce2"
-SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
-SRC_URI[unicode-bidi-0.3.15.sha256sum] = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
-SRC_URI[unicode-bom-2.0.3.sha256sum] = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"
-SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
-SRC_URI[unicode-normalization-0.1.23.sha256sum] = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
-SRC_URI[unicode-width-0.1.13.sha256sum] = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
-SRC_URI[untrusted-0.9.0.sha256sum] = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
-SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
-SRC_URI[utf-8-0.7.6.sha256sum] = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
-SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
-SRC_URI[uuid-1.8.0.sha256sum] = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
-SRC_URI[vergen-8.3.1.sha256sum] = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
-SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
-SRC_URI[want-0.3.1.sha256sum] = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
-SRC_URI[wasi-0.9.0+wasi-snapshot-preview1.sha256sum] = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-SRC_URI[wasm-bindgen-0.2.92.sha256sum] = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
-SRC_URI[wasm-bindgen-backend-0.2.92.sha256sum] = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
-SRC_URI[wasm-bindgen-macro-0.2.92.sha256sum] = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
-SRC_URI[wasm-bindgen-macro-support-0.2.92.sha256sum] = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
-SRC_URI[wasm-bindgen-shared-0.2.92.sha256sum] = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
-SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-util-0.1.8.sha256sum] = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
-SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-SRC_URI[windows-core-0.52.0.sha256sum] = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
-SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
-SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-SRC_URI[windows-targets-0.52.5.sha256sum] = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
-SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-SRC_URI[windows_aarch64_gnullvm-0.52.5.sha256sum] = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
-SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-SRC_URI[windows_aarch64_msvc-0.52.5.sha256sum] = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
-SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-SRC_URI[windows_i686_gnu-0.52.5.sha256sum] = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
-SRC_URI[windows_i686_gnullvm-0.52.5.sha256sum] = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
-SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-SRC_URI[windows_i686_msvc-0.52.5.sha256sum] = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
-SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-SRC_URI[windows_x86_64_gnu-0.52.5.sha256sum] = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
-SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-SRC_URI[windows_x86_64_gnullvm-0.52.5.sha256sum] = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
-SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-SRC_URI[windows_x86_64_msvc-0.52.5.sha256sum] = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
-SRC_URI[winnow-0.5.40.sha256sum] = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
-SRC_URI[zeroize-1.8.1.sha256sum] = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
-# from lib/Cargo.lock
-SRC_URI += " \
-    crate://crates.io/addr2line/0.22.0 \
-    crate://crates.io/adler/1.0.2 \
-    crate://crates.io/aho-corasick/1.1.3 \
-    crate://crates.io/anyhow/1.0.86 \
-    crate://crates.io/async-stream/0.3.5 \
-    crate://crates.io/async-stream-impl/0.3.5 \
-    crate://crates.io/async-trait/0.1.80 \
-    crate://crates.io/autocfg/1.3.0 \
-    crate://crates.io/autotools/0.2.7 \
-    crate://crates.io/axum/0.6.20 \
-    crate://crates.io/axum-core/0.3.4 \
-    crate://crates.io/backtrace/0.3.72 \
-    crate://crates.io/base64/0.21.7 \
-    crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/bitflags/2.5.0 \
-    crate://crates.io/bytes/1.6.0 \
-    crate://crates.io/cc/1.0.98 \
-    crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/either/1.12.0 \
-    crate://crates.io/equivalent/1.0.1 \
-    crate://crates.io/errno/0.3.9 \
-    crate://crates.io/fastrand/2.1.0 \
-    crate://crates.io/fixedbitset/0.4.2 \
-    crate://crates.io/fnv/1.0.7 \
-    crate://crates.io/futures-channel/0.3.30 \
-    crate://crates.io/futures-core/0.3.30 \
-    crate://crates.io/futures-sink/0.3.30 \
-    crate://crates.io/futures-task/0.3.30 \
-    crate://crates.io/futures-util/0.3.30 \
-    crate://crates.io/getrandom/0.2.15 \
-    crate://crates.io/gimli/0.29.0 \
-    crate://crates.io/h2/0.3.26 \
-    crate://crates.io/hashbrown/0.12.3 \
-    crate://crates.io/hashbrown/0.14.5 \
-    crate://crates.io/heck/0.5.0 \
-    crate://crates.io/http/0.2.12 \
-    crate://crates.io/http-body/0.4.6 \
-    crate://crates.io/httparse/1.8.0 \
-    crate://crates.io/httpdate/1.0.3 \
-    crate://crates.io/hyper/0.14.29 \
-    crate://crates.io/hyper-timeout/0.4.1 \
-    crate://crates.io/indexmap/1.9.3 \
-    crate://crates.io/indexmap/2.2.6 \
-    crate://crates.io/itertools/0.12.1 \
-    crate://crates.io/itoa/1.0.11 \
-    crate://crates.io/libc/0.2.155 \
-    crate://crates.io/linux-raw-sys/0.4.14 \
-    crate://crates.io/log/0.4.21 \
-    crate://crates.io/matchit/0.7.3 \
-    crate://crates.io/memchr/2.7.2 \
-    crate://crates.io/mime/0.3.17 \
-    crate://crates.io/miniz_oxide/0.7.3 \
-    crate://crates.io/mio/0.8.11 \
-    crate://crates.io/multimap/0.10.0 \
-    crate://crates.io/object/0.35.0 \
-    crate://crates.io/once_cell/1.19.0 \
-    crate://crates.io/percent-encoding/2.3.1 \
-    crate://crates.io/petgraph/0.6.5 \
-    crate://crates.io/pin-project/1.1.5 \
-    crate://crates.io/pin-project-internal/1.1.5 \
-    crate://crates.io/pin-project-lite/0.2.14 \
-    crate://crates.io/pin-utils/0.1.0 \
-    crate://crates.io/ppv-lite86/0.2.17 \
-    crate://crates.io/prettyplease/0.2.20 \
-    crate://crates.io/proc-macro2/1.0.85 \
-    crate://crates.io/prost/0.12.6 \
-    crate://crates.io/prost-build/0.12.6 \
-    crate://crates.io/prost-derive/0.12.6 \
-    crate://crates.io/prost-types/0.12.6 \
-    crate://crates.io/protobuf-src/1.1.0+21.5 \
-    crate://crates.io/quote/1.0.36 \
-    crate://crates.io/rand/0.8.5 \
-    crate://crates.io/rand_chacha/0.3.1 \
-    crate://crates.io/rand_core/0.6.4 \
-    crate://crates.io/regex/1.10.4 \
-    crate://crates.io/regex-automata/0.4.6 \
-    crate://crates.io/regex-syntax/0.8.3 \
-    crate://crates.io/ring/0.17.8 \
-    crate://crates.io/rustc-demangle/0.1.24 \
-    crate://crates.io/rustix/0.38.34 \
-    crate://crates.io/rustls/0.21.12 \
-    crate://crates.io/rustls-pemfile/1.0.4 \
-    crate://crates.io/rustls-webpki/0.101.7 \
-    crate://crates.io/rustversion/1.0.17 \
-    crate://crates.io/sct/0.7.1 \
-    crate://crates.io/serde/1.0.203 \
-    crate://crates.io/serde_derive/1.0.203 \
-    crate://crates.io/slab/0.4.9 \
-    crate://crates.io/socket2/0.5.7 \
-    crate://crates.io/spin/0.9.8 \
-    crate://crates.io/syn/2.0.66 \
-    crate://crates.io/sync_wrapper/0.1.2 \
-    crate://crates.io/tempfile/3.10.1 \
-    crate://crates.io/tokio/1.38.0 \
-    crate://crates.io/tokio-io-timeout/1.2.0 \
-    crate://crates.io/tokio-macros/2.3.0 \
-    crate://crates.io/tokio-rustls/0.24.1 \
-    crate://crates.io/tokio-stream/0.1.15 \
-    crate://crates.io/tokio-util/0.7.11 \
-    crate://crates.io/tonic/0.9.2 \
-    crate://crates.io/tonic/0.11.0 \
-    crate://crates.io/tonic-build/0.11.0 \
-    crate://crates.io/tower/0.4.13 \
-    crate://crates.io/tower-layer/0.3.2 \
-    crate://crates.io/tower-service/0.3.2 \
-    crate://crates.io/tracing/0.1.40 \
-    crate://crates.io/tracing-attributes/0.1.27 \
-    crate://crates.io/tracing-core/0.1.32 \
-    crate://crates.io/try-lock/0.2.5 \
-    crate://crates.io/unicode-ident/1.0.12 \
-    crate://crates.io/untrusted/0.9.0 \
-    crate://crates.io/want/0.3.1 \
-    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
-    crate://crates.io/windows-sys/0.48.0 \
-    crate://crates.io/windows-sys/0.52.0 \
-    crate://crates.io/windows-targets/0.48.5 \
-    crate://crates.io/windows-targets/0.52.5 \
-    crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
-    crate://crates.io/windows_aarch64_gnullvm/0.52.5 \
-    crate://crates.io/windows_aarch64_msvc/0.48.5 \
-    crate://crates.io/windows_aarch64_msvc/0.52.5 \
-    crate://crates.io/windows_i686_gnu/0.48.5 \
-    crate://crates.io/windows_i686_gnu/0.52.5 \
-    crate://crates.io/windows_i686_gnullvm/0.52.5 \
-    crate://crates.io/windows_i686_msvc/0.48.5 \
-    crate://crates.io/windows_i686_msvc/0.52.5 \
-    crate://crates.io/windows_x86_64_gnu/0.48.5 \
-    crate://crates.io/windows_x86_64_gnu/0.52.5 \
-    crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
-    crate://crates.io/windows_x86_64_gnullvm/0.52.5 \
-    crate://crates.io/windows_x86_64_msvc/0.48.5 \
-    crate://crates.io/windows_x86_64_msvc/0.52.5 \
-"
-
-SRC_URI[addr2line-0.22.0.sha256sum] = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
-SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
-SRC_URI[anyhow-1.0.86.sha256sum] = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
-SRC_URI[async-stream-0.3.5.sha256sum] = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
-SRC_URI[async-stream-impl-0.3.5.sha256sum] = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
-SRC_URI[async-trait-0.1.80.sha256sum] = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
-SRC_URI[autocfg-1.3.0.sha256sum] = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
-SRC_URI[autotools-0.2.7.sha256sum] = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf"
-SRC_URI[axum-0.6.20.sha256sum] = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
-SRC_URI[axum-core-0.3.4.sha256sum] = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
-SRC_URI[backtrace-0.3.72.sha256sum] = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
-SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
-SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-SRC_URI[bitflags-2.5.0.sha256sum] = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
-SRC_URI[bytes-1.6.0.sha256sum] = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
-SRC_URI[cc-1.0.98.sha256sum] = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
-SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[either-1.12.0.sha256sum] = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
-SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-SRC_URI[errno-0.3.9.sha256sum] = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
-SRC_URI[fastrand-2.1.0.sha256sum] = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
-SRC_URI[fixedbitset-0.4.2.sha256sum] = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
-SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-SRC_URI[futures-channel-0.3.30.sha256sum] = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
-SRC_URI[futures-core-0.3.30.sha256sum] = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
-SRC_URI[futures-sink-0.3.30.sha256sum] = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
-SRC_URI[futures-task-0.3.30.sha256sum] = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
-SRC_URI[futures-util-0.3.30.sha256sum] = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
-SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
-SRC_URI[gimli-0.29.0.sha256sum] = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
-SRC_URI[h2-0.3.26.sha256sum] = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
-SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
-SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
-SRC_URI[http-0.2.12.sha256sum] = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
-SRC_URI[http-body-0.4.6.sha256sum] = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
-SRC_URI[httparse-1.8.0.sha256sum] = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-SRC_URI[httpdate-1.0.3.sha256sum] = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-SRC_URI[hyper-0.14.29.sha256sum] = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33"
-SRC_URI[hyper-timeout-0.4.1.sha256sum] = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
-SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-SRC_URI[indexmap-2.2.6.sha256sum] = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
-SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
-SRC_URI[itoa-1.0.11.sha256sum] = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
-SRC_URI[libc-0.2.155.sha256sum] = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
-SRC_URI[linux-raw-sys-0.4.14.sha256sum] = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
-SRC_URI[log-0.4.21.sha256sum] = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
-SRC_URI[matchit-0.7.3.sha256sum] = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
-SRC_URI[memchr-2.7.2.sha256sum] = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
-SRC_URI[mime-0.3.17.sha256sum] = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-SRC_URI[miniz_oxide-0.7.3.sha256sum] = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
-SRC_URI[mio-0.8.11.sha256sum] = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
-SRC_URI[multimap-0.10.0.sha256sum] = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03"
-SRC_URI[object-0.35.0.sha256sum] = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
-SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
-SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
-SRC_URI[petgraph-0.6.5.sha256sum] = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
-SRC_URI[pin-project-1.1.5.sha256sum] = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
-SRC_URI[pin-project-internal-1.1.5.sha256sum] = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
-SRC_URI[pin-project-lite-0.2.14.sha256sum] = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
-SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-SRC_URI[prettyplease-0.2.20.sha256sum] = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
-SRC_URI[proc-macro2-1.0.85.sha256sum] = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
-SRC_URI[prost-0.12.6.sha256sum] = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
-SRC_URI[prost-build-0.12.6.sha256sum] = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4"
-SRC_URI[prost-derive-0.12.6.sha256sum] = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
-SRC_URI[prost-types-0.12.6.sha256sum] = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0"
-SRC_URI[protobuf-src-1.1.0+21.5.sha256sum] = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1"
-SRC_URI[quote-1.0.36.sha256sum] = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
-SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-SRC_URI[regex-1.10.4.sha256sum] = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
-SRC_URI[regex-automata-0.4.6.sha256sum] = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
-SRC_URI[regex-syntax-0.8.3.sha256sum] = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
-SRC_URI[ring-0.17.8.sha256sum] = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
-SRC_URI[rustc-demangle-0.1.24.sha256sum] = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
-SRC_URI[rustix-0.38.34.sha256sum] = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
-SRC_URI[rustls-0.21.12.sha256sum] = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
-SRC_URI[rustls-pemfile-1.0.4.sha256sum] = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
-SRC_URI[rustls-webpki-0.101.7.sha256sum] = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
-SRC_URI[rustversion-1.0.17.sha256sum] = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
-SRC_URI[sct-0.7.1.sha256sum] = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
-SRC_URI[serde-1.0.203.sha256sum] = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
-SRC_URI[serde_derive-1.0.203.sha256sum] = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
-SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-SRC_URI[socket2-0.5.7.sha256sum] = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
-SRC_URI[spin-0.9.8.sha256sum] = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
-SRC_URI[syn-2.0.66.sha256sum] = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
-SRC_URI[sync_wrapper-0.1.2.sha256sum] = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
-SRC_URI[tempfile-3.10.1.sha256sum] = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
-SRC_URI[tokio-1.38.0.sha256sum] = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
-SRC_URI[tokio-io-timeout-1.2.0.sha256sum] = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
-SRC_URI[tokio-macros-2.3.0.sha256sum] = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
-SRC_URI[tokio-rustls-0.24.1.sha256sum] = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
-SRC_URI[tokio-stream-0.1.15.sha256sum] = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
-SRC_URI[tokio-util-0.7.11.sha256sum] = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
-SRC_URI[tonic-0.9.2.sha256sum] = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
-SRC_URI[tonic-0.11.0.sha256sum] = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
-SRC_URI[tonic-build-0.11.0.sha256sum] = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2"
-SRC_URI[tower-0.4.13.sha256sum] = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
-SRC_URI[tower-layer-0.3.2.sha256sum] = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
-SRC_URI[tower-service-0.3.2.sha256sum] = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
-SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
-SRC_URI[try-lock-0.2.5.sha256sum] = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
-SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-SRC_URI[untrusted-0.9.0.sha256sum] = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
-SRC_URI[want-0.3.1.sha256sum] = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
-SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
-SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-SRC_URI[windows-targets-0.52.5.sha256sum] = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
-SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-SRC_URI[windows_aarch64_gnullvm-0.52.5.sha256sum] = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
-SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-SRC_URI[windows_aarch64_msvc-0.52.5.sha256sum] = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
-SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-SRC_URI[windows_i686_gnu-0.52.5.sha256sum] = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
-SRC_URI[windows_i686_gnullvm-0.52.5.sha256sum] = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
-SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-SRC_URI[windows_i686_msvc-0.52.5.sha256sum] = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
-SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-SRC_URI[windows_x86_64_gnu-0.52.5.sha256sum] = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
-SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-SRC_URI[windows_x86_64_gnullvm-0.52.5.sha256sum] = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
-SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-SRC_URI[windows_x86_64_msvc-0.52.5.sha256sum] = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
diff --git a/recipes-connectivity/kuksa-val/kuksa-databroker/0001-Remove-protobuf-src-usage.patch b/recipes-connectivity/kuksa-val/kuksa-databroker/0001-Remove-protobuf-src-usage.patch
deleted file mode 100644 (file)
index c6c2381..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From 953c80a2acc2bbb882a2dcbbbf0eae7098cbd1fa Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Tue, 18 Jun 2024 15:53:46 -0400
-Subject: [PATCH] Remove protobuf-src usage
-
-The vendoring of a protoc and libprotobuf build that was added in
-commit 890703c9 by using protobuf-src is not really workable with
-OpenEmbedded / Yocto Project, and somewhat undesirable for any
-distribution package builds when it comes to transparency and
-reproducibility.  Remove it so that building in OE/YP will work.
-
-Upstream-Status: Pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- Cargo.lock                  | 19 -------------------
- databroker-proto/Cargo.toml |  1 -
- databroker-proto/build.rs   |  1 -
- lib/Cargo.lock              | 19 -------------------
- 4 files changed, 40 deletions(-)
-
-diff --git a/Cargo.lock b/Cargo.lock
-index eb212b0..fdce813 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -162,15 +162,6 @@ version = "1.3.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
--[[package]]
--name = "autotools"
--version = "0.2.7"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf"
--dependencies = [
-- "cc",
--]
--
- [[package]]
- name = "axum"
- version = "0.6.20"
-@@ -650,7 +641,6 @@ version = "0.4.5"
- dependencies = [
-  "prost",
-  "prost-types",
-- "protobuf-src",
-  "tonic",
-  "tonic-build",
- ]
-@@ -2322,15 +2312,6 @@ dependencies = [
-  "prost",
- ]
--[[package]]
--name = "protobuf-src"
--version = "1.1.0+21.5"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1"
--dependencies = [
-- "autotools",
--]
--
- [[package]]
- name = "quote"
- version = "1.0.36"
-diff --git a/databroker-proto/Cargo.toml b/databroker-proto/Cargo.toml
-index 9d548b2..2f4a7f1 100644
---- a/databroker-proto/Cargo.toml
-+++ b/databroker-proto/Cargo.toml
-@@ -25,4 +25,3 @@ prost-types = { workspace = true }
- [build-dependencies]
- tonic-build = { workspace = true, features = ["transport", "prost"] }
--protobuf-src = "1.1.0"
-diff --git a/databroker-proto/build.rs b/databroker-proto/build.rs
-index d02a006..d3a70ac 100644
---- a/databroker-proto/build.rs
-+++ b/databroker-proto/build.rs
-@@ -12,7 +12,6 @@
- ********************************************************************************/
- fn main() -> Result<(), Box<dyn std::error::Error>> {
--    std::env::set_var("PROTOC", protobuf_src::protoc());
-     tonic_build::configure()
-         .compile_well_known_types(false)
-         .protoc_arg("--experimental_allow_proto3_optional")
-diff --git a/lib/Cargo.lock b/lib/Cargo.lock
-index 5ba0b78..7dc93f3 100644
---- a/lib/Cargo.lock
-+++ b/lib/Cargo.lock
-@@ -71,15 +71,6 @@ version = "1.3.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
--[[package]]
--name = "autotools"
--version = "0.2.7"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "ef941527c41b0fc0dd48511a8154cd5fc7e29200a0ff8b7203c5d777dbc795cf"
--dependencies = [
-- "cc",
--]
--
- [[package]]
- name = "axum"
- version = "0.6.20"
-@@ -182,7 +173,6 @@ version = "0.4.5"
- dependencies = [
-  "prost",
-  "prost-types",
-- "protobuf-src",
-  "tonic 0.11.0",
-  "tonic-build",
- ]
-@@ -663,15 +653,6 @@ dependencies = [
-  "prost",
- ]
--[[package]]
--name = "protobuf-src"
--version = "1.1.0+21.5"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1"
--dependencies = [
-- "autotools",
--]
--
- [[package]]
- name = "quote"
- version = "1.0.36"
--- 
-2.44.0
-
diff --git a/recipes-connectivity/kuksa-val/kuksa-databroker/kuksa-databroker.service b/recipes-connectivity/kuksa-val/kuksa-databroker/kuksa-databroker.service
deleted file mode 100644 (file)
index 04e8199..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Eclipse KUKSA.val databroker
-After=network.target
-
-[Service]
-User=kuksa
-EnvironmentFile=-/etc/default/kuksa-databroker
-ExecStart=/usr/bin/databroker $EXTRA_ARGS
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-connectivity/kuksa-val/kuksa-databroker_git.bb b/recipes-connectivity/kuksa-val/kuksa-databroker_git.bb
deleted file mode 100644 (file)
index 376e6a6..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "KUKSA.val databroker, the KUKSA Vehicle Abstraction Layer"
-#DESCRIPTION = "KUKSA.val provides a COVESA VSS data model describing data in a vehicle."
-HOMEPAGE = "https://github.com/eclipse/kuksa.val"
-BUGTRACKER = "https://github.com/eclipse/kuksa.val/issues"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \
-"
-DEPENDS = "protobuf-native grpc-native"
-
-PV = "0.4.5+git${SRCPV}"
-
-SRC_URI = "git://github.com/eclipse-kuksa/kuksa-databroker.git;protocol=https;branch=main \
-           file://0001-Remove-protobuf-src-usage.patch \
-           file://kuksa-databroker.service \
-"
-SRCREV = "8eb7d1a36ccdbec18f742bcecddf8691cb57df46"
-
-require ${BPN}-crates.inc
-
-S = "${WORKDIR}/git"
-
-inherit cargo cargo-update-recipe-crates systemd useradd
-
-# Enable optional VISS support for potential use by e.g. the web apps
-CARGO_BUILD_FLAGS += "--features viss"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-
-USERADD_PACKAGES = "${PN}"
-USERADDEXTENSION = "useradd-staticids"
-GROUPADD_PARAM:${PN} = "-g 900 kuksa ;"
-USERADD_PARAM:${PN} = "--system -g 900 -u 900 -o -d / --shell /bin/nologin kuksa ;"
-
-do_install:append() {
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        install -d ${D}${systemd_system_unitdir}
-        install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}
-    fi
-
-    # Install gRPC API protobuf files
-    install -d ${D}${includedir}
-    cp -dr ${S}/proto/* ${D}${includedir}/
-}
-
-PACKAGE_BEFORE_PN += "${PN}-cli"
-
-FILES:${PN} += "${systemd_system_unitdir} ${datadir}"
-
-FILES:${PN}-cli = "${bindir}/databroker-cli"
-
-# The upstream Cargo.toml builds optimized and stripped binaries, for
-# now disable the QA check as opposed to tweaking the configuration.
-INSANE_SKIP:${PN} = "already-stripped"
-INSANE_SKIP:${PN}-cli = "already-stripped"
diff --git a/recipes-connectivity/kuksa-val/kuksa-val-agl-demo-cluster.bb b/recipes-connectivity/kuksa-val/kuksa-val-agl-demo-cluster.bb
deleted file mode 100644 (file)
index 17e9e3c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "AGL cluster demo configuration for KUKSA.val, the KUKSA Vehicle Abstraction Layer"
-HOMEPAGE = "https://github.com/eclipse/kuksa.val"
-BUGTRACKER = "https://github.com/eclipse/kuksa.val/issues"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-SRC_URI = "file://kuksa-val.env"
-
-inherit allarch update-alternatives
-
-do_install() {
-    install -d ${D}${sysconfdir}/default
-    install -m 0644 ${WORKDIR}/kuksa-val.env ${D}${sysconfdir}/default/kuksa-val.agl-demo-cluster-support
-}
-
-ALTERNATIVE:${PN} = "kuksa-val-env"
-ALTERNATIVE_LINK_NAME[kuksa-val-env] = "${sysconfdir}/default/kuksa-val"
-ALTERNATIVE_TARGET[kuksa-val-env] = "${sysconfdir}/default/kuksa-val.agl-demo-cluster-support"
-ALTERNATIVE_PRIORITY[kuksa-val-env] = "20"
-
-RDEPENDS:${PN} += "kuksa-certificates-agl-client"
diff --git a/recipes-connectivity/kuksa-val/kuksa-val-agl-demo-cluster/kuksa-val.env b/recipes-connectivity/kuksa-val/kuksa-val-agl-demo-cluster/kuksa-val.env
deleted file mode 100644 (file)
index f5ea757..0000000
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_ARGS="--vss /usr/share/vss/vss.json --address 0.0.0.0"
index 4423a98..981ba16 100644 (file)
@@ -6,7 +6,7 @@ DEPENDS = "vss-tools-native"
 
 inherit allarch update-alternatives
 
-require vss.inc
+require recipes-support/vss/vss.inc
 
 SRC_URI += "file://agl_vss_overlay.vspec \
             file://agl_vss_overlay.vspec.control-panel \
diff --git a/recipes-connectivity/vss/vss-tools_4.2.bb b/recipes-connectivity/vss/vss-tools_4.2.bb
deleted file mode 100644 (file)
index 62f78f0..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "COVESA Vehicle Signal Specification tooling."
-HOMEPAGE = "https://github.com/COVESA/vss-tools"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
-
-SRC_URI = "git://github.com/COVESA/vss-tools.git;protocol=https;branch=release/4.2"
-SRCREV = "b350788d6dd16942e987fdb9e8b8b3b403fe23c6"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-RDEPENDS:${PN} += " \
-    python3-core \
-    python3-ctypes \
-    python3-email \
-    python3-importlib-metadata \
-    python3-json \
-    python3-logging \
-    python3-netclient \
-    python3-pkg-resources \
-    python3-anytree \
-    python3-deprecation \
-    python3-graphql-core \
-    python3-pyyaml \
-    python3-six \
-"
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/recipes-connectivity/vss/vss.inc b/recipes-connectivity/vss/vss.inc
deleted file mode 100644 (file)
index aab950b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC_URI = "git://github.com/COVESA/vehicle_signal_specification.git;branch=release/4.2;protocol=https"
-# v4.2
-SRCREV = "6024c4b29065b37c074649a1a65396b9d4de9b55"
-
-S = "${WORKDIR}/git"
diff --git a/recipes-connectivity/vss/vss_4.2.bb b/recipes-connectivity/vss/vss_4.2.bb
deleted file mode 100644 (file)
index 0535166..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Vehicle Signal Specification"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
-
-DEPENDS = "vss-tools-native"
-
-inherit allarch update-alternatives
-
-require vss.inc
-
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-do_configure[noexec] = "1"
-
-EXTRA_OEMAKE = "TOOLSDIR=${STAGING_BINDIR_NATIVE}"
-
-do_compile() {
-    oe_runmake json
-}
-
-do_install() {
-    # Cannot use the "install" target in the project Makefile, as it is
-    # intended for setting the repo up for builds.
-    # For now, just the generated JSON is installed. It is possible that
-    # installing the vspec files somewhere as a development package may
-    # be useful, but for now things will be kept simple.
-    install -d ${D}${datadir}/vss
-    install -m 0644 ${S}/vss_rel_${PV}.json ${D}${datadir}/vss/
-}
-
-# NOTE:
-# A virtual RPROVIDES is not used for now, as packages such as KUKSA.val
-# provide their own copies of the VSS JSON, so we can install this one
-# and any alternatives in parallel and point e.g. KUKSA.val at the desired
-# file with a configuration change. This may be worth revisiting down the
-# road.
-
-ALTERNATIVE_LINK_NAME[vss.json] = "${datadir}/vss/vss.json"
-
-ALTERNATIVE:${PN} = "vss.json"
-ALTERNATIVE_TARGET_${PN} = "${datadir}/vss/vss_rel_${PV}.json"
diff --git a/recipes-devtools/python/python3-anytree_2.8.0.bb b/recipes-devtools/python/python3-anytree_2.8.0.bb
deleted file mode 100644 (file)
index 1b4628a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Powerful and Lightweight Python Tree Data Structure"
-HOMEPAGE = "https://github.com/c0fec0de/anytree"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-
-PYPI_PACKAGE = "anytree"
-
-SRC_URI[sha256sum] = "3f0f93f355a91bc3e6245319bf4c1d50e3416cc7a35cc1133c1ff38306bbccab"
-
-inherit pypi setuptools3
-
-do_install:append () {
-    rm -f ${D}${prefix}/LICENSE
-}
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/recipes-devtools/python/python3-argparse-addons_0.7.0.bb b/recipes-devtools/python/python3-argparse-addons_0.7.0.bb
deleted file mode 100644 (file)
index e0ff0c3..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-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-can-j1939_2.0.6.bb b/recipes-devtools/python/python3-can-j1939_2.0.6.bb
deleted file mode 100644 (file)
index b479340..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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-cantools_39.%.bbappend b/recipes-devtools/python/python3-cantools_39.%.bbappend
deleted file mode 100644 (file)
index 17531c7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'python3-cantools_agldemo.inc', '', d)}
diff --git a/recipes-devtools/python/python3-cantools_agldemo.inc b/recipes-devtools/python/python3-cantools_agldemo.inc
deleted file mode 100644 (file)
index a4c6aa3..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-RDEPENDS:${PN} += "\
-    python3-argparse-addons \
-"
diff --git a/recipes-devtools/python/python3-deprecation_2.1.0.bb b/recipes-devtools/python/python3-deprecation_2.1.0.bb
deleted file mode 100644 (file)
index c4b3a1c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "A library to handle automated deprecations"
-HOMEPAGE = "https://github.com/briancurtin/deprecation"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-
-PYPI_PACKAGE = "deprecation"
-
-SRC_URI[sha256sum] = "72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/recipes-devtools/python/python3-graphql-core_3.2.3.bb b/recipes-devtools/python/python3-graphql-core_3.2.3.bb
deleted file mode 100644 (file)
index b12957a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "GraphQL implementation for Python"
-HOMEPAGE = "https://github.com/graphql-python/graphql-core"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=73706fb002de2debc52328afd1688817"
-
-PYPI_PACKAGE = "graphql-core"
-
-SRC_URI[sha256sum] = "06d2aad0ac723e35b1cb47885d3e5c45e956a53bc1b209a9fc5369007fe46676"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/recipes-devtools/python/python3-jsonpath-ng_1.5.3.bb b/recipes-devtools/python/python3-jsonpath-ng_1.5.3.bb
deleted file mode 100644 (file)
index 4c3dfaa..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A final implementation of JSONPath for Python that aims to be standard compliant, including arithmetic and binary comparison operators and providing clear AST for metaprogramming."
-HOMEPAGE = "https://github.com/h2non/jsonpath-ng"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-PYPI_PACKAGE = "jsonpath-ng"
-
-SRC_URI[sha256sum] = "a273b182a82c1256daab86a313b937059261b5c5f8c4fa3fc38b882b344dd567"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    python3-ply \
-    python3-six \
-"
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
deleted file mode 100644 (file)
index 15a295f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-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
deleted file mode 100644 (file)
index 698a3bb..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-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 \
-"
-
-BBCLASSEXTEND = "native"
index 792e51f..ce8d538 100644 (file)
@@ -13,6 +13,7 @@ RDEPENDS:packagegroup-agl-kuksa-val-databroker = "\
     kuksa-databroker-agl \
     kuksa-certificates-agl \
     kuksa-can-provider \
+    kuksa-can-provider-conf-agl \
     agl-vss-helper \
 "
 
index dee536e..976a3fb 100644 (file)
@@ -1,6 +1,7 @@
 # This layer contains the WIP feature/demo code only
 #---------------------------------------------------
 BBLAYERS =+ " \
+   ${METADIR}/meta-agl/meta-agl-kuksa-val \
    ${METADIR}/meta-agl-demo \
 "