I have audited the licensing of Darkbot, and I have come to the
conclusion that the licenses in the current source code conflict with
each other. My knowledge of Darkbot history has some holes in it, but
this is the story as best as I can tell.
There is an old license that Luiz says was written by Jason. It was
introduced somewhere between 5f and 6f6-r6. This boiled down to "No
commercial use. No modifications to be distributed.". Before that,
there was no license. I'll call this #1.
Somewhere between 6v6-r6 and 7rc6 more text was added to that license..
It included language that I think is ambiguous. It's hard to summarise,
but I think - "No changing license. No changing copyright. No
liability." I'm not sure who added those terms, likely Luiz. I'll call
this #2. The combination of #1 and #2 are currently in README, and
source/main.c.
In 2004 Ron added (I suspect by accident) the GPL 2 license in a COPYING
file. At the time Ron was learning autoconf and automake. If you don't
know what you are doing, autoconf can add this GPL COPYING file to your
project automatically, it does that by default, you have to turn it off
with an obscure option. This is why I think it snuck in by accident.
The older license text was not removed, and the other changes to source
files that GPL suggest where not done.
In 2006 I joined the Darkbot project, read the COPYING file, and thought
Darkbot was licensed under GPL 2. I subsequently added source files in
the source/compat directory that are also GPL 2. These files get
statically linked to the executables under some circumstances, they are
compatibility replacements for OSes that are missing things from their
libc. GPL is viral via static linking, so this means that currently
Darkbot is GPL 2 licensed via the source in source/compat. At the time,
I thought it was anyway, so thought nothing of adding those files.
GPL conflicts with the "No commercial use. No modifications to be
distributed." terms of license #1. GPL also conflicts with the "No
changing license." of license #2, even changing to GPL conflicts with
that later term.
We are using SourceForge infrastructure for Darkbot, and have been since
long before I joined. SourceForge requires the use a license that is
compliant with the Open Source Initiative. The #1 and #2 licenses are
not compliant, and is also not compliant with other parts of the
SourceForge terms of use. http://slashdotmedia.com/terms-of-use/
clauses 6 and 7 are the relevant clauses.
So moving to GPL or a similar Open Source Initiative compliant license
is a good idea. Even if we moved from SourceForge to some other project
hosting site, they would likely have similar terms. Moving to a non GPL
license means that we will have to find suitably non GPL versions of the
source/compat files. Technically it's not even possible to have a
project hosting site host our source code under the "No modifications to
be distributed." term of license #1.
It is my opinion that GPL 2 is good enough that officially moving to it
is OK. It is also my opinion that GPL 3 is not so good, I try to avoid
it. So my suggestion is to officially drop the old license, and change
to "GPL 2 only" not "GPL 2 or later". Personally I'd prefer a BSD or
MIT style license, but GPL 2 would be the easiest move.
The next problem is that to change license we need the permission of who
ever owned the copyright for the code with the original license #1. Due
to the "No changing license." term of #2, we need to ask permission of
any one that contributed code after that license change as well. Luiz
was going to double check the email addresses of contributors anyway, by
emailing them, now there's something else he can add to those emails.
Last edit: onefang 2014-04-30
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have audited the licensing of Darkbot, and I have come to the
conclusion that the licenses in the current source code conflict with
each other. My knowledge of Darkbot history has some holes in it, but
this is the story as best as I can tell.
There is an old license that Luiz says was written by Jason. It was
introduced somewhere between 5f and 6f6-r6. This boiled down to "No
commercial use. No modifications to be distributed.". Before that,
there was no license. I'll call this #1.
Somewhere between 6v6-r6 and 7rc6 more text was added to that license..
It included language that I think is ambiguous. It's hard to summarise,
but I think - "No changing license. No changing copyright. No
liability." I'm not sure who added those terms, likely Luiz. I'll call
this #2. The combination of #1 and #2 are currently in README, and
source/main.c.
In 2004 Ron added (I suspect by accident) the GPL 2 license in a COPYING
file. At the time Ron was learning autoconf and automake. If you don't
know what you are doing, autoconf can add this GPL COPYING file to your
project automatically, it does that by default, you have to turn it off
with an obscure option. This is why I think it snuck in by accident.
The older license text was not removed, and the other changes to source
files that GPL suggest where not done.
In 2006 I joined the Darkbot project, read the COPYING file, and thought
Darkbot was licensed under GPL 2. I subsequently added source files in
the source/compat directory that are also GPL 2. These files get
statically linked to the executables under some circumstances, they are
compatibility replacements for OSes that are missing things from their
libc. GPL is viral via static linking, so this means that currently
Darkbot is GPL 2 licensed via the source in source/compat. At the time,
I thought it was anyway, so thought nothing of adding those files.
GPL conflicts with the "No commercial use. No modifications to be
distributed." terms of license #1. GPL also conflicts with the "No
changing license." of license #2, even changing to GPL conflicts with
that later term.
We are using SourceForge infrastructure for Darkbot, and have been since
long before I joined. SourceForge requires the use a license that is
compliant with the Open Source Initiative. The #1 and #2 licenses are
not compliant, and is also not compliant with other parts of the
SourceForge terms of use. http://slashdotmedia.com/terms-of-use/
clauses 6 and 7 are the relevant clauses.
So moving to GPL or a similar Open Source Initiative compliant license
is a good idea. Even if we moved from SourceForge to some other project
hosting site, they would likely have similar terms. Moving to a non GPL
license means that we will have to find suitably non GPL versions of the
source/compat files. Technically it's not even possible to have a
project hosting site host our source code under the "No modifications to
be distributed." term of license #1.
It is my opinion that GPL 2 is good enough that officially moving to it
is OK. It is also my opinion that GPL 3 is not so good, I try to avoid
it. So my suggestion is to officially drop the old license, and change
to "GPL 2 only" not "GPL 2 or later". Personally I'd prefer a BSD or
MIT style license, but GPL 2 would be the easiest move.
The next problem is that to change license we need the permission of who
ever owned the copyright for the code with the original license #1. Due
to the "No changing license." term of #2, we need to ask permission of
any one that contributed code after that license change as well. Luiz
was going to double check the email addresses of contributors anyway, by
emailing them, now there's something else he can add to those emails.
Last edit: onefang 2014-04-30
After posting on the web site, sending emails to past authors, etc, then waiting two months, no one objected. So this was done in https://sourceforge.net/p/darkbot/darkbot/ci/886739034826e67284c937c41ed4c6b2c1f8d8ca/