We put this together in the hopes that it will clarify some of the open source issues that various of us have been discussing. Please distribute as you see appropriate! Regards -- Ian (Foster). GLOBUS AND OPEN SOURCE: AN OPEN LETTER TO OUR EUROPEAN GRID COLLEAGUES As many of you know, members of the Globus project have been working for several years, in collaboration with partners, to produce open source software for use in Grid systems. We recently heard "through the grapevine" that some of our European colleagues believe, variously, that: COMPLAINT 1) Globus people are hard to collaborate with because they require you to sign over all copyrights to them before you can contribute code to Globus. COMPLAINT 2) The Globus license does not permit others to develop other software on top of Globus. We are very concerned about these perceptions, because (a) they are not really accurate, and (b) they run counter to the many hours of effort we have expended workinng precisely to ensure that many people can contribute software and use Globus for other purposes. Hence, in this open letter (WHICH WE VERY MUCH HOPE YOU WILL READ TO THE END: IT IS NOT THAT LONG (-:), we explain our goals with Globus licensing and the steps we have been taking to meet these goals. LICENSING GOALS Our goals with respect to the distribution of Globus software are twofold: GOAL A) Anyone should be able to use Globus software for any purpose without hindrance. E.g., someone can use it for an academic project, for a scientific Grid, in a commercial product, etc., etc. We believe that this liberal approach is critical for success of the field: e.g., if Seimens, or Sun, or IBM can't incorporate Grid software in products, we are less likely to get good Grid software in the future. The current Globus license says exactly that: it states that (in brief): a) Anyone can use the software for *anything*, b) But you can't sue us, c) And please acknowledge that you are using the software. That's basically it: there is no clause that says "you can't be commercial", or "you have to pay us", or "any other software developed on top has to follow this license", etc. In fact, the Globus Public License is the *most liberal* of all Grid software licenses that we know of. E.g., Condor, SRB, NWS, etc., are all covered by restrictive licenses of various sorts, preventing commercial use for example. So, with respect to misconception #2 above: this is completely false. You can do absolutely *anything* with Globus software (except sue us about it!). GOAL B) Anyone should be able to contribute to the software. We'll come back to this absolutely critical goal. ACHIEVING GOAL A These two goals are not trivially compatible. To understand why, we need to provide a two-paragraph tutorial on licenses (i.e., all the stuff we wish we didn't know, but have learned over the last couple of years as we worked to ensure we could satisfy goals A and B). Some people in the Grid business believe that to release "free software" it suffices to put a copyright statement on it and put it "in the public domain." But in fact, a copyright statement has little meaning. What is important is the license under which the software is released. This is where you say what people can do with the software. Now there are all sorts of licenses: e.g., licenses that require people to pay, licenses that say software is free to academics but not commercial, licenses that say any additions have to follow the same license (e.g., the Gnu Public License), and licenses that, like the Globus Public License, say that you can do anything with the software (e.g., FreeBSD, Apache). Further, while the average graduate student or researcher doesn't typically worry too much about licenses, commercial people do. So if a piece of software has a license that says "no commercial use", they won't use it. If a software system is composed of 10 pieces, each with a different license, they probably won't use it either: how are they supposed to figure out whether they are going to get sued for some infringement of one of those 10 different licenses? (In principle, academic researchers should be worried about these issues too, and in fact your administration would probably be *very* worried about them, if they knew what was involved. But often we skirt these issues. Not sure that big projects like DataGrid should, though.) Ok, end of tutorial. The point is that meeting GOAL A above requires that the Globus software be distributed under a single license. ACHIEVING GOAL B So, how do we achieve GOAL B (let lots of people contribute) while maintaining GOAL A? Our thinking on this has evolved, from PLAN I to PLAN II. We explain both below. PLAN I was to ask any contributor to assign copyright for their contributions to us, on condition that we then release the software to the world under the Globus Public License. Naively, we thought this would be easy, but while it has worked well in some cases (e.g., Aerospace Corporation, NCSA, U.Wisconsin, and a Japanese group have all done variants of this), it soon became clear that it just wasn't acceptable to many institutions. Even though we were explicitly not profiting from the transfer, the act of transfer was foreign to many legal departments. For example, we had a wonderful visit recently from a talented INFN researcher who had developed some very nice packaging software. We proposed PLAN I to them, but they said that this couldn't work for INFN. This and other discussions led us to PLAN II. PLAN II, therefore, is simpler: it simply says that all contributors retain copyright, but agree to release the software under the same license: basically the Globus Public License, but with a few changes, to remove the attribution to ANL and USC. I enclose the current draft, which we are discussing with various EU and US groups. Note that this is essentially the Linux approach. Our feeling is that PLAN II achieves both of our goals: it defines a single, liberal license, so anyone can do anything with the software; and it does not involve any complicated legal stuff involving copyright transfers, so is easy to execute. All people have to do is to get their institutions to agree to release code under the common license. We're soliciting comments on this license now (please go and talk to your legal department!) so we can avoid the problem where we find out in the future that it is unacceptable to some groups. SUMMARY In summary, the Globus group has been working hard (and believe us, it is no fun) to define a distribution scheme that both (a) allows anyone to do anything with our software and (b) allows anyone to contribute. Software licensing is not straightforward, and we have been learning as we go, but we believe we have a solution that meets both goals. Let's return to the two "complaints" above: COMPLAINT 1) Globus people are hard to collaborate with because they require you to sign over all copyrights to them before you can contribute code to Globus It is true that this was our original proposal, which we advocated because we thought it was the way to keep the software as open as possible. However, we accept that this approach is not workable. It is now the case, under PLAN II, that anyone can contribute software, as long as they adopt the common license. COMPLAINT 2) The Globus license does not permit others to develop other software on top of Globus. This is not true, has never been true, and never will be true. You can build anything you want on top of Globus: the license places no constraints on what you can do with the software. CLOSING THOUGHT We believe strongly in the central importance of open architecture, open source software to our field. We look forward to working with the EU and other communities to make this vision a reality. We hope that we have made clear above the steps we have taken to this end. Please, if things aren't clear, contact us directly to make your concerns known: we really want to move forward in a mutually acceptable fashion. Also, please look at the license below. If we can all adopt this for all our software, then we will have a clear legal basis for sharing code in a very general fashion. ------------------------------------------------------------------ CURRENT PROPOSED LICENSE (Ignore the "COGS" stuff, this may not be used eventually.) Consortium for Open Grid Software (COGS) License Version 0.2 1. GRANT OF RIGHTS Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: a. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimers. b. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimers in the documentation and/or other materials provided with the distribution. c. The names "Consortium for Open Grid Software", "COGS", of copyright holders, and of other contributors must not be used to endorse or promote products derived from this Software without prior written permission of the Consortium of Open Grid Software. For written permission, please contact cogs@cogsoftware.org. d. Products derived from this Software may not be called "COGS", nor may "COGS" appear in their name, without prior written permission of the Consortium for Open Grid Software. 2. NO WARRANTY THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. Each licensee is solely responsible for determining the appropriateness of using and distributing the Software and assumes all risks associated with its exercise of rights under this agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. 3. DISCLAIMER OF LIABILITY IN NO EVENT SHALL THE CONSORTIUM FOR OPEN GRID SOFTWARE, ITS MEMBERS, ITS COPYRIGHT HOLDERS, OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE SOFTWARE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 4. EXPORT LAWS This license adds no restrictions to the export laws of the licensee's jurisdiction. It is licensee's responsibility to comply with any export regulations applicable in licensee's jurisdiction. 5. CHANGES TO THIS LICENSE The Consortium for Open Grid Software may publish revised and/or new versions of the COGS License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Software specifies a version number of this license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Consortium for Open Grid Software. If the Program does not specify a version number of this License, you may choose any version ever published by the Consortium for Open Grid Software. -------------------------------------------------------------------------- Notes: * Text was borrowed from other open source licenses as follows: * Section 1, Grant of Rights: Opening paragraph comes from MIT license. The conditions come from the Apache license, but without the attribution condition. * Sections 2-3 (no warrantee, disclaimer of liability): These are based on the IBM Public License, with some additions from the BSD license. * Section 4 (export laws): This comes from the NCSA license. * Section 5 (changes to this license): This comes from the GPL. * Clauses purposely left out: * Indemnification: This could be a little sticky. I think this is a big problem for some potential licensees. But some of the US labs have an indemnification clause in their open source licenses. * US Government rights: There is no explicit clause to grant US government rights to use. However, given that this license places no restrictions on use, this should not be a problem. * Attribution: The Apache license has a clause for attributing the Apache project for use of the software. The value of this clause is questionable (it can be easily buried), and its been argued that such a clause is an annoyance especially for software that uses code from many projects with such clauses. However, we could consider adding a clause to section 1, Grant of Rights, of: c. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: "This product includes software developed by the Consortium for Open Grid Software (http://www.cogsoftware.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear.