Week 3. Copyright and Copyleft: How to make software free?

3.1. Free Software Licenses. Introduction

  • Why does a free program have a license?
    • Everything which is written (including programs) have a license automatically. "Default" (silent) license does not allow people to modify and distribute programs.
    • Typical proprietary license: a contract which restricts users even more than copyright laws.
    • Free software license: gives back to the users their rights which were taken by copyright laws.
  • Copyleft and non copyleft free software licenses.
    • In order for the license to be free software license it shall give the users four essential freedoms (see lecture 1.2). There are many ways to do it which explains why there are many free software licenses.
    • Big dichotomy among free software licenses: copyleft and non copyleft.
    • Copyleft does not allow the user to take free software and make it non free (even after making modifications to the software).
      • The problem is real. E.g., TeX. Its UNIX implementation was made non free while original Knuth's implementation was free (but distributed under non copyleft license).
      • Copyleft idea: to give the freedom to the "next" users of the program.

3.2. GNU GPL and Affero GPL: Copyleft licenses

  • GNU General Public License: GPL.
    • Copyleft license
    • Originally GPL was developed as a license to distribute GNU system under. GPL 3 is designed for other kind of work also.
    • GPL prohibits a lot of different means to make free software non-free. Examples:
      • Release only binaries. GPL requires source code to be available.
      • Change of the license. GPL requires to keep the license.
      • Patent. It's not allowed to use patents to limit the freedom of software distributed under GPL.
  • Other free software licenses are non copyleft. Some of them are very weak ("pushover licenses" allow almost everything). There are also weak copyleft licenses. E.g., Mozilla Public License (MPL):
    • Files which were received under MPL shall be distributed under the same license (MPL) but new files can be added with different license.
    • Way to make free software non free: add new source code files under other license and call the new subroutines defined there from original files.
  • GNU Affero General Public License: AGPL.
    • Secondary effect of copyleft: because modifications are free, developer of the original version cat take them and incorporate to the original software. This is the way to contribute to the community's shared knowledge.
    • Installing modified GPL software on the server is not its distribution. Hence, it's not needed to make the source code available. Therefore second effect of copyleft does not work.
    • AGPL addresses this problem. It requires source code to be available if the software runs on server and is available to others.
    • Relation to SaaSS (see also lecture 2.3):
      • No contradiction with "SaaSS is bad" logic: there are many server software which is not SaaSS and which needs AGPL protection.
      • No license can make SaaSS ethical. The only way to solve the problem is to take server code and execute it by the user.

3.3. Non copyleft and weak copyleft licenses

  • Sometimes there are advantages in using non copyleft license.
    • Ogg/Vorbis player. It was considered as very important for all music players to be able to support this free format. That's why ogg/vorbis codec was distributed under non copyleft license: Apache 2.0 License.
    • Recommended non copyleft license to use: Apache 2.0. Reason: patent protection
  • BSD licenses: original and modified (revised).
    • These licenses are very different. Don't state "The code is distributed under BSD license". The question is - which BSD license?
    • Important difference: advertising requirements.
    • Original BSD license is not recommended to be used to distribute new software under.
  • Other free software licenses.

Additional materials

Useful tools