Next: , Previous: , Up: Top   [Contents][Index]

8 References to Non-Free Software and Documentation

A GNU program should not recommend, promote, or grant legitimacy to the use of any non-free program. Proprietary software is a social and ethical problem, and our aim is to put an end to that problem. We can’t stop some people from writing proprietary programs, or stop other people from using them, but we can and should refuse to advertise them to new potential customers, or to give the public the impression that their existence is legitimate.

The GNU definition of free software is found on the GNU web site at, and the definition of free documentation is found at The terms “free” and “non-free”, used in this document, refer to those definitions.

A list of important licenses and whether they qualify as free is in If it is not clear whether a license qualifies as free, please ask the GNU Project by writing to We will answer, and if the license is an important one, we will add it to the list.

When a non-free program or system is well known, you can mention it in passing—that is harmless, since users who might want to use it probably already know about it. For instance, it is fine to explain how to build your package on top of some widely used non-free operating system, or how to use it together with some widely used non-free program, after first explaining how to use it on the GNU system.

However, you should give only the necessary information to help those who already use the non-free program to use your program with it—don’t give, or refer to, any further information about the proprietary program, and don’t imply that the proprietary program enhances your program, or that its existence is in any way a good thing. The goal should be that people already using the proprietary program will get the advice they need about how to use your free program with it, while people who don’t already use the proprietary program will not see anything likely to lead them to take an interest in it.

You shouldn’t recommend any non-free add-ons for the non-free program, but it is ok to mention free add-ons that help it to work with your program, and how to install the free add-ons even if that requires running some non-free program.

If a non-free program or system is obscure in your program’s domain, your program should not mention or support it at all, since doing so would tend to popularize the non-free program more than it popularizes your program. (You cannot hope to find many additional users for your program among the users of Foobar, if the existence of Foobar is not generally known among people who might want to use your program.)

Sometimes a program is free software in itself but depends on a non-free platform in order to run. For instance, it used to be the case that many Java programs depended on some non-free Java libraries. (See To recommend or promote such a program is to promote the other programs it needs; therefore, judge mentions of the former as if they were mentions of the latter. For this reason, we were careful about listing Java programs in the Free Software Directory: we wanted to avoid promoting the non-free Java libraries.

Java no longer has this problem, but the general principle will remain the same: don’t recommend, promote or legitimize programs that depend on non-free software to run.

Some free programs strongly encourage the use of non-free software. A typical example is mplayer. It is free software in itself, and the free code can handle some kinds of files. However, mplayer recommends use of non-free codecs for other kinds of files, and users that install mplayer are very likely to install those codecs along with it. To recommend mplayer is, in effect, to promote use of the non-free codecs.

Thus, you should not recommend programs that strongly encourage the use of non-free software. This is why we do not list mplayer in the Free Software Directory.

A GNU package should not refer the user to any non-free documentation for free software. Free documentation that can be included in free operating systems is essential for completing the GNU system, or any free operating system, so encouraging it is a priority; to recommend use of documentation that we are not allowed to include undermines the impetus for the community to produce documentation that we can include. So GNU packages should never recommend non-free documentation.

By contrast, it is ok to refer to journal articles and textbooks in the comments of a program for explanation of how it functions, even though they are non-free. This is because we don’t include such things in the GNU system even if they are free—they are outside the scope of what a software distribution needs to include.

Referring to a web site that describes or recommends a non-free program is promoting that program, so please do not make links to (or mention by name) web sites that contain such material. This policy is relevant particularly for the web pages for a GNU package.

What about chains of links? Following links from nearly any web site can lead eventually to promotion of non-free software; this is inherent in the nature of the web. Here’s how we treat that.

You should not refer to AT&T’s web site if that recommends AT&T’s non-free software packages; you should not refer to a page p that links to AT&T’s site presenting it as a place to get some non-free program, because that part of the page p itself recommends and legitimizes the non-free program.

However, if p contains a link to AT&T’s web site for some other purpose (such as long-distance telephone service), that is no reason you should not link to p.

A web page recommends a program in an implicit but particularly strong way if it requires users to run that program in order to use the page. Many pages contain Javascript code which they recommend in this way. This Javascript code may be free or nonfree, but nonfree is the usual case.

If the purpose for which you would refer to the page cannot be carried out without running nonfree Javascript code, then you should not refer to it. Thus, if the purpose of referring to the page is for people to view a video, or subscribing to a mailing list, and the viewing or subscribing fail to work if the user’s browser blocks the nonfree Javascript code, then don’t refer to that page.

The extreme case is that of web sites which depend on nonfree Javascript code even to see the contents of the pages. Any site hosted on ‘’ has this problem, and so do some other sites. Referring people to such pages to read their contents is, in effect, urging them to run those nonfree programs—so please don’t refer to those pages. (Such pages also break the Web, so they deserve condemnation for two reasons.)

Instead, please quote excerpts from the page to make your point, or find another place to refer to that information.

Next: , Previous: , Up: Top   [Contents][Index]