[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Conda package for gr-sdrplay3 OOT module for Windows
From: |
Ryan Volz |
Subject: |
Re: Conda package for gr-sdrplay3 OOT module for Windows |
Date: |
Thu, 31 Mar 2022 12:56:55 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
Hi Franco,
This is great! You're right that I don't think there's any way to get this on
conda-forge, but I'd be happy to include it in radioconda (with the proprietary
bits still needing external installation) if we can figure out a good way.
The easiest thing to do would be to create an account at anaconda.org and
upload any packages you build there. Then people could install them with conda
through the command line by specifying your channel. If you put the
instructions for manually copying the proprietary DLL into the package
description in the recipe, then it will also be shown on its anaconda.org page
and we'll have something to refer people to for instructions.
Beyond that, I think the next best thing is to make your recipe publicly
accessible. Then anyone should be able to build the package themselves if they
have the SDDplay sources installed already. Best would probably be to
incorporate it into the gr-sdrplay3 repository like I've tried out here in my
fork of gr-paint:
https://github.com/ryanvolz/gr-paint/tree/conda/.conda
The next best thing would be to just publish the recipe in its own repository; no need
for it to be a conda-forge-style "feedstock" since automatic builds will be
impossible.
Then if there is a set of built packages somewhere that I can pull in via "conda
install", I can add gr-sdrplay3 to radioconda and point people to the manual
instructions for getting it working.
Cheers,
Ryan
On 3/30/22 9:40 PM, Franco VENTURI wrote:
Good news - with Ryan's help a few days ago I was able to create a recipe and a
conda package for the gr-sdrplay3 OOT module for Windows.
For those not familiar with it, the gr-sdrplay3 OOT module adds support for the
SDRplay RSP devices as native GNU Radio sources, using directly the SDRplay
APIs (i.e. without going through SoapySDR).
Up to now it was only available on Linux (and probably Mac), but with this conda
package it is possible to run it on Windows (it requires the most current GNU Radio
installation using conda - see here: https://wiki.gnuradio.org/index.php/CondaInstall
<https://wiki.gnuradio.org/index.php/CondaInstall>).
For those interested in trying it out, this is the link to the conda package on my
Google Drive:
https://drive.google.com/file/d/1ZTUeYyOpms0rx7yU2Q5fOqElKIKgyJwK/view?usp=sharing
<https://drive.google.com/file/d/1ZTUeYyOpms0rx7yU2Q5fOqElKIKgyJwK/view?usp=sharing>
(the conda recipe is in the package).
One important notice - conda's Python on Windows loads any dependent DLL from a
limited set of folders (i.e. it does not use the %PATH% environment variable to
search for dependent DLLs, as I think most of the other Windows applications
do).
This means that the proprietary DLL for the SDRplay API 'sdrplay_api.dll'
(which is typically installed under 'C:\Program Files\SDRplay\API\x64\') needs
to be copied to one of these folders for things to work:
- %CONDA_PREFIX%\Lib\site-packages\gnuradio\sdrplay3
- %CONDA_PREFIX%
- %CONDA_PREFIX%\Library\mingw-w64\bin
- %CONDA_PREFIX%\Library\bin
- %CONDA_PREFIX%\Scripts
- C:\Windows\System32
Alternatively setting the environment variable
CONDA_DLL_SEARCH_MODIFICATION_ENABLE to '1' makes conda Python look into all
the folders listed in %PATH%, and it should work too.
If conda Python is not able to find the 'sdrplay_api.dll' file, it will throw
an 'ImportError' exception for the line 'from gnuradio import sdrplay3'.
I am not sure of the best way to distribute this package after this initial
'beta' version, since it is not straightforward to build it automatically on
conda-forge because of its dependence on SDRplay proprietary DLL and include
files.
I am open to ideas and suggestions on how to find a good long-term solution
(also, if this is not the best forum to discuss this specific conda related
topic, please let me know, and we can continue this conversation elsewhere).
Franco