history.html 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <!DOCTYPE HTML>
  2. <html lang="en">
  3. <head lang="en">
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <meta name="Author" content="Eric S. Raymond">
  6. <meta name="Description" content="GPSd is a utility that can listen to a GPS or AIS yreceiver and re-publish the positional data in a simpler format.">
  7. <meta name="Keywords" content="GPS, gpsd, project history">
  8. <meta name="Revised" content="9 April 2015">
  9. <meta name="robots" content="index,follow">
  10. <link rel="stylesheet" href="main.css" type="text/css">
  11. <title>GPSD project history</title>
  12. </head>
  13. <body>
  14. <div id="Header">
  15. A Brief History of GPSD
  16. </div>
  17. <div id="Menu">
  18. <img src="gpsd-logo-small.png" alt="Small gpsd Logo" height="126"
  19. width="105"><br>
  20. <a href="index.html">Home</a><br>
  21. <a href="index.html#news">News</a><br>
  22. <a href="index.html#install">Installation &amp; Building</a><br>
  23. <a href="index.html#downloads">Downloads</a><br>
  24. <a href="index.html#mailing-lists">Mailing lists</a><br>
  25. <a href="index.html#documentation">Documentation</a><br>
  26. <a href="faq.html">FAQ</a><br>
  27. <a href="xgps-sample.html">Screenshots</a><br>
  28. <a href="index.html#recipes">Recipes</a><br>
  29. <a href="index.html#others">Other GPSDs</a><br>
  30. <a href="hardware.html">Hardware</a><br>
  31. <a href="for-vendors.html">For GPS Vendors</a><br>
  32. <a href="wishlist.html">Wish List</a><br>
  33. <a href="hall-of-shame.html">Hall of Shame</a><br>
  34. <a href="troubleshooting.html">Troubleshooting Guide</a><br>
  35. <a href="hacking.html">Hacker's Guide</a><br>
  36. <a href="protocol-transition.html">Application Compatibility</a>
  37. <a href="references.html">References</a><br>
  38. History<br>
  39. <a href="future.html">Future</a><br>
  40. <div>&nbsp;</div>
  41. <a href='http://www.catb.org/hacker-emblem/'><img
  42. src='glider.png' alt='hacker emblem' height="55" width="55"></a><br>
  43. <script src="https://www.openhub.net/p/3944/widgets/project_thin_badge.js"></script>
  44. <hr>
  45. <script><!--
  46. google_ad_client = "pub-1458586455084261";
  47. google_ad_width = 160;
  48. google_ad_height = 600;
  49. google_ad_format = "160x600_as";
  50. google_ad_type = "text";
  51. google_ad_channel = "";
  52. //--></script>
  53. <script src="https://pagead2.googlesyndication.com/pagead/show_ads.js">
  54. </script>
  55. <hr>
  56. <a href="https://validator.w3.org/check/referer"><img
  57. src="html5.png"
  58. alt="Valid HTML 5!" height="31" width="88"></a>
  59. </div>
  60. <div id="Content">
  61. <p>There have been at least three forks of gpsd wandering around, all
  62. of which are now defunct. This page will explain matters.</p>
  63. <p>The gpsd project was started in 1995 by Remco Treffkorn, back when
  64. GPS technology was a shiny new thing. Remco laid out a sound basic
  65. framework for a utility that functioned without much fuss for nearly
  66. a decade.</p>
  67. <p>Remco's design may, in a sense, have been too good. Because gpsd
  68. didn't cause problems or attract attention, the maintainers (including
  69. Remco himself and Derrick Brashear) turned to other more pressing
  70. problems. The code was neglected for years at a stretch, and became
  71. rather dusty. The original architecture started to show signs of
  72. strain when Remco, Derrick, and Russ Nelson bolted on support for the odd
  73. proprietary format of the EarthMate GPS between early 1999 and late
  74. 2002.</p>
  75. <p>Thereafter, Russ Nelson hosted the project on <a
  76. href='http://pygps.org/'>pygps.org</a> for several years and became
  77. one of its three maintainers. He continued the gpsd tradition by
  78. largely ignoring the code once he had gotten it working well enough to
  79. support <a href="http://pygps.org">pyGPS</a>.</p>
  80. <p>Sometime during this period Fritz Ganter, author of the <a
  81. href="https://sourceforge.net/projects/gpsdrive/">GPSdrive</a> project,
  82. forked gpsd. There are a couple of different stories about why the fork
  83. happened and some clashing memories. However, the gpsdrive version did
  84. not diverge from the parent gpsd in any significant way. The protocol it
  85. spoke was a proper subset of gpsd-2's. This variant is also dead; the
  86. new maintainer, J&#246;rg Ostertag, dropped it from the gpsdrive-2.10
  87. prereleases in 2007.</p>
  88. <p>Another fork was ngpsd, part of the <code>NavSys</code> project.
  89. This diverged from the gpsdrive fork in 2002. The author, Amaury
  90. Jaqcquot, is now on the gpsd list and ngpsd has been officially
  91. retired.</p>
  92. <p>Yet another fork of gpsd was moved into C++ by Thomas Hargrove and
  93. called <code>tgpsd</code>. The protocol it spoke was almost a proper
  94. subset of that of gpsd, with PDAVMSQ commands and an 'I' command that
  95. could query the azimuth/elevation/signal-strength of an individual
  96. satellite. As of December 2006 the <code>tgpsd</code> project page has
  97. dropped off the net.</p>
  98. <p>Further forks of <code>gpsd</code> seem unlikely, as the project
  99. has since become sufficiently large and visible to co-opt most
  100. potential developers.</p>
  101. <p>In August 2004, Eric Raymond (yes, <em><a
  102. href='http://www.catb.org/~esr/'>that</a></em> Eric Raymond) tripped
  103. over a minor problem with gpsd while playing with his new toy, a
  104. BU-303 USB GPS. He looked at the code, muttered imprecations about
  105. the thick layer of dust on it, and began hacking.</p>
  106. <p>About a week of frenzied coding later, Eric had (a) completely
  107. refactored and cleaned up the code, (b) added every feature then on
  108. the developers' wishlists, (c) documented it all, and (d) added
  109. substantial new features of his own, including the libgps service
  110. library that allows C developers to manage a gpsd session in a
  111. remote-procedure-call-like way (e.g., without having to worry about
  112. gpsd's protocol or how to unpack its data into a C structure).</p>
  113. <p>Eric's work became the prototype for gpsd-2.0. In mid-August of
  114. 2004, Eric moved the project to Berlios with the approval and
  115. cooperation of all three of the 1.x maintainers. (The main reason
  116. for that choice of hosting site was that it was among the first to
  117. offer Subversion, which was new technology at the time and which
  118. Eric and the 1.x developers were all interested in experimenting with.)</p>
  119. <p>In early 2005 the project took another significant turn as Eric
  120. implemented packet-sniffing and autobauding, threw out all the
  121. old configuration options. and factored the daemon into a thin
  122. multiplexer layer sitting on top of a set of device drivers. Support
  123. for non-NMEA devices dates from this redesign; SiRF was the first.</p>
  124. <p>In the year between June 2005 and June 2006 the <code>gpsd</code>
  125. project went from being mostly a solo effort by Eric to attracting a
  126. flourishing community of developers. Prominent among them are Chris
  127. Kuethe and Gary Miller, who were given release authority in October
  128. 2006.</p>
  129. <p>By the end of 2006, <code>gpsd</code> supported several vendor
  130. binary protocols as well as the original NMEA and Zodiac. The suite
  131. of GPS test tools had greatly expanded, and we implemented a rigorous
  132. regression-test framework for the daemon itself. The daemon had
  133. acquired new features like multi-device capability and hotplug
  134. autoconfiguration.</p>
  135. <p>The daemon's core code has been pretty stable since 2006. Adding
  136. drivers for new vendor protocols is a routine process now; we've had
  137. at least two contributed by people who aren't core GPSD developers.
  138. In early 2009 Eric cleaned up and rewrote a lot of our test and
  139. configuration tools; <code>gpsmon</code> dates from this time
  140. (replacing and generalizing earlier <code>sirfmon</code>).</p>
  141. <p>In 2007-2008 the GPSD project got its first new competition since
  142. 1.x days, a project called Gypsy positioned directly against what the
  143. author believes to be our design mistakes. We discuss it <a
  144. href="gypsy.html">here</a>.</p>
  145. <p>In July and August 2009 ESR <a
  146. href="protocol-evolution.html">redesigned the GPSD command
  147. protocol</a> and gave <code>gpsd</code> the ability to read data from
  148. marine AIS receivers and pass it to clients.</p>
  149. <p>In January 2010, the GPSD project <a
  150. href="http://thedailywtf.com/Articles/Bad-Code-Offsets-Open-Web-Innovation">won</a>
  151. the first Good Code Grant from the Alliance for Code Excellence.</p>
  152. <p>In March 2010 the project changed version-control systems, moving
  153. from Subversion to git. In April 2011, it changed build systems,
  154. dumping autotools for scons.</p>
  155. <p>In August 2011 we shipped the long-awaited 3.0 major release.
  156. Following this, the codebase proved so mature that, when it was ported
  157. by cross-development to a MIPS-based router in mid-September, no C
  158. changes at all were required.</p>
  159. <p>In late September 2011, the announcement that the Berlios forge site
  160. would be shutting down at the end of 2011 forced the project to move
  161. to Savannah.</p>
  162. <p>In the 3.12 release of January 2015, the undocumented remnants of
  163. client-library support for the pre-JSON query protocol were
  164. removed.</p>
  165. <p>In April 2019 GPSD handled the second GPS era rollover with
  166. barely a hitch.</p>
  167. <p>At the end of May 2019 the project repository, bugtracker, and web
  168. content moved from Savannah to GitLab, with the web content served
  169. by GitLab pages and updated automatically on repository pushes.
  170. Redirects were left in place on the old website at ibiblio.</p>
  171. <hr>
  172. <script src="datestamp.js"></script>
  173. </div>
  174. </body>
  175. </html>