The story of the JUnit license
Since the question about the JUnit license came up recently, I thought I'd clarify the story of why the license is the way it is.
For the first year or so of JUnit's existence we didn't have a license at all. The code was out there, people used it, nobody worried.
After a while it became clear that JUnit was going to be popular. At the same time IBM's lawyers discovered open source. Since Erich and I had been equally involved in the project from the first, we needed to have a license and it needed to be one that the IBM lawyers approved of. This was roughly the time that the CPL came out, I believe with IBM's support. We adopted the CPL, more or less by default.
I want to be clear on this point. The CPL isn't a cunning trick or a political statement. It's just the license that made sense at the time.
About five years ago I began receiving questions from company lawyers about the CPL. They object to the patent provisions for reasons I cannot explain because I have never received an explanation that made sense to me. In these cases I offer to write a commercial license for JUnit with terms that meet their needs. Sometimes the inquirer purchases the license. Sometimes they don't.
One of the options is to issue JUnit under a new license that no one would object to. I don't have any plans to do this. The costs of the conversion are considerable, and would be paid by me. The benefits of the conversion would accrue to large corporations with big legal staffs. It doesn't make sense to me to spend my time for free to make their lives easier. From my perspective, if a company can afford the lawyers to object to the CPL, then they can afford a commercial license. The vast majority of users have no concerns with the current license.
I suppose there is a fantasy scenario where Large Corp. decides to sponsor JUnit for a bazillion dollars a year and as part of the deal I change the license, but that doesn't seem likely at this point.
I can see that from the outside my position looks a bit like extortion: you (big company) don't want bad things to happen, you'd better pay up. From my perspective, though, my position makes sense. If you can pay to object, you can pay to make the objection go away. I have donated many thousands of hours of my time to my community. Should I donate more of my time so lawyers can sleep better at night and give up a source of revenue in the process? That's the part that doesn't make sense to me. I can see the conflict between the two perspectives but I don't have a resolution.
Anyway, that's the story of the JUnit license. I'd be glad to engage in followup discussions here if folks have any questions or comments.
- Just an idea that popped up in my mind:
Would it solve the problem if someone sponsored the move of JUnit to
another licence, instead of bying a commercial license?
As such this sponsor would invest in the community to make JUnit even
more accessible to others.
- Kent Beck wrote on 01/14/11 07:37 AM:
> Commercial licensesIf you don't understand why people object to the patent litigation clause,
> About five years ago I began receiving questions from company lawyers about the
> CPL. They object to the patent provisions for reasons I cannot explain because I
> have never received an explanation that made sense to me. In these cases I offer
> to write a commercial license for JUnit with terms that meet their needs.
> Sometimes the inquirer purchases the license. Sometimes they don't.
well, then you're like me a few days ago, or like most of the people who
use JUnit - you've been completely fooled by the implications of the
license. Start here:
As I now understand it (IANAL), the CPL provides a huge disincentive to anyone
who depends on JUnit to enforce their patent rights with a contributor to
JUnit *for software completely unrelated to JUnit*. CPL (and EPL) contains
a similar patent retaliation clause limited to the licensed program (e.g.,
JUnit), but it's this broader clause in CPL that is problematic.
As licensor, you might think this is a good thing.
If you believe software patents are evil, you might think this is a good thing.
As licensee, if you have a significant software patent portfolio, you should
Ask IBM if they're willing to use someone else's software under the terms
of the CPL license.
I fully understand why you would want to offer commercial licenses for JUnit,
and why changes that reduce your ability to make money that way would not
And I understand that changing the license has some cost to you, for no
apparent benefit to *you*.
I just think it's important for you to understand why others object to the
license you've chosen, even if you don't want to change it. (Given the
history you've described, it's clear that you didn't choose this license
*because* of this clause.) I understand that you need to balance changes
in the license that might further promote use and distribution of JUnit
with the cost to you of doing so and with your ability to make money by
selling commercial licenses.
Do you now understand why others have an issue with the license you're using?
I can understand why Oracle lawyers object to the patent provisions of the CPL. It makes sense to me to work out a business arrangement to address the JUnit license to their satisfaction.
That sounds ideal to me. I would love to have a stable source of support for JUnit so it can continue to evolve.
On Jan 14, 2011, at 8:09 AM, Malte Finsterwalder wrote:
> Just an idea that popped up in my mind:
> Would it solve the problem if someone sponsored the move of JUnit to
> another licence, instead of bying a commercial license?
> As such this sponsor would invest in the community to make JUnit even
> more accessible to others.
[Non-text portions of this message have been removed]
Please leave JUnit under the CPL. We need something to keep Oracle's aggressiveness in check.
On an unrelated note, Google uses and extends JUnit to test the Dalvik VM. Oracle might have already triggered the CPL patent clauses (which may explain in great part why they are focussing on this right now.). A lawyer should look into it.
Former Staff Engineer, SW at Sun Microsystem
On Jan 17, 2011, at 8:42 AM, Kent Beck wrote:
> I can understand why Oracle lawyers object to the patent provisions of the CPL. It makes sense to me to work out a business arrangement to address the JUnit license to their satisfaction.
[Non-text portions of this message have been removed]