Hello community,

here is the log from the commit of package gnuradio for openSUSE:Factory 
checked in at 2016-10-04 15:59:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnuradio (Old)
 and      /work/SRC/openSUSE:Factory/.gnuradio.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnuradio"

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnuradio/gnuradio.changes        2016-08-29 
15:47:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gnuradio.new/gnuradio.changes   2016-10-04 
15:59:25.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Sep  3 19:50:42 UTC 2016 - [email protected]
+
+- update to version 3.7.10.1
+
+-------------------------------------------------------------------

Old:
----
  gnuradio-3.7.10.tar.gz

New:
----
  gnuradio-3.7.10.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnuradio.spec ++++++
--- /var/tmp/diff_new_pack.TSfzn7/_old  2016-10-04 15:59:27.000000000 +0200
+++ /var/tmp/diff_new_pack.TSfzn7/_new  2016-10-04 15:59:27.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           gnuradio
-Version:        3.7.10
+Version:        3.7.10.1
 Release:        0
 %define soname  3_7_10-0_0_0
 %define soname_volk  1_3

++++++ gnuradio-3.7.10.tar.gz -> gnuradio-3.7.10.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/CMakeLists.txt 
new/gnuradio-3.7.10.1/CMakeLists.txt
--- old/gnuradio-3.7.10/CMakeLists.txt  2016-07-03 05:56:47.000000000 +0200
+++ new/gnuradio-3.7.10.1/CMakeLists.txt        2016-09-02 06:16:14.000000000 
+0200
@@ -47,7 +47,7 @@
 set(VERSION_INFO_MAJOR_VERSION 3)
 set(VERSION_INFO_API_COMPAT    7)
 set(VERSION_INFO_MINOR_VERSION 10)
-set(VERSION_INFO_MAINT_VERSION 0)
+set(VERSION_INFO_MAINT_VERSION 1)
 include(GrVersion) #setup version info
 
 # Append -O2 optimization flag for Debug builds (Not on MSVC since conflicts 
with RTC1 flag)
@@ -72,9 +72,9 @@
 ENDIF()
 
 IF(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
+    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
 ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
+    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
 ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
 ELSE()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/RELEASE-NOTES.md 
new/gnuradio-3.7.10.1/RELEASE-NOTES.md
--- old/gnuradio-3.7.10/RELEASE-NOTES.md        2016-07-03 05:42:50.000000000 
+0200
+++ new/gnuradio-3.7.10.1/RELEASE-NOTES.md      2016-09-02 06:16:14.000000000 
+0200
@@ -1,10 +1,7 @@
-ChangeLog v3.7.10
+ChangeLog v3.7.10.1
 =================
 
-This significant feature release of the 3.7 API series, and
-incorporates all the bug fixes implemented in the 3.7.9.3 maintenance
-release.
-
+This is the first bug-fix release for v3.7.10
 
 Contributors
 ------------
@@ -12,201 +9,60 @@
 The following list of people directly contributed code to this
 release:
 
- * A. Maitland Bottoms <[email protected]>
- * Andrej Rode <[email protected]>
- * Andy Sloane <[email protected]>
- * Andy Walls <[email protected]>
- * Chris Kuethe <[email protected]>
- * Clayton Smith <[email protected]>
- * Daehyun Yang <[email protected]>
- * Derek Kozel <[email protected]>
- * Federico La Rocca <[email protected]>
- * Geof Nieboer <[email protected]>
- * Glenn Richardson <[email protected]>
- * Glenn Richardson <[email protected]>
- * Jiří Pinkava <[email protected]>
- * Johannes Schmitz <[email protected]>
+ * Artem Pisarenko <[email protected]>
+ * Ben Hilburn <[email protected]>
+ * Christopher Chavez <[email protected]>
  * Johnathan Corgan <[email protected]>
- * Kevin McQuiggin <[email protected]>
- * Laur Joost <[email protected]>
- * Marcus Müller <[email protected]>
- * Martin Braun <[email protected]>
- * Matt Hostetter <[email protected]>
- * Michael Dickens <[email protected]>
- * Nathan West <[email protected]>
- * Paul Cercueil <[email protected]>
- * Paul David <[email protected]>
- * Philip Balister <[email protected]>
+ * Jonathan Brucker <[email protected]>
+ * Nicholas Corgan <[email protected]>
+ * Nicolas Cuervo <[email protected]>
  * Ron Economos <[email protected]>
- * Sean Nowlan <[email protected]>
  * Sebastian Koslowski <[email protected]>
- * Seth Hitefield <[email protected]>
- * Stefan Wunsch <[email protected]>
- * Tim O'Shea <[email protected]>
- * Tom Rondeau <[email protected]>
- * Tracie Renea <[email protected]>
+ * Stephen Larew <[email protected]>
 
-## Major Development Areas
 
-This release sees the integration of a number of long-time development
-efforts in various areas of the tree, including GRC, new packet/burst
-communications features for gr-digital, new standards implementations
-for gr-dtv.  In addition, it incorporates all of the bug fixes
-released as part of the 3.7.9.3 maintenance release.
+## Major Development Areas
 
+This contains bug fixes primarily for GRC and DTV.
 
 ### GRC
 
-The GNU Radio Companion development environment continues to undergo
-rapid development and refactoring. The tools and workflow have been
-improved in the following ways:
-
- * Variable explorer panel and option to hide variables from canvas
- * Nicer block documentation tool-tip and properties dialog tab
- * Screenshots can have transparent background
- * Darker color for bypassed blocks
- * Select all action
- * Block alignment tools
- * Added bits (unpacked bytes) as a data type
- * Show warning for blocks flagged as deprecated
- * Remove [] around categories in the block library
- * Separate core and OOT block trees via the category of each block
-
-The refactor of GRC continues. This should be mostly feature neutral
-and make it easier for new contributors to come in and make useful
-changes. Part of this is deprecating blks2 and and xmlrpc blocks and
-moving them to components where they would be expected to be found
-rather than the GRC sub-tree.
-
-### Packet Communications
-
-A long-time feature branch developed by Tom Rondeau has been merged
-into the tree, implementing new blocks and methods for packet
-communications.  This is intended to replace much of the older,
-overlapping, and Python-only packet-based code that already exists.
-As this code matures, we will be marking this older code as deprecated
-with the plan to remove it in the new 3.8 API.
-
-### DTV
-
-DTV has new transmitters for DVB-S and ITU-T J.83B 64QAM. New support
-for DVB-S2X VL-SNR code rates, modulation, and framing for AMSAT are
-also available.
-
-A significantly improved OFDM symbol synchronizer was implemented for
-the DVB-T receiver (Ron Economos, Federico La Rocca).
-
-## Other Feature Development
-
-### Runtime
-
-Clear tags and reset all item counters when merging connections
-between blocks, which prevents bad values from being propagated on
-lock/unlock operations.
-
-Blocks always set their max_noutput_items before a flowgraph starts if
-it hasn't already been set.
-
-Added some options to gnuradio-config-info that prints information
-about the gnuradio prefs file. The old customized preference file
-reader is replaced with a boost program options object.
-
-### QT GUIs
-
-The QT GUI widgets can now toggle axis labels and the frequency sink
-has a new feature to set the y-axis label. This could be useful for
-changing units on calibrated measurements.
-
-The QT GUI Entry widget has a new message port that emits a message
-containing the new text whenever editing is finished.
-
-QT widgets recently had an optional message port to plot PDUs. This
-release adds a feature to plot the tag metadata contained in the PDU.
-
-A new example shows how to build a C++ only QT based application.
+Catch more exceptions thrown by ConfigParser when reading corrupted grc.conf 
files.
 
-### gr-digital
+Fix the docstring update error for empty categories.
 
-New QA for tagged stream correlate access code blocks further cement
-how these blocks should be behaving.
+Fix grcc to call refactored GRC code.
 
-16QAM is now available from the GRC constellation object dialog drop
-down menu.
+Convert initially opened files to absolute paths to prevent attempting to read 
from tmp.
 
-### gr-analog
+Move startup checks back in to gnuradio-companion script from grc/checks.py.
 
-The frequency modulator now has sensitivity exposed through
-controlport.
 
-New FM pre emphasis and de-emphasis filters. The previous filters were
-effectively all-pass filters. There is a very nice write up on the new
-filters in gr-analog/python/analog/fm_emph.py
-
-A new message port to sig_source is available that can set signal
-frequency with the same convention as gr-uhd usrp_source.
-
-### gr-filter
-
-Use the max_noutput_items in start() to allocate FFT buffers for the
-PFB decimator rather than always allocating/freeing a buffer in
-work().
-
-### gr-blocks
-
-Add a run-time accessor and setter for interpolation of repeat blocks.
-
-vector_sink.reset() clears tags now
-
-Add accessors for the vector_source repeat flag so it's settable
-outside the ctor.
-
-Fix tuntap devices MTU size. Previously MTU size argument was used to
-allocate correct buffer size, but didn't actually change the MTU of
-the underlying device.
-
-The UDP source block can read gr prefs file for the payload buffer
-size or default to the existing value of 50.
-
-Yet another block making use of VOLK: the divide_cc block is now 10x
-faster on some machines.
-
-### gr-uhd
-
-New argument in usrp_source initializer to start streaming on the
-start of a flowgraph which defaults to true (the existing behavior).
-
-Add a clock-source argument to uhd_fft.
+### DTV
 
-A new message command handler for the usrp_source block will trigger a
-time and rate tag to be emitted.
+Fix a segfault that occurs from out-of-bounds access in
+dvbt_bit_inner_interleaver forecast by forecasting an enumerated list of all
+input streams.
 
-Added support for importing, exporting, and sharing LOs.
+Fix VL-SNR framing.
 
-### gr-audio
+### Digital
 
-Refactor audio sink for windows with multiple buffers to prevent
-skipping.
+Enable update rate in block_recovery_mm blocks to keep tags close to the the 
proper clock-recovered sample time. Tag offsets will still be off between calls 
to work, but each work call updates the tag rate.
 
-### modtool
+### Analog
 
-Add an option to set the copyright field for new files.
+Fix the derivative calculation in fmdet block.
 
-New modules will detect PYBOMBS_PREFIX and install to the defined
-location.
+### Builds
 
-Add versioning support for OOT modules by default.
+Fix linking GSL to gr-fec.
 
-### Builds
+Use gnu99 C standard rather than gnu11 standard to maintain support for GCC 
4.6.3.
 
-Enable controlport for static builds.
+### Other
 
-Enable GR_GIT_COUNT and GR_GIT_HASH environment variables for extended
-versioning number for packagers.
+Minor spelling and documentation fixes.
 
-We explicitly set the C/C++ standards to C++98 and gnu11 rather than
-use the compiler defaults since many compilers are moving to C++11 by
-default.  Incidentally this caused minor breakage with a subtle VOLK
-API fix in gr-dtv which was also fixed.
+Fix uhd_siggen_gui when using lo_locked.
 
-Fixed finding GNU Radio + VOLK in non-standard prefixes when compiling
-OOT modules.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/cmake/Modules/GrVersion.cmake 
new/gnuradio-3.7.10.1/cmake/Modules/GrVersion.cmake
--- old/gnuradio-3.7.10/cmake/Modules/GrVersion.cmake   2016-06-09 
19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/cmake/Modules/GrVersion.cmake 2016-09-02 
06:16:12.000000000 +0200
@@ -33,6 +33,16 @@
 ########################################################################
 find_package(Git)
 
+MACRO(create_manual_git_describe)
+    if(NOT GR_GIT_COUNT)
+        set(GR_GIT_COUNT "compat-xxx")
+    endif()
+    if(NOT GR_GIT_HASH)
+        set(GR_GIT_HASH "xunknown")
+    endif()
+    set(GIT_DESCRIBE 
"v${MAJOR_VERSION}.${API_COMPAT}-${GR_GIT_COUNT}-${GR_GIT_HASH}")
+ENDMACRO()
+
 if(GIT_FOUND AND EXISTS ${CMAKE_SOURCE_DIR}/.git)
     message(STATUS "Extracting version information from git describe...")
     execute_process(
@@ -40,14 +50,11 @@
         OUTPUT_VARIABLE GIT_DESCRIBE OUTPUT_STRIP_TRAILING_WHITESPACE
         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
     )
-else()
-    if(NOT GR_GIT_COUNT)
-        set(GR_GIT_COUNT "compat-xxx")
-    endif()
-    if(NOT GR_GIT_HASH)
-        set(GR_GIT_HASH "xunknown")
+    if(GIT_DESCRIBE STREQUAL "")
+        create_manual_git_describe()
     endif()
-    set(GIT_DESCRIBE 
"v${MAJOR_VERSION}.${API_COMPAT}-${GR_GIT_COUNT}-${GR_GIT_HASH}")
+else()
+    create_manual_git_describe()
 endif()
 
 ########################################################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/docs/RELEASE-NOTES-3.7.10.1.md 
new/gnuradio-3.7.10.1/docs/RELEASE-NOTES-3.7.10.1.md
--- old/gnuradio-3.7.10/docs/RELEASE-NOTES-3.7.10.1.md  1970-01-01 
01:00:00.000000000 +0100
+++ new/gnuradio-3.7.10.1/docs/RELEASE-NOTES-3.7.10.1.md        2016-09-02 
06:16:12.000000000 +0200
@@ -0,0 +1,68 @@
+ChangeLog v3.7.10.1
+=================
+
+This is the first bug-fix release for v3.7.10
+
+Contributors
+------------
+
+The following list of people directly contributed code to this
+release:
+
+ * Artem Pisarenko <[email protected]>
+ * Ben Hilburn <[email protected]>
+ * Christopher Chavez <[email protected]>
+ * Johnathan Corgan <[email protected]>
+ * Jonathan Brucker <[email protected]>
+ * Nicholas Corgan <[email protected]>
+ * Nicolas Cuervo <[email protected]>
+ * Ron Economos <[email protected]>
+ * Sebastian Koslowski <[email protected]>
+ * Stephen Larew <[email protected]>
+
+
+## Major Development Areas
+
+This contains bug fixes primarily for GRC and DTV.
+
+### GRC
+
+Catch more exceptions thrown by ConfigParser when reading corrupted grc.conf 
files.
+
+Fix the docstring update error for empty categories.
+
+Fix grcc to call refactored GRC code.
+
+Convert initially opened files to absolute paths to prevent attempting to read 
from tmp.
+
+Move startup checks back in to gnuradio-companion script from grc/checks.py.
+
+
+### DTV
+
+Fix a segfault that occurs from out-of-bounds access in
+dvbt_bit_inner_interleaver forecast by forecasting an enumerated list of all
+input streams.
+
+Fix VL-SNR framing.
+
+### Digital
+
+Enable update rate in block_recovery_mm blocks to keep tags close to the the 
proper clock-recovered sample time. Tag offsets will still be off between calls 
to work, but each work call updates the tag rate.
+
+### Analog
+
+Fix the derivative calculation in fmdet block.
+
+### Builds
+
+Fix linking GSL to gr-fec.
+
+Use gnu99 C standard rather than gnu11 standard to maintain support for GCC 
4.6.3.
+
+### Other
+
+Minor spelling and documentation fixes.
+
+Fix uhd_siggen_gui when using lo_locked.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gnuradio-runtime/include/gnuradio/attributes.h 
new/gnuradio-3.7.10.1/gnuradio-runtime/include/gnuradio/attributes.h
--- old/gnuradio-3.7.10/gnuradio-runtime/include/gnuradio/attributes.h  
2016-06-09 19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/gnuradio-runtime/include/gnuradio/attributes.h        
2016-09-02 06:16:12.000000000 +0200
@@ -81,12 +81,10 @@
 ////////////////////////////////////////////////////////////////////////
 // implement cross-compiler VLA macros
 ////////////////////////////////////////////////////////////////////////
-#ifdef C99
-#  define __GR_VLA(TYPE, buf, size) TYPE buf[size]
-#  define __GR_VLA2D(TYPE, buf, size, size2) TYPE buf[size][size2]
-#else
+#ifdef _MSC_VER
 #  define __GR_VLA(TYPE, buf, size) TYPE * buf = (TYPE *) alloca(sizeof(TYPE) 
* (size))
-#  define __GR_VLA2D(TYPE, buf, size, size2) TYPE ** buf = (TYPE **) 
alloca(sizeof(TYPE) * (size) * (size2))
+#else
+#  define __GR_VLA(TYPE, buf, size) TYPE buf[size]
 #endif
 
 #endif /* INCLUDED_GNURADIO_ATTRIBUTES_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/gnuradio-runtime/lib/prefs.cc 
new/gnuradio-3.7.10.1/gnuradio-runtime/lib/prefs.cc
--- old/gnuradio-3.7.10/gnuradio-runtime/lib/prefs.cc   2016-06-11 
01:30:23.000000000 +0200
+++ new/gnuradio-3.7.10.1/gnuradio-runtime/lib/prefs.cc 2016-09-02 
06:16:12.000000000 +0200
@@ -30,6 +30,7 @@
 
 #include <algorithm>
 #include <fstream>
+#include <iostream>
 
 #include <boost/filesystem/operations.hpp>
 #include <boost/filesystem/path.hpp>
@@ -113,7 +114,7 @@
             std::string value = o.value[0];
             d_config_map[section][key] = value;
           }
-        } catch(const boost::program_options::invalid_config_file_syntax & e) {
+        } catch(std::exception e) {
           std::cerr << "WARNING: Config file '" << fname << "' failed to 
parse:" << std::endl;
           std::cerr << e.what() << std::endl;
           std::cerr << "Skipping it" << std::endl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/gr-analog/lib/fmdet_cf_impl.cc 
new/gnuradio-3.7.10.1/gr-analog/lib/fmdet_cf_impl.cc
--- old/gnuradio-3.7.10/gr-analog/lib/fmdet_cf_impl.cc  2014-07-30 
22:39:51.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-analog/lib/fmdet_cf_impl.cc        2016-09-02 
06:16:12.000000000 +0200
@@ -106,7 +106,7 @@
       while(size-- > 0) {
        S0 = *iptr++;
 
-       Sdot = d_scl * (-S0+d_8*S1-d_8*S1+S4);
+       Sdot = d_scl * (-S0+d_8*S1-d_8*S2+S4);
 
        d_freq = (S2.real()*Sdot.imag()-S2.imag()*Sdot.real()) /
          (S2.real()*S2.real()+S2.imag()*S2.imag());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gr-blocks/include/gnuradio/blocks/stream_to_vector.h 
new/gnuradio-3.7.10.1/gr-blocks/include/gnuradio/blocks/stream_to_vector.h
--- old/gnuradio-3.7.10/gr-blocks/include/gnuradio/blocks/stream_to_vector.h    
2014-07-30 22:39:51.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-blocks/include/gnuradio/blocks/stream_to_vector.h  
2016-09-02 06:16:12.000000000 +0200
@@ -43,7 +43,7 @@
        * Make a stream-to-vector block.
        *
        * \param itemsize the item size of the stream
-       * \param nitems_per_block number of items to but into each vector 
(vector size)
+       * \param nitems_per_block number of items to put into each vector 
(vector size)
        */
       static sptr make(size_t itemsize, size_t nitems_per_block);
     };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gr-digital/lib/clock_recovery_mm_cc_impl.cc 
new/gnuradio-3.7.10.1/gr-digital/lib/clock_recovery_mm_cc_impl.cc
--- old/gnuradio-3.7.10/gr-digital/lib/clock_recovery_mm_cc_impl.cc     
2015-08-05 20:54:39.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-digital/lib/clock_recovery_mm_cc_impl.cc   
2016-09-02 06:16:13.000000000 +0200
@@ -67,6 +67,7 @@
       set_omega(omega);                        // also sets min and max omega
       set_relative_rate(1.0 / omega);
       set_history(3);                  // ensure 2 extra input samples are 
available
+      enable_update_rate(true);  // fixes tag propagation through variable 
rate block
     }
 
     clock_recovery_mm_cc_impl::~clock_recovery_mm_cc_impl()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gr-digital/lib/clock_recovery_mm_ff_impl.cc 
new/gnuradio-3.7.10.1/gr-digital/lib/clock_recovery_mm_ff_impl.cc
--- old/gnuradio-3.7.10/gr-digital/lib/clock_recovery_mm_ff_impl.cc     
2015-08-05 20:54:39.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-digital/lib/clock_recovery_mm_ff_impl.cc   
2016-09-02 06:16:13.000000000 +0200
@@ -60,6 +60,7 @@
 
       set_omega(omega);                        // also sets min and max omega
       set_relative_rate (1.0 / omega);
+      enable_update_rate(true);  // fixes tag propagation through variable 
rate block
     }
 
     clock_recovery_mm_ff_impl::~clock_recovery_mm_ff_impl()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml 
new/gnuradio-3.7.10.1/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml
--- old/gnuradio-3.7.10/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml   2016-06-25 
19:18:45.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml 2016-09-02 
06:16:13.000000000 +0200
@@ -16,17 +16,17 @@
 #end if
 #if str($standard) == 'STANDARD_DVBT2'
 #if str($framesize1) == 'FECFRAME_NORMAL'
-$rate1.val, #slurp
+$rate1.val#slurp
 #else
-$rate2.val, #slurp
+$rate2.val#slurp
 #end if
 #else
 #if str($framesize2) == 'FECFRAME_NORMAL'
-$rate3.val, #slurp
+$rate3.val#slurp
 #else if str($framesize2) == 'FECFRAME_MEDIUM'
-$rate4.val, #slurp
+$rate4.val#slurp
 #else
-$rate5.val, #slurp
+$rate5.val#slurp
 #end if
 #end if
 )</make>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/gr-dtv/grc/dtv_dvb_bch_bb.xml 
new/gnuradio-3.7.10.1/gr-dtv/grc/dtv_dvb_bch_bb.xml
--- old/gnuradio-3.7.10/gr-dtv/grc/dtv_dvb_bch_bb.xml   2016-06-25 
19:18:45.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-dtv/grc/dtv_dvb_bch_bb.xml 2016-09-02 
06:16:13.000000000 +0200
@@ -16,17 +16,17 @@
 #end if
 #if str($standard) == 'STANDARD_DVBT2'
 #if str($framesize1) == 'FECFRAME_NORMAL'
-$rate1.val, #slurp
+$rate1.val#slurp
 #else
-$rate2.val, #slurp
+$rate2.val#slurp
 #end if
 #else
 #if str($framesize2) == 'FECFRAME_NORMAL'
-$rate3.val, #slurp
+$rate3.val#slurp
 #else if str($framesize2) == 'FECFRAME_MEDIUM'
-$rate4.val, #slurp
+$rate4.val#slurp
 #else
-$rate5.val, #slurp
+$rate5.val#slurp
 #end if
 #end if
 )</make>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml 
new/gnuradio-3.7.10.1/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml
--- old/gnuradio-3.7.10/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml     
2015-08-05 20:54:39.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml   
2016-09-02 06:16:13.000000000 +0200
@@ -16,9 +16,9 @@
 #end if
 $version.val, #slurp
 #if str($version) == 'VERSION_111'
-$preamble1.val, #slurp
+$preamble1.val#slurp
 #else
-$preamble2.val, #slurp
+$preamble2.val#slurp
 #end if
 )</make>
   <param>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc 
new/gnuradio-3.7.10.1/gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc
--- old/gnuradio-3.7.10/gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc      
2016-06-25 19:18:45.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc    
2016-09-02 06:16:13.000000000 +0200
@@ -54,7 +54,7 @@
         type = 0;
         if (rate == C2_9_VLSNR) {
           frame_size = (FRAME_SIZE_NORMAL - NORMAL_PUNCTURING) + 
(EXTRA_PILOT_SYMBOLS_SET1 * 2);
-          type = 1;    /* force pilots on for VL-SNR */
+          pilots = PILOTS_ON;    /* force pilots on for VL-SNR */
         }
       }
 
@@ -63,16 +63,16 @@
         type = 2;
         if (rate == C1_5_VLSNR_SF2 || rate == C11_45_VLSNR_SF2) {
           frame_size = ((FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET1) * 2) + 
EXTRA_PILOT_SYMBOLS_SET1;
-          type = 1;    /* force pilots on for VL-SNR */
+          pilots = PILOTS_ON;    /* force pilots on for VL-SNR */
         }
         if (rate == C1_5_VLSNR || rate == C4_15_VLSNR || rate == C1_3_VLSNR) {
           frame_size = (FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2) + 
EXTRA_PILOT_SYMBOLS_SET2;
-          type = 1;    /* force pilots on for VL-SNR */
+          pilots = PILOTS_ON;    /* force pilots on for VL-SNR */
         }
       }
       else  {
         frame_size = FRAME_SIZE_MEDIUM - MEDIUM_PUNCTURING + 
EXTRA_PILOT_SYMBOLS_SET1;
-        type = 1;    /* force pilots on for VL-SNR */
+        pilots = PILOTS_ON;    /* force pilots on for VL-SNR */
       }
 
       pilot_mode = pilots;
@@ -808,8 +808,7 @@
       int consumed = 0;
       int produced = 0;
       int slot_count, n;
-      int group;
-      int symbols = 0;
+      int group, symbols;
       gr_complex tempin, tempout;
 
       if (vlsnr_set == VLSNR_OFF) {
@@ -873,6 +872,7 @@
           n = 0;
           slot_count = 10;
           group = 0;
+          symbols = 0;
           for (int plh = 0; plh < 90; plh++) {
             out[produced++] = m_pl[plh];
             out[produced++] = m_zero;
@@ -1079,6 +1079,7 @@
           n = 0;
           slot_count = 10;
           group = 0;
+          symbols = 0;
           for (int plh = 0; plh < 90; plh++) {
             out[produced++] = m_pl[plh];
             out[produced++] = m_zero;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc 
new/gnuradio-3.7.10.1/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc
--- old/gnuradio-3.7.10/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc    
2016-06-09 19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc  
2016-09-02 06:16:13.000000000 +0200
@@ -26,10 +26,13 @@
 #include "dvbt_bit_inner_deinterleaver_impl.h"
 #include <stdio.h>
 
+#define MAX_MODULATION_ORDER 6
+#define INTERLEAVER_BLOCK_SIZE 126
+
 namespace gr {
   namespace dtv {
 
-    const int dvbt_bit_inner_deinterleaver_impl::d_bsize = 126;
+    const int dvbt_bit_inner_deinterleaver_impl::d_bsize = 
INTERLEAVER_BLOCK_SIZE;
 
     int
     dvbt_bit_inner_deinterleaver_impl::H(int e, int w)
@@ -135,9 +138,8 @@
 
       // First index of d_b is Bit interleaver number
       // Second index of d_b is the position inside Bit interleaver
-      // Linux: unsigned char d_b[d_v][d_bsize];
-      __GR_VLA2D(unsigned char, d_b, d_v, d_bsize);
-                       
+      unsigned char d_b[MAX_MODULATION_ORDER][INTERLEAVER_BLOCK_SIZE];
+
       for (int bcount = 0; bcount < bmax; bcount++) {
         for (int w = 0; w < d_bsize; w++) {
           int c = in[(bcount * d_bsize) + w];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnuradio-3.7.10/gr-dtv/lib/dvbt/dvbt_bit_inner_interleaver_impl.cc 
new/gnuradio-3.7.10.1/gr-dtv/lib/dvbt/dvbt_bit_inner_interleaver_impl.cc
--- old/gnuradio-3.7.10/gr-dtv/lib/dvbt/dvbt_bit_inner_interleaver_impl.cc      
2016-06-09 19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-dtv/lib/dvbt/dvbt_bit_inner_interleaver_impl.cc    
2016-09-02 06:16:13.000000000 +0200
@@ -26,10 +26,13 @@
 #include "dvbt_bit_inner_interleaver_impl.h"
 #include <stdio.h>
 
+#define MAX_MODULATION_ORDER 6
+#define INTERLEAVER_BLOCK_SIZE 126
+
 namespace gr {
   namespace dtv {
 
-    const int dvbt_bit_inner_interleaver_impl::d_bsize = 126;
+    const int dvbt_bit_inner_interleaver_impl::d_bsize = 
INTERLEAVER_BLOCK_SIZE;
 
     int
     dvbt_bit_inner_interleaver_impl::H(int e, int w)
@@ -118,8 +121,9 @@
     void
     dvbt_bit_inner_interleaver_impl::forecast (int noutput_items, 
gr_vector_int &ninput_items_required)
     {
-      ninput_items_required[0] = noutput_items;
-      ninput_items_required[1] = noutput_items;
+      unsigned ninputs = ninput_items_required.size();
+      for (unsigned i = 0; i < ninputs; i++)
+        ninput_items_required[i] = noutput_items;
     }
 
     int
@@ -136,8 +140,7 @@
 
       // First index of d_b is Bit interleaver number
       // Second index of d_b is the position inside the Bit interleaver
-      // Linux: unsigned char d_b[d_v][d_bsize];
-      __GR_VLA2D(unsigned char, d_b, d_v, d_bsize);
+      unsigned char d_b[MAX_MODULATION_ORDER][INTERLEAVER_BLOCK_SIZE];
 
       for (int bcount = 0; bcount < bmax; bcount++) {
         for (int i = 0; i < d_bsize; i++) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/gr-fec/CMakeLists.txt 
new/gnuradio-3.7.10.1/gr-fec/CMakeLists.txt
--- old/gnuradio-3.7.10/gr-fec/CMakeLists.txt   2016-06-09 19:57:20.000000000 
+0200
+++ new/gnuradio-3.7.10.1/gr-fec/CMakeLists.txt 2016-09-02 06:16:13.000000000 
+0200
@@ -34,6 +34,7 @@
     Boost_FOUND
     ENABLE_GNURADIO_RUNTIME
     ENABLE_GR_BLOCKS
+    GSL_FOUND
 )
 
 GR_SET_GLOBAL(GR_FEC_INCLUDE_DIRS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/gr-fec/swig/CMakeLists.txt 
new/gnuradio-3.7.10.1/gr-fec/swig/CMakeLists.txt
--- old/gnuradio-3.7.10/gr-fec/swig/CMakeLists.txt      2016-06-09 
19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-fec/swig/CMakeLists.txt    2016-09-02 
06:16:13.000000000 +0200
@@ -41,7 +41,7 @@
 set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/fec_swig_doc.i)
 set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/fec)
 set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
-set(GR_SWIG_LIBRARIES gnuradio-fec)
+set(GR_SWIG_LIBRARIES gnuradio-fec ${GSL_LDFLAGS})
 
 GR_SWIG_MAKE(fec_swig fec_swig.i)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/gr-qtgui/grc/qtgui_number_sink.xml 
new/gnuradio-3.7.10.1/gr-qtgui/grc/qtgui_number_sink.xml
--- old/gnuradio-3.7.10/gr-qtgui/grc/qtgui_number_sink.xml      2016-06-09 
19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-qtgui/grc/qtgui_number_sink.xml    2016-09-02 
06:16:13.000000000 +0200
@@ -116,7 +116,7 @@
       <key>qtgui.NUM_GRAPH_HORIZ</key>
     </option>
     <option>
-      <name>Verticle</name>
+      <name>Vertical</name>
       <key>qtgui.NUM_GRAPH_VERT</key>
     </option>
     <option>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/gr-uhd/apps/uhd_siggen_gui 
new/gnuradio-3.7.10.1/gr-uhd/apps/uhd_siggen_gui
--- old/gnuradio-3.7.10/gr-uhd/apps/uhd_siggen_gui      2016-06-09 
19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-uhd/apps/uhd_siggen_gui    2016-09-02 
06:16:13.000000000 +0200
@@ -426,7 +426,7 @@
     def set_lo_locked_probe_0(self, lo_locked_probe_0):
         Qt.QMetaObject.invokeMethod(
                 self._lo_locked_probe_0_label, "setText",
-                Qt.Q_ARG("QString", str(self.lo_locked_probe_0))
+                Qt.Q_ARG("QString", str(lo_locked_probe_0))
         )
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/gr-utils/python/utils/grcc 
new/gnuradio-3.7.10.1/gr-utils/python/utils/grcc
--- old/gnuradio-3.7.10/gr-utils/python/utils/grcc      2016-05-30 
21:17:19.000000000 +0200
+++ new/gnuradio-3.7.10.1/gr-utils/python/utils/grcc    2016-09-02 
06:16:13.000000000 +0200
@@ -26,16 +26,22 @@
 import warnings
 warnings.simplefilter('ignore')
 
+from gnuradio import gr
+
 try:
-    from grc.python.Platform import Platform
+    from grc.core.Platform import Platform
 except ImportError:
-    from gnuradio.grc.python.Platform import Platform
+    from gnuradio.grc.core.Platform import Platform
 
 
 class GRCC:
     def __init__(self, grcfile, out_dir):
         self.out_dir = out_dir
-        self.platform = Platform()
+        self.platform = Platform(
+            prefs_file=gr.prefs(),
+            version=gr.version(),
+            version_parts=(gr.major_version(), gr.api_version(), 
gr.minor_version())
+        )
         data = self.platform.parse_flow_graph(grcfile)
 
         self.fg = self.platform.get_new_flow_graph()
@@ -48,7 +54,7 @@
                 ["Validation failed:"] + self.fg.get_error_messages()
             ))
 
-        self.gen = self.platform.get_generator()(self.fg, out_dir)
+        self.gen = self.platform.Generator(self.fg, out_dir)
         self.gen.write()
 
     def exec_program(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/grc/checks.py 
new/gnuradio-3.7.10.1/grc/checks.py
--- old/gnuradio-3.7.10/grc/checks.py   2016-06-09 19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/grc/checks.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,80 +0,0 @@
-# Copyright 2009-2016 Free Software Foundation, Inc.
-# This file is part of GNU Radio
-#
-# GNU Radio Companion is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# GNU Radio Companion is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA
-
-import os
-import warnings
-
-
-GR_IMPORT_ERROR_MESSAGE = """\
-Cannot import gnuradio.
-
-Is the model path environment variable set correctly?
-    All OS: PYTHONPATH
-
-Is the library path environment variable set correctly?
-    Linux: LD_LIBRARY_PATH
-    Windows: PATH
-    MacOSX: DYLD_LIBRARY_PATH
-"""
-
-
-def die(error, message):
-    msg = "{0}\n\n({1})".format(message, error)
-    try:
-        import gtk
-        d = gtk.MessageDialog(
-            type=gtk.MESSAGE_ERROR,
-            buttons=gtk.BUTTONS_CLOSE,
-            message_format=msg,
-        )
-        d.set_title(type(error).__name__)
-        d.run()
-        exit(1)
-    except ImportError:
-        exit(type(error).__name__ + '\n\n' + msg)
-
-
-def check_gtk():
-    try:
-        warnings.filterwarnings("error")
-        import pygtk
-        pygtk.require('2.0')
-        import gtk
-        gtk.init_check()
-        warnings.filterwarnings("always")
-    except Exception as err:
-        die(err, "Failed to initialize GTK. If you are running over ssh, "
-                 "did you enable X forwarding and start ssh with -X?")
-
-
-def check_gnuradio_import():
-    try:
-        from gnuradio import gr
-    except ImportError as err:
-        die(err, GR_IMPORT_ERROR_MESSAGE)
-
-
-def check_blocks_path():
-    if 'GR_DONT_LOAD_PREFS' in os.environ and not 
os.environ.get('GRC_BLOCKS_PATH', ''):
-        die(EnvironmentError("No block definitions available"),
-            "Can't find block definitions. Use config.conf or 
GRC_BLOCKS_PATH.")
-
-
-def do_all():
-    check_gnuradio_import()
-    check_gtk()
-    check_blocks_path()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/grc/core/Param.py 
new/gnuradio-3.7.10.1/grc/core/Param.py
--- old/gnuradio-3.7.10/grc/core/Param.py       2016-06-09 19:57:20.000000000 
+0200
+++ new/gnuradio-3.7.10.1/grc/core/Param.py     2016-09-02 06:16:13.000000000 
+0200
@@ -642,10 +642,8 @@
         if t in ('string', 'file_open', 'file_save', '_multiline', 
'_multiline_python_external'):
             if not self._init:
                 self.evaluate()
-            if self._stringify_flag:
-                return '"%s"' % v.replace('"', '\"')
-            else:
-                return v
+            return repr(v) if self._stringify_flag else v
+
         # Vector types
         elif t in ('complex_vector', 'real_vector', 'float_vector', 
'int_vector'):
             if not self._init:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/grc/core/generator/Generator.py 
new/gnuradio-3.7.10.1/grc/core/generator/Generator.py
--- old/gnuradio-3.7.10/grc/core/generator/Generator.py 2016-06-09 
19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/grc/core/generator/Generator.py       2016-09-02 
06:16:13.000000000 +0200
@@ -74,13 +74,14 @@
         self._flow_graph = FlowGraphProxy(flow_graph)
         self._generate_options = 
self._flow_graph.get_option('generate_options')
         self._mode = TOP_BLOCK_FILE_MODE
-        dirname = self._dirname = os.path.dirname(file_path)
+        dirname = os.path.dirname(file_path)
         # Handle the case where the directory is read-only
         # In this case, use the system's temp directory
         if not os.access(dirname, os.W_OK):
             dirname = tempfile.gettempdir()
         filename = self._flow_graph.get_option('id') + '.py'
         self.file_path = os.path.join(dirname, filename)
+        self._dirname = dirname
 
     def get_file_path(self):
         return self.file_path
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/grc/gui/ActionHandler.py 
new/gnuradio-3.7.10.1/grc/gui/ActionHandler.py
--- old/gnuradio-3.7.10/grc/gui/ActionHandler.py        2016-06-09 
19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/grc/gui/ActionHandler.py      2016-09-02 
06:16:13.000000000 +0200
@@ -66,7 +66,7 @@
         Messages.register_messenger(self.main_window.add_console_line)
         Messages.send_init(platform)
         #initialize
-        self.init_file_paths = file_paths
+        self.init_file_paths = [os.path.abspath(file_path) for file_path in 
file_paths]
         self.init = False
         Actions.APPLICATION_INITIALIZE()
 
@@ -116,13 +116,10 @@
         # Initialize/Quit
         ##################################################
         if action == Actions.APPLICATION_INITIALIZE:
-            if not self.init_file_paths:
-                self.init_file_paths = filter(os.path.exists, 
Preferences.get_open_files())
-            if not self.init_file_paths: self.init_file_paths = ['']
-            for file_path in self.init_file_paths:
-                if file_path: main.new_page(file_path) #load pages from file 
paths
-            if Preferences.file_open() in self.init_file_paths:
-                main.new_page(Preferences.file_open(), show=True)
+            file_path_to_show = Preferences.file_open()
+            for file_path in (self.init_file_paths or 
Preferences.get_open_files()):
+                if os.path.exists(file_path):
+                    main.new_page(file_path, show=file_path_to_show == 
file_path)
             if not self.get_page():
                 main.new_page()  # ensure that at least a blank page exists
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/grc/gui/BlockTreeWindow.py 
new/gnuradio-3.7.10.1/grc/gui/BlockTreeWindow.py
--- old/gnuradio-3.7.10/grc/gui/BlockTreeWindow.py      2016-06-09 
19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/grc/gui/BlockTreeWindow.py    2016-09-02 
06:16:13.000000000 +0200
@@ -202,9 +202,9 @@
         """Update the documentation column of every block"""
 
         def update_doc(model, _, iter_):
-            if model.iter_has_child(iter_):
-                return  # category node, no doc string
             key = model.get_value(iter_, KEY_INDEX)
+            if not key:
+                return  # category node, no doc string
             block = self.platform.blocks[key]
             doc = Utils.parse_template(DOC_MARKUP_TMPL, doc=block.get_doc())
             model.set_value(iter_, DOC_INDEX, doc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/grc/gui/Preferences.py 
new/gnuradio-3.7.10.1/grc/gui/Preferences.py
--- old/gnuradio-3.7.10/grc/gui/Preferences.py  2016-06-09 19:57:20.000000000 
+0200
+++ new/gnuradio-3.7.10.1/grc/gui/Preferences.py        2016-09-02 
06:16:13.000000000 +0200
@@ -74,7 +74,7 @@
         }.get(_type, _config_parser.get)
         try:
             result = getter('main', key)
-        except ConfigParser.Error:
+        except (AttributeError, ConfigParser.Error):
             result = _type() if default is None else default
     return result
 
@@ -106,7 +106,7 @@
     try:
         files = [value for name, value in _config_parser.items(key)
                  if name.startswith('%s_' % key)]
-    except ConfigParser.Error:
+    except (AttributeError, ConfigParser.Error):
         files = []
     return files
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/grc/scripts/gnuradio-companion 
new/gnuradio-3.7.10.1/grc/scripts/gnuradio-companion
--- old/gnuradio-3.7.10/grc/scripts/gnuradio-companion  2016-06-09 
19:57:20.000000000 +0200
+++ new/gnuradio-3.7.10.1/grc/scripts/gnuradio-companion        2016-09-02 
06:16:13.000000000 +0200
@@ -20,19 +20,80 @@
 
 import os
 import sys
+import warnings
 
-script_path = os.path.dirname(os.path.abspath(__file__))
-source_tree_subpath = "/grc/scripts"
 
-if not script_path.endswith(source_tree_subpath):
-    # run the installed version
-    from gnuradio.grc.main import main
-    from gnuradio.grc import checks
-else:
-    print("Running from source tree")
-    sys.path.insert(1, script_path[:-len(source_tree_subpath)])
-    from grc.main import main
-    from grc import checks
+GR_IMPORT_ERROR_MESSAGE = """\
+Cannot import gnuradio.
 
-checks.do_all()
-exit(main())
+Is the model path environment variable set correctly?
+    All OS: PYTHONPATH
+
+Is the library path environment variable set correctly?
+    Linux: LD_LIBRARY_PATH
+    Windows: PATH
+    MacOSX: DYLD_LIBRARY_PATH
+"""
+
+
+def die(error, message):
+    msg = "{0}\n\n({1})".format(message, error)
+    try:
+        import gtk
+        d = gtk.MessageDialog(
+            type=gtk.MESSAGE_ERROR,
+            buttons=gtk.BUTTONS_CLOSE,
+            message_format=msg,
+        )
+        d.set_title(type(error).__name__)
+        d.run()
+        exit(1)
+    except ImportError:
+        exit(type(error).__name__ + '\n\n' + msg)
+
+
+def check_gtk():
+    try:
+        warnings.filterwarnings("error")
+        import pygtk
+        pygtk.require('2.0')
+        import gtk
+        gtk.init_check()
+        warnings.filterwarnings("always")
+    except Exception as err:
+        die(err, "Failed to initialize GTK. If you are running over ssh, "
+                 "did you enable X forwarding and start ssh with -X?")
+
+
+def check_gnuradio_import():
+    try:
+        from gnuradio import gr
+    except ImportError as err:
+        die(err, GR_IMPORT_ERROR_MESSAGE)
+
+
+def check_blocks_path():
+    if 'GR_DONT_LOAD_PREFS' in os.environ and not 
os.environ.get('GRC_BLOCKS_PATH', ''):
+        die(EnvironmentError("No block definitions available"),
+            "Can't find block definitions. Use config.conf or 
GRC_BLOCKS_PATH.")
+
+
+def run_main():
+    script_path = os.path.dirname(os.path.abspath(__file__))
+    source_tree_subpath = "/grc/scripts"
+
+    if not script_path.endswith(source_tree_subpath):
+        # run the installed version
+        from gnuradio.grc.main import main
+    else:
+        print("Running from source tree")
+        sys.path.insert(1, script_path[:-len(source_tree_subpath)])
+        from grc.main import main
+    exit(main())
+
+
+if __name__ == '__main__':
+    check_gnuradio_import()
+    check_gtk()
+    check_blocks_path()
+    run_main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/volk/.git 
new/gnuradio-3.7.10.1/volk/.git
--- old/gnuradio-3.7.10/volk/.git       1970-01-01 01:00:00.000000000 +0100
+++ new/gnuradio-3.7.10.1/volk/.git     2016-09-02 06:16:13.000000000 +0200
@@ -0,0 +1 @@
+gitdir: ../.git/modules/volk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuradio-3.7.10/volk/.gitignore 
new/gnuradio-3.7.10.1/volk/.gitignore
--- old/gnuradio-3.7.10/volk/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/gnuradio-3.7.10.1/volk/.gitignore       2016-09-02 06:16:13.000000000 
+0200
@@ -0,0 +1,4 @@
+*~
+*.pyc
+*.pyo
+build/


Reply via email to