discuss-gnuradio
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]