Gnuradio-companion-3.7.7.1 debian package

Hi,

I need a GnuRadio debian package for version 3.7.7.1 to be installed in
many different computers. I’ve tried creating it myself but I run into
many
difficulties. For example the command gnuradio-config-info --prefix
–prefsdir --sysconfdir was pointing to the folder where I created the
debian.

I found a package for Arch linux in
https://www.archlinux.org/packages/community/x86_64/gnuradio/
And I was going to try to convert it to a debian. Before I do that. Is
there a repo where I can find this? Ideally gnuradio-companion
(including
gnuradio) version 3.7.7.1 for both x86_64 and i636 debian package that
will
be installed in an Ubuntu 12.04 system.

Thanks a lot,
Murray

Hi Murray,

you’d typically do something like:

cmake -DCMAKE_INSTALL_PREFIX=/usr …

to match what debian expects.
Then, instead of simply installing stuff there, you install into your
fake root directory using
make
make install DESTDIR=/home/murray/fake_root/whatever

That will only bend around the paths where files are copied to, not the
paths contained in the files themselves

Best regards,
Marcus

Hi!

[email protected]:~$ gnuradio-config-info
ImportError: libboost_system.so.1.58.0: cannot open shared object
file: No such file or directory

This means that the gnuradio-config-info was definitely built with
another version of boost (1.58) than what is found at the moment you
start it.
The point about distributions is that they strive to keep all their
libraries coherent in one release. So, although the install script might
have installed the modern boost version correctly and set up some paths
so that on your first PC, linux knows where to look for boost 1.58, on
the other, this won’t work automatically.
You can find out where the libboost_system.so.1.58.0 is on the system
where it works by running “ldd $(which gnuradio-config-info)”.

So the question is: which tool did you exactly use to install GNU Radio?

If you use pyBOMBS, you get the ability to install everything, including
updated versions of boost etc., into a specific private directory, and
generate a script that sets up all paths accordingly. You can then just
copy that prefix and script over to the other PC; that’s pretty
distribution agnostic, but to be honest: If you wanted to make packages
for all the things that GNU Radio likes to have a bit more recent, you’d
be basically producing packages for half the development libraries that
GNU Radio needs – 12.04 is 3 years old…

Best regards,
Marcus

Thanks for that Marcus, I got around that first step.

My computer runs Ubuntu 12.04 with libboost 1.48 and it has a working
gnuradio installation v3.7.7.1-120-g67463e74 from the script in the web.
I used that computer to create the debian package based on
https://github.com/gnuradio/gnuradio.git tag v3.7.7 and I installed it
in
another Ubuntu 12.04 with libboost 1.48.
get the following error message when running this command or any simple
gnuradio script:

[email protected]:~$ gnuradio-config-info
ImportError: libboost_system.so.1.58.0: cannot open shared object file:
No
such file or directory

I first thought that 3.7.7 must depend on libboost 1.58 but it works
well
with 1.48 when I use the script to install it so, how did that
dependency
get there?

My debian has installed files into the folders /etc, /usr/bin, /usr/lib,
/usr/share, /usr/include and my control file depends on the following
packages:

Depends: libfftw3-3, libpulse0, python, python-numpy, python-gtk2,
python-wxgtk2.8, python-qwt5-qt4, python-lxml, python-cheetah,
python-qt4,
python-qwt5-qt4, libpulse0, libasound2, alsa-base,
libboost-program-options1.48.0, libboost-filesystem1.48.0,
libboost-thread1.48.0, libqtcore4, libsdl1.2debian, libgsl0ldbl,
liborc-0.4-0, libusb-1.0-0, sdcc

I’m using

PATH = /usr/bin
LD_LIBRARY = /usr/lib
PYTHONPATH =
/usr/lib/python2.7/site-packages/:/usr/lib/python2.7/:/usr/lib/python2.7/dist-packages
PKG_CONFIG_PATH = /usr/lib/pkgconfig

Could someone point me in the right direction please?

Cheers,
Murray

2015-06-19 10:42 GMT+01:00 Marcus Müller [email protected]:

Hi Murray,

that’s strange:

ImportError: libboost_system.so.1.58.0: cannot open shared object
file: No such file or directory

contradicts

libboost_system.so.1.48.0 => /usr/lib/libboost_system.so.1.48.0
(0xb71d8000)

There’s something seriously wrong about this situation. If not
gnuradio-config-info was linked against boost 1.58 symbols, then one of
the libraries it tries to use one your second PC is. That error comes
from /somewhere/. Maybe you’d want to compare the “ldd $(…)” output of
both systems, especially the individual paths of the libraries. Did you
happen to build a custom boost on the second machine at some point?

Best regards,
Marcus

Hello again

2015-06-19 14:35 GMT+01:00 Marcus Müller [email protected]:

Hi!

[email protected]:~$ gnuradio-config-info
ImportError: libboost_system.so.1.58.0: cannot open shared object file:
No such file or directory

This means that the gnuradio-config-info was definitely built with another
version of boost (1.58) than what is found at the moment you start it.

This is what I thought too but sudo find / -name “libboost*” only finds
libraries for boost 1.46 and 1.48.

The point about distributions is that they strive to keep all their

libraries coherent in one release. So, although the install script might
have installed the modern boost version correctly and set up some paths so
that on your first PC, linux knows where to look for boost 1.58, on the
other, this won’t work automatically.
You can find out where the libboost_system.so.1.58.0 is on the system
where it works by running “ldd $(which gnuradio-config-info)”.

The system works but win a Gnuradio installed from the build_gnuradio
script, not the debian package that I built.
[email protected]:~$ ldd $(which gnuradio-config-info)
linux-gate.so.1 => (0xb7760000)
libgnuradio-runtime-3.7.8git.so.0.0.0 =>
/usr/local/lib/libgnuradio-runtime-3.7.8git.so.0.0.0 (0xb7671000)
libboost_program_options.so.1.48.0 =>
/usr/lib/libboost_program_options.so.1.48.0 (0xb7612000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb75f6000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6
(0xb7511000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb74f3000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7349000)
libgnuradio-pmt-3.7.8git.so.0.0.0 =>
/usr/local/lib/libgnuradio-pmt-3.7.8git.so.0.0.0 (0xb730b000)
libvolk.so.1.0 => /usr/local/lib/libvolk.so.1.0 (0xb71fa000)
libboost_filesystem.so.1.48.0 =>
/usr/lib/libboost_filesystem.so.1.48.0
(0xb71dc000)
libboost_system.so.1.48.0 => /usr/lib/libboost_system.so.1.48.0
(0xb71d8000)
libboost_thread.so.1.48.0 => /usr/lib/libboost_thread.so.1.48.0
(0xb71bf000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb71b6000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7189000)
/lib/ld-linux.so.2 (0xb7761000)
liborc-0.4.so.0 => /usr/lib/i386-linux-gnu/liborc-0.4.so.0
(0xb70f9000)

So the question is: which tool did you exactly use to install GNU Radio?

I used cmake with the following parameters:
cmake -DCMAKE_INSTALL_PREFIX=/usr SYSCONFDIR=/etc
-DENABLE_STATIC_LIBS=False
-DENABLE_DOXYGEN=False -DENABLE_GR_WXGUI=OFF -DENABLE_GR_VOCODER=OFF
-DENABLE_GR_DTV=OFF -DENABLE_GR_ATSC=OFF …

If you use pyBOMBS, you get the ability to install everything, including
updated versions of boost etc., into a specific private directory, and
generate a script that sets up all paths accordingly. You can then just
copy that prefix and script over to the other PC; that’s pretty
distribution agnostic, but to be honest: If you wanted to make packages for
all the things that GNU Radio likes to have a bit more recent, you’d be
basically producing packages for half the development libraries that GNU
Radio needs – 12.04 is 3 years old…

I wish I could upgrade my Ubuntu but I’m stack with 12.04 for other
reasons. I’ll try the pybombs way and also the same method for gnuradio
3.7.5 to check that I get the same error

Best regards,
Marcus

Thank you for your help
Murray

Hi Marcus,

I used a new installation of 12.04. I got the sources for 3.7.7.1
instead
of 3.7.7 this time. The generated debian package works fine.
My previous environment could have been wrong or maybe it was something
in
3.7.7.
In any case, thanks a lot for your help.

Cheers,
Murray

2015-06-19 16:36 GMT+01:00 Marcus Müller [email protected]: