OPEN SOURCE (tm) DEFINITION NOT FREE SOFTWARE by David S. Lawyer, Sept. 1998 INTRODUCTION This document will point out the flaws in "Open Source (tm) Definition" (OSD) but before doing so one should first understand what OSD is. The OSD is a list of 9 requirements that a software distribution must meet in order to be called "Open Source (tm) Software". Eight of these requirements pertain to the license and one to the distribution policy: Source code is to be provided, etc. Any license that conforms to the 8 requirements for licenses may be called "Open Source (tm) conformant" but the additional requirement of providing source code must be satisfied for the software to be called "Open Source (tm) Software". One use of such a definition is to refer to it in a another software license. For example, the draft Linux Documentation Project License (LDP License) (Sept. 1998) states: "You may incorporate material covered by the LDP License in a derived work covered by any license conformant to the Open Source Definition ... ". Unfortunately, such a derived work could be distributed without source code. It would not be "Open Source (tm)" software although its license would be "Open Source (tm) conformant". Due to this and also due to flaws in the OSD, I oppose this reference to the OSD in the draft LDP License. Another problem with using this in the LDP License is that the "Open Source (tm) Definition" only defines it for software. Linux documentation is not software. Based on what is posted on the Internet, many people erroneously think that all software which is "Open Source (tm)" is also "free software" and that works derived from them must also be "free software". At present, one may devise an Open Source (tm) compliant license, which when taken together with copyright law, would prohibit making copies or freely distributing the software. Such a license could allow others to make derived works and license them under restrictions more severe than a Microsoft license. A WALK THRU OSD The OSD consists of an introductory sentence followed by 10 short numbered paragraphs. It will be repeated here paragraph-by-paragraph. The first 9 paragraphs are requirements on licenses and software distributions while the last paragraph is only a list of example licenses considered to be OSD-conformant. The introductory sentence reads: Open Source(TM) Software doesn't just mean access to the source code. The distribution terms of an Open Source program must comply with the following criteria. FREE REDISTRIBUTION This is the only paragraph devoted to "free redistribution". But it only applies to the special case of when the software is "a component of an aggregate software distribution containing programs from several different sources". In all other cases, a conformant license may prohibit free redistribution. Here it is: 1. Free Redistribution The license may not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license may not require a royalty or other fee for such sale. Now the above says nothing about copyright law but only mentions the license. These two things are quite different. The license is a contract between the copyright owner and the end user. It's also an instrument to grant certain rights to the end user. Contract law is handled by state courts. Copyright law is federal law granting authors exclusive rights to their works for a limited period of time (and denying others these rights). A very significant question is: What is meant by "license" in the above? Does it mean only the license, or the license taken together with copyright law? Since such a license and copyright law are different entities it's not at all clear the the word "license" automatically includes copyright law. If it means only the license, then one could issue a license which makes no mention of selling or giving away the software (as a component or otherwise). Then, under ordinary copyright law, no one (without special permission from the author) may make copies of the software to sell or give away even if it is to become part of an aggregate. Since this license alone has not "restricted any party from selling or giving away the software ..." it adheres to this requirement of OSD. If "license" means both the effects of the license and copyright law then in order to not have copyright law restrict "any party from selling or giving away the software ..." it is necessary to add a statement to the license allowing this to be done. Why doesn't the OSD state: "The license must allow any party to sell or give away the software ..." instead of what it does? The fact that it doesn't state what is clearly required in the license (under this interpretation of it) tends to imply that this interpretation of the license is not what was meant. Even if "license" includes the effects of copyright law, there is the problem that people writing their own license will not understand this and will interpret "license" literally as meaning only the license alone. As a result, such software could be subject to the copyright laws which forbid anyone (without permission of the author) from copying or distributing the software. This is not at all free software. The author of OSD claims that this "Free Redistribution" paragraph in the OSD was written as it is so that the Artistic License can be OSD. The Artistic License prohibits the sale of a single work. But there is a better way to achieve this. Why not say in the OSD: "The license must allow any party to copy and give away the software. For the case where the software is a component of an aggregate software distribution containing programs from more than one source, the license must allow the sale of this aggregate without requiring any royalty or fee to be paid to the copyright owner." It's important to add the right to copy the software since it's not necessarily implied in the right to give it away or sell it. For example, if a book is copyrighted you are permitted to give away the book or sell it, but you are not allowed to make copies of it. About the same is true for software under copyright law. (You are allowed to make one backup copy.) Thus the right to give software away could well mean only the right to give away your copy of the software, which requires you to destroy any remaining copies you may have of it. This "Free Redistribution" paragraph has another problem and that is lack of clarity about what is meant by "selling or giving away the software as a component of an aggregate ...". An example of this is where a component is put into at RedHat (or maybe Debian) aggregate on a CD. But there are two "selling or giving away" events associated with this: 1. Someone gives (or sells) the component to RedHat. (Then RedHat puts this component together with other components creating a CD.) 2. RedHat sells the CD (or maybe gives it away on the Web if it's Debian) to the end user. Which transaction is the OSD referring to: 1, 2, or both? SOURCE CODE The paragraph on "Source Code" is different from the other paragraphs since it makes no mention of "license" and seemingly places no requirements on the license. This paragraph requires that the software either be distributed with source code or that source code be freely available on the Internet. This makes the software "open source" in the non-trademark sense of these two words. What is not stated is that the combined effects of the license and copyright law may prohibit copying or redistributing the source code. Here's the text from OSD: 2. Source Code The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of downloading the source code, without charge, via the Internet. The source code must be preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed. One confusing part of the above paragraph is the 2nd half of the first sentence: "(The program) must allow distribution in source code as well as compiled form." How can a program allow something? It's usually the license that allows something. It's hard to argue that "license" was intended here since "license" was used in all the other paragraphs but was omitted only here. Does "distribution" mean redistribution by the licensee (the end user who got the OSD software) or the original distribution by the copyright owner? It's not clear nor is it clear who gets to "allow". DERIVED WORKS 3. Derived Works The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. The first phrase is quite clear: The license must allow modifications and derived works. But the second part of this phrase may not be clear to many readers. One might think it meant that people will be able to obtain a copy of a derived work under the same license. But it seems to only mean that a person who creates a derived work has the option of licensing it under the same terms as the original. Thus if the OSD-conformant license permits it, one could create a derived work and choose the option of licensing it under a license more restrictive than Microsoft's. If the OSD-conformant license itself is very restrictive and (along with copyright law) prohibits making copies, etc. then if this OSD-license says that derived works may only be distributed under the same license, then the resulting license on the derived work will still be quite restrictive. The interpretation used above is that "allow" means that the creator of the derived work is "allowed" ( = given the option of) to issue the derived work under the same license. The author of OSD agrees with this interpretation. It probably doesn't mean what some might think it means: that the public is "allowed" to get the derived work. Copyright law uses the term "derivative" work and it would have been a little better to use this in OSD instead of "derived". There is an even more ominous possibility. That is where the OSD-conformant license contains the provision that while derived works are permitted, they will remain the property of ABC Corporation which is the copyright owner. This has actually been done in some existing software licenses (they may be found on the Internet). ABC corporation may then under copyright law have the exclusive right to sell the derived work. The OSD-conformant license could state that only ABC corporation may distribute the software. The OSD provision says that distribution is allowed on the same terms, but the terms are that only one entity may distribute the software. MODIFIED SOURCE CODE This deals with modification of the source code. A sentence that seemingly has much significance is "The license must explicitly permit distribution of software built from modified source code." One might erroneously think that this means that you may distribute this software as free software. But this software is a "derived work" covered under paragraph 3 of OSD and the only option you may have is to distribute it under the same onerous license. 4. Integrity of The Author's Source Code The license may restrict source-code from being distributed in modified form _only_ if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software. (This is a compromise. The Open Source Trust encourages all authors to not restrict any files, source or binary, from being modified.) Sections 5 and beyond are of less significance. These prohibit discrimination against persons, groups, or fields of endeavor (Pars. 5 & 6), allow one to get the software without the need to execute a new license (Par. 7), and the rights of a program must remain separate from the distribution it is included in (Pars. 8 & 9). Here are Pars. 5-10: 5. No Discrimination Against Persons or Groups The license must not discriminate against any person or group of persons. 6. No Discrimination Against Fields of Endeavor The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. 7. Distribution of License The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. 8. License Must Not Be Specific to a Product The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution. 9. License Must Not Contaminate Other Software The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be Open Source software. 10. Example Licenses The "GPL", "BSD", and "Artistic" licenses are examples of licenses that we consider conformant to the Open Source definition. _________________________________________________________________ Attribution The Open Source definition is derived from the Debian Free Software Guidelines. I composed the original draft, and then it was refined using suggestions of the Debian GNU/Linux Distribution developers in e-mail conference during most of June, 1997. They then voted to approve it as Debian's publicly stated policy. It was revised somewhat and Debian-specific references were removed at the origination of the Open Source Trust in February 1998. --Bruce Perens ------------------------------------------------------------------------------- A POSSIBLE CONFORMANT LICENSE This software is copyright by ABC corporation. You may make modifications and derived works but they too will be licensed under this same license and remain under the ABC corporation copyright. Software built from modified source code may be distributed only by ABC corporation. Does the above license conform to OSD? Perhaps it does. It meets condition 1 provided "license" is taken to mean only the license itself without the effects of copyright law. See the earlier discussion of this. If the program is distributed with source code, it meets condition 2. although the source code will contain this copyright notice. It definitely meets condition 3. for derived works. The license explicitly permits distribution of software built from modified source code (as required by paragraph 4), but restricts who can distribute this. By looking at paragraphs 5-9 it is seen that the above license is conformant to them. OWNERSHIP RIGHTS to a COPY Most commercial software with shrink-wrapped-wrapped licenses usually specify that the ownership of the copy of the software remains with the copyright holder. This takes away rights from the end user. Once this is done they can impose all kinds of other restrictions such a prohibiting you from giving away (or selling) the copy (which you don't even own), restricting the use of your borrowed copy, etc. Since such restrictions have no place in free software the OSD should clearly prohibit any license from denying ownership of a copy of the software to a licensee. The OSD may indirectly imply this already but it should be made explicit. CONCLUSION The "Open Source Definition" (OSD) does not require that a conformant license give the end user the right to make copies of the software or to freely distribute it. A conformant license need not protect derivative works from becoming non-free. Thus OSD-conformant software is not necessarily "Free Software". While the OSD umbrella includes free software such as BSD, the Free Software Foundation's GPL, etc. it also would include very non-free software. The OSD attempts to define a class of software (mostly based on their licenses). Due to lack of clarity, it's difficult to determine exactly what this class is. It seems to include licenses that are repugnant to the basic concepts of free software. It should be revised to clarify these ambiguities in favor of free software. If it is to stick to the original purpose as being a definition of free software (as it was supposed to be when it was part of the Debian Social Contract) then it should be renamed something like: "Free Software Definition1".