JaroslavTulach: /* CPL is Unacceptable */ - 2013-05-22 09:02:30

CPL is Unacceptable

←Older revision Revision as of 09:02, 22 May 2013
Line 13: Line 13:
Our new lawyers seem to be concerned about [[CPL]], the [[JUnit]] license. True, [[JUnit]]'s use of [[CPL|Common Public License]] is unique and sort of archaic. I don't know about any other (important) project using this license anymore. But the [[CPL]] was found OK by [[Sun]] lawyers and we've been shipping [[JUnit]] for years! What can be so horrible with it that now it is a problem?
Our new lawyers seem to be concerned about [[CPL]], the [[JUnit]] license. True, [[JUnit]]'s use of [[CPL|Common Public License]] is unique and sort of archaic. I don't know about any other (important) project using this license anymore. But the [[CPL]] was found OK by [[Sun]] lawyers and we've been shipping [[JUnit]] for years! What can be so horrible with it that now it is a problem?
-
Why we are are holding the [[NetBeans]] release and getting ready to remove [[JUnit]] from our standard installation? Is not that silly? [[JUnit]] is necessary part of any serious Java development. What can we do to allow [[JUnit]] and [[NetBeans]] to cooperate and get approval of [[Oracle]]'s lawyers for that?
+
Why we are holding the [[NetBeans]] release and getting ready to remove [[JUnit]] from our standard installation? Is not that silly? [[JUnit]] is necessary part of any serious Java development. What can we do to allow [[JUnit]] and [[NetBeans]] to cooperate and get approval of [[Oracle]]'s lawyers for that?
== [[CPL]] is Not Modern ==
== [[CPL]] is Not Modern ==

JaroslavTulach at 09:01, 22 May 2013 - 2013-05-22 09:01:29

←Older revision Revision as of 09:01, 22 May 2013
Line 3: Line 3:
The whole process went through several stages. Don't get surprised that the point of view changes few times. The real world is/was changing too.
The whole process went through several stages. Don't get surprised that the point of view changes few times. The real world is/was changing too.
 +
<!--
Full disclosure follows: I care about [[NetBeans]]. I want my project to succeed. I trying to help it. I don't care whether I need to oppose my company lawyers, or whether I need to face to providers of the upstream project. I care about only one thing - to successfully release new version of [[NetBeans]] with functionality not crippled by missing [[JUnit]]. That is all I am trying to fight for in this case.
Full disclosure follows: I care about [[NetBeans]]. I want my project to succeed. I trying to help it. I don't care whether I need to oppose my company lawyers, or whether I need to face to providers of the upstream project. I care about only one thing - to successfully release new version of [[NetBeans]] with functionality not crippled by missing [[JUnit]]. That is all I am trying to fight for in this case.
 +
-->
== [[CPL]] is Unacceptable ==
== [[CPL]] is Unacceptable ==

JaroslavTulach at 08:46, 24 February 2012 - 2012-02-24 08:46:41

←Older revision Revision as of 08:46, 24 February 2012
Line 1: Line 1:
-
[[wikipedia:Common_Public_License|Common Public License]] is an [[open source]] software license originally used by [[Eclipse]] later superseded by [[EPL]]. Most of the software projects already migrated from [[CPL]] to [[EPL]], but one important project has not done that yet (as of January 2011): [[JUnit]]. This essay describes my experience when trying to marry [[CPL]] with [[NetBeans]] so the IDE can redistribute [[JUnit]] without worries of any kind.
+
[[wikipedia:Common_Public_License|Common Public License]] is an [[open source]] software license originally used by [[Eclipse]] later superseded by [[EPL]]. Most of the software projects already migrated from [[CPL]] to [[EPL]], but one important project has not done that yet (as of January 2011): [[JUnit]]. This essay describes my experience when trying to marry [[CPL]] with [[NetBeans]] IDE so the project [[Oracle|primary sponsor]] can redistribute [[JUnit]] without worries of any kind.
The whole process went through several stages. Don't get surprised that the point of view changes few times. The real world is/was changing too.
The whole process went through several stages. Don't get surprised that the point of view changes few times. The real world is/was changing too.

JaroslavTulach at 16:21, 18 January 2011 - 2011-01-18 16:21:19

←Older revision Revision as of 16:21, 18 January 2011
Line 63: Line 63:
== External Sources ==
== External Sources ==
-
* [http://www.eclipse.org/legal/eplfaq.php EPL FAQ]
+
* IBM's [http://www.ibm.com/developerworks/library/os-cplfaq.html CPL FAQ]

JaroslavTulach at 15:59, 18 January 2011 - 2011-01-18 15:59:56

←Older revision Revision as of 15:59, 18 January 2011
Line 60: Line 60:
<comments/>
<comments/>
 +
 +
== External Sources ==
 +
 +
* [http://www.eclipse.org/legal/eplfaq.php EPL FAQ]

JaroslavTulach: /* CPL is Great! */ - 2011-01-18 09:06:58

CPL is Great!

←Older revision Revision as of 09:06, 18 January 2011
Line 29: Line 29:
The wording of the [[CPL]] states, that as soon as a company redistributes your software, it cannot sue you for violating any of own software patents. Excellent! [[Open source]] developers hate software patents in general and this is a perfect way to fight with them. Release your software under [[CPL]], wait until [[Oracle]] (or others) use your software and then just violate any of their patents without a risk. I don't think violating patents shall be a hobby, but it can easily turn into a profitable business plan. If the amount of companies using your software grows, some big company (like [[IBM]]) can knock on your door and buy rights to your software to enjoy this patent free violation too.
The wording of the [[CPL]] states, that as soon as a company redistributes your software, it cannot sue you for violating any of own software patents. Excellent! [[Open source]] developers hate software patents in general and this is a perfect way to fight with them. Release your software under [[CPL]], wait until [[Oracle]] (or others) use your software and then just violate any of their patents without a risk. I don't think violating patents shall be a hobby, but it can easily turn into a profitable business plan. If the amount of companies using your software grows, some big company (like [[IBM]]) can knock on your door and buy rights to your software to enjoy this patent free violation too.
-
The things [[CPL]] can achieve are so great!
+
There is a great potential in [[CPL]]!
== Pay for [[CPL]] ==
== Pay for [[CPL]] ==

JaroslavTulach at 09:00, 18 January 2011 - 2011-01-18 09:00:26

←Older revision Revision as of 09:00, 18 January 2011
Line 3: Line 3:
The whole process went through several stages. Don't get surprised that the point of view changes few times. The real world is/was changing too.
The whole process went through several stages. Don't get surprised that the point of view changes few times. The real world is/was changing too.
-
Full disclosure follows: I care about [[NetBeans]]. I want my project to succeed. I trying to help it. I don't care whether I need to oppose my company lawyers, or whether I need to face to providers of the upstream project. I care about only one thing - to successfully release new version of [[NetBeans]]. That is all I am trying to fight for in this case.
+
Full disclosure follows: I care about [[NetBeans]]. I want my project to succeed. I trying to help it. I don't care whether I need to oppose my company lawyers, or whether I need to face to providers of the upstream project. I care about only one thing - to successfully release new version of [[NetBeans]] with functionality not crippled by missing [[JUnit]]. That is all I am trying to fight for in this case.
== [[CPL]] is Unacceptable ==
== [[CPL]] is Unacceptable ==
Line 9: Line 9:
We have new lawyers. The old [[Sun]] lawyers are gone and as we are getting more and more integrated into [[Oracle]], we need to align with its culture. One of such cultural checks is to re-approve all the [[open source]] licenses used by [[NetBeans]].
We have new lawyers. The old [[Sun]] lawyers are gone and as we are getting more and more integrated into [[Oracle]], we need to align with its culture. One of such cultural checks is to re-approve all the [[open source]] licenses used by [[NetBeans]].
-
Our new lawyers seem to be concerned about [[CPL]], the [[JUnit]] license. True, [[JUnit]]'s use of [[CPL|Common Public License]] is unique and sort of archaic. I don't know about any other (important) project using this license anymore. But the [[CPL]] was found OK by [[Sun]] lawyers and we've been shipping [[JUnit]] for ten years! What can be so horrible with it that now it is a problem?
+
Our new lawyers seem to be concerned about [[CPL]], the [[JUnit]] license. True, [[JUnit]]'s use of [[CPL|Common Public License]] is unique and sort of archaic. I don't know about any other (important) project using this license anymore. But the [[CPL]] was found OK by [[Sun]] lawyers and we've been shipping [[JUnit]] for years! What can be so horrible with it that now it is a problem?
-
Why we are are holding the [[NetBeans]] release and getting ready to remove [[JUnit]] from our standard installation? Is not that silly? [[JUnit]] is necessary part of any serious Java development. What can we do to allow [[JUnit]] and [[NetBeans]] to cooperate?
+
Why we are are holding the [[NetBeans]] release and getting ready to remove [[JUnit]] from our standard installation? Is not that silly? [[JUnit]] is necessary part of any serious Java development. What can we do to allow [[JUnit]] and [[NetBeans]] to cooperate and get approval of [[Oracle]]'s lawyers for that?
== [[CPL]] is Not Modern ==
== [[CPL]] is Not Modern ==
-
OK, let's try to ask on a [[JUnit]] mailing list. Maybe the group would not mind upgrading to ''more modern'' license. At the end [[EPL]] is almost identical to [[CPL]]. So let's ask:
+
OK, let's try to ask on a [[JUnit]] mailing list. Maybe the group would not mind upgrading to ''more modern'' license. At the end [[EPL]] is almost identical to [[CPL]]. Be polite:
-
Don't you want to relicense [[JUnit]] to some more commonly used license? [[EPL]] would
+
''Don't you want to relicense [[JUnit]] to some more commonly used license? [[EPL]] would be fine. At least I have not heard any complain about [[EPL]] from our new lawyers yet. Dual licensing to [[CPL]] & [[EPL]] probably too.''
-
be fine. At least I have not heard any complain about [[EPL]] from our new lawyers
+
-
yet. Dual licensing to [[CPL]] & [[EPL]] probably too.
+
-
Asking on a mailing list of [[Open source]] project can result into two options. Either complete silence. Or enormous amount of opinions. The [[JUnit]] community is however different. I've received quick answers with a bunch of damn good reactions and points (including reactions from people I'd never expect to be on such mailing list).
+
Asking on a mailing list of [[Open source]] project can yield various results. Either complete silence. Or enormous amount of opinions. The [[JUnit]]'s mailing list is however one of the best I've participated too. I've received quick answers with a bunch of valuable reactions and points (including reactions from people I'd never expect to be on such mailing list).
From that I have understood that [[wikipedia:Kent_Beck|Kent]] does not want to relicense, but rather offers commercial alternative license for companies scared of [[CPL]].
From that I have understood that [[wikipedia:Kent_Beck|Kent]] does not want to relicense, but rather offers commercial alternative license for companies scared of [[CPL]].
Line 29: Line 27:
While reading the reactions provoked by my query on the mailing list I've noticed an explanation of why [[CPL]] is so great. It is approved [[open source]] license ([[good]]), but it scares some companies (a bit similar story to [[GPL]]) so these companies rather pay ([[good]]) than redistribute [[JUnit]] under [[CPL]]. This is perfect! [[Open source]] projects need donations (read [[WhyGPL]] for details) and it seems that [[CPL]] can generate some revenue. [[Good]]!
While reading the reactions provoked by my query on the mailing list I've noticed an explanation of why [[CPL]] is so great. It is approved [[open source]] license ([[good]]), but it scares some companies (a bit similar story to [[GPL]]) so these companies rather pay ([[good]]) than redistribute [[JUnit]] under [[CPL]]. This is perfect! [[Open source]] projects need donations (read [[WhyGPL]] for details) and it seems that [[CPL]] can generate some revenue. [[Good]]!
-
The wording of the [[CPL]] states, that as soon as a company redistributes your software, it cannot sue you for violating its software patents. Excellent! [[Open source]] developers hate software patents in general and this is a perfect way to fight with them. Release your software under [[CPL]], wait until [[Oracle]] (or others) use your software and then just violate any of their patents without a risk. Or wait until [[IBM]] decides to buy your rights to your software to enjoy this patent free violation too.
+
The wording of the [[CPL]] states, that as soon as a company redistributes your software, it cannot sue you for violating any of own software patents. Excellent! [[Open source]] developers hate software patents in general and this is a perfect way to fight with them. Release your software under [[CPL]], wait until [[Oracle]] (or others) use your software and then just violate any of their patents without a risk. I don't think violating patents shall be a hobby, but it can easily turn into a profitable business plan. If the amount of companies using your software grows, some big company (like [[IBM]]) can knock on your door and buy rights to your software to enjoy this patent free violation too.
The things [[CPL]] can achieve are so great!
The things [[CPL]] can achieve are so great!
Line 37: Line 35:
[[CPL]] seems great for library providers. However [[Oracle]] just can't afford to use it. Thus we were about to buy an alternative license, but we have a problem. While backed by a company [[NetBeans]] is [[open source]] project too!
[[CPL]] seems great for library providers. However [[Oracle]] just can't afford to use it. Thus we were about to buy an alternative license, but we have a problem. While backed by a company [[NetBeans]] is [[open source]] project too!
-
That is why I can imagine buying a commercial license is good for closed source projects. But how can a commercial license be suitable for an [[open source]] project like [[NetBeans]]? If we want to stay open source, we cannot have a commercial license on one of our libraries! We need to have an [[open source]] one. We need to let 3rd parties to take parts of our IDE and use them in an [[open source]] manner.
+
I can imagine buying a commercial license is good for closed source projects. But how can a commercial license be suitable for an [[open source]] project like [[NetBeans]]? If we want to stay [[open source]], we cannot have a commercial license on one of our libraries! We need to have an [[open source]] one. We need to let 3rd parties to take parts of our IDE and use them in an [[open source]] manner.
I hoped the [[JUnit]] guys to have some experiences with such ''dual licensing'', but I guess nobody knows what to in such case. Time to seek different alternatives!
I hoped the [[JUnit]] guys to have some experiences with such ''dual licensing'', but I guess nobody knows what to in such case. Time to seek different alternatives!
Line 45: Line 43:
As few guys pointed on the [[JUnit]] mailing list (including the current ''Steward of [[EPL]]''), the [[EPL]] license supersedes [[CPL]]. This means that [[EPL]] is not just more modern license, it is more modern version of the same license.
As few guys pointed on the [[JUnit]] mailing list (including the current ''Steward of [[EPL]]''), the [[EPL]] license supersedes [[CPL]]. This means that [[EPL]] is not just more modern license, it is more modern version of the same license.
-
Also it turned out that the language of [[CPL]]/[[EPL]] allows anyone to upgrade the license of the covered software to the latest version of the license. In this case one can freely replace [[CPL]] with [[EPL]] without asking for a permission anyone (not even the copyright holder). Quite surprising revelation.
+
Also it turned out that the language of [[CPL]]/[[EPL]] allows anyone to upgrade the license of the covered software to the latest version of the license. In this case one can freely replace [[CPL]] with [[EPL]] without asking for a permission anyone (not even the authors of the code). Quite surprising revelation.
-
This means that [[CPL]] is dead and [[EPL]] can be used instead for all projects.
+
This means that [[CPL]] is dead and [[EPL]] can be used instead for all [[CPL]] covered projects.
== The Right License ==
== The Right License ==
-
For a while it looked like [[CPL]] is a perfect license for an [[open source]] project as it can make it profitable. Companies (especially in US) have to play the patent games and the wording of [[CPL]] is really anti-patent like (which shall be largely applauded by the [[open source]] guys). Any larger software house just has to donate the development of the project to keep its patent portfolio safe. If the [[CPL]] was used on majority of [[open source]] projects, the software patent ''industry'' would likely collapsed!
+
For a while it looked like [[CPL]] is a perfect license for an [[open source]] project as it can make it profitable. Companies (especially in US) have to play the patent games and the wording of [[CPL]] is really anti-patent like (which shall be largely applauded by the [[open source]] guys). Any larger software house just has to donate the development of the project to keep its patent portfolio safe. If the [[CPL]] was used on majority of [[open source]] projects, the software patent ''industry'' would likely collapsed (no wonder lawyers object)!
-
However at the end it turned out that [[CPL]] does not deliver on its ''promise'' to generate donations. As an [[open source]] author you may believe so, but the ''automatic upgrade'' clause just restricts your freedom and gives someone else ([[Eclipse]] foundation these days) right to change license of your project whenever their wish (which basically happened with the release of [[EPL]] and agreement that [[EPL]] supersedes [[CPL]]).
+
However at the end it turned out that [[CPL]] does not deliver on its ''promise'' to generate donations. As an [[open source]] author you may believe so, but the ''automatic upgrade'' clause just restricts your freedom and gives someone else ([[Eclipse]] foundation these days) right to change license of your project whenever they wish (which basically happened with the release of [[EPL]] and agreement that [[EPL]] supersedes [[CPL]]).
-
This sort of resembles the furore when [[RMS]] decided to release [[GPL]]v3. Not everyone likes the third version, some would like to stick with [[GPL]]v2, but alas, the default file header in many software project allowed anyone to pick ''any later version produced by Free Software Foundation''. I guess at that time many projects changed their files to exactly specify the version (like [[Linux]] does, kernel is [[GPL]]v2).
+
The story resembles the furore when [[RMS]] decided to release [[GPL]]v3. Not everyone likes the third version, some would like to stick with [[GPL]]v2, but alas, the default file header in many software project allowed anyone to pick ''any later version produced by [[FSF]]''. I guess at that time many projects changed their files to exactly specify the version (like [[Linux]] does, kernel was always stictly [[GPL]]v2).
On the other hand dealing with multiple licenses is problematic even now. Multiplying this by number of versions of each license will make the ''proliferation of licenses'' even more problematic. This is a [[good]] reason to allow upgrade to most recent version of each license. Under the assumption that you trust the license steward, otherwise you may be surprised when new version is out.
On the other hand dealing with multiple licenses is problematic even now. Multiplying this by number of versions of each license will make the ''proliferation of licenses'' even more problematic. This is a [[good]] reason to allow upgrade to most recent version of each license. Under the assumption that you trust the license steward, otherwise you may be surprised when new version is out.

JaroslavTulach at 08:36, 18 January 2011 - 2011-01-18 08:36:49

←Older revision Revision as of 08:36, 18 January 2011
Line 1: Line 1:
-
[[wikipedia:Common_Public_License|Common Public License]] is an [[open source]] software license originally used by [[Eclipse]] later superseded by [[EPL]].
+
[[wikipedia:Common_Public_License|Common Public License]] is an [[open source]] software license originally used by [[Eclipse]] later superseded by [[EPL]]. Most of the software projects already migrated from [[CPL]] to [[EPL]], but one important project has not done that yet (as of January 2011): [[JUnit]]. This essay describes my experience when trying to marry [[CPL]] with [[NetBeans]] so the IDE can redistribute [[JUnit]] without worries of any kind.
-
Most of the software projects already migrated from [[CPL]] to [[EPL]], but one important project has not done that yet (as of January 2011): [[JUnit]]. This essay describes my experience when trying align [[CPL]] with [[NetBeans]] so our IDE can redistribute [[JUnit]] without problems.
+
The whole process went through several stages. Don't get surprised that the point of view changes few times. The real world is/was changing too.
-
The whole process went through several stages. In fact, I don't care who is preventing my project to succeed. I don't care whether I need to oppose my company lawyers, or whether I need to face to providers of the upstream project. I care about only one thing - e.g. to successfully release new version of [[NetBeans]]. Now you know who I am trying to fight for, and you shall not be surprised that my post will also go through several stages. For a while I'll be fan of [[open source]]. For a while I'll be fan of [[Oracle]]. But all of the time, I'll be fan of [[NetBeans]]. Don't get surprised that the point of view changes it really changed in the real world.
+
Full disclosure follows: I care about [[NetBeans]]. I want my project to succeed. I trying to help it. I don't care whether I need to oppose my company lawyers, or whether I need to face to providers of the upstream project. I care about only one thing - to successfully release new version of [[NetBeans]]. That is all I am trying to fight for in this case.
== [[CPL]] is Unacceptable ==
== [[CPL]] is Unacceptable ==

JaroslavTulach at 20:31, 17 January 2011 - 2011-01-17 20:31:26

←Older revision Revision as of 20:31, 17 January 2011
Line 1: Line 1:
[[wikipedia:Common_Public_License|Common Public License]] is an [[open source]] software license originally used by [[Eclipse]] later superseded by [[EPL]].
[[wikipedia:Common_Public_License|Common Public License]] is an [[open source]] software license originally used by [[Eclipse]] later superseded by [[EPL]].
-
Most of the software projects already migrated from [[CPL]] to [[EPL]], but one important project has not done that yet (as of January 2011): [[JUnit]]. This essay describes my experience when trying to convince my company lawyers to accept [[CPL]], so [[NetBeans]] can redistribute [[JUnit]] without problems.
+
Most of the software projects already migrated from [[CPL]] to [[EPL]], but one important project has not done that yet (as of January 2011): [[JUnit]]. This essay describes my experience when trying align [[CPL]] with [[NetBeans]] so our IDE can redistribute [[JUnit]] without problems.
-
The whole process went through several stages. To capture the feelings, my post will also go through several stages. Don't get surprised that the point of view changes between individual sections. My view of the real situation changed as well.
+
The whole process went through several stages. In fact, I don't care who is preventing my project to succeed. I don't care whether I need to oppose my company lawyers, or whether I need to face to providers of the upstream project. I care about only one thing - e.g. to successfully release new version of [[NetBeans]]. Now you know who I am trying to fight for, and you shall not be surprised that my post will also go through several stages. For a while I'll be fan of [[open source]]. For a while I'll be fan of [[Oracle]]. But all of the time, I'll be fan of [[NetBeans]]. Don't get surprised that the point of view changes it really changed in the real world.
== [[CPL]] is Unacceptable ==
== [[CPL]] is Unacceptable ==

JaroslavTulach at 19:59, 17 January 2011 - 2011-01-17 19:59:21

←Older revision Revision as of 19:59, 17 January 2011
Line 1: Line 1:
[[wikipedia:Common_Public_License|Common Public License]] is an [[open source]] software license originally used by [[Eclipse]] later superseded by [[EPL]].
[[wikipedia:Common_Public_License|Common Public License]] is an [[open source]] software license originally used by [[Eclipse]] later superseded by [[EPL]].
-
Most of the software projects already migrated from [[CPL]] to [[EPL]], but one important project has not done that yet (as of January 2011): [[JUnit]]. This essay describes my experience when trying to convince my company lawyers to like [[CPL]], so [[NetBeans]] can redistribute [[JUnit]] without problems.
+
Most of the software projects already migrated from [[CPL]] to [[EPL]], but one important project has not done that yet (as of January 2011): [[JUnit]]. This essay describes my experience when trying to convince my company lawyers to accept [[CPL]], so [[NetBeans]] can redistribute [[JUnit]] without problems.
 +
 
 +
The whole process went through several stages. To capture the feelings, my post will also go through several stages. Don't get surprised that the point of view changes between individual sections. My view of the real situation changed as well.
== [[CPL]] is Unacceptable ==
== [[CPL]] is Unacceptable ==