The gnuradio
package in Arch is at 3.9.4 and marked as outdated for almost 2 months now. Not a huge issue, but there's a bug in the QT range slider that's fixed in the later versions.
I need the osmosdr block in gnuradio since it looks like it allows me to specify a devicestring
to select my LimeSDR as the radio in use.
First thought: install gnuradio-git
Installing gnuradio-git
got me straight to 3.11.0, all good, however I need the osmosdr block for which there's no -git AUR package.
The community/gnuradio-osmosdr
package is linked against community/gnuradio
which is at 3.9.4 and will not work.
The simple test is python -c "import osmosdr"
which will error with libgnuradio-runtime.so.3.9.4 not found
. Of course it's not there because gnuradio-git
replaces community/gnuradio
along with those shared libraries.
The trick: rebuild gnuradio-osmosdr from source
Rebuilding from source will force linking gnuradio-osmosdr
against libgnuradio-runtime.so.3.11.0
that's provided by gnuradio-git
.
We'll use the asp
tool to fetch the package definitions from git.
asp update
asp checkout gnuradio-osmosdr
asp checkout gnuradio-iqbal
pushd gnuradio-iqbal && makepkg -ci && popd
pushd gnuradio-osmosdr && makepkg -ci && podp
Keeping that order as osmosdr is dependent on iqbal.
Now both libraries are reinstalled and linked against gnuradio-git. The test runs fine now.
Ihh..
Alternatives
Install gnuradio with pybombs
I wasn't in the mood to fully understand how it works nor debug the errors. It feels like it's using some items already on the system? Idk, tbd next time.
Install gnuradio with nix
The slides are from this talk: GRCon18 - GNU Radio Ecosystem Management with Nix.
I was tempted to do this. I've used nix in the past to quickly get around system's package manager limitations. It's so nice to just pop a nix shell and use whatever you need in isolation.
The problem here is that the nix gnuradio
package is at 3.9.3 currently, one minor version behind arch, so no quick win here.
I could go down the rabbit hole and create a custom nix spec, but it'd rather not.