Copying OOT blocks to a different system

Hello again GNU Radio’ers,

We are trying to copy an OOT module with custom C++ blocks from one
system to another. We’ve done this successfully before where the
systems were nearly exact copies, but now we are trying to do this
between systems that are different, in this particular case the source
is a Fedora system and the destination is a VM LinuxMint system. The
source system, and I believe the destination system, were installed
using build-gnuradio.

The essentials of the procedure have been to use gr_modtool to
generate a dummy module and block on the destination system, copy the
required source files, and build and install.

Well… we are getting the “AttributeError: module ‘mymodulename’ has
no attribute ‘myblockname’.”

We’ve hacked through all the stuff we could think of (ldconfig,
PYTHONPATH, /etc/ld/so.conf.d, config.conf), and have not found
anything that looks wrong to us.

Oddly, when the build was done before we added what should have been a
required item in the module cmake to use FFT, the make did not
generate an error as I would think it should. But when we purposely
garbled a line of code to check, it did indeed generate an error.

Any idea what this could be?
Also, is there somewhere an outline of how to go about this
module/block copy process?

Thanks again,

  • John

Hi John,

you shouldn’t use gr_modtool to create a new module on your destination
system – just take your OOT’s folder, and copy it over to the
destination system, deleting/omitting your build folder. Then rebuild
and install – CMake should make sure to find all the libraries on the
destination system itself.

In fact, OOTs were designed to be self-contained and transportable like
this – which is what tools like pybombs rely on: you can just copy/git
clone the OOT directory tree, mkdir build, cd build, cmake …, make and
make install and be set.