* Sat 21 Apr 2012 Eric S. Raymond If a leap-second warning is available from GPS subframe information it is passed to ntpd. * Sat 14 Apr 2012 Eric S. Raymond - 3.5 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. * Thu 12 Jan 2012 Eric S. Raymond - 3.4 Don't barf when chrpath is not available, fall back to static linking; helps people not running Linux. * Sat Oct 29 2011 Eric S. Raymond - 3.3 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 depedency and explain why in the build documentation. * Wed Oct 25 2011 Eric S. Raymond - 3.2 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. * Sun Aug 28 2011 Eric S. Raymond - 3.1 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. * Fri Aug 19 2011 Eric S. Raymond - 3.0 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. * Mon Mar 21 2011 Eric S. Raymond - 2.96 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 - 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 in reporting of AIS rate-of-turn fields. * Tue Apr 20 2010 Eric S. Raymond - 2.94 Error-checking in the 50bps subframe code has been greatly improved. The Garmin GPS driver can now use libusb, if it is present, to do device discovery. The libgps library has been split apart; the service functions used by the daemon now live in libgpsd. This will shave some code volume from GPSD client applications. A packaging error that resulted in xgps not being shipped in 2.93 has been corrected. We now have stronger checking for valid ephemeris before extracting the leap-second offset; they should prevent many cases where gpsd might previously have used an invalid leap-second offset. * Fri Apr 16 2010 Eric S. Raymond - 2.93 Support for JSON dumping and parsing of AIS message types 25 and 26, not yet observed in the wild on AISHub. Fix Debian bug #569703. by removing non-streaming mode from the Python exerciser. Fix Debian bug #572900 by unsetting the appropriate in-use flag in the device array. Change the libgps default from old protocol to JSON. Add a close() method to the C++ binding. Try to recover better from sporadic cases of false matches to Trimble packet format from a SiRF binary datastream. gps_poll() now returns -1 with errno not set when the gpsd socket closes. TPV now refrains from reporting fields the fix quality won't support. gpsmon option for listing device types is now -L to -l can be used to enable logging (to stay consistent with the l command). There is new FAQ material on improving fix and time reference accuracy. New sections have been added to NMEA.txt on error status indications and satellite IDs. New POLL command brings back polling-mode operation. A Client-HOWTO has been added to the documentation. gpsd no longer eats CPU when a device is unexpectedly unplugged. Support for the TNT revolution is back (run mode only). There is now a gpsdfake diagnostic tool that fakes being gpsd shipping arbitrary specified data to clients. * Wed Mar 3 2010 Eric S. Raymond - 2.92 Fix a packaging error. The new Python library module was inadvertently omitted from the 2.91 tarball. Also, improve the json import test slightly. * Mon Mar 1 2010 Eric S. Raymond - 2.91 We have support for NMEA GLONASS sentences, and a regression test. Clients now get a DEVICE notification on every driver switch. It is possible to specify a TCP/IP AIS feed such as AISHub as a data source. Serious bitrot in the NTRIP support has been fixed - it was probably nonfunctional for several releases before this. Fixed buggy display of satellite-used flags in cgps. xgps is replaced by a rewrite in Python that uses pygtk, eliminating a dependency on Motif; also, it now displays AIS information. Uniform treatment of display-unit defaulting and -u in xgps, cgps, and lcdgps. Support for AIS message types 25 and 26. Support for IPv6. A numeric instability in the earth_distance() function affecting track error modeling has been fixed. Old protocol has been removed from the daemon; the library still speaks it. * Fri Dec 4 2009 Eric S. Raymond - 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) option 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. * Wed Mar 18 2009 Eric S. Raymond - 2.39 Fixed potential core dump in C client handling of "K" responses. Made device hotplugging work again; had been broken by changes in udev. Introduced major and minor API version symbols into the public interfaces. The sirfmon utility is gone, replaced by gpsmon which does the same job for multiple GPS types. Fixed a two-year old error in NMEA parsing that nobody noticed because its only effect was to trash VDOP values from GSA sentences, and gpsd computes those with an internal error model when they look wonky. cgpxlogger has been merged into gpxlogger. Speed-setting commands now allow parity and stop-bit setting if the GPS chipset and adaptor can support it. Specfile and other packaging paraphenalia now live in a packaging subdirectory. rtcmdecode becomes gpsdecode and can now de-armor and dump AIDVM packets. The client library now works correctly in locales where the decimal separator is not a period. * Tue Feb 10 2009 Eric S. Raymond - 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 mtk-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 RTCM104v3 is fully working. * Sun Feb 17 2008 Chris Kuethe - 2.37 The C++ bindings, Garmin USB support, and multiple instances of ntp pps thread starting were fixed. Handling of odd PPS signals was improved. The eye candy in the PHP visualizers was fixed. * Tue Jan 1 2008 Eric S. Raymond - 2.36 Urgent fix to leap-day calculation affecting dates from today to 28 Feb on generic NMEA GPSes, Zodiacs, and SirFs emitting message 0x62. 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. * Mon Dec 10 2007 Eric S. Raymond - 2.35-1 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. * Thu Dec 14 2006 Eric S. Raymond - 2.34-1 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. * Fri Jun 9 2006 Eric S. Raymond - 2.33-1 Fix bad unit conversion in V output. Clean up some man-page messes. Fixed buggy libgps parsing of multiple responses. It's now possible to lock gpsd to a fixed speed at compile time for embedded use. Added NTRIP support, thanks to Ville Nuorvala. O command now ships an explicit mode field. * Sun Mar 12 2006 Eric S. Raymond - 2.32-1 Cleanup of the xgps layout, and minor memory-leak fixes for xgps. Fix to cope with Antares uBlox by Andreas Stricker. Minor fix to libgps cgpxlogger. Merge cgpxlogger and gpxlogger documentation onto the xgps(1) manual page and rename it gps(1). * Fri Feb 17 2006 Eric S. Raymond - 2.31-1 Now builds and runs under Cygwin. Correct the speed units in synthetic NMEA. Slightly better time handling under NMEA. Daemon now builds with all but NMEA disabled. Update the leap-second offset. cgpxlogger introduced. Upgrade gpxlogger to DBUS 0.60 conformance. Jason von Nieda's patch may fix the chronic TSIP driver problems. * Wed Sep 14 2005 Eric S. Raymond - 2.30-1 Prevent core dump on -d option. The .log extension is no longer required for test loads. cgps and xgps now have configurable latitude/longitude formats via the -l option. Introduced new 'g' command that allows clients to specify whether they want GPS or RTCM104 information. * Fri Aug 19 2005 Eric S. Raymond - 2.29-1 Added Sony CXD2951 support, untested. All error estimates are now nailed to 95% confidence interval. Added rtcmdecode and its documentation; also, gpsd can now monitor serial devices emitting RTCM104 and display differential-GPS data in a readable format. Added dangerous alpha version of gpsflash. Work around a nasty bug in SiRFStar III firmware version < 3.1.1. Added support for True North Technologies Revolution 2X Digital compass. Added the gpxlogger client for systems with DBUS support and the gpspipe and cgps clients for general use. * Wed Jul 6 2005 Eric S. Raymond - 2.28-1 The 2.27 source tarball somehow got truncated on upload. Due to procedural mechanics at Berlios, shipping a new release seems to be the least painful way to recover. This release is identical to 2.27 except the roadmap stuff has been added to TODO. * Wed Jul 06 2005 Eric S. Raymond - 2.27 Arrange for the daemon to remove its pid file on exit. Fix some buffering problems with the Python side of the hotplug interface. gpsfake can now run sessions under a monitor like Valgrind. Most of the gpsfake logic now lives in a module that can be used to write other test loads; its progress baton is now optional. Fixed some minor bugs found by valgrind audit, including (1) a slow memory leak, (2) a possible but unconfirmed file-descriptor leak, and (3) a subtle error in the channel-assignment logic that only showed up with multiple sessions active. In fact, the daemon code no longer uses dynamic-memory allocation at all. Also, the code no longer relies on FIONREAD working. The track error field in the O response is now computed. The project website has some new eye candy. Client connections now time out when the mode is neither raw nor watcher. Fixed a core-dump that could happen if C, B or I commands were issued at odd times. * Wed Jun 22 2005 Eric S. Raymond - 2.26 Time DOP and total DOP are now passed on from GPSes that report them. Ensure longitude has a leading zero when <100, for compatibility with gpsdrive. Synchronous and thread hooks are now separate in the client library. Packet-sniffing on a new device no longer holds up incoming data on already-connected ones. There is now a super-raw mode (R=2) that dumps a hex-encoding of every binary packet received to the client; sirfmon uses it to operate through the daemon if one is running. Support for Trimble TSIP GPSes merged. gpsfake now works with SiRF and Zodiac logs. Python library supports thread callbacks. New -p option of gpsfake supports regression testing of the daemon, and there is a test suite included with the distribution. PPS support is turned off, as there is some pthreads problem that sometimes kills the daemon on pthreads exit. Correct off-by-one error in GPZDA processing. The code has been audited and cleaned with splint (www.splint.org). * Sat May 21 2005 Eric S. Raymond - 2.25-1 Various signedness and scaling fixes and an OpenBSD port patch for the Zodiac driver. Command-line arguments to gpsd are now treated as a default device list; -f is still supported but deprecated. sirfmon now tries not changing the line speed first, so it syncs up much faster. Prevent a potential buffer overrun in the client library. PPS-thread support is now on by default. Lots of documentation improvements. D-BUS broadcast support by Amaury Jacquot. Added Alfredo Pironti's thread-callback and C++ support. gpsd no longer uses the system clock for anything, so it can be used to set that clock. * Tue May 17 2005 Eric S. Raymond - 2.24-1 Crazy-speed bug is finally fixed. Autobauding now starts with the current speed of the device, not the stored gpsd speed; this means hunting only takes place when device and GPS speed aren't matched. xgpsspeed unit-conversion bug introduced in 2.22 is fixed. Satellite display now really shows 12 channels, not just 11. Major improvements in ntp notifications. * Wed May 4 2005 Eric S. Raymond - 2.23-1 For better security, the daemon now drops root privileges after startup. gpsd-clients is now a separate RPM; this is helpful on lean systems that don't run X. The O command now reports speeds in meters per second rather than knots, client code has been adjusted so there is no user-visible change. We now compute the missing components of DOP when using SiRF chips. /dev/gps is no longer special; there is no default GPS device unless you specify one. The intermittent processor-hogging problem introduced by the control-channel change in 2.21 has been solved. * Mon Apr 25 2005 Eric S. Raymond - 2.22-1 SiRF-binary driver can now get leap-second corrections from subframe data. Device add/delete commands now send back OK or ERROR. Error-modeling corrections from the SiRF folks. Higher precision in position reports. * Tue Apr 12 2005 Eric S. Raymond - 2.21-1 Add tag and timestamp to Y response. Use computed geoid separation as SiRF packet 42 is flaky. Security fix: hotplug scripts now do device add/removes through a separate local control channel. True multi-device support is in place. When in watcher mode, device switches are announced. * Thu Mar 31 2005 Eric S. Raymond - 2.20-1 Rob Janssen's patches to fix timezone issues and improve cooperation with NTP. License changed to BSD so linking to libgps won't make people nervous. gpsprobe and gpsd.py are obsolete and have been removed, the autoprobe and profiling capabilities in the daemon more than replace them. gpsprof now ships self-contained GNUPLOT scripts to stdout, so they can be saved and redisplayed. Zodiac sort of works again, but occasionally spins madly during autobauding. * Sat Mar 26 2005 Eric S. Raymond - 2.19-1 Fix brown-paper-bag bug with NMEA parsing. Set SiRF GPSes to use SBAS. sirfmon now displays SBAS parameters, and is included in the installed programs. Add to FAQ a fix for spurious high speeds reported in XTrac mode. We now interpret GPZDA. We no longer fudge a missing ddmmyy in NMEA timestamps from the system clock, so replay will work better. * Wed Mar 23 2005 Eric S. Raymond - 2.18-1 First cut at cooperating with NTP. Major library restructuring; a fix is now a data structure of its own, and per-field timestamps are gone. Use new 'o' command for watcher mode. Compute some estimated error bounds. * Wed Mar 16 2005 Eric S. Raymond - 2.17 Fix packet-engine problem that made disconnect/reconnect unreliable (important!). Fix bonehead error in interpretation of PGRME. We don't use O_SYNC (it turned out not to be reliable) so remove it to make life easier under Mac OS X. Allow gpsfake to accept subsecond cycle times. Add a FAQ to the HTML documentation. gps_poll() now handles multi-line responses. Add N command for switching driver modes. * Fri Mar 11 2005 Eric S. Raymond - 2.16-1 New F command allows changing the GPS device after startup time. Hotplug scripts to go with it are now installed by the RPM. The Garmin probe is working. The -T and -s options are gone. We have achieved zero configuration! * Wed Mar 02 2005 Eric S. Raymond - 2.15-1 A new packet engine autobauds much more quickly, and now iterates over both 1 and 2 stopbits. Explicit support for FV18 (the -T f option) is gone; instead, gpsd syncs with any 7N2 device and always ships a suitable init string. New E command, supporting the Garmin position-error sentence or computing these numbers from DOP and an error model. New U command reports climb/sink from GPSes that report vertical velocity. There is a prototype driver for SiRF-binary GPses, invoked automatically when SiRF packets present themselves on the wire after device open. * Fri Feb 25 2005 Eric S. Raymond - 2.14-1 Pass zero magnetic variation in generated NMEA from binary GPSes correctly. Use O_SYNC rather than timeouts to guarantee that baud-rate change strings get to the GPS before changing the line parameters. Introduced I command. Spatial scattergram plotting moved from gpsprobe to gpsprof. * Mon Feb 21 2005 Eric S. Raymond - 2.13-1 Correct a bug in binary-protocol dumping (applies to Zodiac and Garmin only). Gary Miller's patch to deal gracefully with GPSes like the Magellan EC10X that send only GPRMC and never GPGGA or GPGSA, and thus never set mode or status fields. Fixed buggy handling of units options in xgps and xgpsspeed. Bumped library major version, since seen_sentences is now exposed and drivers have more capabilities. Stricter NMEA buffer validation. Withdrew the change that always passed up a timestamp; on SiRF receivers, the year part is garbage when the PVT fields are garbage. Can now recognize SiRF GPSes. Experimental baud-switching support for Zodiac. * Tue Feb 15 2005 Eric S. Raymond - 2.12-1 Fixed core-dump bug in processing of the GLL variant that does not include an FAA Mode Indicator. When using the NMEA driver, gpsd now hunts for a baud rate rather than requiring a fixed one to be set. A new 'B' command returns the RS232 parameters, and a new 'C' command returns the update cycle time. Added gpsfake test harness. Alpha driver for Garmin binary protocol added, requires Linux garmin_usb kernel driver. The daemon now always passes up a timestamp for every sentence that has one, even if the PVT fields aren't valid. * Thu Feb 10 2005 Eric S. Raymond - 2.11-1 Added gpsprof and the capability to generate GPS latency profiles. gpsprobe now hunts through plausible baud rates when looking for NMEA data from a GPS. The -b (baudrate) option fixes a speed, disabling the baud-matching logic. Also, gpsprobe can now recognize SiRF protocol, though not speak it. Fixed a math domain error in gps.EarthDistance due to numeric blowup on points very close together, and another in gps.MeterOffset() that was screwing up gpsprobe plots. * Tue Feb 1 2005 Eric S. Raymond - 2.10 Add -N option to explicitly foreground the daemon. Fixed a bug that was causing gpsd to keep reopening the GPS device after leaving raw or watcher mode. Fixed Gary Miller's core-dump bug. * Thu Jan 27 2005 Eric S. Raymond - 2.9-1 Python files restored to RPM. * Thu Jan 27 2005 Eric S. Raymond - 2.8-1 Embarrassing typo fix in gps.py. Avoid buffer overrun in xgps.c. Plug Debian security bug 292347, CVE number CAN-2004-1388. This version issued on an emergency basis without Python libraries, which have packaging problems due to the 2.3/2.4 transition. * Fri Jan 14 2005 Eric S. Raymond - 2.7-1 More compiler-warning cleanups. gps client name changed to xgps. Added --speedunits option to xgpsspeed, --speedunits and --altunits options to xgps. Improved GPGSV parsing so it copes gracefully if we start in the middle of a sequence. Merged Petter Reinholdtsen's fix for GPGSA lists with holes. In xgps, satellites used in the last fix are now dotted in the middle. New -P option to create pidfile. Audited for potential buffer overruns, found and fixed two. * Sat Jan 01 2005 Eric S. Raymond - 2.6-1 Petter Reinholdtsen's fix for gps.py buffering. Fix syntax errors in udev scriptlets. Clean up after GCC warning messages. Drop use of vsprintf, so we get a link-time error on systems that might produce buffer overruns (all modern Unixes support vsnsprintf which is safe). * Thu Dec 23 2004 Eric S. Raymond - 2.5.1 Use gmtime instead of localtime when guessing the day or year of a date; this avoids jitter in the day after 19:00 GMT. Added -v option to dump version and exit. Commented out a crash-causing debug line in gps.py. * Thu Dec 9 2004 Eric S. Raymond - 2.4-1 Minor bugs in gpsd.py fixed. M now returns 0 status if GPGSA not yet seen; this change also fixes a bug where gpsd claimed it was confused if GPGSA had not been seen and status was set. RPM will now install a udevd rule if the host system uses it. Don't set the online flag on activate. HP port changes and -Wall cleanup. James Cameron's fixes to clean up gps.c and use X timeouts rather than alarms. * Mon Oct 25 2004 Eric S. Raymond - 2.3-1 Documentation and comment fixes. Last two globals removed from low-level interface; library should now be fully re-entrant. Mac OS X port fixes. Q command fix from Robin L Darroch . * Mon Oct 18 2004 Eric S. Raymond - 2.2-1 Documentation improvements. BSD port fixes. Bug fix: speed timestamp wasn't initialized properly in libgps. Device is now an optional command-line argument of gpsprobe, in line with the clients. gpsd.py now should handle fvwm devices correctly. Values in gps data panel are now labeled with units. Attempted fix for 2.1 bug of DTR not being pulled low on exit. * Thu Sep 30 2004 Eric S. Raymond - 2.1-1 Various internal cleanups, including fossil removal in the configuration machinery. FV-18, Tripmate, Earthmate and are now enabled but can be disable with --disable-$NAME at configure time. When you call configure with --disable-shared, libgps is linked statically to the binaries (native libs are still linked shared). Fixed buggy handling of -p option in gps.c and xgpsspeed.c; it's now an optional command-line argument. * Thu Sep 16 2004 Eric S. Raymond - 2.0-1 Packaging fixes for 2.0 release. * Wed Sep 8 2004 Eric S. Raymond - 1.98-1 Only do one getdtablesize() call, otherwise we do several getrlimits() each poll cycle. TripMate is working. gpsprobe now deduces NMEA version. Zodiac Earthmate seems to work. * Wed Sep 08 2004 Eric S. Raymond - 1.97-1 Removed PRWIZCH support (it still passes through in raw mode). Build Motif-dependent programs conditionally. Added gpsprobe. Fixed a brown-paper-bag-bug in 1.96 RPM packaging. * Tue Aug 31 2004 Eric S. Raymond - 1.96-1 Implemented non-blocking writes to clients, so a stalled client cannot stall gpsd. Fixed a nasty array-overrun bug. Timestamps are now in ISO8601 format, with sub-second precision if the GPS delivers that. First cuts at Python interfaces included. libgps.a interface now bundles session fd into an allocated session block. Automake-based build machinery from Jens Oberender; RPM now installs shared libraries. FV18 driver added. Offline timer in GPS. * Wed Aug 25 2004 Eric S. Raymond - 1.95-1 Fixed broken 'make dist', missing display.c and Tachometer.c are in there now. * Tue Aug 24 2004 Eric S. Raymond - 1.94-1 Fix embarrassing bug -- watcher mode did not work for more than one client at a time. Y command now carries information about which satellites were used in the last fix. New timeout mechanism, no longer dependent on FIONREAD. * Mon Aug 23 2004 Eric S. Raymond - 1.93-1 Fourth prerelease. Daemon-side timeouts are gone, they complicated the interface without adding anything. Command responses now contain ? to tag invalid data. -D2 feature of 1.92 backed out. * Sun Aug 22 2004 Eric S. Raymond - 1.92-1 Third prerelease. Clients in watcher mode now get notified when the GPS goes online or offline. Major name changes -- old libgps is new libgpsd and vice-versa (so the high-level interface is more prominent). Specfile now includes code to install gpsd so it will be started at boot time. -D2 now causes command error messages to be echoed to the client. * Sat Aug 21 2004 Eric S. Raymond - 1.91-1 Second pre-2.0 release. Features a linkable C library that hides the details of communicating with the daemon. The daemon now recovers gracefully from having the GPS unplugged and plugged in at any time; one of the bits of status it can report is whether the GPS is online. The gps and xgpsspeed clients now query the daemon; their code for direct access to the serial port has been deliberately removed. * Sun Aug 15 2004 Eric S. Raymond - 1.90 Creation of specfile. * Sun Mar 21 2004 Remco Treffkorn - ? Without PRWIZCH sentence: sat. colors in gps according to ss, grey==lt20, yellow==lt40 else green. Added L Q and I to the protocol. Removed G and T. Changed the timeout mechanism. Try to not return Lat/Lon/Alt if validity is in doubt. * Thu Jan 29 2004 Remco Treffkorn - ? Make applications null-terminate their resource lists. * Sat Dec 20 2003 Remco Treffkorn - ? Removed from netlib. Not needed, and new gcc does not support it any more. * Wed Aug 20 2003 Remco Treffkorn - 1.10 Add install target. Fix clean target. Make GPS timeout configurable. Make xgpsspeed build with Apple's X11. Make sure that we don't segfault if the NMEA is badly formed. * Mon Aug 18 2003 Remco Treffkorn - ? Use cfset[io]speed() to set speed in serial.h. Glibc is quite insane and I am tired to chase it, so I give up. Hope this works for BSD. Set status and mode 0 after GPS timeout (5 sec) - Cougar * Sun Feb 16 2003 Remco Treffkorn - 1.09 Include sys/time.h in gpsd.c for struct timeval. * Sun Nov 03 2002 Remco Treffkorn - ? G or g command returns six-digit Maidenhead grid square (like FN12fx) * Thu Oct 03 2002 Remco Treffkorn - 1.08 Added sockopt SO_REUSEADDR to netlib.c passive_sock. * Tue Feb 05 2002 Remco Treffkorn - 1.07 em.c uses (as it should). Removed some where they were not needed. Russ Nelson: Improved Earthmate support: added state machine for EARTHA recognizer, removed alignment problems seen on ARM architecture. Added setsockopt to add SO_REUSEADDR, so that gpsd can stop and immediately restart. Added support for bitrates higher than 38400, needed for the SIRF chipset. Derrick: my patch causes longitude when under 100 degrees to be printed zero-padded as needed, the latitude same deal under 10, fixes the GGA sentence to not erroneously print fix type (2/3) instead of fix quality, and calculates fix type correctly. * Fri Aug 11 2000 Remco Treffkorn - 1.06 Change from C++ (/) to C comments (/* */)for compatibility. Added -n (need init) flag. Don't init unless lat/lon specified. Remove gps.mayko.com as the default hostname. * Fri May 12 2000 Remco Treffkorn - 1.05 (even though version.h says 1.04) Added some includes to xgpsspeed.c for portability. Fix problem with flags being overwritten, and using the wrong port variable also in xgpsspeed.c Add a note about Y2K compatibility fix. Pass latitude and longitude into em_init(). * Fri Mar 17 2000 Remco Treffkorn - 1.02 (even though version.h says 1.01) * Sun Mar 05 2000 Remco Treffkorn - 1.01 Updated to IANA port. Fixes to DGPS support. * Sun Jan 02 2000 Remco Treffkorn - 1.0 Added DGPS fixes from Curt Mills. (See README for contact info.) * Mon Dec 13 1999 Remco Treffkorn - 0.99dgps Added minimal DGPS support by Derrick J Brashear * Sat Jul 17 1999 Remco Treffkorn - 0.99 Rockwell binary is now translated to NMEA format, so that clients like gps will work with an EarthMate. Added speedometer application. Thanks to Derrick J Brashear for his work (see README for contact info). * Thu Mar 04 1999 Remco Treffkorn - 0.96 Changed EarthMate support. Rockwell binary is now almost properly supported. Only the minimum required information is extracted. * Sat Feb 06 1999 Remco Treffkorn - 0.95 Added support for EarthMate receivers. Since I do not have one, this is untested. If it works, it does the following: You start gpsd with a baudrate of 9600 and give it the -Te option. If gpsd gets the EartMate it will enable the receiver and then attempt to switch it into NMEA mode. If the EarthMate id is not received, but a binary data header is received, then we will try to switch NMEA too. * Sun Jan 24 1999 Remco Treffkorn - 0.94 Y2K compliant ;-) (... is NOT. Look for "FIXME:" in nmea_parse.c) * Tue Jan 27 1998 Remco Treffkorn - 0.93 using GNU autoconf now. combined gpsd + gpsclient. No more init files, command line only. * Tue May 13 1997 Remco Treffkorn - 0.9 some cleanups in the ini code. version 0.9 ... * Fri Apr 25 1997 Remco Treffkorn - 0.8 version 0.8, some bug fixes. New MODE member, STATUS member changed. * Mon Apr 21 1997 Remco Treffkorn - 0.7 released version 0.7