Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

don't detect spdlog explicitly; let gnuradio handle it #654

Draft
wants to merge 12 commits into
base: next
Choose a base branch
from

Conversation

jwmelto
Copy link
Contributor

@jwmelto jwmelto commented Aug 17, 2022

This pull request addresses #653.

Removing all the explicit assertion of spdlog and fmt dependencies works just fine with GNU Radio 3.10. I don't know about backwards compatibility, but since these were added in 3.10 there should be no problem.

@jwmelto
Copy link
Contributor Author

jwmelto commented Aug 17, 2022

The ubuntu build failed, not finding log4cpp. I can put that part back in, but I'm wondering if we need a regression against 3.10.

I'm going to think about the 3.8 issues.

@carlesfernandez
Copy link
Member

Hi,

This seems to fail in:

We need to dig a little bit more.

@jwmelto
Copy link
Contributor Author

jwmelto commented Aug 17, 2022

As I suspected, this thread pulls long. Your GitLab jobs are instructive. I also came across dusty support for Debian 8, CentOS 7, and Ubuntu 14.04.

At issue is the difficulty in maintaining the GNSS-SDR shadow-versions of the GNU Radio provided CMake config file packages. What is the matrix of configurations that you believe need to be supported on next? The more and varied the versions, the harder this will be to maintain.

Note that GNU Radio 3.10 requires C++17, so older systems are going to have to be rev-locked at some point (and soon). It also requires, for GCC, version 9 or better.

My recommendation is that, if you have to build from source, then plan on building GNU Radio too (if your distro is ancient, like mine is).

@jwmelto jwmelto marked this pull request as draft August 19, 2022 20:47
When pulling gnuradio, it brings in libvolk2 (2.2.1). That tag was cut 2/24/2020
While that library ships with an internal dependency (ldd, INTERFACE_LINK_LIBRARIES)
on liborc-0.4, the package does not expose the dependency explicitly.

A fix was provided in gnuradio/volk#367 that was merged
on 3/23/2020.

Since we are now using Volk's provided CMake files, we have to work around their
mistake
@jwmelto
Copy link
Contributor Author

jwmelto commented Aug 22, 2022

A few notes. This change has exposed various issues outside of our control that need to be worked around:

  • Ubuntu 20.04 installs gnuradio-dev (3.8.1) which in turn pulls in volk2 (2.2.1). That version of volk has a dependency on orc-0.4 that is not a package dependency. I updated the main.yml to pull it in
  • Ubuntu 22.04 installs gnuradio-dev (3.10.1); the gnuradio::gnuradio-blocks target has an interface link dependency on sndfile::sndfile. This can't be found unless libsndfile1-dev is installed. That affects your GitLab job.
  • CentOS 7 GitLab job needs to be updated to install and run cmake3 instead of cmake. I removed support for CMake < 3.7
  • Fedora:rawhide (gnuradio 3.10.3) needs libsndfile1-devel and fftw-devel. Also, it can remove log4cpp-devel

I suspect the other variants will be similar; I'll update here as I work through them.

@jwmelto
Copy link
Contributor Author

jwmelto commented Aug 23, 2022

The MacOS failure is going to be tougher. I'm less sure how I'm going to reproduce that. Thus far, I've run in Docker containers, so the build is repeatable and clean every time.

@jwmelto
Copy link
Contributor Author

jwmelto commented Aug 23, 2022

The MacOS failure is going to be tougher. I'm less sure how I'm going to reproduce that. Thus far, I've run in Docker containers, so the build is repeatable and clean every time.

I ran on my Mac (12.4) and there were no errors

@jwmelto
Copy link
Contributor Author

jwmelto commented Sep 20, 2022

Closing, because next has moved on, but I'm not sure the issue is fixed yet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants