NEWS 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906
  1. GPSD project news
  2. 3.21.1~dev: in progress
  3. Added client/gpscsv to convert gpsd JSON to csv.
  4. Added client/gpsplot to dynamically plot gpsd JSON.
  5. Added client/gpssubframe to decode gpsd SUBFRAME JSON.
  6. Added nSat and uSat to SKY JSON. Old clients can not read new SKY.
  7. Move stuff from source root into clients/, include/, gpsmon/ and libgps/.
  8. Move stuff from source root into gpsd/.
  9. Move class ubx out of ubxtool and into gps/ubx.py.
  10. 3.21: 2020-08-04
  11. Create python programs from .in files to allow macro substitution.
  12. Finally clean .sconsign*.dblite with "scons -c"
  13. Remove revision.h. Move REVISION into gpsd_config.h
  14. Change asciidoc to asciidoctor, and revise documents to match.
  15. library version bumped to 27
  16. Add leap_seconds to gps_data_t
  17. Add/change many rtcm2 structs in gps.h
  18. Add/change many rtcm3 structs in gps.h
  19. Maindenhead now 8 chars.
  20. Add icondir and sharedir install options
  21. Install basic doc in sharedir
  22. Move gps_data_t->status to gps_fix_t.status for better fix merging
  23. The gps python module is now Pure Python + FFI. FFI only for packet.py
  24. User should manually delete any old packet*so.
  25. Add wspeedt, wspeedr, wanglem, wanglet, wangler to gps_fix_t
  26. Add "-p CONFIG", "-p STATUS", "-t" and "-tt" options to ubxtool.
  27. Add python_shebang option to scons config.
  28. gpsrinex has long options and many new options.
  29. Added long options to gpsd.
  30. Remove unused FORCE_GLOBAL_ENABLE
  31. Remove config option reconfigure, replace with -p, --passive runtime option.
  32. Remove config option controlsend (RECONFIGURE_ENABLE)
  33. Add config option rundir=XX. Default set to /run, or /var/run as required.
  34. Fixes for Python 2.6 up to 3.9.
  35. 3.20: 2019-12-31
  36. Change README into an asciidoc file and publish HTML from it
  37. Add NED and geoid_sep to gps_fix_t and TPV JSON.
  38. Add "-e NED" to ubxtool to enable NED messages.
  39. gpsdata.separation replaced by gpsdata.fix.geoid_sep.
  40. Remove nofloats build option.
  41. TPV JSON "alt" is now fixed at WGS84. Probably.
  42. xgps now uses XGPSOPTS environment variable.
  43. add health variable to satellite_t
  44. change satellite_t elevation and azimuth to double
  45. satellite_t elevation, azimuth, and ss use NAN for unknown value.
  46. add altMSL, altHAE, and depth, to gps_fix_t
  47. altitude in gps_fix_t is deprecated and undefined
  48. wgs84_separation() now return EGM2008 computed from 5x5 degree base data.
  49. The best results are close to cm, the worst off up to 12m.
  50. Move mag_var from gps_device_t to magnetic_var gps_data_t.
  51. Added mag_var() to interpolate magnetic variation (deviation) from a table.
  52. Remove true2magnetic() as mag_var() improves on it.
  53. Remove TIMEHINT_ENABLE. It only worked when enabled.
  54. Remove NTP_ENABLE and NTPSHM_ENABLE. It only worked when enabled.
  55. Remove PPS_ENABLE and TIMING_ENABLE.
  56. Add dgps_age and dgps_station to gps_fix_t
  57. Convert all timestamp_t to timespec_t.
  58. Remove FIXED_PORT_SPEED and FIXED_STOP_BITS build options.
  59. Add -s [speed] and -f [framing] runtime options to gpsd.
  60. A working CC and termios.h are mandatory.
  61. use the current leap second to determine the current GPS epoch.
  62. leapfetch.py, leapseconds.cache, timebase.h and leapfetch option gone.
  63. See also change histories in gps.h and gpsd.h
  64. 3.19: 2019-07-01
  65. Rearrange rawdata_t. Bump the API because gps_data_t changed.
  66. Report sequence-ID fields in type 7 and 13 AIS messages.
  67. Preliminary support for SiRFstar V
  68. Improve error modeling.
  69. Update pseudo NMEA to v3.0, with fractional time.
  70. Improve cycle detection, mostly for NMEA.
  71. Move epe from gps_data_t to be near its friends in gps_fix_t.
  72. Preliminary u-blox 9 support.
  73. Add qErr in gps_data_t to store PPS quantization error.
  74. Add Android (AOSP) support
  75. Improved multi gnss and multi signal support.
  76. NMEA 4.10 multi gnss multi signal support.
  77. The arguments to "ubxtool -p P" have been expanded and changed.
  78. New options, -g, -x, -z, added to ubxtool for u-blox 9 support.
  79. 3.18.1: 2018-10-19 (Gary E. Miller <gem@rellim.com>)
  80. Fix some installation issues.
  81. A few minor updates to ubxtool and driver_ubx.
  82. Add contrib/skyview2svg
  83. 3.18: 2018-10-02 (Gary E. Miller <gem@rellim.com>)
  84. Add ECEF support to ievermore, italk,Skytraq, SiRF, U-blox drivers.
  85. Add ECEF support to JSON, cgps and xgps.
  86. Add GREIS (Javad) driver from Virgin Orbit.
  87. Add CLI tools zerk and ubxtool to manage JAVAD and u-blox GPS.
  88. Add gnssid:svid to satellite_t, cgps and xgps. PRN will die.
  89. Add gnssid:svid to JSON, cgps and xgps.
  90. Add stricter version checking (more to todo).
  91. More and better regression tests.
  92. Better Python dependency checking, at build time and runtime.
  93. Fix several buffer issues.
  94. New polar plots, and improved statistice, in gpsprof.
  95. gpsd master/slave mode works, first time ever.
  96. All isnan() changed to !isfinite(), fixing many bugs.
  97. Client-side Python libraries may automatically reconnect
  98. Too many other bug fixes and improvements to mention.
  99. Over 1,000 commits from 46 different commiters.
  100. 3.17: 2017-09-07 (Eric S. Raymond <esr@snark.thyrsus.com>)
  101. Repair support for non-NMEA devices requring active probing
  102. (e.g. Garmin USB GPSes). Apply OS X build fixes. Fix a SiRF driver
  103. bug that occasionally confused NTP. Support for Spectratime iSync
  104. GRClok and LNRClok oscillators. gpxlogger can reconnect when
  105. the GPS loses the fix. xgps and xgpsspeed moved to python-gi,
  106. getting shut of the deprecated pygtk2 bindings. Default mode for
  107. xgpsspeed is now the more interesting nautical display. gpsmon
  108. includes the hostname with the device display. gpsprof now has
  109. centimeter precision.
  110. 3.16: 2016-01-08 (Eric S. Raymond <esr@snark.thyrsus.com>)
  111. Test rebuilds for mid-2015 leapsecond bump. Regression tests will
  112. run even if "python" in Python 3. Build correctly on systems where
  113. -ltinfo is split from -lncurses. Avoid some rare overflow conditions
  114. in PPS code. Fix bugs in JSON sat-view parsing due to the JSON
  115. parser stuffing ints into shorts. Various small fixes to AIS
  116. interpretation. Prevent a memory leak in long-running gpsmon
  117. instances. Fix Savannah bug #45270: serial driver does not work
  118. properly on pipes. Fix Savannah bug #44648: GPSD won't build if
  119. CCFLAGS contains options that are only compatible with the
  120. cros1s-compiler. Fix Savannah bug #45342: SConstruct generates wrong
  121. *.pc files. Fix Savannah bug #46495: gpsd_poll may crash due to
  122. unitialized pointer (probably due to buggy FD_ISSET on host
  123. system). Fix Savannah bug #46648: gpsd crashes and buffer overflow
  124. is reported when terminated. Fix Savannah bug #46802: AIVDM to CSV
  125. is broken in some weird cases. Fix Savannah bug #46804: JSON
  126. satellite view parsing is somewhat broken.
  127. 3.15: 2015-06-03 (Eric S. Raymond <esr@snark.thyrsus.com>)
  128. Fix a rare crash bug related to devices becoming inaccessible while timed out.
  129. Accept NMEA 4.1 GSV sentences with the trailing signal-ID field.
  130. Fixed incorrect decode of south latitudes in AIS Type 17 messages.
  131. splint has been retired; this removes almost 2KLOC of annotations.
  132. chrpath is no longer a build dependency. Corrected Beidou/QZNSS display
  133. in the Python clients so the graphics don't look like SBAS.
  134. 3.14: 2015-03-14 (Eric S. Raymond <esr@snark.thyrsus.com>)
  135. Pi Day release, 3.14 on 3/14 2015 at 9:26. Longer timeouts on test clients.
  136. Skyview support for the Beidou and QZSS constellations in the NMEA0183 driver.
  137. ntpmon rename to ntpshmmon - it doesn't actually monitor NTP itself.
  138. New HOWTO on the website: "Introduction to Time Service".
  139. 3.13: 2015-02-26 (Eric S. Raymond <esr@snark.thyrsus.com>)
  140. compiler.h inclusion removed for gps.h so it's standalone for /usr/include.
  141. TOFF JSON report gives the offset between GPS top of second and clock time.
  142. A new ntpmon tool supports capturing clock samples from NTP SHM segments.
  143. 3.12: 2015-02-22 (Eric S. Raymond <esr@snark.thyrsus.com>)
  144. The daemon's power utilization has been reduced by changing from
  145. non-blocking to blocking I/O; this may be significant on mobile devices.
  146. Better protection against false matches of Inland AIS messages; this
  147. required a libgps version bump to 22 (as a side effect, per-device
  148. footprint has decreased). PPS feature is no longer marked
  149. experimental/unstable. Sentence tag fields have been dropped from
  150. the JSON reports. GNSS and GLONASS SKY reports are now
  151. merged. Addressed versions of AIS Type 25 and 26 are now
  152. handled. The 'nmea' build option is now 'nmea0183'. New 'minimal'
  153. option sets all boolean options not explicitly set on the build
  154. command line to false. The 'limited_max_devices' option is now
  155. 'max_devices'; the 'limited_max_clients' option is now 'max_clients'
  156. The previously deprecated 'libQgpsmm' option has been removed; use 'qt'.
  157. A bug fix for error modeling when NMEA 0183 reports empty DOP
  158. fields. On OS X, the "osx-pl203" driver has been explicitly listed
  159. as unsupported. The last remnants of the old pre-JSON query protocol
  160. have been removed from the client library.
  161. 3.11: 2014-07-23 (Eric S. Raymond <esr@snark.thyrsus.com>)
  162. A bug that prevented track interpolation has been fixed.
  163. We now get vertical error position and speed estimates from the
  164. u-blox driver rather than having to interpolate them.
  165. Some unusual AIS talker IDs (NMEA 4.0 station classes) are supported.
  166. chrpath is no longer a dependency for building and testing, and
  167. now defaults to 'no'. Full systemd support. Fixes for handling
  168. large PPS offsets. Improved recovery from device flakeouts,
  169. gpsmon argument parsing.
  170. 3.10: 2013-11-22 (Eric S. Raymond <esr@snark.thyrsus.com>)
  171. AIS: Adds gps2udp, an AIS data relay, split24 option supports
  172. passing through Type 24 halves; support for Inland AIS; "scaled" no
  173. longer controls dumping of controlled-vocabulary fields; instead,
  174. the're always dumped numerically and as text, with text in an
  175. attribute name generated by appending "_text" to the name of the
  176. base attribute. The packetizer's handling of write boundaries not
  177. coinciding with packet boundaries is improved. Better support for
  178. mode and speed switching in the UBX driver. PPS message now ships
  179. nsec. PPS events are visible in gpsmon. Time-reporting fix to TSIP.
  180. 3.9: 2013-05-01 (Eric S. Raymond <esr@snark.thyrsus.com>)
  181. Note to packagers: this is an urgent release that fixes a possible
  182. DoS or security hole! Armor the AIS driver against an implausible
  183. overrun attack. A (different) fix for our first malformed-packet
  184. crash since about 2007. Minor improvements to the NMEA2000
  185. driver. New FAQ entry on how to know WAAS/EGNOS is working.
  186. New -u and -uu options enable usec timestamps on gpspipe output.
  187. 3.8: 2013-02-25 (Eric S. Raymond <esr@snark.thyrsus.com>)
  188. Fix various minor errors in the AIVDM/AIVDO description. Repair the
  189. xmlto support in the build system. Add two more regression
  190. tests. Significant improvements to NMEA2000 support. Upgrade the PHP
  191. client to v3 of the Google Maps API. Support for the Telit SL869
  192. chipset. Added a nautical-style display to xgpsspeed. Minor
  193. improvements to leapsecond.py.
  194. 3.7: 2012-07-02 (Eric S. Raymond <esr@snark.thyrsus.com>)
  195. Snap release to get the midnight change in the default leap-second
  196. constant out the door. Port tests now pass on all Debian supported
  197. architectures, including the Sparc and s390 that were giving us
  198. trouble before. Pre-2003 Delorme Earthmate works again.
  199. 3.6: 2012-05-23 (Eric S. Raymond <esr@snark.thyrsus.com>)
  200. It's the Fernando Poo Day release. Code has zero detectible defects
  201. under Coverity scanning and cppcheck 1.52; this is mainly a cleanup
  202. release to get those minor fixes into the field. If a leap-second
  203. warning is available from GPS subframe information it is passed to
  204. ntpd. NMEA2000 is now supported via the Linux kernel CAN interface.
  205. There's a chrpath=no config option for distribution makers, so
  206. chrpath is no longer a build dependency; see build.txt for
  207. explanation.
  208. 3.5: 2012-04-14 (Eric S. Raymond <esr@snark.thyrsus.com>)
  209. Use pselect when it's available to cut down on wakeups and improve
  210. signal handling. New {PPS} message exporting clock drift. The AIVDM
  211. driver now handles up to 16 interleaved 24A and 24B pair-halves.
  212. The NMEA driver interprets depth-sounder returns from SDDBT and
  213. reports them as negative altitudes. The pps-pin option is gone, the
  214. PPS code now just accepts any handshake pin. A bug that sometimes
  215. caused RTCM packets to be dropped rather than relayed is fixed.
  216. 3.4: 2012-01-12 (Eric S. Raymond <esr@snark.thyrsus.com>)
  217. Don't barf when chrpath is not available, fall back to static linking;
  218. helps people not running Linux.
  219. 3.3: 2011-10-29 (Eric S. Raymond <esr@snark.thyrsus.com>)
  220. Improvements to build and release-procedure documentation. Make
  221. sirf=no build work again. Main reason for this release is to make
  222. chrpath a mandatory build dependency and explain why in the build
  223. documentation.
  224. 3.2: 2011-10-25 (Eric S. Raymond <esr@snark.thyrsus.com>)
  225. In the build recipe, (1) set pkgconfig properly for 64-bit Fedora
  226. systems, (2) clean up various derived files including *.pyc on scons
  227. -c, (3) add an option to disable stripping of binaries (strip=no),
  228. (4) for embedded targets, add an option to disable building Python
  229. support (python=no), (5) make the help for gpsd_group and gpsd_user
  230. a little clearer, (6) add a force_global option to build gpsd to
  231. listen to all addresses (rather than just loopback). The packet
  232. sniffer now accepts NMEA packets with the ECDIS packet leader 'EC'.
  233. SBAS satellites are now properly use-flagged in SiRF and UBX
  234. skyviews. The -G option now works under IPv6. Cross-build is now
  235. officially supported and instructions included. gpsprof works again
  236. and does whole-cycle profiling. gpsd.php has Open Street Map
  237. support. The pps-on-cts option is replaced by a pps_pin option that
  238. lets you specify the pin; the default is still DCD. New supported
  239. device; the Jackson Labs Fury. The chrpath utility has become a
  240. build prerequisite.
  241. 3.1: 2011-07-28 (Eric S. Raymond <esr@snark.thyrsus.com>)
  242. The Irene release, rocking you like a hurricane and brought to you
  243. from the storm shelter in my basement. This is a snap release mainly
  244. to get some scons recipe cleanups out the door. Parallelized builds
  245. now work. Small but fatal problems with reconfigure=no, netfeed=no
  246. and sock_export=no builds have been fixed. Build recipe ported for
  247. Fedora, Darwin, FreeBSD and OpenBSD. libgps now brings -lm with it
  248. on systems with implicit linking. One old bug fixed (code was
  249. previously present but broken): Under Linux, gpsd will refrain from
  250. opening serial or USB devices that another process has open,
  251. avoiding potential problems with class 0xFF USB devices opened by
  252. other programs. One new bug fix: we now use an atof()
  253. implementation that ignores locale, avoiding problems where decimal
  254. point is a comma. One new feature: Change -N semantics so it only
  255. suppresses backgrounding; privileges are now dropped as in normal
  256. background operation.
  257. 3.0: 2011-07-19 (Eric S. Raymond <esr@snark.thyrsus.com>)
  258. POLL subobject name changes: fixes -> tpv, skyview -> sky.
  259. Fix a timestamp-clobbering bug in the C library revealed by an
  260. obscure car-nav device, the MyGuide 3100. The DEVICE 'activated'
  261. attribute becomes an ISO8601 string; the client libraries will
  262. still backward-compatibly read a float value. gps_unpack() is
  263. now a documented part of the library API. There is now a
  264. shared-memory export from the daemon that can be accessed through
  265. the C and C++ client libraries. xgps and cgps may now display
  266. the Maidenhead grid locator for current lat/lon. xgps displays
  267. GST noise statistics if they are available. Codebase now has
  268. an scons build recipe. Direct support for activation of gpsd from
  269. Mac OS/X systemd. gpsdecode can now filter reports by RTCM2, RTCM3,
  270. or AIS message type. NMEA HEHDT is implemented. Remote gpsd instances
  271. can now be used as data sources via a gpsd:// URL. There is a client
  272. for live-feeding GPSD data to Google Earth. The hotplug sequence no
  273. longer requires Python.
  274. 2.96: 2011-03-21 (Eric S. Raymond <esr@snark.thyrsus.com>)
  275. Bumped maximum channel count to 32 to accommodate GPS+GLONASS devices.
  276. API version bumped to 5, redesign finished (changes are documented
  277. in the Client HOWTO). cgps now handles resize signals. Code can now
  278. link with uClibc for embedded use. Various bugs in the C++ binding
  279. have been fixed. gpxlogger can now daemonize and write to a specified
  280. log file. A gpsd client can now set any locale it likes, and JSON
  281. will still be parsed using the C locale matching the daemon's. Clients
  282. are no longer required to define a gpsd_report() hook. gpsd no longer
  283. emits probe strings to unidentified USB devices at startup.
  284. JSON timestamps in TPV and SKY are now ISO8601 rather than seconds since
  285. the Unix epoch; the library handles the older style backward-compatibly.
  286. GPGST sentences are now parsed for noise statistics when a device emits them.
  287. AIS and RTCM2 JSON dumps have device fields. JSON reports now include 50bps
  288. subframe data if the device allows access to it. gpsdecode can now dump NMEA
  289. GPS binary, and subframe data to JSON. The RTCM2 code now understands and
  290. analyzes RTCM2.3 messages 13, 14, and 31, and has been checked against another
  291. analyzer. The ancient Sager dump format for RTCM2 is abolished in favor of
  292. a JSON profile.
  293. 2.95: 2010-07-13 (Eric S. Raymond <esr@snark.thyrsus.com>)
  294. The autonomous robot submarine total world domination release!
  295. Rationalize clearing and generation of DOPs, this makes epx/epy much
  296. more generally available. Fixed the test productions for the udev
  297. magic and added a troubleshooting note in INSTALL. cgps now displays
  298. epx/epy rather than eph. Speed is now always reported if our last
  299. two fixes were good, even if the GPS didn't compute it. Reading
  300. packets from UDP datagrams by specifying a listening address and
  301. port is now supported, and the regression-test driver cam now be
  302. told to force this with -u; this enables regression testing in
  303. chroot jails where access to ptys is locked out. AIS code now
  304. interprets message type 6 and 8 application IDs correctly as a
  305. Designated Area Code and Functional ID pair. gpspipe has a new -T
  306. option for setting the timestamp format. xgpsspeed is completely
  307. rewritten in Python, eliminating some dependencies on ancient X
  308. libraries. We now ship a Qt binding for the client library. Note
  309. a GCC 4.2.1 optimizer bug. gpsdcode now uses | as a field separator
  310. in -c mode, as string fields can contain commas. Corrected error
  311. in reporting of AIS rate-of-turn fields.
  312. 2.94: 2010-04-20 (Eric S. Raymond <esr@snark.thyrsus.com>)
  313. Error-checking in the 50bps subframe code has been greatly improved.
  314. The Garmin GPS driver can now use libusb, if it is present, to do
  315. device discovery. The libgps library has been split apart; the
  316. service functions used by the daemon now live in libgpsd. This
  317. will shave some code volume from GPSD client applications. A packaging
  318. error that resulted in xgps not being shipped in 2.93 has been
  319. corrected. We now have stronger checking for valid ephemeris before
  320. extracting the leap-second offset; they should prevent many cases
  321. where gpsd might previously have used an invalid leap-second offset.
  322. 2.93: 2010-04-16 (Eric S. Raymond <esr@snark.thyrsus.com>)
  323. Support for JSON dumping and parsing of AIS message types 25 and 26,
  324. not yet observed in the wild on AISHub. Fix Debian bug #569703. by
  325. removing non-streaming mode from the Python exerciser. Fix Debian
  326. bug #572900 by unsetting the appropriate in-use flag in the device
  327. array. Change the libgps default from old protocol to JSON. Add a
  328. close() method to the C++ binding. Try to recover better from
  329. sporadic cases of false matches to Trimble packet format from a SiRF
  330. binary datastream. gps_poll() now returns -1 with errno not set when
  331. the gpsd socket closes. TPV now refrains from reporting fields the
  332. fix quality won't support. gpsmon option for listing device types is
  333. now -L to -l can be used to enable logging (to stay consistent with
  334. the l command). There is new FAQ material on improving fix and time
  335. reference accuracy. New sections have been added to NMEA.txt on
  336. error status indications and satellite IDs. New POLL command brings
  337. back polling-mode operation. A Client-HOWTO has been added to the
  338. documentation. gpsd no longer eats CPU when a device is unexpectedly
  339. unplugged. Support for the TNT revolution is back (run mode only).
  340. There is now a gpsdfake diagnostic tool that fakes being gpsd shipping
  341. arbitrary specified data to clients.
  342. 2.92: 2010-03-03 (Eric S. Raymond <esr@snark.thyrsus.com>)
  343. Fix a packaging error. The new Python library module was
  344. inadvertently omitted from the 2.91 tarball. Also, improve the json
  345. import test slightly.
  346. 2.91: 2010-03-01 (Eric S. Raymond <esr@snark.thyrsus.com>)
  347. We have support for NMEA GLONASS sentences, and a regression test.
  348. Clients now get a DEVICE notification on every driver switch. It is
  349. possible to specify a TCP/IP AIS feed such as AISHub as a data
  350. source. Serious bitrot in the NTRIP support has been fixed - it was
  351. probably nonfunctional for several releases before this. Fixed
  352. buggy display of satellite-used flags in cgps. xgps is replaced by
  353. a rewrite in Python that uses pygtk, eliminating a dependency on
  354. Motif; also, it now displays AIS information. Uniform treatment of
  355. display-unit defaulting and -u in xgps, cgps, and lcdgps. Support
  356. for AIS message types 25 and 26. Support for IPv6. A numeric
  357. instability in the earth_distance() function affecting track error
  358. modeling has been fixed. Old protocol has been removed from the
  359. daemon; the library still speaks it.
  360. 2.90: 2009-12-04 (Eric S. Raymond <esr@snark.thyrsus.com>)
  361. GPSD-NG, the new JSON-based command protocol, is now deployed; as a
  362. consequence, AIS is now fully supported in both daemon and client.
  363. Detection of end of a fix-reporting cycle is now reliable;
  364. accordingly data is accumulated from cycle start and the "J"
  365. (nojitter) option on both server and client side is gone. We have
  366. abandoned the gpsflash subproject since it has become apparent that
  367. we can't do it without more vendor cooperation than we're likely to
  368. get. Increase major version of shared library due to significant API
  369. change. Added new driver for Motorola Oncore receivers, with help
  370. from Håkan Johansson. gpsfake can now accept multiple logfiles,
  371. interleaving test sentences from each. gpsd now accepts error
  372. estimates from the NMEA $GPGBS sentence.
  373. 2.39: 2009-03-18 (Eric S. Raymond <esr@snark.thyrsus.com>)
  374. Fixed potential core dump in C client handling of "K" responses.
  375. Made device hotplugging work again; had been broken by changes in udev.
  376. Introduced major and minor API version symbols into the public interfaces.
  377. The sirfmon utility is gone, replaced by gpsmon which does the same
  378. job for multiple GPS types. Fixed a two-year old error in NMEA parsing
  379. that nobody noticed because its only effect was to trash VDOP values from
  380. GSA sentences, and gpsd computes those with an internal error model
  381. when they look wonky. cgpxlogger has been merged into gpxlogger.
  382. Speed-setting commands now allow parity and stop-bit setting if the
  383. GPS chipset and adaptor can support it. Specfile and other packaging
  384. paraphenalia now live in a packaging subdirectory. rtcmdecode becomes
  385. gpsdecode and can now de-armor and dump AIDVM packets. The client
  386. library now works correctly in locales where the decimal separator is
  387. not a period.
  388. 2.38: 2009-02-10 (Eric S. Raymond <esr@snark.thyrsus.com>)
  389. Regression test load for RoyalTek RGM3800 and Blumax GPS-009 added.
  390. Scaling on E error-estimate fields fixed to match O. Listen on
  391. localhost only by default to avoid security problems; this can be
  392. overridden with the -G command-line option. The packet-state machine
  393. can now recognize RTCM3 packets, though support is not yet complete.
  394. Added support for ublox5 and mtk-3301 devices. Add a wrapper around
  395. gpsd_hexdump to save CPU. Lots of little fixes to various packet
  396. parsers. Always keep the device open: "-n" is not optional any more.
  397. xgpsspeed no longer depends on Motif. gpsctl can now ship arbitrary
  398. payloads to a device. It's possible to send binary through the
  399. control channel with the new "&" command. Experimental new driver
  400. for Novatel SuperStarII. The 'g' mode switch command now requires,
  401. and returns, 'rtcm104v2' rather than 'rtcm104'; this is design forward
  402. for when RTCM104v3 is fully working.
  403. 2.37: 2008-02-17 (Chris Kuethe <ckuethe@mainframe.cx>)
  404. The C++ bindings, Garmin USB support, and multiple instances of ntp
  405. pps thread starting were fixed. Handling of odd PPS signals was
  406. improved. The eye candy in the PHP visualizers was fixed.
  407. 2.36: 2008-01-01 (Eric S. Raymond <esr@snark.thyrsus.com>)
  408. Urgent fix to leap-day calculation affecting dates from today to
  409. 28 Feb on generic NMEA GPSes, Zodiacs, and SirFs emitting message 0x62.
  410. Integrated Garmin Simple Text Protocol driver from Peter Slansky.
  411. Minor fixes in error modeling and a better NaN guard stabilize the
  412. Trimble regression tests. Remove the wired-in NTP time offset from the
  413. NMEA driver, this could only have worked by accident and should be
  414. set in ntpd.conf. Integrated Ashtech driver from Chris Kuethe.
  415. 2.35: 2007-12-10 (Eric S. Raymond <esr@snark.thyrsus.com>)
  416. Navcom driver merged. Removed -d -f and -p options of gpsd; these
  417. have been undocumented for a while. Make gpsd play well with pkgconfig.
  418. Incorrect computation of VDOP when GPSes didn't supply it has been fixed.
  419. The xgps code has been revamped and now has a much nicer interface.
  420. Add -b (no-configuration) option as a sadly clumsy workaround for some
  421. problems with Bluetooth receivers. Added tests for Haicom-305N and Pharos
  422. 360; separated out the tests for the unstable Trimble drivers.
  423. 32-vs-64-bit problems in the regression tests have been solved.
  424. 2.34: 2006-12-14 (Eric S. Raymond <esr@snark.thyrsus.com>)
  425. Fix for byte-swapping of Zodiac control messages on big-endian hardware.
  426. Disable iTalk by default and note that it needs to be tested. Command line
  427. arguments can now be DGPSIP or NTRIP URLs; -d is deprecated. Added udev
  428. rules. Address excessive processor and memory utilization on SBCs; it's
  429. now possible to configure compile-time limits on the number of devices
  430. and client sessions. Eliminate use of fuser(1) in gpsfake. Get gpsd
  431. working with EarthMates again, this had been broken since 2.15. Massive
  432. string safety audit and OpenBSD port by Chris Kuethe. J command added.
  433. The gpsctl and gpscat tools and the gpsd.phps script were added. Switched
  434. to lesstif from openmotif. Better autodetection of DLE-led packet
  435. protocols (notably TSIP and Garmin binary) and of SiRFStar I and III
  436. devices. Fixed buggy parsing and generation of PGRME.
  437. 2.33: 2006-06-09 (Eric S. Raymond <esr@snark.thyrsus.com>)
  438. Fix bad unit conversion in V output. Clean up some man-page messes.
  439. Fixed buggy libgps parsing of multiple responses. It's now possible
  440. to lock gpsd to a fixed speed at compile time for embedded use. Added
  441. NTRIP support, thanks to Ville Nuorvala. O command now ships an
  442. explicit mode field.
  443. 2.32: 2006-03-12 (Eric S. Raymond <esr@snark.thyrsus.com>)
  444. Cleanup of the xgps layout, and minor memory-leak fixes for xgps. Fix
  445. to cope with Antares u-blox by Andreas Stricker. Minor fix to libgps
  446. cgpxlogger. Merge cgpxlogger and gpxlogger documentation onto
  447. the xgps(1) manual page and rename it gps(1).
  448. 2.31: 2006-02-17 (Eric S. Raymond <esr@snark.thyrsus.com>)
  449. Now builds and runs under Cygwin. Correct the speed units in
  450. synthetic NMEA. Slightly better time handling under NMEA. Daemon
  451. now builds with all but NMEA disabled. Update the leap-second
  452. offset. cgpxlogger introduced. Upgrade gpxlogger to DBUS 0.60
  453. conformance. Jason von Nieda's patch may fix the chronic TSIP
  454. driver problems.
  455. 2.30: 2005-09-14 (Eric S. Raymond <esr@snark.thyrsus.com>)
  456. Prevent core dump on -d option. The .log extension is no longer required for
  457. test loads. cgps and xgps now have configurable latitude/longitude formats
  458. via the -l option. Introduced new 'g' command that allows clients to
  459. specify whether they want GPS or RTCM104 information.
  460. 2.29: 2005-07-19 (Eric S. Raymond <esr@snark.thyrsus.com>)
  461. Added Sony CXD2951 support, untested. All error estimates are
  462. now nailed to 95% confidence interval. Added rtcmdecode and its
  463. documentation; also, gpsd can now monitor serial devices emitting
  464. RTCM104 and display differential-GPS data in a readable format.
  465. Added dangerous alpha version of gpsflash. Work around a nasty bug
  466. in SiRFStar III firmware version < 3.1.1. Added support for True
  467. North Technologies Revolution 2X Digital compass. Added the
  468. gpxlogger client for systems with DBUS support and the gpspipe
  469. and cgps clients for general use.
  470. 2.28: 2005-07-06 (Eric S. Raymond <esr@snark.thyrsus.com>)
  471. The 2.27 source tarball somehow got truncated on upload.
  472. Due to procedural mechanics at Berlios, shipping a new release
  473. seems to be the least painful way to recover. This release is
  474. identical to 2.27 except the roadmap stuff has been added to TODO.
  475. 2.27: 2005-07-06 (Eric S. Raymond <esr@snark.thyrsus.com>)
  476. Arrange for the daemon to remove its pid file on exit. Fix some
  477. buffering problems with the Python side of the hotplug interface.
  478. gpsfake can now run sessions under a monitor like Valgrind. Most
  479. of the gpsfake logic now lives in a module that can be used to write
  480. other test loads; its progress baton is now optional. Fixed
  481. some minor bugs found by valgrind audit, including (1) a slow
  482. memory leak, (2) a possible but unconfirmed file-descriptor leak,
  483. and (3) a subtle error in the channel-assignment logic that only
  484. showed up with multiple sessions active. In fact, the daemon code
  485. no longer uses dynamic-memory allocation at all. Also, the code
  486. no longer relies on FIONREAD working. The track error field in the
  487. O response is now computed. The project website has some new eye candy.
  488. Client connections now time out when the mode is neither raw nor watcher.
  489. Fixed a core-dump that could happen if C, B or I commands were issued
  490. at odd times.
  491. 2.26: 2005-06-22 (Eric S. Raymond <esr@snark.thyrsus.com>)
  492. Time DOP and total DOP are now passed on from GPSes that report
  493. them. Ensure longitude has a leading zero when <100, for
  494. compatibility with gpsdrive. Synchronous and thread hooks are now
  495. separate in the client library. Packet-sniffing on a new device no
  496. longer holds up incoming data on already-connected ones. There is
  497. now a super-raw mode (R=2) that dumps a hex-encoding of every binary
  498. packet received to the client; sirfmon uses it to operate through
  499. the daemon if one is running. Support for Trimble TSIP GPSes
  500. merged. gpsfake now works with SiRF and Zodiac logs. Python library
  501. supports thread callbacks. New -p option of gpsfake supports
  502. regression testing of the daemon, and there is a test suite included
  503. with the distribution. PPS support is turned off, as there is some
  504. pthreads problem that sometimes kills the daemon on pthreads exit.
  505. Correct off-by-one error in GPZDA processing. The code has been
  506. audited and cleaned with splint (www.splint.org).
  507. 2.25: 2005-05-21 (Eric S. Raymond <esr@snark.thyrsus.com>)
  508. Various signedness and scaling fixes and an OpenBSD port patch for the
  509. Zodiac driver. Command-line arguments to gpsd are now treated as a default
  510. device list; -f is still supported but deprecated. sirfmon now tries not
  511. changing the line speed first, so it syncs up much faster. Prevent a
  512. potential buffer overrun in the client library. PPS-thread support is now
  513. on by default. Lots of documentation improvements. D-BUS broadcast support
  514. by Amaury Jacquot. Added Alfredo Pironti's thread-callback and C++
  515. support. gpsd no longer uses the system clock for anything, so it
  516. can be used to set that clock.
  517. 2.24: 2005-05-17 (Eric S. Raymond <esr@snark.thyrsus.com>)
  518. Crazy-speed bug is finally fixed. Autobauding now starts with the
  519. current speed of the device, not the stored gpsd speed; this means
  520. hunting only takes place when device and GPS speed aren't matched.
  521. xgpsspeed unit-conversion bug introduced in 2.22 is fixed. Satellite
  522. display now really shows 12 channels, not just 11. Major improvements
  523. in ntp notifications.
  524. 2.23: 2005-05- 4 (Eric S. Raymond <esr@snark.thyrsus.com>)
  525. For better security, the daemon now drops root privileges after startup.
  526. gpsd-clients is now a separate RPM; this is helpful on lean systems
  527. that don't run X. The O command now reports speeds in meters per second
  528. rather than knots, client code has been adjusted so there is no user-visible
  529. change. We now compute the missing components of DOP when using SiRF chips.
  530. /dev/gps is no longer special; there is no default GPS device unless you
  531. specify one. The intermittent processor-hogging problem introduced by the
  532. control-channel change in 2.21 has been solved.
  533. 2.22: 2005-04-25 (Eric S. Raymond <esr@snark.thyrsus.com>)
  534. SiRF-binary driver can now get leap-second corrections from subframe data.
  535. Device add/delete commands now send back OK or ERROR. Error-modeling
  536. corrections from the SiRF folks. Higher precision in position reports.
  537. 2.21: 2005-04-12 (Eric S. Raymond <esr@snark.thyrsus.com>)
  538. Add tag and timestamp to Y response. Use computed geoid separation as
  539. SiRF packet 42 is flaky. Security fix: hotplug scripts now do device
  540. add/removes through a separate local control channel. True multi-device
  541. support is in place. When in watcher mode, device switches are announced.
  542. 2.20: 2005-03-31 (Eric S. Raymond <esr@snark.thyrsus.com>)
  543. Rob Janssen's patches to fix timezone issues and improve cooperation
  544. with NTP. License changed to BSD so linking to libgps won't make people
  545. nervous. gpsprobe and gpsd.py are obsolete and have been removed, the
  546. autoprobe and profiling capabilities in the daemon more than replace
  547. them. gpsprof now ships self-contained GNUPLOT scripts to stdout,
  548. so they can be saved and redisplayed. Zodiac sort of works again, but
  549. occasionally spins madly during autobauding.
  550. 2.19: 2005-03-26 (Eric S. Raymond <esr@snark.thyrsus.com>)
  551. Fix brown-paper-bag bug with NMEA parsing. Set SiRF GPSes to use
  552. SBAS. sirfmon now displays SBAS parameters, and is included in the
  553. installed programs. Add to FAQ a fix for spurious high speeds reported
  554. in XTrac mode. We now interpret GPZDA. We no longer fudge a missing
  555. ddmmyy in NMEA timestamps from the system clock, so replay will work better.
  556. 2.18-1: 2005-03-23 (Eric S. Raymond <esr@snark.thyrsus.com>)
  557. First cut at cooperating with NTP. Major library restructuring;
  558. a fix is now a data structure of its own, and per-field timestamps
  559. are gone. Use new 'o' command for watcher mode. Compute some estimated
  560. error bounds.
  561. 2.17: 2005-03-16 (Eric S. Raymond <esr@snark.thyrsus.com>)
  562. Fix packet-engine problem that made disconnect/reconnect unreliable
  563. (important!). Fix bonehead error in interpretation of PGRME. We
  564. don't use O_SYNC (it turned out not to be reliable) so remove it to make
  565. life easier under Mac OS X. Allow gpsfake to accept subsecond cycle times.
  566. Add a FAQ to the HTML documentation. gps_poll() now handles multi-line
  567. responses. Add N command for switching driver modes.
  568. 2.16: 2005-03-11 (Eric S. Raymond <esr@snark.thyrsus.com>)
  569. New F command allows changing the GPS device after startup time.
  570. Hotplug scripts to go with it are now installed by the RPM. The
  571. Garmin probe is working. The -T and -s options are gone. We have
  572. achieved zero configuration!
  573. 2.15: 2005-03-02 (Eric S. Raymond <esr@snark.thyrsus.com>)
  574. A new packet engine autobauds much more quickly, and now iterates
  575. over both 1 and 2 stopbits. Explicit support for FV18 (the -T f
  576. option) is gone; instead, gpsd syncs with any 7N2 device and always
  577. ships a suitable init string. New E command, supporting the Garmin
  578. position-error sentence or computing these numbers from DOP and an
  579. error model. New U command reports climb/sink from GPSes that report
  580. vertical velocity. There is a prototype driver for SiRF-binary GPses,
  581. invoked automatically when SiRF packets present themselves on the
  582. wire after device open.
  583. 2.14: 2005-02-25 (Eric S. Raymond <esr@snark.thyrsus.com>)
  584. Pass zero magnetic variation in generated NMEA from binary GPSes
  585. correctly. Use O_SYNC rather than timeouts to guarantee that
  586. baud-rate change strings get to the GPS before changing the line
  587. parameters. Introduced I command. Spatial scattergram plotting
  588. moved from gpsprobe to gpsprof.
  589. 2.13: 2005-02-21 (Eric S. Raymond <esr@snark.thyrsus.com>)
  590. Correct a bug in binary-protocol dumping (applies to Zodiac and
  591. Garmin only). Gary Miller's patch to deal gracefully with GPSes
  592. like the Magellan EC10X that send only GPRMC and never GPGGA or
  593. GPGSA, and thus never set mode or status fields. Fixed buggy
  594. handling of units options in xgps and xgpsspeed. Bumped library
  595. major version, since seen_sentences is now exposed and drivers have
  596. more capabilities. Stricter NMEA buffer validation. Withdrew the
  597. change that always passed up a timestamp; on SiRF receivers, the year
  598. part is garbage when the PVT fields are garbage. Can now recognize
  599. SiRF GPSes. Experimental baud-switching support for Zodiac.
  600. 2.12: 2005-02-15 (Eric S. Raymond <esr@snark.thyrsus.com>)
  601. Fixed core-dump bug in processing of the GLL variant that does not
  602. include an FAA Mode Indicator. When using the NMEA driver, gpsd now
  603. hunts for a baud rate rather than requiring a fixed one to be set.
  604. A new 'B' command returns the RS232 parameters, and a new 'C'
  605. command returns the update cycle time. Added gpsfake test harness.
  606. Alpha driver for Garmin binary protocol added, requires Linux
  607. garmin_usb kernel driver. The daemon now always passes up a
  608. timestamp for every sentence that has one, even if the PVT fields
  609. aren't valid.
  610. 2.11: 2005-02-10 (Eric S. Raymond <esr@snark.thyrsus.com>)
  611. Added gpsprof and the capability to generate GPS latency profiles.
  612. gpsprobe now hunts through plausible baud rates when looking for NMEA
  613. data from a GPS. The -b (baudrate) option fixes a speed, disabling
  614. the baud-matching logic. Also, gpsprobe can now recognize SiRF
  615. protocol, though not speak it. Fixed a math domain error in
  616. gps.EarthDistance due to numeric blowup on points very close together,
  617. and another in gps.MeterOffset() that was screwing up gpsprobe plots.
  618. 2.10: 2005-02-01 (Eric S. Raymond <esr@snark.thyrsus.com>)
  619. Add -N option to explicitly foreground the daemon. Fixed a bug
  620. that was causing gpsd to keep reopening the GPS device after
  621. leaving raw or watcher mode. Fixed Gary Miller's core-dump bug.
  622. 2.9: 2005-01-27 (Eric S. Raymond <esr@snark.thyrsus.com>)
  623. Python files restored to RPM.
  624. 2.8: 2005-01-27 (Eric S. Raymond <esr@snark.thyrsus.com>)
  625. Embarrassing typo fix in gps.py. Avoid buffer overrun in xgps.c.
  626. Plug Debian security bug 292347, CVE number CAN-2004-1388.
  627. This version issued on an emergency basis without Python libraries,
  628. which have packaging problems due to the 2.3/2.4 transition.
  629. 2.7: 2005-01-14 (Eric S. Raymond <esr@snark.thyrsus.com>)
  630. More compiler-warning cleanups. gps client name changed to xgps.
  631. Added --speedunits option to xgpsspeed, --speedunits and --altunits
  632. options to xgps. Improved GPGSV parsing so it copes gracefully if
  633. we start in the middle of a sequence. Merged Petter Reinholdtsen's
  634. fix for GPGSA lists with holes. In xgps, satellites used in the
  635. last fix are now dotted in the middle. New -P option to create
  636. pidfile. Audited for potential buffer overruns, found and fixed
  637. two.
  638. 2.6: 2005-01-01 (Eric S. Raymond <esr@snark.thyrsus.com>)
  639. Petter Reinholdtsen's fix for gps.py buffering. Fix syntax errors
  640. in udev scriptlets. Clean up after GCC warning messages. Drop use of
  641. vsprintf, so we get a link-time error on systems that might produce
  642. buffer overruns (all modern Unixes support vsnsprintf which is safe).
  643. 2.5: 2004-12-23 (Eric S. Raymond <esr@snark.thyrsus.com>)
  644. Use gmtime instead of localtime when guessing the day or year of a date;
  645. this avoids jitter in the day after 19:00 GMT. Added -v option to dump
  646. version and exit. Commented out a crash-causing debug line in gps.py.
  647. 2.4: 2004-12-09 (Eric S. Raymond <esr@snark.thyrsus.com>)
  648. Minor bugs in gpsd.py fixed. M now returns 0 status if GPGSA not yet
  649. seen; this change also fixes a bug where gpsd claimed it was confused
  650. if GPGSA had not been seen and status was set. RPM will now install
  651. a udevd rule if the host system uses it. Don't set the online flag
  652. on activate. HP port changes and -Wall cleanup. James Cameron's
  653. fixes to clean up gps.c and use X timeouts rather than alarms.
  654. 2.3: 2004-10-25 (Eric S. Raymond <esr@snark.thyrsus.com>)
  655. Documentation and comment fixes. Last two globals removed from
  656. low-level interface; library should now be fully re-entrant. Mac OS X
  657. port fixes. Q command fix from Robin L Darroch <robin@spade-men.com>.
  658. 2.2: 2004-10-18 (Eric S. Raymond <esr@snark.thyrsus.com>)
  659. Documentation improvements. BSD port fixes. Bug fix: speed timestamp
  660. wasn't initialized properly in libgps. Device is now an optional
  661. command-line argument of gpsprobe, in line with the clients. gpsd.py
  662. now should handle fvwm devices correctly. Values in gps data
  663. panel are now labeled with units. Attempted fix for 2.1 bug of DTR
  664. not being pulled low on exit.
  665. 2.1: 2004-09-30 (Eric S. Raymond <esr@snark.thyrsus.com>)
  666. Various internal cleanups, including fossil removal in the
  667. configuration machinery. FV-18, Tripmate, Earthmate and are now
  668. enabled but can be disable with --disable-$NAME at configure time.
  669. When you call configure with --disable-shared, libgps is linked
  670. statically to the binaries (native libs are still linked
  671. shared). Fixed buggy handling of -p option in gps.c and xgpsspeed.c;
  672. it's now an optional command-line argument.
  673. 2.0: 2004-09-16 (Eric S. Raymond <esr@snark.thyrsus.com>)
  674. Packaging fixes for 2.0 release.
  675. 1.98: 2004-09-08 (Eric S. Raymond <esr@snark.thyrsus.com>)
  676. Only do one getdtablesize() call, otherwise we do several
  677. getrlimits() each poll cycle. TripMate is working. gpsprobe now
  678. deduces NMEA version. Zodiac Earthmate seems to work.
  679. 1.97: 2004-08-08 (Eric S. Raymond <esr@snark.thyrsus.com>)
  680. Removed PRWIZCH support (it still passes through in raw mode).
  681. Build Motif-dependent programs conditionally. Added gpsprobe.
  682. Fixed a brown-paper-bag-bug in 1.96 RPM packaging.
  683. 1.96: 2004-08-31 (Eric S. Raymond <esr@snark.thyrsus.com>)
  684. Implemented non-blocking writes to clients, so a stalled client
  685. cannot stall gpsd. Fixed a nasty array-overrun bug. Timestamps
  686. are now in ISO8601 format, with sub-second precision if the GPS
  687. delivers that. First cuts at Python interfaces included. libgps.a
  688. interface now bundles session fd into an allocated session block.
  689. Automake-based build machinery from Jens Oberender; RPM now
  690. installs shared libraries. FV18 driver added. Offline timer in GPS.
  691. 1.95: 2004-08-25 (Eric S. Raymond <esr@snark.thyrsus.com>)
  692. Fixed broken 'make dist', missing display.c and Tachometer.c
  693. are in there now.
  694. 1.94: 2004-08-24 (Eric S. Raymond <esr@snark.thyrsus.com>)
  695. Fix embarrassing bug -- watcher mode did not work for more than one
  696. client at a time. Y command now carries information about which
  697. satellites were used in the last fix. New timeout mechanism, no
  698. longer dependent on FIONREAD.
  699. 1.93: 2004-08-23 (Eric S. Raymond <esr@snark.thyrsus.com>)
  700. Fourth prerelease. Daemon-side timeouts are gone, they complicated
  701. the interface without adding anything. Command responses now
  702. contain ? to tag invalid data. -D2 feature of 1.92 backed out.
  703. 1.92: 2004-08-22 (Eric S. Raymond <esr@snark.thyrsus.com>)
  704. Third prerelease. Clients in watcher mode now get notified when
  705. the GPS goes online or offline. Major name changes -- old libgps
  706. is new libgpsd and vice-versa (so the high-level interface is more
  707. prominent). Specfile now includes code to install gpsd so it will
  708. be started at boot time. -D2 now causes command error messages
  709. to be echoed to the client.
  710. 1.91: 2004-08-21 (Eric S. Raymond <esr@snark.thyrsus.com>)
  711. Second pre-2.0 release. Features a linkable C library that hides the
  712. details of communicating with the daemon. The daemon now recovers
  713. gracefully from having the GPS unplugged and plugged in at any time;
  714. one of the bits of status it can report is whether the GPS is online.
  715. The gps and xgpsspeed clients now query the daemon; their code
  716. for direct access to the serial port has been deliberately removed.
  717. 1.90: 2004-08-15 (Eric S. Raymond <esr@snark.thyrsus.com>)
  718. Creation of specfile.
  719. ?: 2004-03-21 (Remco Treffkorn <remco@rvt.com>)
  720. Without PRWIZCH sentence: sat. colors in gps according to ss, grey==lt20,
  721. yellow==lt40 else green.
  722. Added L Q and I to the protocol. Removed G and T.
  723. Changed the timeout mechanism. Try to not return Lat/Lon/Alt if
  724. validity is in doubt.
  725. ?: 2004-01-29 (Remco Treffkorn <remco@rvt.com>)
  726. Make applications null-terminate their resource lists.
  727. ?: 2003-12-20 (Remco Treffkorn <remco@rvt.com>)
  728. Removed <varargs.h> from netlib. Not needed, and new gcc does not support
  729. it any more.
  730. 1.10: 2003-08-20 (Remco Treffkorn <remco@rvt.com>)
  731. Add install target. Fix clean target. Make GPS timeout configurable.
  732. Make xgpsspeed build with Apple's X11.
  733. Make sure that we don't segfault if the NMEA is badly formed.
  734. ?: 2003-08-18 (Remco Treffkorn <remco@rvt.com>)
  735. Use cfset[io]speed() to set speed in serial.h. Glibc is quite insane
  736. and I am tired to chase it, so I give up. Hope this works for BSD.
  737. Set status and mode 0 after GPS timeout (5 sec) - Cougar <cougar@random.ee>
  738. 1.09: 2003-02-16 (Remco Treffkorn <remco@rvt.com>)
  739. Include sys/time.h in gpsd.c for struct timeval.
  740. ?: 2002-11-03 (Remco Treffkorn <remco@rvt.com>)
  741. G or g command returns six-digit Maidenhead grid square (like FN12fx)
  742. 1.08: 2002-10-03 (Remco Treffkorn <remco@rvt.com>)
  743. Added sockopt SO_REUSEADDR to netlib.c passive_sock.
  744. 1.07: 2002-02-05 (Remco Treffkorn <remco@rvt.com>)
  745. em.c uses <time.h> (as it should). Removed some <sys/time.h>
  746. where they were not needed.
  747. Russ Nelson: Improved Earthmate support: added state machine for
  748. EARTHA recognizer, removed alignment problems seen on ARM architecture.
  749. Added setsockopt to add SO_REUSEADDR, so that
  750. gpsd can stop and immediately restart. Added support for bitrates
  751. higher than 38400, needed for the SIRF chipset.
  752. Derrick: my patch causes longitude when under 100 degrees to be printed
  753. zero-padded as needed, the latitude same deal under 10, fixes the GGA
  754. sentence to not erroneously print fix type (2/3) instead of fix quality,
  755. and calculates fix type correctly.
  756. 1.06: 2000-08-11 (Remco Treffkorn <remco@rvt.com>)
  757. Change from C++ (/) to C comments (/* */)for compatibility.
  758. Added -n (need init) flag.
  759. Don't init unless lat/lon specified.
  760. Remove gps.mayko.com as the default hostname.
  761. 1.05: 2000-05-12 (Remco Treffkorn <remco@rvt.com>)
  762. (even though version.h says 1.04)
  763. Added some includes to xgpsspeed.c for portability.
  764. Fix problem with flags being overwritten, and using the wrong port
  765. variable also in xgpsspeed.c
  766. Add a note about Y2K compatibility fix.
  767. Pass latitude and longitude into em_init().
  768. 1.02: 2000-03-17 (Remco Treffkorn <remco@rvt.com>)
  769. (even though version.h says 1.01)
  770. 1.01: 2000-03-05 (Remco Treffkorn <remco@rvt.com>)
  771. Updated to IANA port. Fixes to DGPS support.
  772. 1.0: 2000-01-02 (Remco Treffkorn <remco@rvt.com>)
  773. Added DGPS fixes from Curt Mills. (See README for contact info.)
  774. 0.99dgps: 1999-12-13 (Remco Treffkorn <remco@rvt.com>)
  775. Added minimal DGPS support by Derrick J Brashear
  776. 0.99: 1999-07-17 (Remco Treffkorn <remco@rvt.com>)
  777. Rockwell binary is now translated to NMEA format, so that
  778. clients like gps will work with an EarthMate.
  779. Added speedometer application. Thanks to Derrick J Brashear
  780. for his work (see README for contact info).
  781. 0.96: 1999-03-04 (Remco Treffkorn <remco@rvt.com>)
  782. Changed EarthMate support. Rockwell binary is now almost properly
  783. supported. Only the minimum required information is extracted.
  784. 0.95: 1999-02-06 (Remco Treffkorn <remco@rvt.com>)
  785. Added support for EarthMate receivers. Since I do not have one, this is
  786. untested.
  787. If it works, it does the following: You start gpsd with a baudrate of 9600
  788. and give it the -Te option. If gpsd gets the EartMate it will enable the
  789. receiver and then attempt to switch it into NMEA mode. If the EarthMate id
  790. is not received, but a binary data header is received, then we will try to
  791. switch NMEA too.
  792. 0.94: 1999-01-24 (Remco Treffkorn <remco@rvt.com>)
  793. Y2K compliant ;-) (... is NOT. Look for "FIXME:" in nmea_parse.c)
  794. 0.93: 1998-01-27 (Remco Treffkorn <remco@rvt.com>)
  795. using GNU autoconf now.
  796. combined gpsd + gpsclient. No more init files, command line only.
  797. 0.9: 1997-05-13 (Remco Treffkorn <remco@rvt.com>)
  798. some cleanups in the ini code. version 0.9 ...
  799. 0.8: 1997-04-25 (Remco Treffkorn <remco@rvt.com>)
  800. version 0.8, some bug fixes. New MODE member, STATUS member changed.
  801. 0.7: 1997-04-21 (Remco Treffkorn <remco@rvt.com>)
  802. released version 0.7