Free System Distribution Guidelines (GNU FSDG)
This page is maintained by the Free Software Foundation's Licensing and Compliance Lab. You can support our efforts by making a donation to the FSF. Have a question not answered here? Check out some of our other licensing resources or contact the Compliance Lab at firstname.lastname@example.org.
The purpose of these guidelines is to explain what it means for an installable system distribution (such as a GNU/Linux distribution) to qualify as free (libre), and help distribution developers make their distributions qualify.
These guidelines are not complete. We have mentioned the issues we are aware of now, but we're sure there are more. We will add them when we come across them.
We would like to thank the Fedora Project for their help in focusing these policies, and allowing us to use their own distribution license guidelines as a basis for this document.
Our list of distributions is a guide for systems you can install in a computer. Therefore, it only includes distributions that are complete in themselves and ready to use. If a distribution is incomplete — if it requires further development, or presupposes installing other software as well — then it is not listed here, even if it is free software.
An exception to this requirement and to the self-hosting requirement above is for small system distributions, which are distros designed for devices with limited resources, like a wireless router for example. Free small system distributions do not need to be self-hosting or complete, because it is impractical to do development on such a system, but it must be developable and buildable on top of a free complete system distribution from our list of distributions, perhaps with the aid of free tools distributed alongside the small system distribution itself.
“Information for practical use” includes software, documentation, fonts, and other data that has direct functional applications. It does not include artistic works that have an aesthetic (rather than functional) purpose, or statements of opinion or judgment.
All information for practical use in a free distribution must be available in source form. (“Source” means the form of the information that is preferred for making changes to it.)
The information, and the source, must be provided under an appropriate free license. We evaluate specific licenses and list our determinations in our license list, with separate sections for licenses that are suitable for software, documentation, fonts, and other useful works. If such a work is released under a disjunction of licenses, the work is free as long as at least one of its licenses is free; the system developers should follow the terms of the applicable free license(s) when they distribute and/or modify it.
A free system distribution must not steer users towards obtaining any nonfree information for practical use, or encourage them to do so. The system should have no repositories for nonfree software and no specific recipes for installation of particular nonfree programs. Nor should the distribution refer to third-party repositories that are not committed to only including free software; even if they only have free software today, that may not be true tomorrow. Programs in the system should not suggest installing nonfree plugins, documentation, and so on.
A free system distribution should be self-hosting. This means that you must be able to develop and build the system with tools that the system provides you. As a result, a free system distribution cannot include free software that can only be built by using nonfree software.
There's a lot of code in most free system distributions today; the amount of effort it would take to audit it all directly is impractical for most teams. In the past, some nonfree code has accidentally been included in free system distributions. We don't de-list distributions because of this; instead, we only ask that a distribution's developers make a good faith effort to avoid including nonfree software, and commit themselves to removing such programs if any are discovered.
Certain kinds of license situations merit special attention for people creating or considering free software distributions; those are discussed in the sections below.
Some applications and drivers require firmware to function, and sometimes that firmware is distributed only in object code form, under a nonfree license. We call these firmware programs “blobs.” On most GNU/Linux systems, you'll typically find these accompanying some drivers in the kernel Linux. Such firmware should be removed from a free system distribution.
Blobs can take many forms. Sometimes, they will be provided in separate files. Other times, they may be incorporated into the source of the driver itself—for example, it could be encoded as a large array of numbers. But no matter how it's encoded, any nonfree firmware needs to be removed from a free system.
(To be clear, not every array of numbers in a driver is firmware. It's important to understand the purpose of the data before deciding whether or not it's appropriate for a free system.)
Brian Brazil, Jeff Moe, and Alexandre Oliva have developed a series of scripts to remove nonfree firmware from a stock version of the Linux kernel. You may find them helpful if you would like to develop your own free GNU/Linux distribution—although we recommend joining development of an existing free distro rather than fragmenting effort by starting a new one. The complete source for a blob-free version of the Linux kernel is also available; you can learn more about this project from the Free Software Directory.
Data that isn't functional, that doesn't do a practical job, is more of an adornment to the system's software than a part of it. Thus, we don't insist on the free license criteria for non-functional data. It can be included in a free system distribution as long as its license gives you permission to copy and redistribute, both for commercial and non-commercial purposes. For example, some game engines released under the GNU GPL have accompanying game information—a fictional world map, game graphics, and so on—released under such a verbatim-distribution license. This kind of data can be part of a free system distribution, even though its license does not qualify as free, because it is non-functional.
Trademarks are associated with some software. For example, the name of a program may be trademarked, or its interface may display a trademarked logo. Often, the use of these marks will be controlled in some way; in particular, developers are commonly asked to remove references to the trademark from the software when they modify it.
In extreme cases, these restrictions may effectively render the program nonfree. It is unfair for someone to ask you to remove a trademark from modified code if that trademark is scattered all throughout the original source. As long as the practical requirements are reasonable, however, free system distributions may include these programs, either with or without the trademarks.
Similarly, the distribution itself may hold particular trademarks. It is not a problem if modification requires removal of these trademarks, as long as they can readily be removed without losing functionality.
However, it is unacceptable to use trademarks to restrict verbatim copying and redistribution of the whole distribution, or any part.
All the documentation in a free system distribution must be released under an appropriate free license. Additionally, it must take care not to recommend nonfree software.
In general, something that helps people who already use nonfree software to use the free software better with it is acceptable, but something that encourages users of the free software to install nonfree software is not.
For example, a free system distribution may have documentation for users setting up dual boot systems. It could explain how to access filesystems of the proprietary operating system, import settings from it, and so on. That would be helping people install a free system distribution on a machine which already has proprietary software, which is good.
What would be unacceptable is for the documentation to give people instructions for installing a nonfree program on the system, or mention conveniences they might gain by doing so.
For a borderline case, a clear and serious exhortation not to use the nonfree program would move it to the acceptable side of the line.
It is effectively impossible for free software developers and distributors to know whether or not a given piece of software infringes any patents: there are too many of them, they vary from country to country, they're often worded so as to make it hard to tell what they do or don't cover, and it isn't easy to tell which ones are valid. Therefore, we don't generally ask free system distributions to exclude software because of possible threats from patents. On the other hand, we also don't object if a distributor chooses to omit some software in order to avoid patent risk.
The distro must contain no DRM, no back doors, and no spyware.
Commitment to Correct Mistakes
Most distribution development teams don't have the resources to exhaustively check that their distribution meet all these criteria. Neither do we. So we expect distros to occasionally contain mistakes: nonfree software that slipped through, etc. We don't reject a distribution over mistakes. Our requirement is for the distribution developers to have a firm commitment to promptly correct any mistakes that are reported to them.
To be listed, a distribution should be actively maintained, and should give the GNU Project a clear and specific way to report problems of nonfree software that we find out about. It should also inform us when the problems we have reported are fixed.
We will not list a distribution whose name makes confusion with nonfree distributions likely. For example, if Foobar Light is a free distribution and Foobar is a nonfree distribution, we will not list Foobar Light. This is because we expect that the distinction between the two would be lost in the process of communicating the message.
Contacting Upstream If You're Downstream
For distro developers (or anyone else) who have sent an important bug report for a GNU package: if it has gone unheeded by the package maintainer after a reasonable time (please allow at least two weeks), you can escalate the bug by writing to <email@example.com>. This is especially warranted if you can't find evidence of recent activity by the package maintainer.
Please Teach Users about Free Software
To establish lasting freedom, just giving users freedom isn't sufficient. It is necessary also to teach them to understand what it means and to demand it. Thus, we suggest and urge that free distros announce prominently on the screen, before login and on the default desktop after login, a prominent statement about freedom, such as “This system is freedom-respecting free/libre software” or something comparable, and to present a link or icon pointing at gnu.org or gnu.org/philosophy for further information about the issue.
Please Avoid Repeating Propaganda and Confusion
Please see our list of words to avoid, which are either biased, misguided or misleading, and try to avoid them in your public statements and discussions with the public.
We maintain a list of the free GNU system distributions we know about. If you know about a free distribution that isn't listed there, please ask its developers write to <firstname.lastname@example.org> with a description of their system and a link to their web page.
We also list free non-GNU system distributions on the same ethical conditions.
If you have questions or comments about these guidelines themselves, feel free to send those to <email@example.com>. We hope that they help everyone better understand the issues that are important for free system distributions, and we look forward to promoting more of them in the future.