New gRPC/Protobuf dependency in the next UHD release (4. 11.0) — packaging guidance

"Maintainer, UHD" <[email protected]> Tue, 28 Jul 2026 17:02:50 +0000
Newsgroups gmane.comp.gnu.radio.general,gmane.comp.hardware.usrp.e100
Message-ID <CH3PR10MB6836F6A9AE3761F690534FBBF5CB2@CH3PR10MB6836.namprd10.prod.outlook.com>
--_004_CH3PR10MB6836F6A9AE3761F690534FBBF5CB2CH3PR10MB6836namp_
Content-Type: multipart/alternative;
	boundary="_000_CH3PR10MB6836F6A9AE3761F690534FBBF5CB2CH3PR10MB6836namp_"

--_000_CH3PR10MB6836F6A9AE3761F690534FBBF5CB2CH3PR10MB6836namp_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

Hi all,

Starting with the next official UHD release (4.11.0), UHD's MPM RPC transpo=
rt is migrating from mprpc (msgpack-RPC)
to gRPC/Protobuf. This affects packaging for any distribution that builds U=
HD with MPM device support
(ENABLE_MPMD=3DON, the default), i.e., support for N3xx, E3xx, and X4xx dev=
ices. 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 ou=
r CI matrix: Ubuntu 22.04 (Jammy).
Any recent gRPC/Protobuf version from your distribution package manager sho=
uld also work.

Note: On Windows, adding gRPC as vcpkg dependency has significantly increas=
ed 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 =97 gRPC C++ codege=
n 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 P=
ython grpc module.

3. Distro-specific integration notes:
Linux:
      CMake discovery: UHD ships with a FindgRPC.cmake module that first at=
tempts 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 libg=
rpc++-dev does not provide CMake
      configuration files.Both CMake-config and pkg-config-only environment=
s are supported.

Windows:
      There are no prebuilt distro packages; gRPC and Protobuf must be buil=
t 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




        Marian Koop (he/him/his)
Principal Software Engineer
SDR & RFmx
Test & Measurement Group




--_000_CH3PR10MB6836F6A9AE3761F690534FBBF5CB2CH3PR10MB6836namp_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
 #800000 2px solid; } --></style>
</head>
<body>
<font face=3D"Aptos" size=3D"2"><span style=3D"font-size:11pt;">
<div>Hi all,</div>
<div>&nbsp;</div>
<div>Starting with the next official UHD release (4.11.0), UHD's MPM RPC tr=
ansport is migrating from mprpc (msgpack-RPC)
<br>

to gRPC/Protobuf. This affects packaging for any distribution that builds U=
HD with MPM device support
<br>

(ENABLE_MPMD=3DON, the default), i.e., support for N3xx, E3xx, and X4xx dev=
ices. We wanted to provide an early,
<br>

consolidated summary so you can plan your recipes/spec files accordingly.</=
div>
<div>&nbsp;</div>
<div>1. Minimum gRPC/Protobuf versions</div>
<div>We track recommended minimum versions in UHDMinDepVersions.cmake:</div=
>
<table width=3D"230" style=3D"width:138pt;margin-left:4.65pt;">
<col width=3D"85" style=3D"width:51pt;">
<col width=3D"145" style=3D"width:87pt;">
<tr height=3D"17" style=3D"height:10.5pt;">
<td><b>Library</b></td>
<td><b>Minimum version</b></td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>gRPC</td>
<td>1.3</td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>Protobuf</td>
<td>3.12</td>
</tr>
</table>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
<div>These minimum versions are based on the oldest validated distribution =
in our CI matrix: Ubuntu 22.04 (Jammy).<br>

Any recent gRPC/Protobuf version from your distribution package manager sho=
uld also work.</div>
<div>&nbsp;</div>
<div>Note: On Windows, adding gRPC as vcpkg dependency has significantly in=
creased vcpkg triplet build time and cache sizes.</div>
<div>&nbsp;</div>
<div>2. Full dependency breakdown</div>
<div>Build-time (source builds only):</div>
<table width=3D"856" style=3D"width:514pt;margin-left:4.65pt;">
<col width=3D"260" style=3D"width:156pt;">
<col width=3D"240" style=3D"width:144pt;">
<col width=3D"356" style=3D"width:214pt;">
<tr height=3D"17" style=3D"height:10.5pt;">
<td><b>Package name (Debian/Ubuntu)</b></td>
<td><b>Package name (Fedora)</b></td>
<td><b>Role</b></td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>libgrpc++-dev</td>
<td>grpc-devel</td>
<td>gRPC C++ dev headers &amp; libraries</td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>libprotobuf-dev</td>
<td>protobuf-devel</td>
<td>Protobuf C++ dev headers &amp; libraries</td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>protobuf-compiler</td>
<td>protobuf-compiler</td>
<td>protoc&nbsp;compiler</td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>protobuf-compiler-grpc</td>
<td>grpc-plugins</td>
<td>grpc_cpp_plugin&nbsp;=97 gRPC C++ codegen plugin</td>
</tr>
</table>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
<div>Runtime (needed by installed UHD, including binary installer users):</=
div>
<table width=3D"760" style=3D"width:456pt;margin-left:4.65pt;">
<col width=3D"260" style=3D"width:156pt;">
<col width=3D"240" style=3D"width:144pt;">
<col width=3D"260" style=3D"width:156pt;">
<tr height=3D"17" style=3D"height:10.5pt;">
<td><b>Package name (Debian/Ubuntu)</b></td>
<td><b>Package name (Fedora)</b></td>
<td><b>Role</b></td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>libgrpc++&lt;ver&gt;</td>
<td>grpc</td>
<td>gRPC C++ runtime shared library</td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>libprotobuf&lt;ver&gt;</td>
<td>protobuf</td>
<td>Protobuf runtime shared library</td>
</tr>
<tr height=3D"17" style=3D"height:10.5pt;">
<td>python3-grpcio</td>
<td>python3-grpcio</td>
<td>Python gRPC runtime</td>
</tr>
</table>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
<div>Note: The Python grpcio module is required only for the MPM simulator.=
 The simulator is built on the host system
<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; an=
d installed into the UHD Python path, where it imports the Python grpc modu=
le.</div>
<div>&nbsp;</div>
<div>3. Distro-specific integration notes:</div>
<div>Linux:</div>
<div style=3D"padding-left:36pt;">CMake discovery: UHD ships with a FindgRP=
C.cmake module that first attempts to use gRPC's
<br>

CMake CONFIG package (available on Ubuntu 24.04+, Fedora 38+, and via vcpkg=
). It then falls back to
<br>

pkg-config for older distributions (such as Ubuntu 22.04), where libgrpc++-=
dev does not provide CMake
<br>

configuration files.Both CMake-config and pkg-config-only environments are =
supported.</div>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
<div>Windows:</div>
<div style=3D"padding-left:36pt;">There are no prebuilt distro packages; gR=
PC and Protobuf must be built from source or
<br>

installed through a package manager (we use vcpkg). Working examples are do=
cumented in the&nbsp;
<br>

UHD build instructions in the UHD manual.</div>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
<div>4. Integration support</div>
<div>We're happy to help you land this cleanly.</div>
<div>Please reach out with any questions. And let us know if there are pack=
aging constraints on your side that we should be aware of before the releas=
e.</div>
<div>&nbsp;</div>
<div>Regards,</div>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
<div>Marian Koop</div>
<div>on behalf of the UHD Maintainers</div>
<div>&nbsp;</div>
<table width=3D"472" style=3D"width:283.25pt;margin-left:5.4pt;">
<col width=3D"125" style=3D"width:75.5pt;">
<col width=3D"346" style=3D"width:207.75pt;">
<tr height=3D"96" style=3D"height:58pt;">
<td>
<table width=3D"125" style=3D"width:75pt;margin-left:5.4pt;">
<col width=3D"100" style=3D"width:60pt;">
<col width=3D"25" style=3D"width:15pt;">
<tr height=3D"96" style=3D"height:57.6pt;">
<td><font size=3D"3"><span style=3D"font-size:12pt;"><img src=3D"cid:91229D=
[email protected]"> </span></font></td>
<td><font size=3D"3"><span style=3D"font-size:12pt;"></span></font></td>
</tr>
</table>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
</td>
<td><b>Marian Koop</b> (he/him/his) <br>

Principal Software Engineer
<div>SDR &amp; RFmx<br>

Test &amp; Measurement Group</div>
</td>
</tr>
</table>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
<div><font size=3D"3"><span style=3D"font-size:12pt;">&nbsp;</span></font><=
/div>
</span></font>
</body>
</html>

--_000_CH3PR10MB6836F6A9AE3761F690534FBBF5CB2CH3PR10MB6836namp_--

--_004_CH3PR10MB6836F6A9AE3761F690534FBBF5CB2CH3PR10MB6836namp_
Content-Type: image/jpeg; name="Picture (Device Independent Bitmap) 1.jpg"
Content-Description: Picture (Device Independent Bitmap) 1.jpg
Content-Disposition: inline;
	filename="Picture (Device Independent Bitmap) 1.jpg";
	creation-date="Tue, 28 Jul 2026 17:01:51 GMT";
	modification-date="Tue, 28 Jul 2026 17:01:52 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK
CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAABAAEDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8qqKK
KAP/2Q==

--_004_CH3PR10MB6836F6A9AE3761F690534FBBF5CB2CH3PR10MB6836namp_--