## unreleased
### Fixed
#### Project Scope
- `boost::posix_time::[milli]second` takes integer numbers, and we now at least cast the floats to integers, as Boost 1.67 forced us to realize we're (incorrectly) using floating point her
- CMake: using regex to match compiler against "Clang" now enables correct build on OS X
#### GRC
- Fixed GRC bug which broke WX and Qt (by altering the template code), in multiple (less than awesome) steps
#### gr-analog
- `fmdet_cf`'s derivative coefficients were wrong.
#### gr-blocks
- `float_array_to_int`: int32 limits were wrongly hardcoded.
- Fixed the undefined behaviour happening in `float_to_complex` when accessing the second input_items element in the single-input case
### Added
#### gr-analog
- QA for complex cosine
#### gr-utils
- `gr_modtool` now with autocompletion candidates for `rm`
### Changed
#### Project Scope
- Removed cppunit from all unit tests, replaced by Boost
- Removed the cppunit dependency
Ports that build out of source now simply can use "USES=cmake"
instead of "USES=cmake:outsource". Ports that fail to build
out of source now need to specify "USES=cmake:insource".
I tried to only set insource where explictely needed.
PR: 232038
Exp-run by: antoine
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
While here, chase some KDE4 ports and functionality, these are scheduled for
removal on 2018-12-31. Change the default option/flavor to QT5 where applicable
or use alternative toolkits like GTK.
Submitted by: tcberner
Reviewed by: adridg, jhale, rene, tcberner
Approved by: portmgr (implicit, flavor hook)
Differential Revision: https://reviews.freebsd.org/D17741
* PyQt could not be installed for multiple Python versions at
the same time, as there were conflicting files.
This patch creates Python-version versioned directories for
all these, and further installs binaries with a version number.
* Note, there might be some hickups for software that depends on
on of the .so's provided by PyQt5, which might not be found
anymore autmotically, and maybe need some LD-flaggery.
* Update PyQt5 to 5.10.1
* Mark www/py-qt5-webengine broken. It is unforuntately no longer
compatible with the old qt5-webengine-5.9.4 we ship.
PR: 232745
Exp-run by: antoine
Differential Revision: https://reviews.freebsd.org/D8714
### Fixed
#### Project Scope
- Fix Boost 1.67 linking issue
#### gnuradio-runtime
- Logging: fixed issues where messages weren't properly written to stdout/stderr due to incorrect strings
#### gr-analog
- `fmdet_cf`'s derivative coefficients were wrong.
#### gr-blocks
- `skiphead` used to incorrectly handle tags, now properly shifts
#### gr-digital
- `qa_packet_format`: Unit test used to potentially lock up due to incorrect conditionals
- `clock_recovery_cc`, `crc32_bb`: Accessing the `[0]` element of an empty vector is UB, even if you don't use the result afterwards.
#### gr-fec
- `polar_encoder`/`_common`: Fixed multiple out-of-bound accesses due to insufficient vector length checks
#### gr-filter
- `fft_filter`, `filter_delay`: Accessing the `[0]` element of an empty vector is UB, even if you don't use the result afterwards.
Fix dependancy problem when UHD is not used.
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542
From now on, ports that depend on Qt4 will have to set
USES= qt:4
USE_QT= foo bar
ports depending on Qt5 will use
USES= qt:5
USE_QT= foo bar
PR: 229225
Exp-run by: antoine
Reviewed by: mat
Approved by: portmgr (antoine)
Differential Revision: →https://reviews.freebsd.org/D15540
Left the README files at all times
# Changelog
All notable changes to GNU Radio will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html), starting with version 3.7.12.0.
Older Logs can be found in `docs/RELEASE-NOTES-*`.
## [3.7.13.3] - 2018-06-13
### Fixed
#### Project Scope
- For non-C++11 compilers, the new cstdint include doesn't work out; conditionalized it.
## [3.7.13.2] - 2018-05-31
### Fixed
#### Project Scope
- Actually bumped version in CMakeLists.txt to 3.7.13.2; the 3.7.13.1 tag was tagged off-branch; maintainer failure to simultaneously push a commit that raises the internal version number to 3.7.14.0: this had to be reverted ASAP.
## [3.7.13.1] - 2018-05-31
### Fixed
#### Project Scope
- Actually bumped version in CMakeLists.txt
## [3.7.13.0] - 2018-05-31
### Fixed
#### Project Scope
- `boost::posix_time::[milli]second` takes integer numbers, and we now at least cast the floats to integers, as Boost 1.67 forced us to realize we're (incorrectly) using floating point her
- CMake: using regex to match compiler against "Clang" now enables correct build on OS X
#### GRC
- Fixed GRC bug which broke WX and Qt (by altering the template code), in multiple (less than awesome) steps
#### gr-blocks
- `float_array_to_int`: int32 limits were wrongly hardcoded.
- Fixed the undefined behaviour happening in `float_to_complex` when accessing the second input_items element in the single-input case
## [3.7.12.0] - 2018-04-01
### Software Engineering
- Changed Changelog format
- Introducing Semantic Versioning
- Change of development model: Rather than merging bugfixes to maint, merging maint to master, and next, if applicable, we'll be moving forward more in a typical management model: Development happens on master, and bugfixes are cherrypicked onto the maint-${RELEASE} branch. More info: http://lists.gnu.org/archive/html/discuss-gnuradio/2018-02/msg00133.html
- First attempt at having a .clang-format file to improve code contribution style quality. This is Work In Progress.
### Fixed
#### Project Scope
- Buildability on systems where custom CMake command would try to find "" (empty string) as executable
- Buildable with C++11 compilers (though deprecation warning-rich, due to `unique_ptr`)
- several previously improperly handled include directories now actually included in individual lib/CMakeLists
- Unit test/QA now parallelizable
- Logger works with log4cpp <= 1.1.2 both in and out of tree
- Python linkage under MinGW64
- Documentation Directory now uniformly "docs/" (instead of sometimes "doc/")
- `log` vs `logf` performance bugs
- on-time `pmt::mp("string")` calls (instead of cached PMTs) performance bug
- Doxygen build now reproducible
#### GRC
- Dialogs' parent windows
- Embedded Python Blocks now work in hierarchical GRC flow graphs
#### gnuradio-runtime
- `random.h`: Uniform integer Generation depended on Boost version > min version
- `random.h`: time-dependency when seeding with `0` replaced with actual standard seed
- block startup now synchronized via barrier
- New tag propagation policy "custom" for own implementation
- `get_tags_in_range` used `v.resize(0)` to clear vectors, which lead to unnecessary memory reallocations
- `logger_ptr` now always a pointer, no matter whether logging is enabled; fixes heap corruption bug
- `buffer[_reader]_sptr` superfluous grab/release performance bug
- BSD threading and shared mem compatibility
- PMT: `equal()` comparison
#### gr-utils
- Sorted files in `gr_modtool` makexml processing, leading to improved reproducibility of builds
#### gr-audio
- OS X: memcpy bug
- OS X: debug mode
- Non-Linux ALSA compatibibilty
#### gr-analog
- `fmdet_cf` now has GRC file
- `fastnoise_source`: non-threadsafe `libc` `rand()` replaced by XOROSHIRO128+
#### gr-blocks
- `simple_copy` Ctrlport example
- Metadata sink/source not closing file on `close()`
- `multiply_matrix` formerly used "magic int" value where its API expected enum (and that int wasn't covered)
- TCP connection ASIO bug
- `tags_strobe`: superfluous tags addition
- `vector_sink`: multithreading hazards on `data` access
- `tuntap_pdu`: MTU-sized IP packet reception
- `socket_pdu`: Garbage Collect closed TCP connections
#### gr-channels
- IQ imbalance block formula now mathematically correct now mathematically correct
- `selective_fading_model`: proper scaling of path length
#### gr-digital
- `additive_scrambler_bb`: tag triggered reset
- `stream_to_tagged_stream`: tag offset after `unlock()`
- `blks2/packet.py`: Flushing for small packets
- `interpolating_resampler`: GCC 4.0 compile error
- `constellation`: 16QAM demapper was wrong for one constellation point
- `chunks_to_symbols`: mutex-guard LUT against modification during use
- MSVC compatibility throug `and` -> `&&` etc
- `crc32_bb`: handle unpacked bytes correctly
- `ofdm_carrier_allocator`: catching wrong allocations instead of crashing
#### gr-dtv
- All examples now are installed
- DVB-T2: Removed L1 post scrambling in spec v1.1.1 mode
#### gr-fcd
- Building on non-Linux systems
- Extended symbol bug in Reed-Solomon encoder
- DVB-T Cell identifier
#### gr-fcd
- Building on non-Linux systems
#### gr-fec
- `channel_construction.py`: return int frozen bit output
- `GSL_LDFLAGS` propagation
- `polar_decoder` used to be flaky
#### gr-fft
- locking of fftw wisdom
- `window.cc`: removed NaN due to FP math
- compilation under MinGW
- `logpwrfft.py` reference scaling integer division bug
#### gr-filter
- Simpson's rule code removed in favor of GSL call
#### gr-qtgui
- Time sink: Segfault with tag trigger
#### gr-uhd
- Antenna selection in UHD apps
- `uhd_fft` scalar gain-capability
- Device selection for multi-device operations in UHD apps
- TX streamer creation
#### gr-zeromq
- Multi-part messages reception
### Added
#### Project Scope
- Ninja (https://ninja-build.org) now a supported build system
#### gnuradio-runtime
- Python can now get `gr.WORK_CALLED_PRODUCE` and `gr.DONE`
#### gr-utils
- `gr_modtool`: Autocompletion, line editing
- `gr_modtool`: `copyrightholder` option
#### GRC
- "Create Duplicate"
- "Save a copy"
- BokehGUI
#### gr-blocks
- New `tag_share` block: take tags from one two input streams to one output stream
- `tag_gate`: tag filtering
- `file_source`: configurable `file_begin` stream tag
- `moving_average`: Vector mode (with element-wise MA)
- `plateau_detector`: threshold get/set
#### gr-digital
- `costas_loop_cc`: Optional loop variable outputs
- New `correlate_access_code_tag` block
- `glfsr` exposed through Python
#### gr-dtv
- 256QAM mode for ITU-T J.83B transmitter
#### gr-fec
- negative Polynomials in `cc_encoder`
#### gr-filter
- `symbol_sync_{cc|ff}`
#### gr-uhd
- `uhd_app.py`: selectable time/clock sources
- make `recv()` call's timeout parameterizable
- message-based RX tuning through sink, TX through source
### Changed
#### Project Scope
- VOLK version requirement: 1.4.0
- Minimal required SWIG version now 2.0.4
- GSL optional dependency
- Threw out completely unused `gr_??int` types
- Doxygen build no longer contains timestamps
- Doxygen build now reproducible
- Though factually before, now officially include ZeroMQ and Sphinx as optional dependencies in docs
#### gnuradio-runtime
- Python gateway allows variable number of ports
#### gr-utils
- `gr_modtool`: Block template now uses `numpy.float32` instead of float. 32bit float is actually the default GNU Radio type.e.
#### gr-blocks
- `vector_sink` can preallocate memory for desired amount of items
#### gr-digital
- `header_format_default` now sps>1-capable
- `correlate_acces_code` uses `GR_LOG`
#### gr-uhd
- `uhd_fft`: respect `lo_offset` in `set_bandwidth`
- `usrp_source`: freq tag now actually reflects last set frequency, even on multiple channels
#### gr-qtgui
- Labels: now with 98.121212388% improved floating point formatting
- Time Sink: Stem plot option exposed
### Deprecated
#### gnuradio-runtime
- `gr::sys_pri`
Reviewed by: martymac
n shebangs to use the specified PYTHON_CMD (stage-qa fix) [1]
Add missing html file in plist (check-orphans) [2]
Also we don't need -DENABLE_BAD_BOOST=ON since the ports version of boost is now at 1.65.
info about ENABLE_BAD_BOOST in GrBoost.cmake...
# Boost 1.52 disabled, see https://svn.boost.org/trac/boost/ticket/7669
# Similar problems with Boost 1.46 and 1.47.
stage-qa, check-orphans and poudriere testport all pass now with the attached patch.
[1]
====> Running Q/A tests (stage-qa)
Error: '/usr/local/bin/python2' is an invalid shebang you need USES=shebangfix for 'bin/volk_modtool'
Error: '/usr/local/bin/python2' is an invalid shebang you need USES=shebangfix for 'bin/gnuradio-companion'
Error: '/usr/local/bin/python2' is an invalid shebang you need USES=shebangfix for 'bin/polar_channel_construction'
.
.
[2]
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: %%PORTDOCS%%%%DOCSDIR%%/html/gr-trellis.html
PR: ports/225126
Submitted by: John Hein <z7dr6ut7gs@snkmail.com>
Ports using USE_PYTHON=distutils are now flavored. They will
automatically get flavors (py27, py34, py35, py36) depending on what
versions they support.
There is also a USE_PYTHON=flavors for ports that do not use distutils
but need FLAVORS to be set. A USE_PYTHON=noflavors can be set if
using distutils but flavors are not wanted.
A new USE_PYTHON=optsuffix that will add PYTHON_PKGNAMESUFFIX has been
added to cope with Python ports that did not have the Python
PKGNAMEPREFIX but are flavored.
USES=python now also exports a PY_FLAVOR variable that contains the
current python flavor. It can be used in dependency lines when the
port itself is not python flavored. For example, deskutils/calibre.
By default, all the flavors are generated. To only generate flavors
for the versions in PYTHON2_DEFAULT and PYTHON3_DEFAULT, define
BUILD_DEFAULT_PYTHON_FLAVORS in your make.conf.
In all the ports with Python dependencies, the *_DEPENDS entries MUST
end with the flavor so that the framework knows which to build/use.
This is done by appending '@${PY_FLAVOR}' after the origin (or
@${FLAVOR} if in a Python module with Python flavors, as the content
will be the same). For example:
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
PR: 223071
Reviewed by: portmgr, python
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D12464
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275
This release introduces some new features and fixes several bugs:
http://savannah.gnu.org/forum/forum.php?forum_id=8751
* update to 2.3 and take maintainership
* update math/py-gsl to 2.2.0 for gsl2 support
* update math/rubygem-rb-gsl to 2.1.0.2 for gsl2 support
PR: 218952
Exp-run by: antoine
Reviewed by: mat, rakuco
Approved by: rakuco (mentor)
Differential Revision: https://reviews.freebsd.org/D10522
lang/gcc which have moved from GCC 4.9.4 to GCC 5.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using using Mk/bsd.octave.mk which in turn has USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++14-lang,
c++11-lang, c++0x, c11, or gcc-c++11-lib.
PR: 216707
pyqt.mk provides USE_PYQT=<list> to depend on its components. Convert the ports
not yet using it to it.
Reviewed by: rakuco, mat
Approved by: rakuco (mentor)
Differential Revision: https://reviews.freebsd.org/D9261
Note temporary hack in CMakeLists.txt to fix build with -gsl
link_directories("/usr/lib" "${LOCALBASE}/lib")
This is from a missing -L somewhere in the swig generation code that
needs to be fixed.
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 <ArtemPisarenko@users.noreply.github.com>
* Ben Hilburn <ben.hilburn@ettus.com>
* Christopher Chavez <chrischavez@gmx.us>
* Johnathan Corgan <johnathan@corganlabs.com>
* Jonathan Brucker <jonathan.brucke@gmail.com>
* Nicholas Corgan <n.corgan@gmail.com>
* Nicolas Cuervo <nicolas.cuervo@ettus.com>
* Ron Economos <w6rz@comcast.net>
* Sebastian Koslowski <koslowski@kit.edu>
* Stephen Larew <stephen@slarew.net>
## 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.
Fixed build on 10.1 but in the process found a bogus pkg-plist fixed.
If DOCS was defined, the plist was wrong.
Also cleaned up a dependency
Fixed using https://cmake.org/cmake/help/v3.0/command/link_directories.html
This shouldn't be necessary:
"Note that this command is rarely necessary. Library locations returned by find_package() and find_library() are absolute paths. Pass these absolute library file paths directly to the target_link_libraries() command. CMake will ensure the linker finds them."
The directory path appears to be in /usr/local/libdata/pkgconfig/gsl.pc
so it would appear the swig handling code neglects to respect this.
I'll dig into this sometime later.
PR: ports/210444
Submitted by: rozhuk.im@gmail.com
lang/gcc which have moved from GCC 4.8.5 to GCC 4.9.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
In particular that is ports with USE_GCC=yes, USE_GCC=any, or one of
gcc-c++11-lib, openmp, nestedfct, c++11-lib as well as c++14-lang,
c++11-lang, c++0x, c11 requested via USES=compiler.
Remove unecessary diffs using @sample keyword in pkg-plist
Use uhd port instead of usrp port
Add missing dependancies
Fix wrongly used PLIST_SUB [1]
Fix build due to missing dependency [2]
Did my best to address libgcc stupidity for now [3]
Please read
http://lists.freebsd.org/pipermail/freebsd-toolchain/2016-August/002249.html
PR 208120
[1] PR ports/210095 fix by @takefu
[2] PR ports/210444 fix by @takefu
[3] PR ports/211889 fix by @db