In developing applications for Fedora Infrastructure we have to worry about how the licenses we use in various bits of code we write interact with each other. This page is to help formulate a plan of action for hw we are going to license works we generate in Fedora Infrastructure to make optimal use of our work.
- Be able to share code among the various pieces we write.
- Not have our libraries force a specific license on the apps that we write.
- Not have conflicting licenses between our apps and our libraries
- Have a clear understanding of the steps we must take whenever we want to move code from an application under one license to a library under a different one.
- Protect the code we write from being taken proprietary (note, this is not the same for every author, MM for instance is under the MIT/X11 License).
We need to understand how our licensing choices help or hinder accomplishing our goals in order to come up with a plan of action.
- Can the authors of a work (especially Red Hat employees) relicense their code at will?
- Can Fedora relicense code under the CLA?
- GPLv2 and AGPLv3/GPLv3 are incompatible for combining and linking in compiled languages. How does that work in dynamic languages? Especially python.
- With code licensed under the AGPLv3, do we need to link/be able to distribute to people the exact code that is part of the applications? ie: if we hotfix something on hte server, do we need to distribute the hotfix as well?
- Does this extend to libraries that the app depends on?
- All web apps written by Red Hat employees would be AGPLv3
- All python modules written by Red Hat employees would be LGPLv2
- web apps written for Infrastructure by others must be code-sharable with this but do not need to be the same license (ie: MIT, BSD, Public Domain, are all okay. GPLv3 or GPLv2+ web aps are okay. LGPLv2 or LGPLv2+ libraries are okay).
- Authors of applications can be asked to shift code into modules for use under LGPLv2. For Red Hat written apps, we (Infrastructure) can do this with verbal/email/IRC consent from the author. For others, it is up to the author whether they are willing to let their code be relicensed in this way