LGPL and SqueakMap

Andrew C. Greenberg werdna at mucow.com
Sat Dec 28 20:34:17 UTC 2002


On Friday, December 27, 2002, at 02:18 PM, Nevin Pratt wrote:

> But as suggested, I think we could tighten the GLORP LGPL license by 
> explicitly defining the terms "library" and "calling code" to be more 
> Smalltalk-centric, thus eliminating some element of doubt about the 
> usability of the license.

I disagree.  I have now reviewed the LGPL again, and it is still my 
conclusion that LGPL is wholly inappropriate for working with Squeak 
code, apart from plugins and FFI code.  This is not, of course, a legal 
opinion as to particular issues, which would require the review of a 
particularly library, particular Squeak code using it and a particular 
dispute -- it is merely a generalized concern based upon a detailed 
legal understanding of software licensing issues.  I am not inclined to 
gainsay Nevin's suggestion above until I have seen his "revised" LGPL, 
which would not, in fact, be an LGPL at all as I read it -- my comments 
are, necessarily, based on the LGPL as it presently exists.  I think it 
is simply unworkable for Squeak code by its own terms.

By its own terms, it is really meaningful only in the context of 
statically and dynamically linked libraries.  Its provisions are 
carefully tied to this model of an "application program" and a 
"library," and make little sense outside of the context.  Efforts to 
distinguish between distribution of changesets as opposed to images 
fail, because images (particularly when distributed with the .source 
and .changes files), contain portions of the "library" for any 
meaningful or operative definition of the library, and hence tie into 
the operative provisions of the definition of a "work based upon" the 
"library."  In other words, the  formerly distributable image has now 
become LGPL'd.  Limitations in LGPL make no meaningful sense in the 
Squeak environment -- API's may no longer be modified except under 
particularized limitations.  There is no clear notion of "object code" 
in Smalltalk to construe that term as used in LGPL.  In short, 
virtually every operative provision raised far too many interesting 
questions about their application to a Squeak program using code that 
was LGPL'd, however introduced into an image.

Mind you, we run into nasty interactions between Squeak-L and LGPL as 
well, to the extent that LGPL code is changed to incorporate or using 
Squeak-L and LGPL code both.  But this is permitted only where the 
combined code is licensed under a license that is "no less protective" 
of the chain of distributor's rights than is Squeak-L.  As the license 
now stands, this is not true of LGPL.  I think this is a  nasty 
limitation of the Squeak-L, and one we should undertake to eliminate in 
time, but as things now stand, it DOES stand in the way of much 
mixed-license coding.

I am unimpressed with the response earlier in this colloquy, that 
"changeset" distribution obviates my previously stated objections to 
the xGPL licenses -- that LGPL and GPL do not translate reasonably or 
credibly into Smalltalk monolithic image models.  Even if the effort to 
reduce an image to its "source" changesets might be credible for 
licensing and distribution purposes (although requiring at the outset 
an extraordinary suspension of disbelief: though NOBODY programs by 
operating on changesets unless they have to -- virtually EVERYONE codes 
in the browser), this is simply an effort to finesse the Smalltalk 
image concept -- not to distinguish it.  The license STILL doesn't work 
with images.

Nevin, after my examination, I respectfully remain of the view that 
both GPL and LGPL are carefully tuned to a world of application 
programs and libraries, DLL's or their equivalents and operating 
systems.  They work for their own purposes, but something different is 
required for real Smalltalk coders.   Squeak, gratefully for some of us 
and apparently for others a problem, doesn't ordinarily live in that 
universe.  Our code is ALL open source and all available, from the top 
down.  A few exceptions, the VM itself, which is an application, its 
collection of primitives, which can call to external libraries and more 
recently the FFI stuff, appeal to this more orthodox model of 
system-building, and thus can be credibly used with LGPL (but not GPL 
unless we want to GPL the entire VM) code.  As I read the GPL, this 
problem is not inherent in the license, but rather derives from RMS' 
interpretation, which he believes would preclude calling to a dynamic 
GPL library from a non-GPL application.  New versions of GPL are 
intended by RMS to "fix" the problem -- which means that GPL's present 
"ambiguity" will ultimately become inherent.

Perhaps we shouldn't be speaking in generalities, but rather describing 
in particularities what conduct in which Nevin believes Smalltalk 
coders should not be permitted to engage.  Then we can "back out" to 
the ad hoc license he ultimately desires (whether it be LGPL, Squeak-L, 
BPL or GLORP-L).   Then we can examine the merits of the license at the 
same time.  Without really knowing what Nevin wants to permit or 
prohibit, it is impossible to say whether a particular license does 
what he desires, or hurts others alter on.

Using LGPL for this purpose is like using a sledgehammer to crack an 
egg.  Although it may "feel good" to use an FSF license, it is simply 
the wrong tool.  Indeed, reliance upon the LGPL to avoid the problems 
of the GPL is disfavored by FSF as well, which renamed the license as 
it tried to diminish its use as a midway between GPL and BPL or public 
domain approaches.

Don't do this folks --  besides being legally unstable, it is also bad 
karma.  As I see it, Squeak code should be free as we can make it.  
Here, I use the term "free" not as does RMS, but rather "free" as in 
"free from limitations on the programmer."

That said, let me suggest that, as we start thinking in terms of a 4.0 
release, we REALLY MUST consider relicensing Squeak so it is OSI 
compatible.  It is time to eliminate the Apple fonts, and with it the 
silly Apple provisions.  It is time also to get rid of some of the 
archaic provisions no longer necessary, and get Apple and the chain of 
developers to sign off on the changes -- Apple should mellow out in 
view of their concessions on the APSL, on which they now base Darwin, 
so this should be politically possible.  Alternatively, it might be 
time to start a FreeSqueak movement to recode the vestiges of the 
original, if only to get the system over the hump and credibly 
relicensed.  In any case, neither GPL nor LGPL have anything to offer 
to inform this debate, I believe -- certainly not as they are presently 
crafted.




More information about the Squeak-dev mailing list