Gnulib - The GNU Portability Library

Introduction to Gnulib

GNU software has a well-deserved reputation for running on many different types of systems. While our primary goal is to write software for the GNU system, many users and developers have been introduced to us through the systems that they were already using.

Gnulib is a central location for common GNU code, intended to be shared among GNU packages. GCC has libiberty, but this is hard to disentangle from the GCC build tree. libit proved too hard to keep up to date, and at this point is moribund.

Gnulib takes a different approach. Its components are intended to be shared at the source level, rather than being a library that gets built, installed, and linked against. Thus, there is no distribution tarball; the idea is to copy files from Gnulib into your own source tree.

Gnulib also includes copies of a few files purely for convenience: the GNU coding standards, the GNU maintainer information, the GPL and other licenses (in Texinfo), assorted configuration scripts, and more. The goal is to provide all the common infrastructure needed by GNU packages.

Downloading Gnulib

You can browse the current gnulib sources on savannah.
You can also view the modules comprising gnulib.

To use Gnulib, you can retrieve its source code and its history via anonymous Git, using the following shell command:

git clone git://git.savannah.gnu.org/gnulib.git

GNU developers can also retrieve the source code via non-anonymous Git; for details, please see Gnulib's top-level README file.

Historical versions of Gnulib are also available via CVS, but the old CVS repository is no longer being updated. You can also use CVS in a read-only way, to retrieve the latest version from the Git repository, using a command like this:

cvs -d :pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git co -d gnulib HEAD

After you have the sources, run ./gnulib-tool --help. For help or more info, email bug-gnulib@gnu.org.

Documentation

The manual is still minimal and sketchy (volunteers especially welcome).

./gnulib-tool --help also provides some information, as mentioned above.

Mailing Lists/Newsgroups

Please email bug-gnulib@gnu.org with information. Here are some guidelines, however:

All source code is copylefted by the Free Software Foundation. Assignment forms may be necessary before we can access your source code.

To subscribe to these GNU mailing lists, please send an empty mail with a Subject: header line of just "subscribe" to the relevant -request list. For example, to subscribe yourself to the main list for Gnulib, you would send mail to <bug-gnulib-request@gnu.org> with no body and a Subject: header line of just "subscribe".

Request an Enhancement

If you would like any new feature to be included in future versions of Gnulib, please send a request to <bug-gnulib@gnu.org>.

Please remember that development of Gnulib is a volunteer effort, and you can also contribute to its development. For information about contributing to the GNU Project, please read How to help GNU.

Report a Bug

If you think you have found a bug in Gnulib, then please send as complete a report as possible to <bug-gnulib@gnu.org>.

Contributors

Active principal contributors to Gnulib: Bruno Haible, Eric Blake, Jim Meyering Paul Eggert, and Simon Josefsson.

back to top