[clfswm-devel] CLFSWM licence change?

madnificent madnificent at gmail.com
Thu Jan 12 20:46:57 UTC 2012


On Sat, Jan 7, 2012 at 1:43 AM, Philippe Brochard
<pbrochard at common-lisp.net> wrote:
> As discussed with Aad Versteden, what to you thing about a CLFSWM
> licence change from the GPL to the BSD (or another free one)?
>
> Best regards,
>
> Philippe
>
> _______________________________________________
> clfswm-devel mailing list
> clfswm-devel at common-lisp.net
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/clfswm-devel


Dear list,


The license change was a request on my end.  I'll try to give a short
overview of my understanding of the options and my personal
preference.  This is legal stuff, so it takes a while to read through
it.  I'm not trying to start a flame war.  Legal issues are complex, I
don't claim to know all about it.  If you are a lawyer or judge, feel
free to enlighten me.



The contenders
--------------
- GPLv2
  GPLv2 basically states that the code itself must be free and must
remain free when licensed to others.  It requires that all code which
links to this code (in terms of lisp, that's all code in the image) is
released under a compatible license.  AFAICT this means you can only
use the code in lisps where only code is loaded under a GPLv2
compatible license [2]. [1] contains an exemplary case.

- GPLv3
  GPLv3 basically states that the code itself must /really/ be free.
Except, it doesn't really do that.  It also removes your right to use
any patents on the software you have provided the license for. I don't
see a statement which explicits that this only holds for the portions
of the code you wrote yourself, nor do I see something stating that it
only holds to patents which you hold yourself.  It's a tad vague for
me as a non-lawyer.  Though at least the talks RMS gave about it talk
about aggressors and non aggressors, so I guess you might be safe.  I
may be missing it, IANAL.  The GPLv3 also clearly shows that the FSF
is ready to attack single individual companies by changing the GPL
according to their needs.

- AGPL
  AGPL basically holds itself to the rules of its underlying GPL
license but also states that if the software is ran on a server (and
it's not distributed), that the source code must also be released.  At
least, that's what I make of it.  So this means that you're /really/
really free, I guess.

- LGPL
  LGPLvX drops the requirement that applications which link to your
application need to be under the same license.  But this doesn't work
for lisp for one reason or another, therefore it seems we need to pick
LLGPL to get the same effect.  The LLGPL hasn't had any tests in court
AFAIK, but at least someone with some legal knowledge has thought
about it.

- 3 clause BSD
  Both BSD and MIT licenses take a different stance on copyright.
Instead of requiring that the code is free, they require that the
coder is free.  3 clause BSD states that you can do whatever you want
with the software, given that you say where you got it from and that
you don't use the names of those that helped write it in the promotion
of your product.  It's incompatible with any GPL license, as it puts
restrictions on how you can distribute it (being, you can't promote it
with the names of the authors).  As a non-lawyer, I think I understand
this license.  I can comprehend the letters which are in there and
convert them into a logical system.

- 2 clause BSD / MIT
  In short this says: here's the code, have fun with it.  It doesn't
actually require much of anything, you just get the code.  This is the
easiest license to understand.  I'm fairly certain that it won't come
back and haunt me.

- (GPLvX) or any future version
  The "any future version" qualifier states that when the FSF creates
a new GPL license, whichever shape or form it takes, the user may pick
that license as well.  This sounds like a smart idea, because it means
that users can get the benefits of any future version of the GPL.
Stop.  This means that *users* can pick any future version of anything
that the FSF deems fit later on.  Contemplate on this for a second.
It means you'll have to comply with anything the FSF makes up for you
in the future.  Like say, you, the programmer, must defend the code in
any copyright claims or lawsuits placed against those using the code.
Or, just for the whack of RMS's dream, all other code you write must
be released under the same license.  Perhaps a future version of the
GPL will state that MIT was good enough all along.  Maybe the FSF is
in need of funding and finds it funny to require money from you in
their later licenses.  Perhaps it'll state that the BigCorp which
bought the FSF feels that they are entitled to the code without giving
anything back.  Or just, to give you a choice, all your base are
belong to us.  Anything goes.  IANAL, but that's basically what you're
saying.  Anything.  The free software foundation has (perhaps
rightfully, yet still) targeted individual contractors in their
licenses.  What this states is that, if RMS goes whack, you're
prepared to go mental with him.  I have yet to meet the first person
with whom I agree on everything, every time.  A common answer is "but
it won't get that far", yet sadly written agreements are only
important when things go wrong.



What we have now
----------------

Currently CLFSWM is released under the in my opinion ludicrous GPLv3
or any future version.  I have stated my dislike for the 'or any
future version' portion in the previous section, I think I have made
my point there (you are free to disagree).  While this license
certainly has the marketing and legal machine of the FSF behind it,
many big projects have explicitly chosen to stay away from it.  One
notable project is the Linux kernel, but there are many many others.

There are several issues with the GPLv3 for us.  None of the code in
the project can, AFAICT, be distributed in non-free lisps.  Though
again the subject is a bit hazy as any code "which users are
reasonably expected to have" do not need to fall under the same
license, seriously I have no idea where that line is drawn.  Even if
the users would want to share the code to get CLFSWM working on those
lisp implementations, they are not allowed to do so.  I don't use
non-free implementations myself, but I prefer to have the choice.  I
want to be left free as a programmer.  Again, I'm not certain of this,
I don't fully understand the GPLv2, let stand the GPLv3.  Just look
online about the vast amount of writing there is on the interpretation
of the GPLv3, it's normal that I don't.  That probably means that it
has been researched, but it also means that I don't know what I'm
getting into.

And that's my main issue against the GPL.  I don't understand the
license.  It is *way* too complex for my tiny little brain to
understand.  I thought I understood, but then I read [1] and suddenly
I realized that I don't understand it at all.  The last thing I want,
is give code /for free/ to people I don't know and get sued for things
I don't understand.  It scares me.  It really does!  I don't even know
what I'm allowed to do in the contributions directory.  I don't want
to get sued in the future for the code I write and I don't even know
if I'm actually allowed to release under the MIT license in there.
You may think you know, but I'd prefer to hear it from a seasoned
lawyer before I take my bet on it.

Lastly, I don't think you really have to hold a gun against someones
head and shout at them "NOW BE FRIENDLY BIATCH!", you can learn to be
friendly and share with each other without the odds of getting tasered
in the sack.  In fact, I don't think they really call it sharing when
you ask for someone on the street to 'share' their iPad with you when
you're pointing a gun at them.



What I prefer over all else
---------------------------

I prefer to understand what I'm opening myself up against.  And that
means that I prefer the MIT license.  I understand the MIT license.
If there were anything simpler than that which allows others to use,
extend and share tho code, I'd probably pick that.  Chances are
extremely slim that a company is going to get rich on the code base of
CLFSWM.  So why limit the options of our users?  Why raise the chance
of getting sued for something you don't understand?  I don't see the
benefits of a less liberal license here.  Your opinion may obviously
be different.

Perhaps it pollutes the ideal of a world full of GPL software.  I
personally believe that a lot of great ideas would never be formalized
into software, if they'd need to open up their source.  The
proliferation of online services is a hint towards this.  Obviously,
it is nothing more than an assumption.  I have no studies to back it
up.  I also believe that companies do give back to the community when
their changes don't provide them with a tactical advantage.  It is
simply more cost-effective to send patches upstream.  Monetary gain is
something companies tend to understand, risk is something they tend to
avoid.  Though again, CLFSWM will most likely not be confronted with
this issue anyways.

Given that users are more inclined to /share/ extensions than to keep
them for themselves, it may even help the development of CLFSWM
itself.  Say that the hook system is separated into a standalone
library.  Other players which don't use CLFSWM may use it in their
systems, even if they were proprietary.  The advancements which they
make into the hooks system can, and likely will, still be shared and
thus make CLFSWM better than what it is.  This is obviously not
exclusive to CLFSWM.

Lastly, I really want the users to be free.  If they want to
spray-paint tables with it: enjoy!  I don't care what you do with it.
If you want to print it and flush it down the toilet: fine!  I hope it
makes you smile.



The complex legal situation
---------------------------

Given the fact that some code has been used from the stumpwm project
and some other code has been used from other projects, you have to
thoroughly consider what needs to happen in order to keep everything
working and legally sound.  Or at least something that seems legal.
Any change (including the one in which you pick GPLv2 libraries and
put them in a library which is under the GPLv3) needs to be studied
before claiming that you can just pick the code and alter the license.
 It could be that some parts need to be rewritten or split off.

Splitting things off brings us to another interesting subtopic.  Due
to QuickLisp it has become a lot simpler to split up a single
application into multiple systems and packages (besides, it could be a
single tarball to download without QuickLisp too).  Currently most of
CLFSWM seems to be in a single package, everything is in one system.
Various systems can have various licenses.  Perhaps this could ease
the transition towards a more liberal licensing scheme and perhaps it
could make us use and share more open code (like Alexandria).



A common ground
---------------

As I have heard, some of the users on this list are heavy proponents
of the GPL.  A common ground is obviously the LLGPL, as it at least
gives users the freedom to have a bit of freedom in what they want to
do with the libraries.  I don't fully understand the license and thus
it still scares me off, but it would make me feel less uncomfortable.
A scheme in which multiple licenses are used for various portions of
CLFSWM seems like a viable option for me too.  Anyone using the full
CLFSWM system will then be forced to use the most oppressing license
(GPLv3 or later), for various smaller portions the compatible MIT
license could be used.  By all means, I do suggest we drop the "or any
future version" of the license we have now.  If you want to allow
swift upgrades, then the only sensible thing to do is to give all
rights to the code to Philippe Brochard and let him take the
responsibility of upgrading the license when necessary.



It would be absolutely awesome if I could hear each contributor's
preference and the reason for his preference!  I'm eagerly waiting to
hear from all of you.


Best regards,

Aad Versteden



[1] http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-CLISP-is-under-GPL
[2] Practically speaking, GPLv2 is only compatible with 2-clause BSD,
which is the same as MIT, or other (L)GPLv2 code.  AFAIK GPLv2 and
GPLv3 are incompatible.  Kindergarten psychology tells me pictures
work better: http://www.gnu.org/licenses/quick-guide-gplv3-compatibility.png
Expat is the name the FSF uses for what everyone else calls the MIT
license.




More information about the clfswm-devel mailing list