[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Reading NI TDMS files

From: John W. Eaton
Subject: RE: Reading NI TDMS files
Date: Thu, 20 Dec 2007 14:36:11 -0500

On 20-Dec-2007, address@hidden wrote:

| I didn't mean to start such an extensive discussion when I asked my
| question originally, but it has been very interesting and I have learned
| a lot about the GPL and open source in general as a result of following
| it.  Having read most of the GPL FAQ, I now feel myself enough of an
| expert ;-) to don my Nomex suit and wade into the fray.  I would propose
| the following Gedankenexperiment:
| 1. The Octave code is distributed under the GPL and everything is OK.
| 2. I write an extension to link Octave to some proprietary code, say
| NI's DLL.  It may also have other uses.  This is perfectly OK as long as
| I don't distribute the result (in whatever sense the GPL means this),
| since I am free to use the Octave code in any way I like.  (I'm not
| actually going to do this.)
| 3. Now I decide to give the code I wrote to someone else.  Still should
| be OK, since it contains no GPL code, and I can distribute it under any
| license I like as long as I don't include it with Octave.  I can even
| publish instructions for using it with Octave (free speech!).  It may be
| considered in poor taste by the community, but I have the Nomex suit.
| 4. Conceivably it could even be distributed legally on the same server
| as the Octave code as long as they were not "bundled" in some way.  This
| would be poor policy and subversive to open source principles, but IMHO
| would not violate the GPL.
| Any flaws in this chain?

Yes, section 5 of the GPLv3 states:

    5. Conveying Modified Source Versions.

    You may convey a work based on the Program, or the modifications to
  produce it from the Program, in the form of source code under the
  terms of section 4, provided that you also meet all of these conditions:

      a) The work must carry prominent notices stating that you modified
      it, and giving a relevant date.

      b) The work must carry prominent notices stating that it is
      released under this License and any conditions added under section
      7.  This requirement modifies the requirement in section 4 to
      "keep intact all notices".

      c) You must license the entire work, as a whole, under this
      License to anyone who comes into possession of a copy.  This
      License will therefore apply, along with any applicable section 7
      additional terms, to the whole of the work, and all its parts,
      regardless of how they are packaged.  This License gives no
      permission to license the work in any other way, but it does not
      invalidate such permission if you have separately received it.

      d) If the work has interactive user interfaces, each must display
      Appropriate Legal Notices; however, if the Program has interactive
      interfaces that do not display Appropriate Legal Notices, your
      work need not make them do so.

    A compilation of a covered work with other separate and independent
  works, which are not by their nature extensions of the covered work,
  and which are not combined with it such as to form a larger program,
  in or on a volume of a storage or distribution medium, is called an
  "aggregate" if the compilation and its resulting copyright are not
  used to limit the access or legal rights of the compilation's users
  beyond what the individual works permit.  Inclusion of a covered work
  in an aggregate does not cause this License to apply to the other
  parts of the aggregate.

I think the key parts are "work based on the program" in the first
paragrah, as I would claim your plug-in is (certainly if it uses
Octave interfaces and internal data structures) and 5(c), which
clearly states that the license of the whole must be the GPL,
regardless of how the parts are packaged.

The question is whether the plug-in is a work based on the Program
(Octave) and that may depend on the details of the plug-in (the GPL
FAQ has some info about that).  I would claim that if the plug-in uses
Octave interfaces and internal data structures (as any .oct file does)
then it is a work based on the Program.

An exception to the above would be something that linked to a "System
Library" (see the GPL for the definition) but for the purposes of this
discussion I'm assuming that you are not referring to that exception.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]