Infrastructure Licensing

From FedoraProject

Jump to: navigation, search

All software used in Fedora Infrastructure is Free Software. When we develop applications for Fedora Infrastructure, we have to license them under a free software license to continue to meet this goal. However, with each application, we have to choose one particular license and that means we need to think about how our choices will influence our ability to share code with each other. This page gives guidance on making licensing choices that will expand the amount of free software while causing us the least pain when we want to share code with each other.

Contents

Goals

Preferred Licenses

In general, Fedora Infrastructure has chosen to use the family of GNU Public Licenses in order to keep the software free. The particular licenses chosen aim to make the software compatible with as much software as possible while still keeping this goal.

The preferred license for anything that we write is GPLv2+. This lets our code be used in both GPLv2 and GPLv3 code bases.

The preferred license for python modules and other libraries is LGPLv2+. This lets us use the library with applications with different licenses like MIT and not force the application as a whole to fall under the GPL.

Note that working with upstreams that have their own licenses or needs of the community that will be using the software can lead to different licensing choices on a case-by-case basis. This guidance is meant to make life easier for us as we develop code while supporting the expansion of free software.

Note.png
Historical Note
A draft version of this policy proposed to use AGPLv3+ for web applications but discussion decided that the effort needed for infrastructure to comply would not outweigh the protection afforded to the code bases. At this time we're not going to use AGPLv3+. Meeting log

Implementation

Third Party Apps under AGPLv3+

Sometimes we will run third party applications under the AGPLv3+. This section sums up how we need to proceed in order to run those apps on our servers.

Warning (medium size).png
Draft Documents
This portion of the document is in a draft state. Infrastructure needs to evaluate how to satisfy the AGPLv3+ with the least intrusiveness to system admins.

Production

Staging

At this time, we require that staging follow the same proceedure as Production. In the future, we may choose to limit who can hit certain web apps on staging instead of enforcing patches in trac for any deviations from upstream source. Doing that can be done by changing the proxy servers to use mod_auth_pgsql and Apache Basic Auth on those services licensed under the AGPLv3+.

publictest

For publictest machines we've currently adopted a "demo-only" policy. What this means is that for AGPL apps we do not do development directly on the publictest boxes. It's only for deploying demos of something new that you've done that's currently inappropriate for staging. The rules are very similar to the rules for staging.

If we need publictest machines for development purposes in the future, we can look into adding to this policy on how to do that in a compliant manner.

FAQ

References

This is a space for specific links to mailing list or other resources that informed the information on this page.