From the course: Programming Foundations: Open-Source Licensing
Introduction to open source and open-source principles
From the course: Programming Foundations: Open-Source Licensing
Introduction to open source and open-source principles
- [Voiceover] Now that you have the basics of intellectual property down, we need to turn our attention to the fundamentals of open source and its principles. It is the intersection of intellectual property and open-source principles that yields open source licensing. So then, what makes code open source? The most authoritative source for guidance comes from The Open Source Initiative. The organization's website can be found at opensource.org. The Open Source Initiative is quick to point out that just having access to the source code by itself does not make the code open source. You can have access to the source with source open in shared source scenarios. The key though is what you're able to do with the code. The term Open Source is a defined term, and there are 10 factors offered by The Open Source Initiative that must be satisfied for software and its associated license to be regarded and certified as open source. Let's examine these 10 factors. The first is free redistribution. The license shall 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. So while you're free to charge for your software that incorporates an open source project, the code you get from the open source project must not require a royalty or any other fee. The program must include source code and must allow distribution in source code as well as compiled form. This goes to the core of what open source is all about. Without the source code and the ability to use, modify, and distribute that code, there wouldn't be any benefits to having open source in the first place. 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 whole idea of open source is to nurture an ecosystem that builds upon the work of others. If you had to take the code as is, by having the code available in the first place, there would be no benefit to open source. The license may restrict source code from being distributed in modified form, only if the license allows the distribution of patched files with the source code for the purpose of modifying the program at build time. This means that the ability to trace code to specific authors is necessary. For example, code I contribute and modify should be traceable to me. The way this is normally accomplished is with public repositories like GitHub, and the request and acceptance of pull requests from individual contributors. The next two are closely related, where we have no discrimination against persons or group, and no discrimination against specific fields of endeavor. Open means open. With no restrictions how can software be used, you can imagine the slippery slope if it were permissible to limit which groups or industries that could use open source software. 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. This means that everything required to secure rights is in the distributed license, meaning there are no subsequent activities that must be carried out in order to use, modify, or distribute the code. The rights attached to the program must not depend on the program being part of a particular software distribution. If open source code was limited to specific products, it would begin to resemble code subject to a closed source proprietary end-user license agreement. This is not to say that one open source project can't depend on another open source project. What an open source project cannot do is require you to acquire a product that is not open source in order to use and implement that open source project. The license must not place restrictions on other software that is distributed along with the licensed software. This means that you're free to include your open source code with proprietary code. So at the end of the day, what this really means is that your use of open source software, it doesn't require that your entire project itself has to be open sourced. And finally, number 10. No provision of the license may be predicated on any specific technology or style of interface. Again, open means open, and it has to be open to a variety of technologies and interfaces. So if your scenario and license complies with all 10 of these factors, then what you have is open source. And the open source licenses covered in this course comply with all 10 factors.