Subscribe by Email

Your email:

Cilk++ for Linux is Here!

(release overview)


Multicore Programming Blog

Current Articles | RSS Feed RSS Feed

The Case for a New Open Source License

Posted by Duncan McCallum and Charles Leiserson on Tue, Nov 11, 2008
 | Digg digg it | Reddit reddit | del.icio.us del.icio.us | StumbleUpon StumbleUpon 

Introduction

As Cilk Arts prepares for general availability of our first product, Cilk++ 1.0, we are finalizing our licensing model. We plan to dual-license Cilk++ using a new open source license: the Cilk Arts Public License (CAPL).

We have been evaluating business models for Cilk++ since founding Cilk Arts in 2006. As a venture-backed company, we need a model that yields enough revenue to attract the capital we need to develop and distribute our solutions. Many closed source models could accomplish that goal, but they serve only those developers who are willing and able to use closed source software.

We wanted to do more. We are proud of Cilk++ and want all developers to be able to use it. Precluding open source users from enjoying the benefits of Cilk++, even if those users are not a source of revenue, is unsatisfying to us. We want to contribute to the open source movement.

Our challenge was to find a model that would allow us to deliver a strong open source version of Cilk++ while building a healthy Cilk Arts. Through our search for an open source model, we found that existing open source licenses contain a loophole that could prevent Cilk++ from thriving. The problem we see is that existing open source business models allow internal development organizations (IDOs) to exploit open source without contributing back to the community. This "IDO loophole" means that the burden of supporting an open source project spreads unevenly across its beneficiaries. It results in higher costs for those who carry the burden, makes open source much more expensive for others, and shrinks the support base. This situation is neither healthy for the open source community nor fair to all stakeholders. These considerations drove us to author the Cilk Arts Public License.

We would have preferred not to write a new license. The world does not need a proliferation of open source licenses, and the legal costs for us to develop our new license were significant. Nevertheless, after we exhausted all other options, our only reasonable choices were to release Cilk++ solely under closed source or to take on the challenge of drafting an open source license that closes the IDO loophole.

We believe that the Cilk Arts Public License (CAPL) offers a step forward not only for Cilk Arts, but for much of the open source community. In this post, we describe the IDO loophole in current licenses and address how the CAPL closes it. We would love your comments on the CAPL, as well as your suggestions for other ways to solve the IDO loophole problem.

Our Selection of a Business Model

The advantages of an open source business model to Cilk Arts and our community are obvious and well established. Open source allows us to leverage the power and intelligence of our user community and involve them more deeply in driving the development priorities for future releases of Cilk++. An open source Cilk++ can be modified by users to fit their needs. Open source yields more reliable and secure software and better support. We also like the high standard of accountability open source enforces on us. This pressure should drive a better Cilk++, which is good for Cilk Arts and good for our users. Given all of these advantages, it was obvious to us that Cilk++, like the original Cilk project at MIT, should be open source if possible.

The question was, "Could we find an open source business model and license that would accomplish all our goals?" To answer this question, we studied key success factors of open source projects, thought about what the open source movement needs to succeed, spoke with many open source experts, and interviewed dozens of our customers. The folks who helped us are too numerous to name every one, but we'd like to thank Marten Mickos (MySQL), Peter Levine (XenSource), Billy Marshall (rPath), Margo Seltzer (Sleepycat Software), Mark Mitchell (CodeSourcery), and the many dozens of users who took the time to speak with us. The collective wisdom and generosity of this group was a big help to Cilk Arts. Thank You!

Our research explored many business models. We then narrowed our research to the three options that best fit products like Cilk++.

One option we considered was anchoring our business on services revenue. Companies like Red Hat and JBoss do well with this approach. Cilk Arts is committed to making the path to reliable multicore performance as quick and easy for our customers as possible; and we provide consulting, training, and support to our customers as needed for their success. Our goal, however, is to make Cilk++ so simple and easy to use that any developer can use it without our assistance. Basing our business on services revenue is antithetical to that goal, and therefore we determined that a services-centered model was inconsistent with our mission "to provide the easiest, fastest, and most reliable way to optimize application performance on multicore processors."

We also looked at componentizing Cilk++, holding back pieces of the solution as proprietary items to be sold separately from the portion available under open source. XenSource and SugarCRM, among others, pursue this model with success. While we may indeed charge for some of our value-adding tools, we think our community needs a complete base solution - a multicore software platform that delivers productivity, reliability, and performance. We want to deliver a solution that doesn't hold major, valuable parts of Cilk++ out of the open source version. We would take no satisfaction in engineering a solution for our open source users that does not completely solve a problem. As a result, we ruled out componentization as the primary source of revenue for Cilk Arts.

Eventually, we selected the option of distributing Cilk++ under a dual license. Under a dual license, we can release a complete Cilk++ solution to the open source community while providing commercial licenses for those who choose not to adhere to the terms of the open source license. This model is well-established, simple for customers to understand, and best fits our mission.

Having settled on the dual license model, we searched for a suitable open source license for our dual license business plan. Unfortunately, all the licenses we found contain a loophole that would have hindered Cilk++ from being a successful contribution to the open source community or serving as the basis of a successful business.  Moreover, we believe this loophole, if left open, may prevent other companies like us from contributing to the open source movement.

The IDO Loophole in Existing Licenses

All successful open source projects are supported by exchanges. There is a give-and-take between a project and the community it serves, which results in a win-win situation for all.

The developers who contribute to the project give their software to the community and take back a variety of valuable things. They may take contributions in the form of bug fixes, product enhancements, and ideas to drive future development. They may take satisfaction from seeing their creations used by others. Finally, they may take income from commercial licenses paid for by those who enjoy the open source software but cannot abide the openness of their own derivative works. This income supports further open source development, attracts investors, and affords the developers soda and donut holes. (Cilk Arts developers eat many donut holes.)

The consumers of the project take the software and do useful things with it. They may create and sell new programs based on the original. They may build web services. They may use the software to run their companies. These consumers can give back to the community in many forms. Some folks contribute modifications and new works back to the project. Others give back by buying commercial licenses - providing cash to buy more soda and donut holes. This fundamental give-and-take between producers and consumers is a key element of any successful project. And, it is fair.

Unfortunately, today's licenses that support open source projects contain a disturbing loophole: many of the project's beneficiaries need not give back. Consider the GPL as an example. When used as the open source half of a dual license model, the GPL requires those who create and distribute derivative works to either share their source code or purchase a commercial license. Under this model, independent software vendors (ISV's) that distribute derivative works and typically make up approximately 20% of beneficiaries, have two options for giving back: distribute their derivative works under the GPL or buy a commercial license. They are free to choose either option, but they must give back one way or the other. In contrast to the ISV's, most of the other 80% of beneficiaries are internal development organizations that create but do not distribute their derivative works. The IDOs use them internally, and thus by the GPL, they need not share their derivative works with the community or obtain a commercial license to help fund further open source development. The IDOs exploit open source without giving back. They get a free ride on the backs of the open source community who share their software and the ISVs who pay for commercial licenses.

Some of the world's most successful businesses benefit from the IDO loophole. Many Internet companies deliver valuable web services built on open source software, keeping as proprietary software the derivative works that they build from open source. These IDOs enjoy this free use without a paid license, because the existing open source licenses permit it. Alternatively, to pick a popular target, consider the investment banks and hedge funds who build in-house applications using open source. These IDOs use open source to build applications that create enormous value (or at least income), but since they do not distribute their applications, they are under no obligation to contribute back to the open source project.

We do not think that the IDOs who take from open source without giving back are bad people. Minimizing cost and maximizing gain are desired behaviors in a market economy. These companies are just exploiting a gap in existing licenses that permits them to take without giving. They are not evil, but the open source license model under which they operate is unfair.

The IDO loophole is also bad for the health of companies like Cilk Arts who need to sell commercial software to make ends meet, but who nevertheless wish to contribute to open source. When the vast majority of people take without giving, the entire burden of supporting a project rests on the backs of the minority of open source contributors and the ISVs who buy commercial licenses. Costs are inevitably higher for the few who support the work benefiting many. The higher costs make it hard for some open source projects to be competitive with proprietary alternatives. Moreover, when the avenues for an open source project to generate revenue to support itself are restricted, it means the project has less to invest into developing new features or in providing the kind of commercial-grade support many users need to utilize open source. It also means that fewer software categories can support an open source business, narrowing the open source ecosystem. The net result is a narrower footprint of well-supported open source software, which is to the detriment of all - including the IDOs that today widely use open source software without giving back.

As we set out to develop our business plan, we looked for a way to plug the IDO loophole. We wanted to offer ISVs and others who are contributing to the open-source community today the same choice that dual licensing with the GPL offers: contribute derivative works or buy a commercial license. But, we wanted to go further with the requirement to share. We wanted to spread the burden of supporting Cilk++ more broadly, in particular to the IDOs, so that we can afford to release Cilk++ under open source while lowering costs for everyone. We also hoped that we could build a larger community of developers who contribute back to Cilk++, one way or the other.

Closing the IDO Loophole - the Cilk Arts Public License

Cilk Arts is not the first to address loopholes in open source licensing. We really like what Fabrizio Capabianco at Funambol wrote on the topic. Fabrizio's Honest Public License solves part of the problem by addressing the "ASP loophole," where application service providers (ASP's), which offer services to customers over a network, fail to give back. Another license, the GNU Affero General Public License, also helps to close the ASP loophole by extending the "contribute or pay" decision to web services companies.

Unfortunately, these efforts still leave the IDO loophole wide open for many beneficiaries. In particular, the Affero GPL allows IDOs building non-web, in-house applications to exploit open source projects without contributing back to the community. We think IDOs of all kinds should be required to make a fair exchange with the open source community. Expanding the "give" requirement to all IDOs will lower the costs for the rest of the community and expand the population of derivative works contributed into open source.

To close the IDO loophole, we set out to create a license that works identically to the GPL for groups who are already giving back. We sought to allow people who modify Cilk++ to have their modifications become part of the project. We also sought to allow developers to build things for their own use freely (free as in both "beer" and "speech"). The only change is to ask all who derive significant benefit from Cilk++ to give back to the project or community in some way.

These goals led to the creation of the Cilk Arts Public License. The CAPL is an open source license that enforces the notion of fair exchange. It is a you-share, we-share model. The concept behind our license is simple. It works as follows:

  • You can take Cilk++ (or any other program licensed under CAPL) and use it without charge, just as you do any open source program.
  • You can modify Cilk++ as much as you please.
  • You can redistribute Cilk++ together with your modifications.
  • You can use Cilk++ to build derivative applications for your own use.

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. You can either share your derivative work with the community (under either the CAPL or a GPL compatible license), or you can forgo the CAPL and purchase a commercial license that does not have the sharing requirement.

The CAPL will not adversely affect the open source community of Cilk++ consumers. If you are building open source software and sharing your derivative works with the community, the CAPL operates like the GPL. In addition, you benefit from a Cilk++ that is supported by a wider base of "givers."

If you are an ISV who uses open source software but buys a commercial license to avoid open sourcing your products, you benefit. Cilk++ is still open source, and so you reap the advantages that open source brings. Moreover, your commercial license for Cilk++ will be cheaper than a dual commercial license paired with GPL, since Cilk++ is supported by a wider population.

If you are a developer or group of developers using Cilk++ to build an application for your own use, you should see no difference between developing under GPL versus under CAPL. Although we would like to encourage you to share your derivative works with the community, the CAPL does not require you to do so. Likewise, if you have a customer for your prototype Cilk++-based product, you can give them the Cilk++ source code to evaluate your product without you having to share your product more widely or pay for a commercial license.

If you are building an open-source application that you are distributing on the web, you won't see a change, but if you are distributing it only privately, you will see an impact. For example, if you're an IDO building applications for use by others but not "distributed" under the existing open source definitions (e.g., GPL) and you want to keep your Cilk++-based derivative work proprietary, then the CAPL requires you to make a fair exchange in order to use Cilk++. If you share your software with everyone, we share ours with you. If you do not wish to share, you can give back to the project by purchasing a commercial license. And if you do need a commercial license, we will ensure that Cilk++ is still a cost-effective option.

Free software purists may argue that the CAPL does not allow an IDO the privacy to do whatever it wants with their derivative work, and thus the CAPL does not promote "free" software. We believe that the CAPL does promote free software, but we disagree on the notion of privacy. We don't see how large-scale sharing within a corporation or among members of a cartel, which the GPL allows, constitutes "private" use, although reasonable people may differ on this point. The CAPL values community good and the privacy rights of individual developers over the so-called "privacy" of large corporate entities. We don't expect the free software purists to agree, but we believe that there is a need for a license with our interpretation of privacy.

We hope that the CAPL balances the give-and-take across all stakeholders. It requires a fair exchange with all beneficiaries. It lowers the burden for those who contribute to open source. It results in stronger Cilk++ software and support. It allows Cilk Arts to extend its commercial offering to the open source community. And, it is fair.

Comments?

Our efforts to introduce the Cilk Arts Public License could use your help. You can see a draft of the CAPL here. Please tell us what you think!

  1. If you are developing open source software, would you consider using Cilk++ under the CPL?
  2. Will closing the IDO loophole be good for Cilk++ and for the open source community?
  3. Do you see other loopholes in the GPL or in other open source licenses that should also be closed?
  4. Does the specific language of the CAPL accomplish the goals we set out?
  5. Are any of the terms of the CAPL unclear, ambiguous, or unnecessarily onerous?
  6. Have we missed a better way to close the IDO loophole?

Tags: ,

COMMENTS

My comments here, since there is no track-back on this blog: http://joshuakugler.com/archives/10-Can-you-effectively-enforce-reciprocity.html

posted @ Wednesday, November 05, 2008 5:40 PM by Joshua Kugler


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.

posted @ Wednesday, November 12, 2008 1:28 PM by Yuli Friedman


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

posted @ Wednesday, November 12, 2008 1:54 PM by Peter Winston


Hi, 
 
Are you planning to get it approved? 
 
http://www.opensource.org/approval

posted @ Wednesday, November 12, 2008 1:56 PM by Joan


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. 
 

posted @ Wednesday, November 12, 2008 2:59 PM by Eckart Jansen


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

posted @ Wednesday, November 12, 2008 3:34 PM by 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 
 
 
 

posted @ Thursday, November 13, 2008 9:42 AM by Fred Skoler


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 
 

posted @ Friday, November 14, 2008 9:44 AM by 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

posted @ Tuesday, November 18, 2008 11:40 PM by 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.

posted @ Tuesday, November 18, 2008 11:41 PM by Duncan


@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.

posted @ Tuesday, November 18, 2008 11:43 PM by Duncan


@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

posted @ Tuesday, November 18, 2008 11:44 PM by 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

posted @ Tuesday, November 18, 2008 11:46 PM by 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

posted @ Wednesday, November 19, 2008 12:05 AM by Joshua Kugler


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

posted @ Wednesday, November 19, 2008 1:12 PM by 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.

posted @ Wednesday, November 19, 2008 1:53 PM by Joshua Kugler


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.

posted @ Wednesday, November 19, 2008 2:29 PM by Duncan


@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

posted @ Thursday, November 20, 2008 10:22 AM by Pablo Halpern


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.

posted @ Tuesday, November 25, 2008 2:27 PM by code17


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

posted @ Monday, December 01, 2008 7:25 AM by 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 

posted @ Sunday, December 14, 2008 7:36 PM by 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

posted @ Monday, December 15, 2008 5:46 PM by duncan


Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics

Receive email when someone replies.