Tuesday, July 28, 2026

New gRPC/Protobuf dependency in the next UHD release (4.11.0) — packaging guidance

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.
 
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.
 
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.
 
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.
 
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.
 
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
 
Uploaded Image
 
Marian Koop (he/him/his)
Principal Software Engineer
SDR & RFmx
Test & Measurement Group
 
 
 

No comments:

Post a Comment