Hi Josh - you da man! This fixes the problem, and the 3.9 OOT runs now.
Of note for anyone else following along: the 2.4.3 tarball for pybind11 listed in the 3.9 OOT porting guide instructions does not create a make uninstall target. It does however produce an install manifest. I went through that and deleted what it installed before proceeding. Then sudo apt install pybind11-dev This installed 2.5.0 -- Tom, N5EG On Mon, May 10, 2021 at 4:01 AM Josh Morman <mor...@gmail.com> wrote: > Tom, > > It looks like the OOT might be using a different version of pybind11 than > the ppa version of gnuradio was built against. The PPA for 20.04 appears > to have been built using pybind11 v2.5.0, but the default with Ubuntu 20.04 > is 2.4.3. > > I can repeat the symptom you see when creating a docker that has > pybind11-dev v.2.4.3 from the main Ubuntu repos, but then pull gnuradio > from ppa:gnuradio-releases. After installing gnuradio from the ppa, if I > then do: > apt upgrade pybind11-dev > > then the OOT will compile and load properly. > > I can probably fix this in the PPA by removing the pybind11 packages and > just relying on what gets shipped with Ubuntu, but for now, maybe a ` apt > upgrade pybind11-dev ` will fix the issue. > > Josh > > On Sun, May 9, 2021 at 7:18 PM Tom McDermott <tom.n...@gmail.com> wrote: > >> I built a new VM from zero. Ubuntu 20.04 >> apt install build-essential >> apt install git >> apt install cmake >> apt install python3-pip >> pip3 install pygccxml >> build, install pybind11 from 2.4.3 tarball >> setup gnuradio repository to releases >> apt install gnuradio >> This gives gnuradio 3.9.1.0 >> >> git-cloning both Ron's gr-iqlevels and my gr-hpsdr, going through cmake, >> make, sudo make install, sudo ldconfig >> yields exactly the same results as before: the gr:sync_block >> (gr-iqlevels) or the gr::block (gr-hpsdr) are not imported. >> >> -- Tom, N5EG >> >> >> >> >> >> >> On Sun, May 9, 2021 at 11:44 AM Tom McDermott <tom.n...@gmail.com> wrote: >> >>> Hi Ron - thank you for sending me the link to your 3.9 gr-iqlevels >>> module ! >>> It builds and installs OK, but when trying to run it gives me the same >>> type of error as my own module: >>> >>> Note: cmake .. -DCMAKE_INSTALL_PREFIX=/usr was used for for gr-iqlevels >>> >>> $ python3 >>> Python 3.8.5 (default, Jan 27 2021, 15:41:15) >>> [GCC 9.3.0] on linux >>> Type "help", "copyright", "credits" or "license" for more information. >>> >>> import gnuradio >>> >>> import iqlevels >>> Traceback (most recent call last): >>> File "<stdin>", line 1, in <module> >>> File "/usr/lib/python3/dist-packages/iqlevels/__init__.py", line 18, >>> in <module> >>> from .iqlevels_python import * >>> ImportError: generic_type: type "iqlevels" referenced unknown base type >>> "gr::sync_block" >>> >>> >>> >>> And when run from GRC: >>> >>> Traceback (most recent call last): >>> File "/home/tom/Desktop/iqlevels.py", line 142, in <module> >>> main() >>> File "/home/tom/Desktop/iqlevels.py", line 120, in main >>> tb = top_block_cls() >>> File "/home/tom/Desktop/iqlevels.py", line 81, in __init__ >>> self.iqlevels_iqlevels_0 = iqlevels.iqlevels(samp_rate, 1) >>> AttributeError: type object 'iqlevels' has no attribute 'iqlevels' >>> >>> >>> So it appears there is something wrong or misconfigured in my system. >>> I am baffled as to what that might be. >>> >>> Ubuntu 20.04 >>> Gnuradio 3.9.0.0 >>> Python 3.8.5 >>> Cmake 3.16.3 >>> GCC 9.3.0 >>> pygccxml 2.1.0 installed using pip3 >>> pybind11-2.4.3 installed from tarball according to the OOT 3.9 >>> instructions >>> pybind11 build, cmake, make, make install by the above directions. >>> it put the various pybind headers into /usr/local/include/pybind11/ >>> >>> Is there some other configuration, path, or other thing that needs to be >>> setup? >>> >>> -- Tom, N5EG >>> >>> >>> >>> >>>