-
Task
-
Resolution: Fixed
-
Major
-
master, Pike 16.0.0, Pike 16.0.1
While testing the fix for SPEC-4892, it was observed that the databroker fails to build for qemuriscv64. Upon investigation, the root cause is a crate ("ring") in the dependency hierarchy that builds and wraps C and asm cryptography implementations. This issue will track working up a fix/workaround to get the databroker to build. Initial investigation indicates:
- The ring crate does not have RISC-V support upstream, but there have been several different pull requests with different implementations over the last few years.
- None of the RISC-V support pull requests apply in a straightforward way to the stable release of the crate that is currently available (0.16.20). That release is roughly three years old.
- Applying a patch to a crate in the kuksa-databroker recipe is workable with careful setting of the patchdir option in SRC_URI.
- cargo has some provision for configuring a different version and/or source of a crate with its own patch directive in Cargo.toml. Any changes seem likely to require also patching Cargo.lock to match.
It is likely that a fix will be either:
- Working up a set of patches on top of ring 0.16.20 that get one of the RISC-V pull request patches to usefully apply.
- Forcing the use of either the 0.17 alpha version of ring from crates.io, or an explicit clone of the github repo, then patching the RISC-V support from the latest pull request on top.