Hi all,
Starting with the next official UHD release (4.11.0), UHD's MPM RPC transport is migrating from mprpc (msgpack-RPC)
to gRPC/Protobuf. This affects packaging for any distribution that builds UHD with MPM device support
(ENABLE_MPMD=ON, the default), i.e., support for N3xx, E3xx, and X4xx devices. We wanted to provide an early,
consolidated summary so you can plan your recipes/spec files accordingly.
to gRPC/Protobuf. This affects packaging for any distribution that builds UHD with MPM device support
(ENABLE_MPMD=ON, the default), i.e., support for N3xx, E3xx, and X4xx devices. We wanted to provide an early,
consolidated summary so you can plan your recipes/spec files accordingly.
1. Minimum gRPC/Protobuf versions
We track recommended minimum versions in UHDMinDepVersions.cmake:
| Library | Minimum version |
| gRPC | 1.3 |
| Protobuf | 3.12 |
These minimum versions are based on the oldest validated distribution in our CI matrix: Ubuntu 22.04 (Jammy).
Any recent gRPC/Protobuf version from your distribution package manager should also work.
Any recent gRPC/Protobuf version from your distribution package manager should also work.
Note: On Windows, adding gRPC as vcpkg dependency has significantly increased vcpkg triplet build time and cache sizes.
2. Full dependency breakdown
Build-time (source builds only):
| Package name (Debian/Ubuntu) | Package name (Fedora) | Role |
| libgrpc++-dev | grpc-devel | gRPC C++ dev headers & libraries |
| libprotobuf-dev | protobuf-devel | Protobuf C++ dev headers & libraries |
| protobuf-compiler | protobuf-compiler | protoc compiler |
| protobuf-compiler-grpc | grpc-plugins | grpc_cpp_plugin — gRPC C++ codegen plugin |
Runtime (needed by installed UHD, including binary installer users):
| Package name (Debian/Ubuntu) | Package name (Fedora) | Role |
| libgrpc++<ver> | grpc | gRPC C++ runtime shared library |
| libprotobuf<ver> | protobuf | Protobuf runtime shared library |
| python3-grpcio | python3-grpcio | Python gRPC runtime |
Note: The Python grpcio module is required only for the MPM simulator. The simulator is built on the host system
and installed into the UHD Python path, where it imports the Python grpc module.
and installed into the UHD Python path, where it imports the Python grpc module.
3. Distro-specific integration notes:
Linux:
CMake discovery: UHD ships with a FindgRPC.cmake module that first attempts to use gRPC's
CMake CONFIG package (available on Ubuntu 24.04+, Fedora 38+, and via vcpkg). It then falls back to
pkg-config for older distributions (such as Ubuntu 22.04), where libgrpc++-dev does not provide CMake
configuration files.Both CMake-config and pkg-config-only environments are supported.
CMake CONFIG package (available on Ubuntu 24.04+, Fedora 38+, and via vcpkg). It then falls back to
pkg-config for older distributions (such as Ubuntu 22.04), where libgrpc++-dev does not provide CMake
configuration files.Both CMake-config and pkg-config-only environments are supported.
Windows:
There are no prebuilt distro packages; gRPC and Protobuf must be built from source or
installed through a package manager (we use vcpkg). Working examples are documented in the
UHD build instructions in the UHD manual.
installed through a package manager (we use vcpkg). Working examples are documented in the
UHD build instructions in the UHD manual.
4. Integration support
We're happy to help you land this cleanly.
Please reach out with any questions. And let us know if there are packaging constraints on your side that we should be aware of before the release.
Regards,
Marian Koop
on behalf of the UHD Maintainers
|
|
Marian Koop (he/him/his) Principal Software Engineer
SDR & RFmx Test & Measurement Group |
No comments:
Post a Comment