GNU Development Resources

Introduction

This page describes the development services available for GNU developers on GNU Project machines. If you would like to make use of one of these services for development of a GNU package, please contact the address listed for the particular service. For full details of the privileges and responsibilities of GNU maintainers, please see the Information for GNU Maintainers document. (The GNU Coding Standards may also be of interest, and the overview of what it means to be a GNU package.)

With the abundance of inexpensive computers that can run GNU/Linux, as well as the greater availability of Internet access, many GNU volunteers today have all the computer facilities they need. However, there are still advantages to having central computers where GNU volunteers can work together without having to make their own machines accessible to others.

For that reason, the Free Software Foundation strongly encourages GNU software projects to use the machines at gnu.org as a home base. Using these machines also benefits the GNU Project indirectly, by increasing public awareness of GNU, and spreading the idea of working together for the benefit of everyone.

Savannah and version control

If you are developing an official GNU package, we strongly encourage you to create and manage a public source repository on Savannah, the GNU software repository. First create yourself an account and then register your GNU package. After it is created, you will be able to choose a version control system and manage the list of people who have write access to it by yourself, among other features.

Mailing Lists

We operate mailing lists for GNU software packages as needed, including both hand-managed lists and automatically managed lists.

When a GNU package is registered on Savannah, a web interface allows developers to create and manage mailing lists dedicated to this package.

Each GNU software package ought to have at least a bug-reporting list with the canonical name bug-name@gnu.org, plus whatever other aliases may be useful. Using Savannah, you can create lists for your package with names like this. Some packages share the list bug-gnu-utils@gnu.org but we now encourage packages to set up their own individual lists.

Packages can have other lists for announcements, for asking for help, for posting related source code, for discussion among users, or whatever the package maintainer thinks is useful.

Mailing list archives for automatically-managed lists are available at http://lists.gnu.org, as well as through the list manager. Archives for hand-maintained lists are generally kept in /com/archive on the GNU machines.

When a mailing list becomes large enough to justify it, we can set up a gnu.* newsgroup with a two-way link to the mailing list.

Web Server

Our master web server is located at http://www.gnu.org/, and has mirrors around the world. We would like to host pages on this server about each and every GNU software package.

The machine which serves the www.gnu.org web pages is separate from the rest of the GNU machines. GNU packages should use http://www.gnu.org/software/package as their primary home page. On Savannah, maintainers can create the pages at that url via a CVS “web repository”, separate from the package's main source repository. More information on web pages.

FTP

We can also provide an FTP site for any GNU software package on http://ftp.gnu.org/, which is mirrored worldwide.

We use a different server for test releases, so that people won't install them thinking they are ready for prime time. This server is ftp://alpha.gnu.org/.

The Information for GNU Maintainers document has complete details on the FTP upload process.

Login Accounts

We give out shell login access to GNU machines to people who need them for work on GNU software. Having a login account is both a privilege and a responsibility, and they should be used only for your work on GNU. Please read access methods for GNU machines in order to obtain an account.

back to top

Check out other Free Software Foundation campaigns

Translations of this page