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

14 Ethical and Philosophical Consideration

The GNU project takes a strong stand for software freedom. Many times, this means you’ll need to avoid certain technologies when their use would conflict with our long-term goals.

Software patents threaten the advancement of free software and freedom to program. There are so many software patents in the US that any large program probably implements hundreds of patented techniques, unknown to the program’s developers. It would be futile and self-defeating to try to find and avoid all these patents. But there are some patents which we know are likely to be used to threaten free software, so we make an effort to avoid the patented techniques. If you are concerned about the danger of a patent and would like advice, write to, and we will try to help you get advice from a lawyer.

Sometimes the GNU project takes a strong stand against a particular patented technology in order to encourage society to reject it. That is why we rejected MP3 audio format in favor of the unpatented Ogg Vorbis format. These patents have reportedly expired, but we still prefer Ogg formats to MP3 formats. Please support this campaign by making Ogg Vorbis the preferred format for audio distribution in GNU packages and their web sites.

We will consider using Ogg Opus at some point in the future. It is fine to distribute Ogg Opus files also, but please continue distributing Ogg Vorbis, so as not to hurry users to change the software with which they listen to audio.

We are unable to find a modern compressed video format that is truly safe from patents, so we use the Ogg Theora and WebM formats for which no licensing consortium has been set up. GNU programs and their web sites should not distribute video in MPEG-2 or MPEG 4 formats.

A GNU package should not recommend use of any nonfree program, nor should it require a nonfree program (such as a nonfree compiler or IDE) to build. Thus, a GNU package cannot be written in a programming language that does not have a free software implementation. Now that GNU/Linux systems are widely available, all GNU packages should provide full functionality on a 100% free GNU/Linux system, and should not require any nonfree software to build or function. The GNU Coding Standards say a lot more about this issue.

Similarly, a GNU package should not require the use of nonfree software, including JavaScript, for the coordination of its development. For example, please don’t use Transifex for translation of your software because it requires your translators to use nonfree, JavaScript-based editing tools. Instead, a service without any ethical concerns should be used, such as The Translation Project (

A GNU package should not refer the user to any nonfree documentation for free software. The need for free documentation to come with free software is now a major focus of the GNU project; to show that we are serious about the need for free documentation, we must not contradict our position by recommending use of documentation that isn’t free.

Please don’t host discussions about your package in a service that requires nonfree software. For instance, Google+ “communities” require running a nonfree JavaScript program to post a message, so they can’t be used in the Free World. Google Groups has the same problem. To host discussions there would be excluding people who live by free software principles.

Of course, you can’t order people not to use such services to talk with each other. What you can do is not legitimize them, and use your influence to lead people away from them. For instance, where you say where to have discussions related to the program, don’t list such a place.

Finally, new issues concerning the ethics of software freedom come up frequently. We ask that GNU maintainers, at least on matters that pertain specifically to their package, stand with the rest of the GNU project when such issues come up.

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