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

Build AppImage based on conda packages #1301

Merged
merged 10 commits into from
Feb 15, 2024

Conversation

ryanvolz
Copy link
Contributor

@ryanvolz ryanvolz commented Oct 3, 2023

After discussing this on the Matrix chat, here is my attempt at updating the Github Action to build the Linux AppImage based on conda-forge packages instead of Ubuntu 18.04. Conda-forge packages are built on a CentOS 6 base (with some packages potentially opting for a CentOS 7 base), so compatibility with older distributions should be maintained. The main benefit of this would be the inclusion of recent versions of Gqrx's dependencies, e.g. GNU Radio 3.10.7, UHD 4.5, etc.

As of now, there are some non-version differences in what is included with this AppImage compared to the existing one. Missing:

  • FUNcube Dongle support through soapysdr-module-fcdpp and gnuradio-funcube
  • [ ] FreeSRP support (will require a libfreesrp package for conda-forge's gnuradio-osmosdr to be built against)
  • Automatic IQ balance (will require a gr-iqbal package for conda-forge's gnuradio-osmosdr to be built against)

Now including:

  • PlutoSDR support through soapysdr-module-plutosdr
  • LimeSDR support through soapysdr-module-lms7
  • NETSDR support through soapysdr-module-netsdr
  • MiriSDR support with libmirisdr through gnuradio-osmosdr

The missing things just need a little more packaging work to enable.

I'm very interested in feedback from anyone who is able to test the resulting AppImage to make sure everything works as expected, particularly on older distributions.

One thing that is left to determine is if it's necessary to distribute the licenses of the included libraries and if there is a good way to do that from the conda-forge packages. The current method relies on running dpkg-query and that of course doesn't work when the library source is not a Debian/Ubuntu package.

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 3, 2023

Until the workflow runs here, you can get the AppImage from my fork here: https://github.com/ryanvolz/gqrx/suites/16841242385/artifacts/961898081

edit: Or, I guess that will be the only place to get it until after this is merged.

@argilo argilo added the cleanup label Oct 3, 2023
@argilo
Copy link
Member

argilo commented Oct 3, 2023

I'd say FreeSRP support is a low priority. The libfreesrp code has been dead since 2017 and the project didn't meet its crowdfunding goal, so I doubt there is much hardware out there.

@argilo
Copy link
Member

argilo commented Oct 3, 2023

If it's any easier, SoapyFCDPP could perhaps be used for Funcube support: https://github.com/pothosware/SoapyFCDPP

@argilo argilo force-pushed the conda-app-bundle branch 5 times, most recently from da2025f to a01a8c4 Compare October 4, 2023 03:58
@argilo
Copy link
Member

argilo commented Oct 4, 2023

Notes so far:

  • It would be nice if rtl-sdr was built with -DDETACH_KERNEL_DRIVER=ON so users don't need to blacklist kernel drivers to use RTL-SDR.
  • The AppImage is somewhat larger than the current one (67 MB vs. 38 MB). It seems a big part of that is that libuhd.so.4.5.0 pulls in libpython3.11.so.1.0. Not a big deal.

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

Notes so far:

* It would be nice if rtl-sdr was built with `-DDETACH_KERNEL_DRIVER=ON` so users don't need to blacklist kernel drivers to use RTL-SDR.

* The AppImage is somewhat larger than the current one (67 MB vs. 38 MB). It seems a big part of that is that `libuhd.so.4.5.0` pulls in `libpython3.11.so.1.0`. Not a big deal.

Love the detailed look! I've initiated new builds of the conda-forge rtl-sdr and uhd that address both of these. For UHD, it pulls in libpython because of an added simulator mode that embeds the Python interpreter. I just tried this out, and apparently it never worked through the conda-forge package because of missing Python package dependencies. Since nobody seems to be using that feature, I've disabled it and that should slim down the AppImage when it gets rebuilt with the new package.

.github/workflows/build.yml Outdated Show resolved Hide resolved
@vladisslav2011
Copy link
Contributor

My attempt to run the artifact from successful workflow run on a slightly outdated system:

$ ./Gqrx-v2.17-16-gd1efb8c-x86_64.AppImage 
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Network.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-osmosdr.so.0.2.0)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-osmosdr.so.0.2.0)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-digital.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-network.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-network.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Widgets.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Widgets.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Widgets.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /lib/x86_64-linux-gnu/libgcc_s.so.1: version `GCC_12.0.0' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Gui.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Gui.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Gui.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Gui.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /lib/x86_64-linux-gnu/libgcc_s.so.1: version `GCC_12.0.0' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Core.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Core.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Core.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Core.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Core.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libQt6Core.so.6)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-analog.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-filter.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-blocks.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-blocks.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-blocks.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-fft.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-fft.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-fft.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-runtime.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-runtime.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-runtime.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-pmt.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libgnuradio-uhd.so.3.10.7)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libuhd.so.4.4.0)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libuhd.so.4.4.0)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libuhd.so.4.4.0)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libuhd.so.4.4.0)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libSoapySDR.so.0.8)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libSoapySDR.so.0.8)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libspdlog.so.1.11)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libspdlog.so.1.11)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libicuuc.so.72)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libthrift.so.0.18.1)
/tmp/.mount_Gqrx-vdbHQ2V/AppRun.wrapped: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /tmp/.mount_Gqrx-vdbHQ2V/usr/bin/../lib/libthrift.so.0.18.1)

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

Thanks for the testing! It looks like at some point conda-forge started shipping its own libstdc++.so.6, which means that building on top of CentOS 6/7 is negated for our purposes of compatibility with older distributions. Not good!

I'll investigate if there's anything to be done.

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

If it's not too many blacklisted libraries that basing on conda-forge will require, we could try ignoring the blacklisting and manually copying them in to the AppImage. That list is 2 libraries long so far, so that's manageable. I'll see if I can work up a build for testing.

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

@vladisslav2011 Please test this new build with your two missing (blacklisted) libraries included, or it will also be available as an artifact here when the CI run completes.

@vladisslav2011
Copy link
Contributor

@ryanvolz
Test results:

$ ./Gqrx-v2.17-13-ge3a306d-x86_64.AppImage
/tmp/.mount_Gqrx-vwSc2s5/AppRun.wrapped: symbol lookup error: /tmp/.mount_Gqrx-vwSc2s5/usr/bin/../lib/libuhd.so.4.4.0: undefined symbol: libusb_set_option

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

This could get tedious, but @vladisslav2011 here's another one to test.

@vladisslav2011
Copy link
Contributor

vladisslav2011 commented Oct 4, 2023

Still no success:

$ ./Gqrx-v2.17-13-ga8be07e-x86_64.AppImage 
/tmp/.mount_Gqrx-vM1LNTV/AppRun.wrapped: symbol lookup error: /tmp/.mount_Gqrx-vM1LNTV/usr/bin/../lib/libQt6Gui.so.6: undefined symbol: hb_ot_layout_table_select_script

Hmmm...
I've made it build and run outside of the AppImage container...
https://github.com/vladisslav2011/gqrx/tree/upstream-test
gqrx-2 17

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

@vladisslav2011 I tried to go maximalist this time and include all libraries that conda-forge ships: AppImage here.

@vladisslav2011
Copy link
Contributor

vladisslav2011 commented Oct 4, 2023

This one starts, but it fails to find a device and looks weird (fonts).
Appimage
I think, libmirisdr is not included or gr-osmosdr was built with libmirisdr support disabled...

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

This one starts, but it fails to find a device and looks weird (fonts).

The font thing might be harder to figure out, but devices should be solvable. What particular device(s) is/are we talking about?

Oh, I see the edit now, libmirisdr devices. Yep, those are not compiled in (dropped with gr-osmosdr), but I have a libmirisdr and soapy-module-miri in the works that would bring back support.

@vladisslav2011
Copy link
Contributor

Msi SDR support was re-added to gr-omosdr, so it should be possible to enable it.
Device examples:
https://www.ebay.com/itm/175285430730
https://www.ebay.com/itm/394585847236
And other similar Chinese pieces of crap...

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

Msi SDR support was re-added to gr-omosdr, so it should be possible to enable it.

Ah yeah I missed that! So then we still need that libmirisdr to be included in conda-forge (it shouldn't take long, it has already sat waiting for review for 3 weeks) and then I can re-build gnuradio-osmosdr to support it directly without the need for the soapy module.

Fonts look fine for me locally with the latest AppImage, but I do see a message from fontconfig when starting Gqrx that could point toward what is happening:

Fontconfig error: Cannot load default config file: No such file: (null)

I'll dig into that a little bit.

I'm also now seeing

qt.gui.icc: fromIccProfile: failed minimal tag size sanity

which may or may not indicate something else that can be fixed.

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Oct 4, 2023

Fontconfig being unable to find its default config file has now been fixed. @vladisslav2011 curious to see if that fixes your ugly font issue.

@vladisslav2011
Copy link
Contributor

Unfortunately the fonts are still bad:
Gqrx-appimage

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Dec 5, 2023

I finally got the libhidapi dependency needed for FUNcube dongle support added to conda-forge, and now I've added soapysdr-module-fcdpp support. gr-funcube will also be available before too long, but I've got an unrelated issue there to work through.

So once the next builds complete, the only remaining thing I see is to figure out the issue with ugly fonts.

@ryanvolz
Copy link
Contributor Author

ryanvolz commented Dec 7, 2023

Alright, gnuradio-osmosdr now has FUNcube dongle support through gnuradio-funcube (which happened to require more tweaking to the AppImage script to force include a couple more libraries) as well.

I also tweaked the fontconfig setup so that it now loads all of the conf.d configuration files included in the AppImage, and hopefully that will help with the ugly fonts. @vladisslav2011 any chance you can check this latest build?

@argilo
Copy link
Member

argilo commented Feb 10, 2024

The old AppImage is definitely showing signs of age (ancient hardware drivers & Qt). I recently got a 2.17.4 release out the door, so it's probably a good time to get this merged so it will have some soak time before the next release. I'll start by rebasing to resolve the merge conflict.

@argilo
Copy link
Member

argilo commented Feb 10, 2024

@argilo
Copy link
Member

argilo commented Feb 14, 2024

I tested on Ubuntu 18.04 and the AppImage runs well there.

@ryanvolz I get "no device found in this context" when I try to use a PlutoSDR and I suspect it could be due to a bug that was fixed in pothosware/SoapyPlutoSDR#42. There have also been a bunch of other fixes to SoapyPlutoSDR like pothosware/SoapyPlutoSDR#48, so it might be a good idea to update the conda package. (Unfortunately, SoapyPlutoSDR hasn't had a tagged release in a long time.)

.github/workflows/build.yml Outdated Show resolved Hide resolved
.github/workflows/build.yml Outdated Show resolved Hide resolved
@argilo
Copy link
Member

argilo commented Feb 15, 2024

I removed the redundant Soapy modules and will merge this now. It would of course still be nice to get SoapyPlutoSDR updated at some point.

@argilo argilo merged commit 4eb62dc into gqrx-sdr:master Feb 15, 2024
12 checks passed
@ryanvolz ryanvolz deleted the conda-app-bundle branch February 16, 2024 15:43
@ryanvolz
Copy link
Contributor Author

@ryanvolz I get "no device found in this context" when I try to use a PlutoSDR and I suspect it could be due to a bug that was fixed in pothosware/SoapyPlutoSDR#42. There have also been a bunch of other fixes to SoapyPlutoSDR like pothosware/SoapyPlutoSDR#48, so it might be a good idea to update the conda package. (Unfortunately, SoapyPlutoSDR hasn't had a tagged release in a long time.)

I don't like doing it, but yeah, I whipped up a patch to bring the package up to the current state without waiting for a release. Packages should be available in ~30 minutes and used in any future builds.


Once the dust settles, this should be extendable to make a linux-aarch64 AppImage as well. And with #1326, if a lack of MSYS2 packages for various devices is holding back the Windows binary, one could combine pulling the Windows conda packages like here with the windeployqt6 step of #1326 and get a Windows binary zip with more device support. Similarly one could probably make use of the conda packages on macOS, say for an arm64 binary. I'll be pretty busy for the next couple months, but I'd consider taking a crack at it at some point or help anyone else do so.

@argilo
Copy link
Member

argilo commented Feb 16, 2024

Thanks again for working on this!

I think it would be great to have a linux-aarch64 AppImage eventually, and basing the Windows and macOS binaries on conda packages would be a nice improvement as well.

@argilo
Copy link
Member

argilo commented Feb 16, 2024

I whipped up a patch to bring the package up to the current state without waiting for a release.

Thanks! I triggered a rebuild, and PlutoSDR now works.

https://github.com/gqrx-sdr/gqrx/actions/runs/7923484733/artifacts/1251941715

@argilo
Copy link
Member

argilo commented Feb 18, 2024

By the way, I pinged the SoapyPlutoSDR folks and they tagged a release (0.2.2).

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

Successfully merging this pull request may close these issues.

3 participants