Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Homebrew vs PyBOMBS #4

Open
rxseger opened this issue Jun 6, 2016 · 2 comments
Open

Homebrew vs PyBOMBS #4

rxseger opened this issue Jun 6, 2016 · 2 comments

Comments

@rxseger
Copy link
Owner

rxseger commented Jun 6, 2016

GNU Radio has its own bundle system, Python Build Overlay Managed Bundle System: https://github.com/gnuradio/pybombs - should try it out and investigate how it compares versus these Homebrew formulae.

Does it make them obsolete? There are recipes in gr-recipes to install gr-osmosdr, gr-baz, and a large number of other modules:

rf $ grep description {gr-recipes,gr-etcetera}/*.lwr
gr-recipes/gr-adsb.lwr:description: GNU Radio ADSB decoder and framer
gr-recipes/gr-air-modes.lwr:description: Gnuradio Mode-S/ADS-B decoder
gr-recipes/gr-ais.lwr:description: Automatic Information System decoder for shipborne position reporting
gr-recipes/gr-ax25.lwr:description: Some hamradio ax.25 routines for gnuradio
gr-recipes/gr-baz.lwr:description: Collection of new blocks for GNU Radio http://wiki.spench.net/wiki/gr-baz
gr-recipes/gr-bluetooth.lwr:description: Bluetooth receiver implementation for GNU Radio
gr-recipes/gr-burst.lwr:description: Burst PSK Modem Building Blocks for GNU Radio
gr-recipes/gr-cdma.lwr:description: CDMA physical layer for Gnuradio
gr-recipes/gr-compat.lwr:description: Compatibility layer for various gnuradio APIs and libraries
gr-recipes/gr-display.lwr:description: QT based PNG and text display sink for gnuradio
gr-recipes/gr-drm.lwr:description: DRM transmitter using GNU Radio
gr-recipes/gr-ettus.lwr:description: Out-of-tree Module for Experimental Ettus Research Features
gr-recipes/gr-eventstream.lwr:description: translation between streams of data and scheduled-finite length events
gr-recipes/gr-fcdproplus.lwr:description: gnuradio funcube dongle pro+ source
gr-recipes/gr-foo.lwr:description: Some additional blocks like packetpad that are required by, e.g., gr-ieee80211
gr-recipes/gr-fosphor.lwr:description: RTSA-like spectrum visualization using OpenCL and OpenGL
gr-recipes/gr-fsk-burst.lwr:description: GNU Radio message based burst FSK Transmitter and Receiver
gr-recipes/gr-ieee-80211.lwr:description: IEEE 802.11 a/g/p Transceiver
gr-recipes/gr-iio.lwr:description: GNU Radio IIO Blocks
gr-recipes/gr-iqbal.lwr:description: gnuradio I/Q balancing
gr-recipes/gr-ldpc.lwr:description: encoder and decoder for LDPC codes
gr-recipes/gr-lilacsat.lwr:description: Harbin Institute of Technology LilacSat-2 satellite telemetry
gr-recipes/gr-mac.lwr:description: Easy-to-use MAC-layer implementations for GNU Radio
gr-recipes/gr-mapper.lwr:description: Symbol to Bit Mapping and Demapping Blocks for GNU Radio
gr-recipes/gr-message_tools.lwr:description: Simple message debugging tools
gr-recipes/gr-nacl.lwr:description: GNU Radio module for data encryption using NaCl
gr-recipes/gr-nmea.lwr:description: NMEA0183 GPS to message source
gr-recipes/gr-op25.lwr:description: implementation of the APCO Project 25 digital radio standard
gr-recipes/gr-osmosdr.lwr:description: interface api independent of the underlying radio hardware
gr-recipes/gr-packetradio.lwr:description: APRS for GNU Radio
gr-recipes/gr-paint.lwr:description: OFDM Spectrum Painter for GNU Radio
gr-recipes/gr-psk-burst.lwr:description: GNU Radio message based burst PSK Transmitter and Receiver
gr-recipes/gr-pyqt.lwr:description: pyqt based plotters intended for plotting bursted events in gnu radio
gr-recipes/gr-radar.lwr:description: GNU Radio Radar Toolbox
gr-recipes/gr-rds.lwr:description: FM RDS/TMC Transceiver
gr-recipes/gr-specest.lwr:description: spectral estimation routines for GNU Radio
gr-recipes/gr-tagutils.lwr:description: blocks useful for working with Stream Tags
gr-recipes/gr-theano.lwr:description: Rapid GPU Accelerated Blocks for GNU Radio
gr-recipes/gr-tutorial.lwr:description: tutorial OOT module for GNU Radio
gr-recipes/gr-zmqblocks.lwr:description: connect to flowgraphs over a network to perform remote procedure calls
gr-recipes/libperseus-sdr.lwr:description: Perseus SDR access library
gr-recipes/pysstv.lwr:description: SSTV generator in pure Python
gr-recipes/python-matplotlib.lwr:description: Python based plotting system in a style similar to Matlab.
gr-recipes/python-tk.lwr:description: A module for writing portable GUI applications with Python using Tk.
gr-etcetera/acarsdec.lwr:description: open source ACARS decoder with rtl_sdr frontend
gr-etcetera/dump1090.lwr:description: simple Mode S decoder for RTLSDR devices
gr-etcetera/gr-acars2.lwr:description: GNU Radio processing block for ACARS transmissions
gr-etcetera/gr-analysis.lwr:description: analysis tools for high sample rate recordings
gr-etcetera/gr-benchmark.lwr:description: performance measurement tool for GNU Radio
gr-etcetera/gr-dect2.lwr:description: DECT analyzer for GNU Radio
gr-etcetera/gr-dsd.lwr:description: GNU Radio block for Digital Speech Decoder
gr-etcetera/gr-dvbs2.lwr:description: DVB-S2 and DVB-S2X transmitter for GNU Radio
gr-etcetera/gr-dvbt.lwr:description: DVB-T implementation in gnuradio
gr-etcetera/gr-dvbt2.lwr:description: DVB-T2 transmitter for GNU Radio
gr-etcetera/gr-elster.lwr:description: Decode packets transmitted by Elster R2S smart meters
gr-etcetera/gr-flarm.lwr:description: FLARM receiver for GNU Radio
gr-etcetera/gr-framers.lwr:description: Framer and Deframer Blocks for GNU Radio
gr-etcetera/gr-gpredict-doppler.lwr:description: GNU Radio Gpredict Doppler shift correction block
gr-etcetera/gr-gsm.lwr:description: Gnuradio blocks and tools for receiving GSM transmissions
gr-etcetera/gr-ham.lwr:description: GNU Radio blocks useful for amateur radio
gr-etcetera/gr-hpsdr.lwr:description: interface module for HPSDR Hermes / Metis
gr-etcetera/gr-ieee-802154.lwr:description: IEEE 802.15.4 ZigBee Transceiver
gr-etcetera/gr-isdbt.lwr:description: DTV ISDB-T in GNURadio
gr-etcetera/gr-keyfob.lwr:description: Transceiver for Hella wireless car key fobs
gr-etcetera/gr-lte.lwr:description: GNU Radio LTE receiver
gr-etcetera/gr-mapper.lwr:description: Symbol to Bit Mapping and Demapping Blocks for GNU Radio
gr-etcetera/gr-mediatools.lwr:description: ffmpeg and gnu radio integration
gr-etcetera/gr-mer.lwr:description: QAM Modulation error measurements.
gr-etcetera/gr-microtelecom.lwr:description: Perseus SDR source module
gr-etcetera/gr-mixalot.lwr:description: Gnuradio pager encoder
gr-etcetera/gr-mtb.lwr:description: GNU Radio measurement toolbox
gr-etcetera/gr-multimon.lwr:description: multimon gnuradio wrapper
gr-etcetera/gr-pcap.lwr:description: PCAP recording and playback
gr-etcetera/gr-pocsag.lwr:description: multichannel POCSAG receiver for gnuradio
gr-etcetera/gr-psk31.lwr:description: tutorial on using psk31 with GNU Radio
gr-etcetera/gr-ra_blocks.lwr:description: Helper blocks for simple_ra
gr-etcetera/gr-rccar2.lwr:description: Gnuradio implementation for cheap remote control cars
gr-etcetera/gr-reveng.lwr:description: Utilities to help with reverse engineering RF protocols
gr-etcetera/gr-rstt.lwr:description: Vaisala Radiosonde Telemetry Receiver
gr-etcetera/gr-rtty.lwr:description: RTTY decoder for Gnuradio
gr-etcetera/gr-smartnet.lwr:description: Motorola Smartnet II trunking logging scanner for Gnuradio
gr-etcetera/gr-smithchart.lwr:description: pyQT based smith chart for GNU Radio
gr-etcetera/gr-streamsink.lwr:description: GNURadio sink to stream audio to SHOUTcast/Icecast
gr-etcetera/gr-uhdgps.lwr:description: Blocks to assist in GPS Data logging with UHD and a GPSDO
gr-etcetera/inspectrum.lwr:description: recorded data browser
gr-etcetera/rtl_433.lwr:description: 433MHz generic data receiver using RTL2832 DVB dongle
gr-etcetera/simple_radio_astronomy.lwr:description: integrated radio astronomy receiver for GNU Radio

@rxseger
Copy link
Owner Author

rxseger commented Jun 6, 2016

Following the quickstart:

pip install git+https://github.com/gnuradio/pybombs.git
pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git

What to use for the "prefix"? The example uses a nonsensical "/path/to/prefix" path. Maybe /usr/local/share/gnuradio/grc/blocks, which I have configured in:

~/.gnuradio/config.config.conf:
[grc]
local_blocks_path=/usr/local/share/gnuradio/grc/blocks

or in ~/.pybombs? But that already exists and has config.yml and recipes files:

~ $ ls ~/.pybombs/
config.yml recipes

cannot create prefix over it:

~ $ pybombs prefix init ~ -a local -R gnuradio-default
PyBombs.prefix - ERROR - Ignoring. A prefix already exists in `/Users/admin'

even though it doesn't have "./setup_env.sh":

~ $ pybombs prefix env
PyBombs.prefix - ERROR - No prefix specified. Aborting.
~ $ pybombs prefix info
PyBombs.prefix - ERROR - No prefix specified. Aborting.

not clear what a reasonable prefix is. If I use a different directory, then initialization succeeds, and it says it is installing gr-osmosdr but there are no gr-osmosdr files in the prefix directory.

I'll use ~/rf/gr as my prefix:

pip install git+https://github.com/gnuradio/pybombs.git 
pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git
pybombs prefix init ~/rf/gr -a local -R gnuradio-default

initializes the prefix:

PyBombs.prefix - INFO - Creating directory `/Users/admin/rf/gr'
PyBombs.ConfigManager - INFO - Creating new config file /Users/admin/rf/gr/.pybombs/config.yml
PyBombs.prefix - INFO - Installing default packages for prefix...
PyBombs.prefix - INFO -

  • gnuradio
  • gr-osmosdr

then try to install - no output:

~ $ pybombs -p local install gnuradio gr-osmosdr
~ $

Try another package - nothing either:

~ $ pybombs install gr-ieee-80211
~ $ ls ~/rf/gr

The prefix directory is nearly empty:

~ $ find ~/rf/gr
/Users/admin/rf/gr
/Users/admin/rf/gr/.pybombs
/Users/admin/rf/gr/.pybombs/config.yml
/Users/admin/rf/gr/.pybombs/recipes
/Users/admin/rf/gr/setup_env.sh
/Users/admin/rf/gr/src

Not sure what is going on here. If I . ./setup_env.sh then ./gnuradio-companion, no blocks from the packages I "installed" are visible (tried gr-osmosdr, gr-ieee-80211).

Will have to stick to Homebrew for now until I can figure out PyBOMBS.

@rxseger
Copy link
Owner Author

rxseger commented Jun 6, 2016

Found this: gnuradio/pybombs#224 Add 'brew' package manager — implying Homebrew is not currently supported with PyBOMBS?

But gnuradio/pybombs#222 Mac OS X support says there is MacPorts support. Another good word for MacPorts in gnuradio/pybombs#50 "Also, if you really need gnuradio these days on OS X, just install macports: They have a really good and active (paid?) package maintainer for gnuradio, so it should works right out of the box."

Sure enough, MacPorts does have a package for gr-osmosdr, and a total of 16 portfiles gr-: https://www.macports.org/ports.php?by=name&substr=gr-

gr-air-modes 20160517 Provides augmented functionality (blocks, GRC definitions, apps, etc) for GNU Radio.
gr-ais 20150414 Provides augmented functionality (blocks, GRC definitions, apps, etc) for GNU Radio.
gr-baz 20160505 Provides augmented functionality (blocks, GRC definitions, apps, etc) for GNU Radio.
gr-dvbs 20140618 Implements DVB-S transmitter according to ETSI 300 421 V1.1.2 Framing in GNU Radio.
gr-dvbs2 20140903 Implements DVB-S2 transmitter according to ETSI EN 302 307 V1.3.1 Second Generation Frameing in GNU Radio.
gr-dvbt 20160502 Implements DVB-T encoder/decoder according to ETSI 300 744 in GNU Radio.
gr-fcdproplus 20160310 Implements a funcube dongle pro+ source in GNU Radio.
gr-foo 20160423 Provides augmented functionality (blocks, GRC definitions, apps, etc) for GNU Radio.
gr-fosphor 20160125 gr-fosphor provides a GNU Radio block for RTSA-like spectrum visualization using GPU acceleration.
gr-ieee802-11 20160412 Provides augmented functionality (blocks, GRC definitions, apps, etc) for GNU Radio.
gr-ieee802-15-4 20151217 Provides augmented functionality (blocks, GRC definitions, apps, etc) for GNU Radio.
gr-iqbalance 20140825 gr-iqbalance provides I/Q balancing blocks for GNU Radio
gr-mac 20140913 Provides augmented functionality (blocks, GRC definitions, apps, etc) for GNU Radio.
gr-osmosdr 20160228 gr-osmosdr provides support for OsmoSDR hardware within GNU Radio
gr-pyqt 20160427 Provides augmented functionality for GNU Radio: pyqt based plotters intended for plotting bursted events.
gr-rds 20160403 Provides the Radio Data System (RDS) block for GNU Radio.

Time to switch from Homebrew to MacPorts?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant