Commit Graph

447 Commits

Author SHA1 Message Date
Marian Koop
5e9888c204 cmake: Bump master to 4.11.1 2026-09-15 23:47:53 +01:00
Virendra Kakade
eb785ff23b ci: Build UHD DEBs with B310 support
Add nib310rio-dev to the Debian build dependencies so the UHD package
build fails if the B310 userspace header is unavailable instead of
silently disabling B300 support.

The Ubuntu installer pipeline downloads the nib310rio Debian package
artifact and exposes it to pbuilder as a local apt repository. This lets
pbuilder satisfy the new dependency inside the clean build root where
CMake checks for nib310rio/nib310rio.h.
2026-09-15 23:44:29 +01:00
Marian Koop
6fbadafde6 cmake: Update stable branch property 2026-09-08 10:24:37 +01:00
Martin Anderseck
72d896bd25 CHANGELOG: Correct and update UHD 4.11 features
This adds the Linux kernel update as highlight and corrects the
statement about the X420/X440 repeatable phase offsets.
2026-09-08 09:28:31 +01:00
Jörg Hofrichter
9a3a47bb69 CHANGELOG: Update UHD 4.11 new features descriptions
- Updated the description of the fabric resampler addition.
- Corrected the documentation for the default state of the MPM serialization setting.
2026-09-02 18:40:29 +01:00
Frank Dietze
7bd5f8047a debian: update upload_debs.sh 2026-09-02 18:39:53 +01:00
Frank Dietze
635e73e7e0 debian: fix arch strings 2026-09-02 18:39:53 +01:00
Marian Koop
556b378912 Prepare for 4.11.0.0 RC1 2026-08-12 18:25:49 +02:00
Marian Koop
fdb3a497a5 debian: Add licenses for b310 sources 2026-08-12 18:25:49 +02:00
Martin Anderseck
1af4625e84 cmake: Enable Ubuntu 26.04
These changes are required to build on Ubuntu 26.04 cleanly while still
maintaining backwards compatibility until Ubuntu 22.04.

- Set CMP0167 to NEW in UHD CMake paths that resolve Boost
- Scope policy changes with guard checks so older CMake versions remain
  compatible
- Ensure dependency resolution order applies policy before Boost
  discovery in package config
- Reduce CMake 3.30+ FindBoost policy warnings without breaking Ubuntu
  22.04-era toolchains
2026-08-03 12:55:00 +02:00
Doron Behar
26c0033d1e cmake: Remove Boost::system from UHDConfig.cmake component list
Boost.System has been header-only since Boost 1.69, and as of Boost 1.89
its CMake package config was removed entirely.[1]

This makes the `find_dependency(Boost ... COMPONENTS ... system ...)`
call in the installed `UHDConfig.cmake` fail on any downstream project
that does `find_package(UHD)` while linked against `Boost >= 1.89`.

Timeline of how this happened, for reference:

- Up to and including v4.9.0.1, UHDConfig.cmake.in had no Boost
  dependency check at all.
- ab724a30ec introduced the
  `find_dependency(Boost ... COMPONENTS ... system ...)` call here, to
  correctly declare Boost as a transitive dependency of the newly added
  `UHD::uhd` imported target.
- c45c296d8f fixed UHD's own build to stop
  requiring `Boost::system`, in response to it being dropped as of Boost
  1.89. That commit did not touch `UHDConfig.cmake.in`, which had only
  just gained its own separate `Boost::system` reference ten days
  earlier via ab724a30ec, and so was
  missed.
- `v4.10.0.0` ships with both commits, making it the first release where
  `UHDConfig.cmake.in`'s Boost dependency check exists but still lists
  `system`, breaking `find_package(UHD)` for any consumer linked against
  Boost >= 1.89.

[1]: 7a495bb46d
2026-08-03 12:52:47 +02:00
Abhishek Verma
a7e2679cfe host: cmake: add gprc/protobuf min version 2026-07-28 14:10:47 +02:00
Abhishek Verma
e24b1cb8bb host/mpm: replace mpRPC with gRPC transport
host:
Replace the msgpack-RPC (rpclib) client with a gRPC-based
implementation. Add auto-generated C++ client and Python bindings
from protobuf definitions. Remove rpclib dependency and integrate
FindgRPC into CMake.

mpm:
Replace the msgpack-RPC server with a gRPC server generated from
protobuf definitions. Add pb_utils.py for type conversion between
Python and protobuf. Update rpc_server.py to dispatch calls via
gRPC stubs. Update mpm_shell to use gRPC. Replace pyudev with sysfs
scan in uio device discovery.

Bump MPM compatibility number to 7.0 and RPC version to 2.

This change requires new depedencies. E.g. for Ubuntu 24.04 or 25.10:
libgrpc++-dev, libprotobuf-dev, protobuf-compiler-grpc, python3-grpcio
2026-07-09 12:12:04 +02:00
Jörg Hofrichter
f03ded7d92 uhd: remove build directory from build info for reproducible builds
For repoducible builds which use the variable SOURCE_DATE_EPOCH, ensure
reproducible C_FLAGS and CXX_FLAGS by replacing the actual build directory
by BUILD_DIR.

The change is based on the patch omit-build-path from pkg-uhd repository,
original author "A. Maitland Bottoms" <bottoms@debian.org>.
2026-06-24 15:21:09 +02:00
Bjoern Bachmann
5faa6888f1 cmake: exclude CMake artifacts from Python module install
install(DIRECTORY) in UHD_PYTHON_INSTALL_MODULE copies the entire
build-tree module directory verbatim, including cmake_install.cmake
and CTestTestfile.cmake files generated by CMake.  These files embed
absolute build paths and do not belong on the target system.

Add PATTERN EXCLUDE rules to drop cmake_install.cmake and
CTestTestfile.cmake during installation.
2026-06-19 08:41:39 +02:00
Martin Braun
736fd1b85c cmake: Remove some Boost dependencies
With the most recent changes, Boost.Thread and all Boost date/time
libraries are no longer required. This updates the CMake and Debian
files to reflect those changes.
2026-06-15 09:50:16 +02:00
Marian Koop
57fc5f3b24 host: debian: Adapt patch to comment format changes 2026-05-08 08:08:28 +02:00
Marian Koop
5228a58cf5 cmake: Update minimum MSVC version to 16.0 (VS2019) 2026-04-13 16:47:52 +02:00
Marian Koop
c65e7b7178 cmake: Use NEW policy CMP0167 when using cmake 3.30 or later.
Enable NEW cmake policy CMP0167 that stops using the depreciated FindBoost
module and rely in upstream BoostConfig.cmake configuration files.
This may also avoid conflicts between upstream BoostConfig.cmake configuration
files and the depreciated, legacy implementation in FindBoost.
2026-04-13 16:47:52 +02:00
Marian Koop
d03af7b936 images: Update manifest for v4.10.0.0-rc2 2026-04-09 12:41:01 +02:00
Marian Koop
999b4862a9 debian: Remove obsolete distribution specific control files. 2026-03-30 14:07:21 +02:00
Marian Koop
b5e754e71f debian: Fix syntax-error-in-dep5-copyright 2026-03-30 14:07:21 +02:00
Marian Koop
dd41a0801f Prepare for 4.10.0.0 release 2026-03-25 16:18:00 +01:00
A. Maitland Bottoms
f860a7a010 debian: Integrate python3-uhd package changes from community source 2026-03-24 11:37:20 +01:00
A. Maitland Bottoms
552e6e2cac debian: Integrate uhd-doc and uhd-host package changes from community source
https://salsa.debian.org/bottoms/pkg-uhd/-/blob/master/debian
2026-03-24 11:37:20 +01:00
Marian Koop
292777e0d9 debian: Remove obsolete files 2026-03-24 11:37:20 +01:00
A. Maitland Bottoms
3d025f6940 debian: Integrate patches from debian gnuradio packages 2026-03-24 11:37:20 +01:00
Marian Koop
dbb607f20c cmake: Remove ineffective chmod on file(GENERATE) output
Removed the configure-time chmod on the test shell scripts in
UHDUnitTest.cmake. Commit 94349ae46f switched script generation
from configure_file to file(GENERATE), which defers file creation
to the generate phase. As a side effect, the pre-existing chmod
execute_process now runs during configure before the file exists,
producing a developer warning.

When using the test script with ctest the chmod is unnecessary
because ctest invokes the script explicitly via ${SHELL} and does
not require execute permission on the script itself.
2026-03-24 11:28:20 +01:00
Marian Koop
1f9f2a8f78 cmake: win: Restore ability to compile against pre-build Boost binaries
Fixes issue introduced in UHD 4.9.0.1, that prevents local builds on Windows
against prebuild Boost binary (as described in the user manual).
Change is preserving use of Boost library symbols (i.e. Boost::<module>),
but requires use of a different cmake configuration and Boost 1.73.0 or later.
For details see updates to host/docs/build.dox.in for details.
2026-03-17 16:15:43 +01:00
Henrik Eriksson
966760f7a6 cmake: Add MinGW support
- Explicitly link to mswsock for MinGW instead of linking against
  thread_win32
2026-03-03 09:25:23 +01:00
Marian Koop
16890674f2 ci: windows: Support for building UHD installers with Visual Studio 2026
Created container spec for VS2026 that is used for all desired
python versions (3.10, 3.12, 3.13). Python version are noew defined
in the pipeline source for building the container.
Needed to upgrade:
- choco to 2.5.1
- cmake to 4.2.1 (min. 4.2)
- vcpkg baseline to 2026.01.16 (min. 2025.10.17), that is only
  used for VS2026 and lists some additional boost modules
  needed to build (with boost 1.90).
Also upgraded:
- NSIS to 3.11.0 (latest release)
- Python 3.12 to 3.12.10 (latest update release)

Other improvements are>
- use of a script to dynamically define cmd and pipeline variables
  holding Visual Studio Tools and Compiler specific variables, both
  during creation and use of the container.
- consistently install python modules via requirements files
  (during container creation and installer build)
- use script to validate download URL to better trap errors.
2026-02-20 11:07:10 +01:00
Martin Braun
94349ae46f cmake: Add MODULE_PATH argument to UHD_ADD_TEST
This allows a custom UHD_MODULE_PATH entry for unit tests, useful when
unit testing out-of-tree RFNoC modules. The same feature was enabled for
UHD_ADD_PYTEST.
2025-12-19 13:09:26 +01:00
Martin Braun
5640ebb8d2 rfnoc_modtool: Fix issues around spurious unit tests
The current version of rfnoc_modtool installs unit tests for the gain
block from rfnoc-gain. These are now removed.
2025-12-19 11:48:20 +01:00
Martin Braun
f7768954bb uhd: Declare minimum DPDK version as 19.11
In c7255da, the DPDK code was modified to fix various compiler warnings.
However, this broke compatibility with DPDK 18.11. We therefore declare
18.11 no longer compatible with UHD.

This change allows the removal of compatibility code for older DPDK
versions, thereby cleaning up the DPDK code.
2025-12-12 10:25:13 +01:00
Martin Braun
f597853c59 cmake: Fix warning in create_newmod.yml
config.hpp was erroneously listed as a file that needs changing during
create_newmod.yml.
2025-10-21 10:15:04 +02:00
Jörg Hofrichter
58c13409b0 cmake: add boost library path when running python based unittest
The boost library path was already added when running unittests
(UHD_ADD_TEST) but not when running python based unittests
(UHD_ADD_PYTEST). The boost library path is required when compiling
against custom boost version (tested with boost 1.89.0), because
some boost libraries have implicit dependencies on other boost
libraries which are not found otherwise.
2025-10-07 14:26:40 +02:00
Jörg Hofrichter
41ec754980 Revert "cmake: remove Boost from dyn libs for tests on Apple"
This reverts commit a743036971.
2025-10-07 14:26:40 +02:00
Lars Amsel
7ebd4723aa cmake: Do not force reinstall dependencies on building python wheels
When we install into a virtual environment we forced pip to reinstall
dependencies. With this pip could install a newer version of a
dependency. This leads to an unloadable Python bindings module if
the user has installed numpy1.x but numpy2.x is available. Then the
make process links against numpy1.x and the module is not loadable
afterwards when numpy2.x is install.
Therefore remove the force-reinstall option so the environment stays
the same after the wheel is built and installed.
2025-09-24 11:59:48 +02:00
Martin Braun
ab724a30ec cmake: Enable usage of UHD:: module
Instead of relying on CMake variables like ${UHD_LIBRARIES}, downstream
projects can now use the UHD::uhd target to link against UHD.
2025-09-24 11:35:24 +02:00
Martin Braun
c45c296d8f cmake: Remove Boost::system from component list
This has multiple reasons:

- We use CMake's FindBoost
  (https://cmake.org/cmake/help/v3.12/module/FindBoost.html) which can
  resolve dependencies itself. We only use boost::system in tandem with
  Boost::asio, which we already list as a dependency.
- There are combinations of CMake versions and Boost versions, where
  specifying this will link against the stub library of Boost::system
  (this is a header-only library since Boost 1.69). Removing it from the
  list avoids any kind of linkage.

Note that UHDBoost.cmake has some compatibility hacks for Boost::system,
which we now also remove.
2025-09-24 11:35:07 +02:00
Martin Braun
170f1133e5 cmake: Remove Boost version hacks from UHDBoost
Our internal helper UHDBoost.cmake includes several hacks for Boost
version compatibility. Now that we require at least Boost 1.71, these
hacks are just clutter and can be removed.
2025-09-24 11:35:07 +02:00
Martin Braun
b181415077 cmake: Bump minimum Boost version to 1.71 2025-09-24 11:35:07 +02:00
Martin Braun
3c6df18579 cmake: Fix Boost settings for static builds
Building static libraries with UHD was broken due to the way that
UHDBoost was structured. The following changes to UHDBoost.cmake were
applied:

- This file no longer observes ENABLE_STATIC_LIBS. That's because in UHD,
  setting ENABLE_STATIC_LIBS is supposed to build both static and shared
  libraries, but the way UHDBoost.cmake was written, it would apply
  settings for static builds to all libraries. If ENABLE_STATIC_LIBS was
  set, then this would cause linker errors.
  - As a consequence, users of UHDBoost.cmake must specify
    Boost_USE_STATIC_LIBS manually before including it.
- BUILD_SHARED_LIBS is no longer modified. UHD always specifies the
  correct library modifier (SHARED, STATIC, etc.) directly in the
  add_library() call, and that is good practice. By overriding
  BUILD_SHARED_LIBS in UHDBoost.cmake, this file can make changes to
  CMake files that call add_library() without a modifier.

In host/lib/CMakeLists.txt, we now call UHDBoost a second time for
static builds but set Boost_USE_STATIC_LIBS beforehand. This allows to
specify linker targets for the static library independently from the
shared library.

We also factored out some common library property manipulations that are
shared between uhd and uhd_static.
2025-09-18 15:38:01 +02:00
Jörg Hofrichter
006d7f7646 debian: align install files to Debian/Ubuntu official (2)
- For Ubuntu/Debian, the package lib dir (PKD_LIB_DIR), is set to
  /usr/libexec/uhd. This is the path where examples, tests and
  utils get installed.
- List usrp_hwd.py explicitly as not installed.
2025-09-01 15:24:04 +02:00
Jörg Hofrichter
e14ba329f7 debian: align install files to Debian/Ubuntu official
- Align the distribution of the files to packages (debian/*.install)
  files to the Debian/Ubuntu official version from
  https://salsa.debian.org/bottoms/pkg-uhd (branch experimental)
- Import rfnoc-blocks-track-runtime-abi patch from the official debian
  sources at https://salsa.debian.org/bottoms/pkg-uhd.
  This changes the UHD package data path to include the ABI version, e.g.:
    old: /usr/share/uhd
    new: /usr/share/uhd/4.9.0

Co-authored-by: A. Maitland Bottoms <bottoms@debian.org>
2025-08-29 15:14:04 +02:00
Martin Braun
0320e7918d cmake: Skip more files when staging usrp3 HDL sources
These sources are not required when building RFNoC bitfiles, and they
also reference csh, which causes some build systems to produce warnings.

As a consequence, we can also remove csh from the uhd-rfnoc-dev
dependency list.
2025-08-28 16:58:04 +02:00
Frank Dietze
43875c9f25 host: cmake: fix patch version used for packaging
When called from a branch the patch version contained letters
which cmake is not able to process. This change set it to numbers.
2025-08-26 20:11:30 +02:00
Frank Dietze
b2d396d436 Prepare for 4.9.0.0 RC2
Update Changelog
- Add mention of new RFNoC OOT block repository to changelog.
  Add link to RFNoC OOT block github repository to README.
Update Readme with reference to new OOT block repo
Update Manifest

Co-authored-by: Niels Garibaldi <niels.steffen.garibaldi@emerson.com>
Co-authored-by: Marian Koop <marian.koop@emerson.com>
2025-08-23 00:21:06 +02:00
Aki Tomita
9018f578b2 cmake: Adjust the UHD_VERSION check to work with cmake 4.1
UHD_VERSION needs to be also checked against an empty string
since cmake 4.1 sets this variable during project setup, also
if it was undefined before. Furthermore we need to backup and
restore custom UHD_VERSION when defined for e.g. by using option
-DUHD_VERSION=<version>, because project() setup will reset the
version to an empty string.
2025-08-22 16:18:42 +02:00
Martin Braun
aa0c47877d debian: Enable building of uhd-rfnoc-dev
When building Debian packages, we now enable -DENABLE_RFNOC_DEV=ON and
put the HDL source files into a new package (uhd-rfnoc-dev).
2025-08-22 15:56:03 +02:00