Many changes were made, perhaps the most obvious being the switch from the GPL to the BSD license to facilitate commercial use. Drivers have been updated. Regular regression testing and automated audits with valgrind, splint, and code analyzers are performed. Unbounded string functions have been eliminated. Performance and reliability is improved. New optimizations were made for embedded deployments. Higher integrity data handling was implemented. New client programs have been added. The gpsd on-the-wire protocol has changed; hand-rolled parsers should be verified against the documentation.
gpsd has undergone a total cleanup and rewrite. C
and Python libraries are now available, providing
a simple API for querying the daemon. NMEA
conformance has been updated. Command-line options
have been simplified. There is actual
documentation. A new gpsprobe program determines
GPS capabilities and generates an error
scattergram from fixes.
In this version, em.c now uses time.h, there is improved Earthmate support, setsockopt was added to add SO_REUSEADDR, so that gpsd can stop and immediately restart, and support was added for bitrates higher than 38400, needed for the SIRF chipset. A longitude of under 100 degrees is now printed zero-padded as needed, similarly with a latitude of under 10, and there are fixes so that the GGA sentence no longer erroneously prints fix type (2/3) instead of fix quality, and calculates fix type correctly.