[SGVLUG] Dash Express GPS

Emerson, Tom (*IC) Tom.Emerson at wbconsultant.com
Thu Sep 25 16:09:20 PDT 2008


> -----Original Message----- Of Charles Wyble
> 
> 
> Stan Slonkosky wrote:
> > I got an email yesterday from Traffic Gauge stating that ...
> > This is a Linux-based GPS and the software can be downloaded from 
> > http://www.dash.net/OpenSource
> 
> So here is my question. Most of the GPL code downloads are 
> simply user 
> land bits and GNU tool chain.
> In other words things you can get anyway.
> 
> Is this required to distribute?

It may depend on which version of the GPL they are using.

GPLv2 section 3, which covers distribution in OBJECT/BINARY form,
states:

The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source code
means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to control
compilation and installation of the executable. However, as a special
exception, the source code distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies the
executable. 

=========

Note the "special exception" -- as you noted, many of the items are "the
tool chain" [compiler, linker, etc.] and would be exempt per this
clause.  HOWEVER, if you INCLUDE the "tools" as part of the object
package, you need to include the source.  (by virtue of this same clause
-- in order to distribute an Unmodified version of the program, you
still have to provide [access to] the source)

In this case, should the company provide the tools?  I did see the gcc
compiler listed as an unmodified item, but can you really "compile" a C
program /on the device itself/?

=========

GPLv3, section 1, states this even clearer:

   "...The "Corresponding Source" for a work in object code form means
all the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's System
Libraries, or general-purpose tools or generally available free programs
which are used unmodified in performing those activities but which are
not part of the work. "

Now, GPLv3 section 6 [essentially the same as section 3 above, providing
"non-source" forms of the code] has some interesting language:

     "...A "User Product" is either (1) a "consumer product", which
means any tangible personal property which is normally used for
personal, family, or household purposes, or ..."

OK, easy enough to classify a dash-mounted GPS as a "consumer product"
here...

And 

     "..."Installation Information" for a User Product means any
methods, procedures, authorization keys, or other information required
to install and execute modified versions of a covered work in that User
Product from a modified version of its Corresponding Source. The
information must suffice to ensure that the continued functioning of the
modified object code is in no case prevented or interfered with solely
because modification has been made."

OK, I could see this covering a "make" script, but again, the compiler
itself and other "standard tools" would not seem to apply.

However, the next clause states:

     "...If you convey an object code work under this section in, or
with, or specifically for use in, a User Product, and the conveying
occurs as part of a transaction in which the right of possession and use
of the User Product is transferred to the recipient in perpetuity or for
a fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied by
the Installation Information. But this requirement does not apply if
neither you nor any third party retains the ability to install modified
object code on the User Product (for example, the work has been
installed in ROM)."

Which I take to mean: if you build a piece of hardware, controlled by a
general-purpose CPU, and don't provide a method of updating the
firmware, you need not supply the source.  This would be the killer
"out" for companies such as this.  (in other words, I could see how a
dash-mounted GPS could fall into this category quite easily)

> I mean if I make a device that runs Linux and then write a 
> closed source 
> app on top to provide the functionality
> what legal reason do I have to pay for the hosting of various open 
> source tools?

Take a closer read of GPLv2 & 3 -- neither one specifically /requires/
that you make the source and tools available /on a web server/ (they
both say you must provide /at least one of/ several options, and they
both include an option that essentailly states that you /may/ charge, up
to your "actual costs", for a copy of the source) -- see in particular
GPLv2 3b and GPLv3 6b and 6d.  (6d is kind of tricky -- you can charge
for the OBJECT code, but having done so, you can't charge anything
/additional/ for the source) GPLv3 6e is even better -- you're allowed
to push it out ot a peer-to-peer network, so once it's "out there"
you're costs to "host" should drop to zero.  Hmmm... Actually, GPLv3
section 4, "verbatim copies" indicates you can distribute verbatim
copies for "any price or no price for each copy you convey".  So while
you're limited to "your cost" to provide any source code that you
modify, you could charge a million dollars for the compiler, provided
you don't actually modify the compiler.
 
> I'm glad they are using Linux and I am glad they are using 
> off the shelf 
> software as much as possible. However
> wouldn't the extra operational costs of hosting the downloads 
> perhaps be 
> a turn off for using Linux?

As they say all over the 'net, "IANAL", but the GPL was written in a way
to be relatively easily understood without needing a law degree.  If you
see any significant flaws in my analisys of these sections, I welcome
your rebuttal.

Tom


More information about the SGVLUG mailing list