<<

Software Licensing Nick Gjersvik What are we going to cover?

● The basics of licensing ● Different types of ● Examine how software licenses impact real world projects ● Explore how software licensing affects the creation of ‘good’ software Basics of Software Licensing

● A software is a legal instrument governing the use and redistribution of software ● A license grants permission to use software in ways which might potentially infringe the software owner's rights under ● Under United States copyright law all software is copyright protected ● All software comes with a license ○ Publishing software without a license still grant protections and permissions Importance of Licensing

● Software Developers ○ Protects the author’s ● Project Managers ○ Cost of licensing for corporate projects ● Engineers ○ Embedded software that is may require disclosure Types of Licenses

There are a multiple categories of software licenses that reserve varying amount of rights Types of Licenses

○ Works whose exclusive intellectual property rights have expired, have been forfeited, have been expressly waived ○ SQLite is published into the public domain ● ○ Confidential piece of intellectual property ○ Server side code is the best example of this ● No License ○ Your work is under exclusive copyright by default ○ Nobody else can use, copy, distribute, or modify your work Protective FOSS Licenses -

● Copyleft ○ Practice of offering people the right to freely distribute copies and modified versions of a work with the requirement that the same rights be preserved in derivative works down the line ● GNU General Public License v1 ○ 1989, The first copyleft license ● GNU General Public License v2 ○ Adds the Liberty or Death Clause: licensees may distribute a GPL-covered work only if they can satisfy all of the license obligations, despite any other legal obligations they might have ○ The kernel is licensed under GPLv2 GNU General Public License v3

● Not compatible with GPLv2 ● GPLv3 blocks Tyrant devices ○ A tyrant device is a computer that contain GPL-covered software but does not let you modify it ○ The computer shuts down or bricks itself if it detects modified software ○ May also void warranty Non-Protective FOSS Licenses

● MIT License ○ Permits reuse within provided that all copies of the licensed software include a copy of the MIT License terms and the

“Including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software”

○ Permissive license, limited restriction on reuse ○ Excellent , can be used in GPL code ○ As of 2015, it was the most popular on GitHub Non-Protective FOSS Licenses

● 3-clause BSD License ○ Redistributions of must retain the above copyright notice, this list of conditions and the following disclaimer. ○ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. ○ Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. Most Popular Licenses on Github in 2015 Proprietary Licenses

Hire a lawyer Impact of Software Licensing The Linux Kernel

● The largest open source software project ● Has contributions from major corporations and individuals alike ● Corporations have to contribute if they want new feature added to the kernel ● The Linux kernel uses the GPLv2 license ○ Copyleft license ● Tyrant Devices problem ○ Samsung Smart TV and Android Phones ReactOS

● ReactOS is operating systems designed to exactly mimic Windows ● Clean Room development ○ The functionality of the original software is reverse-engineered by one group of people, who create a "specification document", which contains only functional information about the software. ○ Then, a different group of people attempts to write new software to the same specification. ● If a ReactOS developer ever sees source code from Windows, they cannot continue to work on ReactOS Ethical Analysis

● We want a license that is conducive to writing ‘good’ software ● What are the virtues involved with writing good software? ○ Reliability ○ Benefits users ○ Benefits developers ○ Benefits corporations ● These are all good, regardless of how you license your software ● How does a software license help develop good software? Ethical Analysis

● Software does not have to be a zero sum game ○ Multiple people can benefit from open source software ○ Transparency from developers and those who use the software ● Use the right tool for the job ○ Some licenses impose limitations that may inhibit adoption ○ If your software is not on a client machine then does it matter? ○ How can developers monetize and sustain themselves? How Can Developers Support Themselves With Open Source? ● Dual Licensing your software ○ MongoDB makes use of the GPL and a proprietary license to fund further development ○ How do you take contributions from other people online? ■ One of the major strengths of open source ● Offer Support ○ makes their money on RHEL by offering paid support functions My Opinions

● Virtue ○ Developers should contribute to open source projects if they can ○ The GPLv3 promotes virtuous development ○ May limit adoption ● Utility ○ MIT license is great ○ No restrictions, the most people are going to be happy ○ Developers may not see financial gains ● Proprietary licenses are not inherently evil ○ May not be very virtuous, or provide utility, and may even treat users as a means to an end ○ Something has to fund development ○ Use in combination with other licensing options Questions?