summaryrefslogtreecommitdiff
path: root/www/history.html
blob: 2df3d78f135800d22a7048d5de5965dae0d1b643 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="Remco Treffkorn">
   <meta name="Description" content="GPSd is a utility that can listen to a GPS or Loran Receiver and re-publish the positional data in a simpler format.">
   <meta name="Keywords" content="GPS, translator, mxmap, GIS">
   <link rel="stylesheet" href="main.css" type="text/css"/>
   <title>GPSD project history</title>
</head>
<body background="paper.gif">

<div id="Header">
A Brief History of GPSD
</div>

<div id="Menu">
    <a href="index.html">Home<br/>
    <a href="index.html#news">News</a><br/>
    <a href="index.html#downloads">Downloads</a><br/>
    <a href="index.html#mailing-lists">Mailing lists</a><br/>
    <a href="index.html#documentation">Documentation</a><br/>
    <a href="xgps.html">Screenshots</a><br/>
    <a href="index.html#recipes">Recipes</a><br/>
    <a href="index.html#others">Other GPSDs</a><br/>
    <a href="hardware.html">Hardware</a><br/>
    History<br/>

    <a href="http://validator.w3.org/check/referer"><img
          src="http://www.w3.org/Icons/valid-xhtml10"
          alt="Valid XHTML 1.0!" height="31" width="88" /></a>
</div>

<div id="Content">

<p>There are at least three forks of gpsd wandering around.  This page
will explain matters.</p>

<p>The gpsd project was started in 1995 by Remco Treffkorn, back when
GPS technology was a shiny new thing.  Remco laid out a sound basic
framework for a utility that functioned without much fuss for nearly
a decade.</p>

<p>Remco's design may, in a sense, have been too good.  Because gpsd
didn't cause problems or attract attention, the maintainers (including
Remco himself and Derrick Brashear) turned to other more pressing
problems. The code was neglected for years at a stretch, and became
rather dusty.  The original architecture started to show signs of
strain when Remco, Derrick, and Russ Nelson bolted on support for the odd
proprietary format of the EarthMate GPS between early 1999 and late
2002.</p>

<p>Therafter, Russ Nelson hosted the project on <a
href='http://pygps.org/'>pypgs.org</a> for several years and became
one of its three maintainers.  He continued the gpsd tradition by
largely ignoring the code once he had gotten it working rell enough to
support <a href="http://www.pygps.org">pyGPS</a>.</p>

<p>Sometime during this period Fritz Ganter, author of the <a
href="http://www.gpsdrive.cc/">GPSdrive</a> project. forked gpsd.
There are a couple of different stories about why the fork happened
and some clashing memories.  However, the gpsdrive version did not
diverge from the parent gpsd in any significant way.  The protocol
it speaks is a proper subset of gpsd-2's.</p>

<p>Another fork is ngpsd, part of the <a
href='http://www.navsys.org/navsys/'>NavSys</a> project.  This
diverged from the gpsdrive fork in 2002.  The author is now on
the gpsd list and we plan to reconverge it.</p>

<p>There is yet another fork of gpsd written by Thomas Hargrove and called
<a href="http://thomashargrove.com/tgpsd/">tgpsd</a>.  It's written in
C++.  The protocol it speaks is almost a proper subset of that of
gpsd; it has the same PDAVMSQ commands and an 'I' command that can query
the azimuth/elevation/signal-strength of an individual satellite.</p>

<p>In August 2004, Eric Raymond (yes, <em><a
href='http://www.catb.org/~esr/'>that</a></em></em> Eric Raymond) tripped
over a minor problem with gpsd while playing with his new toy, a
BU-303 USB GPS.  He looked at the code, muttered imprecations about
the thick layer of dust on it, and began hacking.</p>

<p>About a week of frenzied coding later, Eric had (a) completely
refactored and cleaned up the code, (b) added every feature then on
the developers' wishlists, (c) documented it all, and (d) added
substantial new features of his own, including the libgps service
library that allows C developers to manage a gpsd session in a
remote-procedure-call-like way (e.g., without having to worry about
gpsd's protocol or how to unpack its data into a C structure).</p>

<p>Eric's work became the prototype for gpsd-2.0.  In mid-August of
2004, Eric moved the project to berlios.de with the approval and
cooperation of all three of the 1.x maintainers.  (The main reason
for that choice of hosting site was that it offered Subversion, which
Eric and the 1.x developers were all interested in experimenting with.)</p>

<p>Fritz Ganter has agreed to unfork the gpsdrive version of gpsd.  So
once the 2.0 version is out and tested. perhaps we will all be able
to ignore it for another N years.</p>

</div>
<hr/>
<script language="JavaScript" src="datestamp.js" type='text/javascript'></script>
</body>
</html>