3.24: 2022-04-22
NTRIP 2.0 now works. But still only plain HTML, not RTP, etc.
Remove ntrip option and NTRIP_ENABLE. Always build.
Remove passthrough option and PASSTHROUGH_ENABLE. Always build.
Remove nmea0183 option and NMEA0183_ENABLE. Always build.
Remove netfeed option and NETFEED_ENABLE. Always build.
gpsd will retry ntrip:// and tcp:// connections
cgps can expand to show more sats. Added --rtk option.
maidenhead() checks for input errors.
Better SHM logs.
PPS and TOFF JSON now include shm used, and real precision.
Add initial, untested, TSIPv1 support
split debug messages into different syslog() levels.
New ppscheck options, and can use /dev/ppsX devices.
First try at TSIPv1 protocol decodes.
Decode Quectel $PQVERNO for firmware version
Decode Skytrak PX1172RH_DS messages.
packaging changes: Clean up scons arg scheme, and ensure that scons is
always called with the same args (other than the action).
3.23: 2020-08-06
doc/*xml all moved into www/internals.adoc
Convert all DocBook (.xml) to AsciiDoctor (.adoc)
Remove all XSL remnants.
gpsplot: speedup, add new options.
driver_ubx.c: Add decode for UBX-NAV-STATUS
gps/ubx.py: Improve decode for UBX-NAV-STATUS
cgps: Add popup help, interactive options.
Reorganize and split the man pages.
Small updates for u-blox M8 and M10
Deprecated mtk3331 and ashtech build options. Use nmea0183 instead.
gpssnmp: Move from contrib/ to clients, add manpage
Add www/gpsd-client-example-code.adoc
Add gpsdebuginfo script and man page.
ubxtool: Add BeiDou, Galileo, GLONASS, QZSS, and partial SBAS subframe decodes
Max serial port speed raised to 921,600.
SUBFRAME JSON now includes new fields to support multiple constellations.
gpsd: Add some ADR and UDR message partial decodes.
ubxtool: Add some ADR and UDR message polls and decodes.
Remove COMPASS_ENABLE. Always compile attitude code.
contrib/webgps.py: use argparse, arguments -V, --version, --no-html-head.
Add readonly flag to DEVICE JSON.
Control messages to gpsd now return JSON, instead of, sometimes, OK or ERROR.
gpsfake uses "# Date: yyyy-mm-dd" to set initial time.
Don't compute wrong GPS rollover after 2021-10-23.
Bump libgps to version 29.
pkgsrc changes:
patches were applied upstream
3.19: 2019-07-01
Rearrange rawdata_t. Bump the API because gps_data_t changed.
Report sequence-ID fields in type 7 and 13 AIS messages.
Preliminary support for SiRFstar V
Improve error modeling.
Update pseudo NMEA to v3.0, with fractional time.
Improve cycle detection, mostly for NMEA.
Move epe from gps_data_t to be near its friends in gps_fix_t.
Preliminary u-blox 9 support.
Add qErr in gps_data_t to store PPS quantization error.
Add Android (AOSP) support
Improved multi gnss and multi signal support.
NMEA 4.10 multi gnss multi signal support.
The arguments to "ubxtool -p P" have been expanded and changed.
New options, -g, -x, -z, added to ubxtool for u-blox 9 support.
pkgsrc changes:
- adapt to scons
- patch upstream SConstruct to respect needed pkgsrc variables
- patch upstream's use of "#!/usr/bin/env python"
- other minor build adaptations
Upstream changes not in NEWS:
libgpsd (header, lib, pc, man page) is no longer installed. (This
was an internal interface.)
Upstream NEWS:
3.18.1: 2018-10-19 (Gary E. Miller <gem@rellim.com>)
Fix some installation issues.
A few minor updates to ubxtool and driver_ubx.
Add contrib/skyview2svg
3.18: 2018-10-02 (Gary E. Miller <gem@rellim.com>)
Add ECEF support to ievermore, italk,Skytraq, SiRF, U-blox drivers.
Add ECEF support to JSON, cgps and xgps.
Add GREIS (Javad) driver from Virgin Orbit.
Add CLI tools zerk and ubxtool to manage JAVAD and u-blox GPS.
Add gnssid:svid to satellite_t, cgps and xgps. PRN will die.
Add gnssid:svid to JSON, cgps and xgps.
Add stricter version checking (more to todo).
More and better regression tests.
Better Python dependency checking, at build time and runtime.
Fix several buffer issues.
New polar plots, and improved statistice, in gpsprof.
gpsd master/slave mode works, first time ever.
All isnan() changed to !isfinite(), fixing many bugs.
Client-side Python libraries may automatically reconnect
Too many other bug fixes and improvements to mention.
Over 1,000 commits from 46 different commiters.
3.17: 2017-09-07 (Eric S. Raymond <esr@snark.thyrsus.com>)
Repair support for non-NMEA devices requring active probing
(e.g. Garmin USB GPSes). Apply OS X build fixes. Fix a SiRF driver
bug that occasionally confused NTP. Support for Spectratime iSync
GRClok and LNRClok oscillators. gpxlogger can reconnect when
the GPS loses the fix. xgps and xgpsspeed moved to python-gi,
getting shut of the deprecated pygtk2 bindings. Default mode for
xgpsspeed is now the more interesting nautical display. gpsmon
includes the hostname with the device display. gpsprof now has
centimeter precision.
3.16: 2016-01-08 (Eric S. Raymond <esr@snark.thyrsus.com>)
Test rebuilds for mid-2015 leapsecond bump. Regression tests will
run even if "python" in Python 3. Build correctly on systems where
-ltinfo is split from -lncurses. Avoid some rare overflow conditions
in PPS code. Fix bugs in JSON sat-view parsing due to the JSON
parser stuffing ints into shorts. Various small fixes to AIS
interpretation. Prevent a memory leak in long-running gpsmon
instances. Fix Savannah bug #45270: serial driver does not work
properly on pipes. Fix Savannah bug #44648: GPSD won't build if
CCFLAGS contains options that are only compatible with the
cros1s-compiler. Fix Savannah bug #45342: SConstruct generates wrong
*.pc files. Fix Savannah bug #46495: gpsd_poll may crash due to
unitialized pointer (probably due to buggy FD_ISSET on host
system). Fix Savannah bug #46648: gpsd crashes and buffer overflow
is reported when terminated. Fix Savannah bug #46802: AIVDM to CSV
is broken in some weird cases. Fix Savannah bug #46804: JSON
satellite view parsing is somewhat broken.
3.15: 2015-06-03 (Eric S. Raymond <esr@snark.thyrsus.com>)
Fix a rare crash bug related to devices becoming inaccessible while timed out.
Accept NMEA 4.1 GSV sentences with the trailing signal-ID field.
Fixed incorrect decode of south latitudes in AIS Type 17 messages.
splint has been retired; this removes almost 2KLOC of annotations.
chrpath is no longer a build dependency. Corrected Beidou/QZNSS display
in the Python clients so the graphics don't look like SBAS.
3.14: 2015-03-14 (Eric S. Raymond <esr@snark.thyrsus.com>)
The Pi Day release, 3.14 on 3/14 2015 at 9:26. Longer timeouts on test clients.
Skyview support for the Beidou and QZSS constellations in the NMEA0183 driver.
ntpmon rename to ntpshmmon - it doesn't actually monitor NTP itself.
New HOWTO on the website: "Introduction to Time Service".
3.13: 2015-02-26 (Eric S. Raymond <esr@snark.thyrsus.com>)
compiler.h inclusion removed for gps.h so it's standalone for /usr/include.
TOFF JSON report gives the offset between GPS top of second and clock time.
A new ntpmon tool supports capturing clock samples from NTP SHM segments.
3.12: 2015-02-22 (Eric S. Raymond <esr@snark.thyrsus.com>)
The daemon's power utilization has been reduced by changing from
non-blocking to blocking I/O; this may be significant on mobile devices.
Better protection against false matches of Inland AIS messages; this
required a libgps version bump to 22 (as a side effect, per-device
footprint has decreased). PPS feature is no longer marked
experimental/unstable. Sentence tag fields have been dropped from
the JSON reports. GNSS and GLONASS SKY reports are now
merged. Addressed versions of AIS Type 25 and 26 are now
handled. The 'nmea' build option is now 'nmea0183'. New 'minimal'
option sets all boolean options not explicitly set on the build
command line to false. The 'limited_max_devices' option is now
'max_devices'; the 'limited_max_clients' option is now 'max_clients'
The previously deprecated 'libQgpsmm' option has been removed; use 'qt'.
A bug fix for error modeling when NMEA 0183 reports empty DOP
fields. On OS X, the "osx-pl203" driver has been explicitly listed
as unsupported. The last remnants of the old pre-JSON query protocol
have been removed from the client library.
3.11: 2014-07-23 (Eric S. Raymond <esr@snark.thyrsus.com>)
A bug that prevented track interpolation has been fixed.
We now get vertical error position and speed estimates from the
u-blox driver rather than having to interpolate them.
Some unusual AIS talker IDs (NMEA 4.0 station classes) are supported.
chrpath is no longer a dependency for building and testing, and
now defaults to 'no'. Full systemd support. Fixes for handling
large PPS offsets. Improved recovery from device flakeouts,
gpsmon argument parsing.
3.10: 2013-11-22 (Eric S. Raymond <esr@snark.thyrsus.com>)
AIS: Adds gps2udp, an AIS data relay, split24 option supports
passing through Type 24 halves; support for Inland AIS; "scaled" no
longer controls dumping of controlled-vocabulary fields; instead,
the're always dumped numerically and as text, with text in an
attribute name generated by appending "_text" to the name of the
base attribute. The packetizer's handling of write boundaries not
coinciding with packet boundaries is improved. Better support for
mode and speed switching in the UBX driver. PPS message now ships
nsec. PPS events are visible in gpsmon. Time-reporting fix to TSIP.
3.9: 2013-05-01 (Eric S. Raymond <esr@snark.thyrsus.com>)
Note to packagers: this is an urgent release that fixes a possible
DoS or security hole! Armor the AIS driver against an implausible
overrun attack. A (different) fix for our first malformed-packet
crash since about 2007. Minor improvements to the NMEA2000
driver. New FAQ entry on how to know WAAS/EGNOS is working.
New -u and -uu options enable usec timestamps on gpspipe output.
3.8: 2013-02-25 (Eric S. Raymond <esr@snark.thyrsus.com>)
Fix various minor errors in the AIVDM/AIVDO description. Repair the
xmlto support in the build system. Add two more regression
tests. Significant improvements to NMEA2000 support. Upgrade the PHP
client to v3 of the Google Maps API. Support for the Telit SL869
chipset. Added a nautical-style display to xgpsspeed. Minor
improvements to leapsecond.py.
3.7: 2012-07-02 (Eric S. Raymond <esr@snark.thyrsus.com>)
Snap release to get the midnight change in the default leap-second
constant out the door. Port tests now pass on all Debian supported
architectures, including the Sparc and s390 that were giving us
trouble before. Pre-2003 Delorme Earthmate works again.
3.6: 2012-05-23 (Eric S. Raymond <esr@snark.thyrsus.com>)
It's the Fernando Poo Day release. Code has zero detectible defects
under Coverity scanning and cppcheck 1.52; this is mainly a cleanup
release to get those minor fixes into the field. If a leap-second
warning is available from GPS subframe information it is passed to
ntpd. NMEA2000 is now supported via the Linux kernel CAN interface.
There's a chrpath=no config option for distribution makers, so
chrpath is no longer a build dependency; see build.txt for
explanation.
3.5: 2012-04-14 (Eric S. Raymond <esr@snark.thyrsus.com>)
Use pselect when it's available to cut down on wakeups and improve
signal handling. New {PPS} message exporting clock drift. The AIVDM
driver now handles up to 16 interleaved 24A and 24B pair-halves.
The NMEA driver interprets depth-sounder returns from SDDBT and
reports them as negative altitudes. The pps-pin option is gone, the
PPS code now just accepts any handshake pin. A bug that sometimes
caused RTCM packets to be dropped rather than relayed is fixed.
3.4: 2012-01-12 (Eric S. Raymond <esr@snark.thyrsus.com>)
Don't barf when chrpath is not available, fall back to static linking;
helps people not running Linux.
3.3: 2011-10-29 (Eric S. Raymond <esr@snark.thyrsus.com>)
Improvements to build and release-procedure documentation. Make
sirf=no build work again. Main reason for this release is to make
chrpath a mandatory build dependency and explain why in the build
documentation.
3.2: 2011-10-25 (Eric S. Raymond <esr@snark.thyrsus.com>)
In the build recipe, (1) set pkgconfig properly for 64-bit Fedora
systems, (2) clean up various derived files including *.pyc on scons
-c, (3) add an option to disable stripping of binaries (strip=no),
(4) for embedded targets, add an option to disable building Python
support (python=no), (5) make the help for gpsd_group and gpsd_user
a little clearer, (6) add a force_global option to build gpsd to
listen to all addresses (rather than just loopback). The packet
sniffer now accepts NMEA packets with the ECDIS packet leader 'EC'.
SBAS satellites are now properly use-flagged in SiRF and UBX
skyviews. The -G option now works under IPv6. Cross-build is now
officially supported and instructions included. gpsprof works again
and does whole-cycle profiling. gpsd.php has Open Street Map
support. The pp-on-cts option is replaced by a pps_pin option that
lets you specify the pin; the default is still DCD. New supported
device; the Jackson Labs Fury. The chrpath utility has become a
build prerequisite.
3.1: 2011-07-28 (Eric S. Raymond <esr@snark.thyrsus.com>)
The Irene release, rocking you like a hurricane and brought to you
from the storm shelter in my basement. This is a snap release mainly
to get some scons recipe cleanups out the door. Parallelized builds
now work. Small but fatal problems with reconfigure=no, netfeed=no
and sock_export=no builds have been fixed. Build recipe ported for
Fedora, Darwin, FreeBSD and OpenBSD. libgps now brings -lm with it
on systems with implicit linking. One old bug fixed (code was
previously present but broken): Under Linux, gpsd will refrain from
opening serial or USB devices that another process has open,
avoiding potential problems with class 0xFF USB devices opened by
other programs. One new bug fix: we now use an atof()
implementation that ignores locale, avoiding problems where decimal
point is a comma. One new feature: Change -N semantics so it only
suppresses backgrounding; privileges are now dropped as in normal
background operation.
3.0: 2011-07-19 (Eric S. Raymond <esr@snark.thyrsus.com>)
POLL subobject name changes: fixes -> tpv, skyview -> sky.
Fix a timestamp-clobbering bug in the C library revealed by an
obscure car-nav device, the MyGuide 3100. The DEVICE 'activated'
attribute becomes an ISO8601 string; the client libraries will
still backward-compatibly read a float value. gps_unpack() is
now a documented part of the library API. There is now a
shared-memory export from the daemon that can be accessed through
the C and C++ client libraries. xgps and cgps may now display
the Maidenhead grid locator for current lat/lon. xgps displays
GST noise statistics if they are available. Codebase now has
an scons build recipe. Direct support for activation of gpsd from
Mac OS/X systemd. gpsdecode can now filter reports by RTCM2, RTCM3,
or AIS message type. NMEA HEHDT is implemented. Remote gpsd instances
can now be used as data sources via a gpsd:// URL. There is a client
for live-feeding GPSD data to Google Earth. The hotplug sequence no
longer requires Python.
* Tue Jul 13 2010 Eric S. Raymond <esr@snark.thyrsus.com> - 2.95
The autonomous robot submarine total world domination release!
Rationalize clearing and generation of DOPs, this makes epx/epy much
more generally available. Fixed the test productions for the udev
magic and added a troubleshooting note in INSTALL. cgps now displays
epx/epy rather than eph. Speed is now always reported if our last
two fixes were good, even if the GPS didn't compute it. Reading
packets from UDP datagrams by specifying a listening address and
port is now supported, and the regression-test driver cam now be
told to force this with -u; this enables regression testing in
chroot jails where access to ptys is locked out. AIS code now
interprets message type 6 and 8 application IDs correctly as a
Designated Area Code and Functional ID pair. gpspipe has a new -T
option for setting the timestamp format. xgpsspeed is completely
rewritten in Python, eliminating some dependencies on ancient X
libraries. We now ship a Qt binding for the client library. Note
a GCC 4.2.1 optimizer bug. gpsdcode now uses | as a field separator
in -c mode, as string fields can contain commas. Corrected error
or reporting of AIS rate-of-turn fields.
* Fri Dec 4 2009 Eric S. Raymond <esr@snark.thyrsus.com> - 2.90
GPSD-NG, the new JSON-based command protocol, is now deployed; as a
consequence, AIS is now fully supported in both daemon and client.
Detection of end of a fix-reporting cycle is now reliable;
accordingly data is accumulated from cycle start and the "J"
(nojitter) opoption on both server and client side is gone. We have
abandoned the gpsflash subproject since it has become apparent that
we can't do it without more vendor cooperation than we're likely to
get. Increase major version of shared library due to significant API
change. Added new driver for Motorola Oncore receivers, with help
from Håkan Johansson. gpsfake can now accept multiple logfiles,
interleaving test sentences from each. gpsd now accepts error
estimates from the NMEA $GPGBS sentence.
localhost) were merged upstream.
* Tue Feb 10 Eric S. Raymond <esr@snark.thyrsus.com> - 2.38
Regression test load for RoyalTek RGM3800 and Blumax GPS-009 added.
Scaling on E error-estimate fields fixed to match O. Listen on
localhost only by default to avoid security problems; this can be
overridden with the -G command-line option. The packet-state machine
can now recognize RTCM3 packets, though support is not yet complete.
Added support for ublox5 and mkt-3301 devices. Add a wrapper around
gpsd_hexdump to save CPU. Lots of little fixes to various packet
parsers. Always keep the device open: "-n" is not optional any more.
xgpsspeed no longer depends on Motif. gpsctl can now ship arbitrary
payloads to a device. It's possible to send binary through the
control channel with the new "&" command. Experimental new driver
for Novatel SuperStarII. The 'g' mode switch command now requires,
and returns, 'rtcm104v2' rather than 'rtcm104'; this is design forward
for when RTCM104v2 is fully working.
position is only provided on on-machine clients. Previously, gpsd
listened on INADDR_ANY, providing position of the computer to any host
that asked. (The fix is in upstream bugzilla, with link in
patches/patch-ac.)
- Integrated Garmin Simple Text Protocol driver from Peter Slansky.
Minor fixes in error modeling and a better NaN guard stabilize the
Trimble regression tests. Remove the wired-in NTP time offset from the
NMEA driver, this could only have worked by accident and should be
set in ntpd.conf. Integrated Ashtech driver from Chris Kuethe.
- Navcom driver merged. Removed -d -f and -p options of gpsd; these
have been undocumented for a while. Make gpsd play well with pkgconfig.
Incorrect computation of VDOP when GPSes didn't supply it has been fixed.
The xgps code has been revamped and now has a much nicer interface.
Add -b (no-configuration) option as a sadly clumsy workaround for some
problems with Bluetooth receivers. Added tests for Haicom-305N and Pharos
360; separated out the tests for the unstable Trimble drivers.
32-vs-64-bit problems in the regression tests have been solved.
- Fix for byte-swapping of Zodiac control messages on big-endian hardware.
Disable iTalk by default and note that it needs to be tested. Command line
arguments can now be DGPSIP or NTRIP URLs; -d is deprecated. Added udev
rules. Address excessive processor and memory utilization on SBCs; it's
now possible to configure compile-time limits on the number of devices
and client sessions. Eliminate use of fuser(1) in gpsfake. Get gpsd
working with EarthMates again, this had been broken since 2.15. Massive
string safety audit and OpenBSD port by Chris Kuethe. J command added.
The gpsctl and gpscat tools and the gpsd.phps script were added. Switched
to lesstif from openmotif. Better autodetection of DLE-led packet
protocols (notably TSIP and Garmin binary) and of SiRFStar I and III
devices. Fixed buggy parsing and generation of PGRME.
this is a major upgrade (from 1.07), please check the homepage for
details
(I've played with 2.30 for a while and it worked well.)
closes PR pkg/32872 by Evan Hall; thanks for the ncurses hint, wouldn't
have found it myself