COMMENTS
My comments here, since there is no track-back on this blog: http://joshuakugler.com/archives/10-Can-you-effectively-enforce-reciprocity.html
There is one sentence that appears to be vague and may allow a loophole:
"If you, as the author of a derivative work, decide to share your work with someone else (other than for development and testing), however, then you must give back to the community in one of two ways - your choice."
Unless I missed something, the phrase "(other than for development and testing)" allows a gray area where an IDO can deliver software to a client without either paying for/sharing the code. There are cases where software developers have one big customer per product and can perceive/justify/wink-wink this delivery as being for development and/or testing, hence avoiding payment for the software or sharing it.
3 years ago we went though the same thing. We wanted a dual license model and none of the existing licenses worked well.
Our main goal, was not to force contributions from internal-use companies, but rather to make it difficult for a direct competitor to use the code.
We finally adopted a “attribution license” based upon the Mozilla license. It was used at the time by Alfesco, and a number of other companies.
Basically it said, if you want to use the free one, go ahead, but you need to reference us, in a public way in your product.
This was not a license that we made up, but copied from others.
The problems started immediately. The first was SourceForge. Even though we had the same license as others that they were hosting, our license wasn’t approved. We had some, (but not many) customers who said, Open source means this list of licenses, if you are on the list, great, if not, we are not going to bother to read the license to figure out if we can use it.
In the end, Sourceforge accepted out license, it never wound up being lost revenue, but we migrated to the AGPL.
Having a better license didn’t make a better business, because educating people on the license just slowed deals down.
-just one person’s opinion...
Peter
Peter Winston
CEO
www.Project.net
peter [at] project.net
Hi,
Are you planning to get it approved?
http://www.opensource.org/approval
Would a more fair and ISV-friendly public license encourage firms to open source their software?
I would say YES it encourages commercial firms to open source their software speaking as a hardware developer using open source software for embedded portions of a larger commercial system.
One attractive feature of CAPL (if I understand it correctly) from my perspective is that internal development can proceed using the open source version, then if and when a product is ready for commercialization its code can still potentially be open-sourced or remain proprietary through licensing. Other dual license software, such as Qt/Qtopia from Trolltech, forces the user to make the proprietary vs. open-source decision before doing any development work. This introduces an additional barrier to use. The ability to switch between proprietary and open-source at any given time is important.
I think that you are on the right track, as we have considered and rejected the open source model for a variety of reasons, some of which you have presented in your new licensing model.
But, there is also a very substantial enforcement issue that I do not believe that you have addressed.
For "vendors" outside of the good old USA, there is a 'Catch me if you can mentality', where they are determined not to pay for anything that they can download.
I can easily see someone in the U.K. downloading your software, building a derivative work, and then refusing to share the work or buy a license by saying -
"Well, your stuff was complete rubbish, we had to re-write the whole thing, there are just bits and pieces of your old stuff here and there...you certainly can't expect us to pay anything to you or contribute our wonderful code back to your project."
Don't ask me why I know they'll say that.
So, I would definitely add some language that would stipulate the laws and the specific venue that you would try the cases in and have the licensee agree to that legal jurisdiction.
Since the most favorable plaintiff jurisdiction for copyright owners in the U.S. is in Marshall, Texas (Eastern District of Texas) I would put your open-source server physically there and have the Public License explicitly give jurisdiction to that venue.
Forget Boston. If you get into a copyright dispute in that court, it can take 5+ years to resolve.
I think that would do more to increase your revenues than anything else you could add to the public license.
Good luck.
Rudi
We have been considering an open source model for many years and have come up against many of the problems you outline in your Loophole explanation.
I believe in your argument and think you are on the right track as far as what is needed in a license to promote your business and the open source community.
I would consider the approach you outline for Whatif Productions but do see the issue of it not being an "approved" open source license getting in the way of business opportunity.
Getting approval seems to be the next step necessary for broad adoption and success. If you have that then this is very much in line with what we have been looking for in that it closes the loophole we saw as detrimental to our business opportunity.
Fred Skoler
COO /Presidnet Production
Whatif Productions LLC
In my opinion, the described license of Cilk++ is good, because
- it gives the great feeling of sustainability: Cilk++ will be avaiable forever, because the code is public
- people can directly change the product to fit their needs, which means faster development times
- many people can review and help to improve the code, which will keep it high quality
- it's fair: whoever benefits from using Cilk++ has to contribute, either code or money
- this way you benefit, you continue to develop Cilk++ and so everyone who is using Cilk++ benefits
1. If you are developing open source software, would you consider using Cilk++ under the CAPL?
Absolutely, as long as it's possible to use existing GPL components.
2. Will closing the IDO loophole be good for Cilk++ and for the open source community?
Yes, closing this loophole means forcing beneficiaries to contribute, which is a good idea.
3. Do you see other loopholes in the GPL or in other open source licenses that should also be closed?
So far, no.
4. Does the specific language of the CAPL accomplish the goals we set out?
Yes, as far as I can say.
5. Are any of the terms of the CAPL unclear, ambiguous, or unnecessarily onerous?
See my questions below.
6. Have we missed a better way to close the IDO loophole?
So far, I don't see a better way, I think you did it pretty well.
The questions I had and Duncan's answers:
Q: The CAPL fulfills all requirements of the GPL, so that it's possible to
take an existing GPL project, cilkify it and release it under the CAPL,
correct?
A: Yes, you can use Cilk++ with GPL code. For a GPL project, Cilk++ is
exempted from license compatibility questions because Cilk++ is a Major
System Component (Compiler) and System Library (Runtime). That means you
can link the Cilk++ Runtime System to a GPL project. Your code, with
Cilk++ keywords, would be released under GPL (or whatever other license you
choose).
Q: An IDO can keep its Program, which is using Cilk++, closed, as long as there
are only "Individual Developers" using / working on it.
But as soon as a non-"Individual Developers" A is using it, the code must be
public for everyone, not only A. Did I get it right?
A: Yes, you have that right. But there are exceptions geared around enabling
an Individual Developer to share a program with others for
testing/evaluation purposes.
Best regards,
Daniel
@Yuli Friedman:
Hi Yuli
We thought hard about the exception for development and testing, and decided it was very important to provide. Most customers would prefer to build and test an application, and prove its value, before they have to make a purchasing decision. Further, many of the top developers we work with do not have the budget authority they need to do valuable and interesting projects –— but can easily secure funding for a project once they can demonstrate something of value. We want to enable these great developers to do great things, without being slowed by budget approval processes.
We recognize that the exception may make us vulnerable to cheating. But we think most of our users are fundamentally honest and, if we deliver value in an easy-to-consume fashion, they will treat Cilk Arts fairly. In addition, violators of any software license (not just the CAPL) are subject to steep penalties. Few companies building applications with real value would view the risks of cheating to save a few license $’s as worthwhile.
Of course, there is piracy of many types of software, and every licensing model. This is a problem for the software industry overall, but not a problem we think we can fix at Cilk Arts.
Duncan
@Peter Winston
Hi Peter
We expect that, at first, some customers will find our license harder to adopt than standard open source licenses like the GPL. However, our choice was not GPL vs. CAPL. Our choice boiled down to closed-source vs. CAPL.
When you view if that way, I don’t think we lose much with a unique license. Any closed-source license is subject to legal review at each customer. If, in the early phases, the CAPL requires review at customers, it is no worse than a closed-source license in that way. And versus a closed-source model we gain many benefits.
We hope that this is a temporal issue, and that with time the CAPL is more broadly accepted.
@Joan
Hi Joan,
Yes, after we get enough feedback from the community and our customers to be sure that we have shaken out all the bugs, we plan to submit ourlicense to the OSI for approval.
@Rudi
Hi Rudi,
Thank you for your suggestion.
As I mentioned in my response to Yuli, we recognize that any open source company is vulnerable to cheating. But we think most of our users are fundamentally honest and will treat Cilk Arts fairly. In addition, few companies building applications with real value would view the risks of cheating to save a few license $’s as worthwhile.
Duncan
@Fred Skoler
Hi Fred
Thank you for your feedback and encouragement.
We plan to submit our license for OSI approval after we have had a chance to pressure test it with customers and the community. In the meantime, for us, we are betting that from the perspective of ease -of -adoption, a not-yet-approved open source license will be no worse for our users than if we were operating with a closed-source license.
Duncan
"But we think most of our users are fundamentally honest and will treat Cilk Arts fairly."
You have just erased the majority of your argument for a new license. If you in fact do thing your users are "fundamentally honest" then there is no reason to force reciprocity beyond that of the GPL. Which is basically the point I made in my blog post which was the first comment on this article.
http://joshuakugler.com/archives/10-Can-you-effectively-enforce-reciprocity.html
Hi Josh,
With all due respect, I do not agree with your analysis of the CAPL. I think you might be missing the goal of CAPL and what we’re trying to achieve.
Let’s start with your segmentation of the market. You segment open source consumers into three groups:
1. Those who have full intention to give back
2. Those who have no intention to give back, and don't, despite the legal obligation to do so. See the archives of GPL Violations for plenty of examples: http://lists.gpl-violations.org/pipermail/legal/
3. Those who don't initially have an intention to give back, but after using the library, decide that they'd like to, or can, give back.
You’ve forgotten a large and important group – and a group we’re trying to convert to “givers” with the CAPL. You are missing those who:
a) Are honest and law-abiding; and
b) Have no intention of giving back
unless they are required to do so Included in this group are many corporations who use GPL software to build web services or applications they use in-house. Under the GPL, this group can behave honestly and lawfully and use GPL software for free without giving back. Under the CAPL, this group must give back if they are honest and lawful.
Duncan
You said:
b) Have no intention of giving back unless they are required to do so
I believe there are honest and law abiding open source users out there as well. However, I believe if they are using the GPL because they don't have to give back, then they are most likely not going to use Cilk++ at all. And if that's alright with you, then no big deal. So, in the end, we're both right: there will be users who will give back, and there will be users who will not use Cilk++ because they are 1) law abiding and 2) don't want to give back.
By the way: if someone checks the "Receive mail on updates" option below, the system does not do "deduplication" and thus if you leave two comments and check "Receive updates" twice, you get two copies when someone replies.
Hi Josh
We have a large number of customers in that category participating in our Early Visibility Program. I guess there might be some we're missing with our CAPL model, but the vast majority of customers we've interviewed have no issue.
If there were an open source alternative, available under GPL, that offers the development time, reliability, ease and performance of Cilk++ then perhaps we would see a different reaction. But our customers are telling us that today no such alternative exists.
@Joshua
Josh,
I fail to see the connection between honesty and a business's decision to make its software open-source. If you accept a gift and and give nothing in return, that does not make you dishonest.
I also disagree with your implication that most companies that use GPL software but don't give back are somehow "freeloaders" that would not use Cilk++. Having worked at more than one "GPL freeloader" company, I can tell you that all of them would have had no qualms about paying for most of the GPL software that they use, but it was simply not for sale. What they were
not willing to do was give away their own source code, and thus were left with no reasonable and direct way to "give back". Cilk++, on the other hand
is for sale under a different (non-CAPL) license. A company can experiment with Cilk++ for free under the CAPL, prove that it adds value to their project, then, if they don't want to open-source their own software, they can purchase a commercial license. I believe most of the current "GPL freeloaders" would gladly use (and pay for) Cilk++ under this arrangement.
- Pablo
Hello,
Thanks you for the great CAPL license! I believe it really makes sense under some circumstances.
My question is how do you handle contributions with this license? I believe this is an important reason for you to be open sourced, right ? Maybe I overlooked sth or because I'm not a native speaker of English, I can't figure out the following questions:
Just take Cilk++, your product, as an example:
First, if someone contributes code to you directly and you like it, you will probably have to ask him/her to sign paperwork to transfer the copyright of this code to you, otherwise how can you sell license (with part of the code copyrighted by other people) to the propariate customers ? Isn't it quite tedious, or can you handle this more easily with CAPL?
Second, if some project X is derived (forked) from your product, your requirement is that the proportion of your work remains under the same license (CAPL), and the rest part can be licensed under CAPL or GPL or anything compatible. This is indeed reasonable, but then how can you absorb the improvements from the project X back in the spirit of sharing ? since your are not the copyright holder of that part of code and these part of code can even be GPLed. CAPL is not (yet) confirmed as compatible with GPL, you probably won't be able to integrate GPLed code even if you won't charge any money for that part of the code.
I would appreciate if you can help to clarify these questions. Thanks in advance.
Thank you for the excellent questions!
Your first question asks how we would handle contributions people make to support the Cilk++ RTS itself. Let us call the original Cilk++ RTS code Part A and the modifications Part B. For Part B, contributors have at least two choices.
1) If they wish to retain copyright, they may distribute Part B on their own with a license of their choosing. This distribution could be bundled with Cilk++ to form a new RTS = Part A + Part B. Part A would be distributed under the CAPL. Part B could be distributed under CAPL (with the contributor as copyright owner); GPL; or any other open source license compatible with GPL.
2) If they wish to have Part B supported by Cilk Arts as part of the main Cilk++ distribution, they may transfer copyright to Cilk++ and we will take the responsibility for maintaining the code, providing full testing, debugging, and all the other things expected of a commercial product. For Part B contributions that have commercial value, we will also consider royalties or other payments to contributors.
A great example would be porting Cilk++ to support new processors. We have had many requests to port Cilk++ to support embedded systems such as MIPS, ARM, and PowerPC to name just a few. These projects are important extensions of Cilk++ but we don’t yet have the bandwidth at Cilk Arts to do the work. Were someone to do a great job porting Cilk++ to one of these systems, we would be delighted to make these Part B modifications a part of the main Cilk++ code base.
Your second question speaks to the issue of license compatibility with the GPL. Lets consider the case of a contributor building a library component using Cilk++. Let us again call the original Cilk++ RTS code Part A ,and lets call the library written as Part C. A key point is that Part A and Part C are separate pieces of code (C runs on top of A) -- C is not integrated into A, nor is A integrated into C. C would contain a few Cilk++ keywords, but the keywords are not protected by copyright. The question then is whether C can run on top of A if C is licensed under GPL (or a GPL compatible license)? First, until the CAPL is approved by the Free Software Foundation, it is NOT a GPL compatible license. However, the Cilk++ RTS is a System Library under the definitions in the GPL. As a System Library, the RTS can be included in a work licensed under GPL even though the RTS itself is under a different license. Therefore, C can run on top of A, even if C is under GPL and A is not.
1) A great example would be someone building libraries and applications that are multicore-enabled using Cilk++. The contributor could license and distribute these works under whatever mechanism they choose – including open source under GPL. If the contributor preferred, Cilk Arts will distribute the work from the Cilk Arts web site or even take on the task of maintaining the work as a quality software product. For works that help us sell the Cilk++ RTS, we will even consider royalties or other payments to contributors.
I hope I’ve answered your questions.
Happy Multicoding,
Duncan
I like this license, and think it makes a lot of sense, and in fact am thinking of adopting this license for some software I'm writing.
Could the final form of the license text be such that it's easy for third parties to adopt the license for their own software? In particular, the quoted text under the copyright and disclaimer section and the no license text modification restriction makes it hard to adopt.
Some guidelines to adopting this license for one's own software would be appreciated.
Thanks!
--prashanth
Hi Prashanth,
We're glad you like the CAPL!
We would like very much for others to adopt our license. If you (or anyone in the world) would like to use the CAPL, just drop us a line and we'll give you the permission you need to get up and running quickly.
Duncan