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.
3.22: 2020-01-08
Added client/gpscsv to convert gpsd JSON to csv.
Added client/gpsplot to dynamically plot gpsd JSON.
Added client/gpssubframe to decode gpsd SUBFRAME JSON.
Added nSat and uSat to SKY JSON. Old clients can not read new SKY.
Move stuff from source root into clients/, include/, gpsmon/ and libgps/.
Move stuff from source root into gpsd/.
Move class ubx out of ubxtool and into gps/ubx.py.
Build all targets in gpsd-$VERSION/, not in tree.
NMEA 4.11 support for $GI (IRNSS) and $GZ (QZSS).
Upstream's scons builds and links during the install phase, and
previously we did not pass MAKE_ENV in the install phase.
The other bug is that pkgsrc doesn't have scons support, so this is
all ad hoc.
The final bug is scons, which has not yet risen to reinvent autoconf.
(Probably this fixes RELRO.)
Upstream NEWS:
3.21: 2020-08-04
Create python programs from .in files to allow macro substitution.
Finally clean .sconsign*.dblite with "scons -c"
Remove revision.h. Move REVISION into gpsd_config.h
Change asciidoc to asciidoctor, and revise documents to match.
library version bumped to 27
Add leap_seconds to gps_data_t
Add/change many rtcm2 structs in gps.h
Add/change many rtcm3 structs in gps.h
Maindenhead now 8 chars.
Add icondir and sharedir install options
Install basic doc in sharedir
Move gps_data_t->status to gps_fix_t.status for better fix merging
The gps python module is now Pure Python + FFI. FFI only for packet.py
User should manually delete any old packet*so.
Add wspeedt, wspeedr, wanglem, wanglet, wangler to gps_fix_t
Add "-p CONFIG", "-p STATUS", "-t" and "-tt" options to ubxtool.
Add python_shebang option to scons config.
gpsrinex has long options and many new options.
Added long options to gpsd.
Remove unused FORCE_GLOBAL_ENABLE
Remove config option reconfigure, replace with -p, --passive runtime option.
Remove config option controlsend (RECONFIGURE_ENABLE)
Add config option rundir=XX. Default set to /run, or /var/run as required.
Fixes for Python 2.6 up to 3.9.
3.20: 2019-12-31
Change README into an asciidoc file and publish HTML from it
Add NED and geoid_sep to gps_fix_t and TPV JSON.
Add "-e NED" to ubxtool to enable NED messages.
gpsdata.separation replaced by gpsdata.fix.geoid_sep.
Remove nofloats build option.
TPV JSON "alt" is now fixed at WGS84. Probably.
xgps now uses XGPSOPTS environment variable.
add health variable to satellite_t
change satellite_t elevation and azimuth to double
satellite_t elevation, azimuth, and ss use NAN for unknown value.
add altMSL, altHAE, and depth, to gps_fix_t
altitude in gps_fix_t is deprecated and undefined
wgs84_separation() now return EGM2008 computed from 5x5 degree base data.
The best results are close to cm, the worst off up to 12m.
Move mag_var from gps_device_t to magnetic_var gps_data_t.
Added mag_var() to interpolate magnetic variation (deviation) from a table.
Remove true2magnetic() as mag_var() improves on it.
Remove TIMEHINT_ENABLE. It only worked when enabled.
Remove NTP_ENABLE and NTPSHM_ENABLE. It only worked when enabled.
Remove PPS_ENABLE and TIMING_ENABLE.
Add dgps_age and dgps_station to gps_fix_t
Convert all timestamp_t to timespec_t.
Remove FIXED_PORT_SPEED and FIXED_STOP_BITS build options.
Add -s [speed] and -f [framing] runtime options to gpsd.
A working CC and termios.h are mandatory.
use the current leap second to determine the current GPS epoch.
leapfetch.py, leapseconds.cache, timebase.h and leapfetch option gone.
See also change histories in gps.h and gpsd.h
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.
The basic issue is that gpsd does not build with NetBSD curses because
it uses syncok. Previously, I set CURSES_DEFAULT, which is incorrect
because it is a user-settable variable.
Include syncok in USE_CURSES (which doesn't has any effect because it
isn't yet supported in curses.builtin.mk). Also include getsyx, which
gpsd doesn't use, but which will prevent NetBSD curses from being
selected. The getsyx line can be removed when there is syncok
support.
Also restore FAKE_NCURSES, because gpsd doesn't look for curses, only
ncurses (not yet filed upstream).
Thanks to Joerg for pointing out my error and to Roy for the specific
fix suggestion.
The last commit used the curses framework, and allowed NetBSD base
system curses to be used. However, several programs in gpsd use
syncok, which NetBSD 7's curses doesn't have. Resolve this by asking
for ncurses.
One mismatched digest found in geography/libmemphis02:
# package libmemphis02
recorded SHA1 (memphis-0.2.3.tar.gz) = dbc2f61e49b996dc9ca91df0de9a08eb7adbfa9b
calculated SHA1 (memphis-0.2.3.tar.gz) = 85993bce12c3616fcf6e7682a70b9605883edec2
No changes were made to the libmemphis02 distinfo file
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Add note about why it's not updated (scons).
(Thanks to pettai@ for pointing out the issues.)
CVS: ----------------------------------------------------------------------
CVS: CVSROOT cvs.NetBSD.org:/cvsroot
CVS: please use "PR category/123" to have the commitmsg appended to PR 123
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
* Mon Mar 21 2011 Eric S. Raymond <esr@snark.thyrsus.com> - 2.96~dev
Bumped maximum channel count to 32 to accommodate GPS+GLONASS devices.
API version bumped to 5, redesign finished (changes are documented
in the Client HOWTO). cgps now handles resize signals. Code can now
link with uClibc for embedded use. Various bugs in the C++ binding
have been fixed. gpxlogger can now daemonize and write to a specified
log file. A gpsd client can now set any locale it likes, and JSON
will still be parsed using the C locale matching the daemon's. Clients
are no longer required to define a gpsd_report() hook. gpsd no longer
emits probe strings to unidentified USB devices at startup.
JSON timestamps in TPV and SKY are now ISO8601 rather than seconds since
the Unix epoch; the library handles the older style backward-compatibly.
GPGST sentences are now parsed for noise statistics when a device emits them.
AIS and RTCM2 JSON dumps have device fields. JSON reports now include 50bps
subframe data if the device allows access to it. gpsdecode can now dump NMEA
GPS binary, and subframe data to JSON. The RTCM2 code now understands and
analyzes RTCM2.3 messages 13, 14, and 31, and has been checked against another
analyzer. The ancient Sager dump format for RTCM2 is abolished in favor of
a JSON profile.
* 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.