Reconsidering the GPL licensing of Maxima



                   
Reconsidering the GPL (GNU Public License) licensing of Maxima,
and a proposal to put Maxima under a "library" style license.

1. To my surprise, DOE Macsyma itself is not restricted by GPL.

The official word on DOE Macsyma is contained in this link:
http://www.osti.gov/estsc/catalog-alphabetical.htm in which there are
2 entries for DOE-Macsyma.

Entry 1: this DOE Macsyma has "unlimited" distribution, for SUN
workstations, (This is apparently work by Jim O'Dell based on (my)
Berkeley Franz Lisp port, with additions sponsored by DOE.)

and Entry 2: this DOE Macsyma has "copy/unlimited" distribution for
PCs and many other systems, by Bill Schelter.

The conclusion, easy to see from the web page, is that a non-exclusive
copy could be taken out by anyone, and essentially anything could be
done with it. For example, a copy could be taken out of the DOE
library, modified in secret, and re-sold.  The transmission letter
from DOE to Bill was not a special permission, but was a confirmation
and restatement that Bill, has permission to do  to the
code, non-exclusively. Bill happened to ask if he could redistribute
under GPL, but those restrictions do not bind anyone else who takes
the same DOE Macsyma code out of the library.

2. Why Bill Schelter's alterations for DOE Macsyma that went
into DOE Macsyma are not restricted by GPL either.

DOE's code, including the code that Bill fed back into the DOE
library, and including fixes authored by others (including me) was
clearly NOT inherently bound by GPL.  Whatever code Bill gave back to
DOE was implicitly with permission for them to re-release as DOE saw fit.

3. Did Bill understand the consequences of GPL?

Maybe not. There's lots of evidence.

In early September, 2000
I asked Bill if it would be ok for Franz Inc or me to post a free
version of Allegro Common Lisp with Maxima (--at that time Franz
Inc sold Lisp on Windows, Solaris, etc, but gave it away on linux,
figuring that linux users were not willing to pay for anything, and
the good will was valuable).

On Sept 7, 2000 Bill emailed:
" I think it would be fine for them or you to post a maxima allegro
linux binary."

On April 7, 2001 Bill emailed:
" I think it is good to maintain compatibility with other lisps, so
that people can use features or platforms that may be unique to those
lisps, and I am very happy to see people contributing patches and
making sure it does run elsewhere."

On July 26, 2001, 4 days before he died, Bill sent
"I am out of town til september and it is a little hard for me to maintain
these things from russia. "


4. It think it would benefit the Maxima group to convert from GPL to
LGPL (the Lesser GPL) or better LLGPL (the Lisp Lesser GPL).  I can
see arguments pro/con for a BSD-like license (essentially free use;
don't sue us.)  Each of these would remove the prohibition on Maxima
being distributed in some linkage with non-GPL code.

  In favor of moving away from GPL:

 * Someone could load up and distribute Maxima along with (say)
proprietary lisp libraries of math data (I have used such integral
tables), numerical routines, financial data, artificial intelligence
programs for problem solving, natural language understanding, speech
(I've used this, too) and handwriting, additional front-ends, linkage
libraries for networking, parallel processing, graphics, etc.  It
would provide an incentive for vendors to support additions and
corrections to the LGPL Maxima base.  (e.g. pay people to do so.)
Maxima could be used instead of (say) Maple or Mathematica as a back
end for engineering design etc. resulting in a much larger user base,
contributions to shared libraries, debugging and testing.  Some of the
programs I've used are actually free, just not distributed with source
code)

* Real problems with GPL, esp. with Lisp style programming.  GPL
doesn't really work too well with libraries for which (L)LGPL was
later designed.

see
http://www.fsf.org/licensing/licenses/gpl-faq.html#TOCGPLIncompatibleLibs
The lack of clarity I see has to do with what happens in
what order: distribute, link, use? The FAQ uses the term "release"
e.g.  "You can't release P+Q" which is unclear: how does one define
"+" here? Can you send someone a CD with P, Q, one of them GPL
and an "install script" that links them together?)

My familiarity with BSD and my own experience would suggest a BSD-like
license works pretty well, at least for programmers in an academic
environment who are interested in wide availability of their work,
good relations with donors, future employment of students. (L)LGPL stands
somewhere between GPL and BSD in some sense, and LLGPL seems like
a good spot for Maxima source code.

A particular software vendor has contacted me (and perhaps others)
with this motivation to go to LLGPL. (Slightly rephrased..)

   We want to apply Maxima as part of engineering software with
   approximately 500,000 active users worldwide, resulting in
   increased relevance and growth in the Maxima community.  As the
   effort takes shape, [we] would certainly need to hire
   consultants and engineers dedicated to supporting the Maxima
   community.  We hope the result will be a robust,
   industry-friendly Maxima component likely to be used by many other
   software vendors, making Maxima a de-facto standard library for
   computer algebra, and contributing scale and many interesting
   technical challenges of a practical engineering nature to the
   group. Support of the Maxima code base would be under LLGPL, so that
   the lisp library would continue to be open source.


  I am probably not the most eloquent advocate of GPL. Perhaps
others will see it in a more positive light. Anyway, here's
my attempt to state the case in favor of keeping GPL...

* GPL has only one lever to propagate its notion of free software: If
you want to distribute GPL software linked with your software, then
you are compelled to distribute your programs free (in the GPL sense), or
not distribute the linked version. This lever punishes programmers
seeking to sell programs, (as well as potential users of those programs),
correspondingly giving an advantage to the GPL program developer. 

NEXT STEPS

5. Consider can one can move from GPL to LLGPL.

I think that the Maxima project on sourceforge could do so if
individuals proclaimed that their contributions are covered by LLGPL
(or BSD or even public domain). I am personally agreeable to BSD for
my own work, but certainly it can then be distributed under LLGPL too.
(The DOE-Macsyma contribution seems compatible with BSD
or LLGPL, subject to the geographical discrimination about Cuba etc).
I have noticed some "share" directory contributions that say GPL;
the authors or copyright holders can simply edit the file(s) to say LLGPL.

If there is code that Bill added to the DOE library version that he
intended to be solely available under GPL and not to other DOE-Macsyma
recipients, then that would cause a problem, since we cannot get
his permission. But see his email, quoted above, which I believe
accurately reflects his view.  (Of course any code that is the same in
Maxima and in DOE-Macsyma is essentially dual-licensed: though
there is a GPL version, there is an identical version that is NOT GPL,
and hence the code could be dealt with as LLGPL or even public domain.)

* If there are sticking points where GPL is to be enforced because
an author really wants to avoid his/her code running in a commercial
lisp or a commercial front end or with a commercial numerical library, a
plausible route around this would be to set up a separate version of
(DOE-Macsyma)+ (LLGPL Maxima contributions) in sourceforge, as a
library licensed under LLGPL.  I certainly would prefer LLGPL
to GPL (or to proprietary) for developing new computer algebra
programs because I would like my code to be used with any
other code not only code that happens to be GPL.

Then there could also be a version, related in an obvious way, that
would be a GPL Maxima.  This fork would include the LLGPL Maxima code
compiled and linked with a GPL lisp, a GPL front end, etc. forming a
complete executable download. (n front ends, m lisps, k environments =
nXmXk possible releases.)  Of course this would have the LLGPL Maxima
sources as well as sources for lisp, defsys, makefiles, etc, for those
interested. It could also include code that the author truly, really,
wished to be GPL and not LLGPL.

Here are two less desirable alternatives.

* In the absence of our cooperation in converting to LLGPL, a vendor
sufficiently interested in the technology could take a DOE-Macsyma and
develop a totally proprietary system out of it. Symbolic/Macsyma Inc Redux.
Not a good idea, I think.

* In the absence of our cooperation in converting to LLGPL, one or
several vendors sufficiently interested in the technology could
start with a fresh copy of DOE-Macsyma and develop an LLGPL non-proprietary
system out of it. This strikes me as a better idea than the above, since it
could throw some resources into a shared Maxima core. Improvements to
it would be available to others, for example. Of course it would be
better if we DID cooperate!  (see discussion of "kidnapping paranoia"
in softpanorama link below, for other reasons why this LLGLP setup
might be advantageous, even for vendors who might otherwise be secretive.)



6. Next steps (tentative plan, and in the interests of being definite and
briefer than otherwise, I have omitted my thoughts about contingencies.
Not to say this is the ONLY plan.):

a. Identify any stuff that is definitely not LLGPL compatible. Basically,
ask people about their recent contributions to Maxima. Separate the
GPL-only parts, if there are any.

 b. Declare the current version an LLGPL fork of the project.
This could include all of the DOE-Macsyma code. Files that say (c)
William Schelter 1984, 1987 should be in 1990 DOE-Macsyma, and hence
not restricted by GPL.  The DOE-Macsyma version from Bill Schelter
appears to have been submitted to DOE no earlier than 1990.

c. If there truly is interest in a strictly GPL version, make a
fork that links to the LLGPL code, but includes one or more
GPL-only sub-projects.

........................

 Bibliography of useful links

(These links were found using Google. They may not be the most
authoritative sources)

 A place to start to find out about LGPL (Lesser or Library)
Gnu Public License and the LLGPL, the Lisp LGPL.
http://www.cliki.net/LGPL

Explanation of LLGPL modification, and why Lisp and C are different.
http://opensource.franz.com/preamble.html

Argument by RMS as to why you might prefer GPL (more restrictive) to
LGPL.  http://www.mirror5.com/licenses/why-not-lgpl.html (Summary:
Licensing under GPL supports producers of GPL-free software by denying
non-GPL programmers the use of GPL software. Side effect: combination
of GPL and non-GPL software cannot be distributed to users.)

The current text of LGPL, version 2.1 February, 1999
http://opensource.franz.com/license.html

Interesting arguments I came across, in my search, d about why GPL is
not a good thing for free software (no, not by Microsoft's
lawyers....)
http://www.softpanorama.org/Copyright/License_classification/social_roots_of_GPL.shtml

....
note:
(As most of you know) I am part owner of a software company, Franz Inc,
which was started with some Berkeley students in 1984. Franz Inc sells 
Allegro
Common Lisp. It also runs a telnet server at telnet://maxima.franz.com
of maxima 5.9.0 in Allegro. Franz Inc has always been concerned that
Macsyma be runnable on their lisp systems.

The software vendor quoted above, Mathsoft ( http://mathsoft.com )
-- MathCad is their product-- asked me to study this issue. When it
seemed that composing this note and following leads would take some
time, we came to an agreement that they would pay me as a consultant for
the figuring out the message shown here.

I have passed a preliminary draft of this note around to collect
comments and make it as clean as possible, and have asked a few of the
key people who have been active on this mailing list for their reaction
 as to going to LLGPL.
So far, they are universally in agreement that they would be happy for
their own code to be LGPL or LLGPL. A few indicated a concern regarding
the legal status of Bill's enhancements to the code, an issue I attempted
to address above.



RJF

last update 9/1/2005 2:13PM PDT

..........