Hi everyone,
We’re trying to implement a GNU Radio course here in Lyon (France) where
we take the students step-by-step into coding GR modules. At some point
we’d like them to follow the out-of-tree modules tutorial but we’ve
stumbled upon an unfortunate limitation: the IT guys of our university
wont allow root access on any computer, meaning that we can compile but
cannot install the blocks…
I come to you guys, to ask for advices on how to implement this. I have
some ideas already but I’d like to see if there is any “best practice”
ways to do this.
Best regards,
Leonardo Cardoso
Well, it’s a great way to install popular OOTs 
Hi Leonardo,
So this depends on your situation: If you’re allowed to get arbitrary
software installed by asking IT, I’d ask them to install a recent
version of GNU Radio (at least 3.7.2, the newer, the better).
Possibly, only outdated versions are in your IT’s software package
repositories, so you might need them to build and install from source;
they might refuse.
If that’s the case, or you can’t ask for arbitrary software:
use pyBombs[1]! It allows installation in a directory prefix of your
choice. Choose “src” as only viable method of software installation.
After pybombs has finished doing its thing, you get a shell script that
you can use to modify the environment variables, so that if you just use
that script in your ~/.bashrc, you will have a system that has a working
GNU Radio, completely without leaving the boundaries of your non-root
user. Downside is that everything that’s not on your system (or in an
outdated version) has to be built from source, which will take quite
some time and storage. Afterwards, if all these PCs are the same, you
can just copy the prefix folder to every user’s home directory.
Either way, you’ll (hopefully) have a working GNU Radio installation
afterwards.
Now, if you used pybombs, you’ll already have a prefix directory in your
user’s home where your OS will look for when loading libraries etc.
Otherwise, use pybombs now (./pybombs config; ./pybombs env; echo
“source $prefix/setup_env.sh” >> ~/.bashrc) to generate the empty
directory and generate a path-bending script.
When building your student’s OOT’s, you’d go the normal “cd gr-mymodule;
mkdir build; cd build; cmake …; make; make install;” route, only that
you’d replace “cmake …” with “cmake
-DCMAKE_INSTALL_PREFIX=/home/userXYZ/prefixdirectory …”; afterwards,
“make install” will install the things into prefixdirectory; awesome!
Best regards,
Marcus
[1]http://gnuradio.org/redmine/projects/pybombs/wiki/QuickStart
Hi Marcus,
Thanks for the quick reply. The IT dept. can install any version of GNU
Radio so no problem there 
The pybombs solution looks a lot like what I was cooking up from my
side. It boils down to changing the paths (PYTHONPATH, LD_LIBRARY_PATH,
PKG_CONFIG_PATH, etc…) and installing OOT modules in a prefix in the
users’s home.
Is there anything else to pybombs that I’m missing? I there any other
advantage in using the pybombs framework that I might have missed?
Thanks again
BR,
Leonardo
Pybombs also makes updating to newer versions as they come out easy.
./pybombs update
Rich
On Wed, Apr 8, 2015 at 6:54 AM, Marcus Müller [email protected]
On 08.04.2015 06:23, Leonardo S. Cardoso wrote:
The pybombs solution looks a lot like what I was cooking up from my
side. It boils down to changing the paths (PYTHONPATH, LD_LIBRARY_PATH,
PKG_CONFIG_PATH, etc…) and installing OOT modules in a prefix in the
userss home.
Is there anything else to pybombs that Im missing? I there any other
advantage in using the pybombs framework that I might have missed?
Leonardo,
you might even want to install even GNU Radio yourself (i.e., your IT
department installs nothing except for the build tools; gcc, cmake,
boost…). With PyBOMBS, that’s really easy to do. It also allows you to
update GNU Radio versions at any time, and, more importantly, on a
user-by-user basis. This is nice when one user needs new features from
latest GNU Radio, but others don’t want to update in order to not having
to change their own stuff.
Cheers,
Martin