Skip to contentSkip to conversation

gnuradio: gnuradio-python: add missing runtime dependency to python-numpy

PATCH New Gwenhael Goavec-Merou 2 participants 2 messages Oct 5, 2015 – Oct 6, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v4 1/1 gnuradio: gnuradio-python: add missing runtime dependency to python-numpy

From: Gwenhael Goavec-Merou <[email protected]>

Some gnuradio python blocks needs python-numpy present.

Without python-numpy, gnuradio-python based apps fails, on runtime, with traceback like:

Traceback (most recent call last):
File "./top_block.py", line 18, in <module>
from gnuradio import analog
File "/usr/lib/python2.7/site-packages/gnuradio/analog/__init__.py", line 35, in <module>
from am_demod import *
File "/usr/lib/python2.7/site-packages/gnuradio/analog/am_demod.py", line 22, in <module>
from gnuradio import gr
File "/usr/lib/python2.7/site-packages/gnuradio/gr/__init__.py", line 44, in <module>
from top_block import *
File "/usr/lib/python2.7/site-packages/gnuradio/gr/top_block.py", line 30, in <module>
from hier_block2 import hier_block2
File "/usr/lib/python2.7/site-packages/gnuradio/gr/hier_block2.py", line 26, in <module>
import pmt
File "/usr/lib/python2.7/site-packages/pmt/__init__.py", line 58, in <module>
from pmt_to_python import pmt_to_python as to_python
File "/usr/lib/python2.7/site-packages/pmt/pmt_to_python.py", line 22, in <module>
import numpy
ImportError: No module named numpy

---
Changes v3 -> v4:
* add #runtime comment to BR2_PACKAGE_PYTHON_NUMPY select;
* suppress python-numpy in GNURADIO_DEPENDENCIES variable (not needed for buildtime)
Changes v2 -> v3:
* Since commit 826a2bc18bc0be0b08f2926c9fa1819fe909557c no special attentions is needed to select python-numpy. So BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS is no more needed
Changes v1 -> v2:
* Add dependy to BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS;
* gnuradio-python select numpy;
* gnuradio-utils select again gnuradio-python;
* fix commit message

---
 package/gnuradio/Config.in | 1 +
 1 file changed, 1 insertion(+)
package/gnuradio/Config.in +1 -0
index e264a21..8da1a13 100644
@@ -47,6 +47,7 @@ config BR2_PACKAGE_GNURADIO_PYTHON
 	bool "python support"
 	select BR2_PACKAGE_BOOST_PYTHON
 	select BR2_PACKAGE_PYTHON
+	select BR2_PACKAGE_PYTHON_NUMPY #runtime
 	help
 	  Enable python component
 
Signature · 1 line
2.4.9
#1 lore raw

PATCH v4 1/1 gnuradio: gnuradio-python: add missing runtime dependency to python-numpy

Dear Gwenhael Goavec-Merou,

package/gnuradio/Config.in config BR2_PACKAGE_GNURADIO_PYTHON · line 50

Quoted 9 lines · Gwenhael Goavec-Merou
package/gnuradio/Config.in +1 -0
index e264a21..8da1a13 100644
@@ -47,6 +47,7 @@ config BR2_PACKAGE_GNURADIO_PYTHON
 	bool "python support"
 	select BR2_PACKAGE_BOOST_PYTHON
 	select BR2_PACKAGE_PYTHON
+	select BR2_PACKAGE_PYTHON_NUMPY #runtime

When you "select" an option, you must replicate the "depends on" of that option into the selecting option. In this case, python-numpy has the following depends on:

        # Numpy has some CPU specific code
        depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 \
                || BR2_mips || BR2_mipsel || BR2_powerpc || BR2_powerpc64 \
                || BR2_sh || BR2_x86_64

So you should replicate that into gnuradio/Config.in. However, since this is horrible, here is what we do in such cases:

* Introduce a hidden BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS that encodes this dependency.

* And then use this option in python-numpy/Config.in and gnuradio/Config.in.

You can grep for ARCH_SUPPORTS in Buildroot to see other examples.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com