Do we need different levels of OSI compliance?
defines rules for Open Source licenses. Licenses that like to call
themselves OSI compliant need to match these rules and get an approval
from OSI. Do these rules still serve the demands of the OpenSource
community of today?
The most important issue in the OpenSource community of today is
collaboration. In order to support collaboration, people need to be
able to combine code from different authors which today often means
code that has been published under different licenses. So a real
Open Source license should allow the covered code to be used together
with code from other OSI compliant licenses.
Taking a closer look at the licenses listed at OSI, results in some licenses
that are compatible to each other in a way that allows to include code
covered under license a) in a project covered by license b) and vice versa.
There are other licenses that do not allow this. Wouldn't it then be a
good idea to call the licenses that are compatible to each other "first class
OSI compliant" and the others "second class OSI compliant"?
Let me give an example: I frequently read that code covered by the GPL and
code covered by the BSD license are compatible to be used together within a
single project. Is this really true?
The GPL requires all projects that include code covered by the GPL to be licensed
under the GPL.
There is no problem with including a small part of BSD code inside a bigger
project licensed under the GPL. This is not because both licenses are
compatible but only because this kind of usage is tolerated by the authors
of the code covered by the BSD license. However, you cannot include a small
part of GPLd code into a bigger project licensed under the BSD license without
losing the freedom of the BSD project.
What the GPL tries to to is to try to change the license of other people's code.
It is questionable whether this is compliant with the European Copyright law.
How can this problem be avoided?
The first step would be that OSI would list the licenses that are compatible
to each others in both directions in a separate list.
The second step would be to change the incompatible licenses. If e.g. the GPL
would not require the whole project to be put under the GPL but just require
that the whole project must not use code that is not under a OSI compliant
license, the primary intention of the GPL would not be given up but the
GPL would become compatible to most other OSI licenses.