Here's the explanation of what it means for a program to be a GNU package: ====================================================================== Calling a program GNU software means that its developers and the GNU project agree that "This program is part of the GNU project, released under the aegis of GNU"--and say so in the program. This means that we normally put the program on ftp.gnu.org (although we could instead refer to the developer's choice of ftp site). This means that we put the official pages describing the program on the www.gnu.org, specifically in /software/PROGRAMNAME. Whenever you give out the URL for the package home page, you would give this address. (It is ok to put more informal pages about secondary issues, such as discussion meant for people who want to help develop the package, and pages that access data bases, on some other site.) It means that the developers agree to pay some attention to making the program work well with the rest of the GNU system--and conversely that the GNU project will encourage other GNU maintainers to pay some attention to making their programs fit in well with it. Just what it means to make programs work well together is mainly a practical matter that depends on what the program does. But there are a few general principles. Certain parts of the GNU coding standards directly affect the consistency of the whole system. These include the standards for configuring and building a program, and the standards for command-line options. It is important to make all GNU programs follow these standards, where they are applicable. Another important GNU standard is that GNU programs should come with documentation in Texinfo format. That is the GNU standard documentation format, and it can be converted automatically into various other formats. You can use DocBook format or another suitable format for the documentation sources, as long as you verify that converting it automatically into Texinfo gives correct and reasonable results. If a GNU program wants to be extensible, it should use GUILE (http://www.gnu.org/software/guile/guile.html) as the programming language for extensibility--that is the GNU standard extensibility package. If the program doesn't use GUILE today, at least there should be a firm plan to support it in the future. A GNU program should use the latest version of a license that the GNU Project recommends--not just any free software license. A GNU program should not recommend use of any non-free program, and it should not refer the user to any non-free documentation for free software. The need for free documentation to go 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. Occasionally there are issues of terminology which are important for the success of the GNU project as a whole. So we expect maintainers of GNU programs to follow them. For example, the documentation files and comments in the program should speak of Linux-based GNU systems or GNU/Linux systems, rather than calling the whole system "Linux", and should use the term "free software" rather than "open source". Deciding that a program is GNU software does not necessarily require transferring copyright to the FSF; that is a separate question. If you transfer the copyright to the FSF, the FSF will enforce the GPL for the program if someone violates it; if you keep the copyright, enforcement will be up to you.