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.
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
scripts, and more. The goal is to provide all the common
infrastructure needed by GNU packages.
Gnulib does not make releases. It is intended to be used at the
You can browse the
current gnulib sources
To use Gnulib, you can retrieve its source code and its history via
anonymous Git, using the following
git clone git://git.savannah.gnu.org/gnulib.git
Developers can also retrieve the source code via non-anonymous Git,
for purposes of doing commits; for details, please see Gnulib's
top-level README file.
After you have the sources, run ./gnulib-tool --help. For
help and more info, see the documentation and other resources below.
The manual is still minimal and sketchy
(volunteers especially welcome).
./gnulib-tool --help also provides some information, as
You can also view the modules comprising
is used to discuss most aspects of Gnulib, including development and
enhancement requests, as well as bug reports.
If you think you have found a bug in Gnulib, then please send
as complete a report as possible to the mailing list above.
If you would like any new feature to be included in future versions
of Gnulib, please send a request to the mailing list above.
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 in general, please read How to help GNU. Here are some guidelines for people
wishing to contribute to Gnulib:
- If your .c and .h files define functions that are broken or missing
on some other system, we should be able to include it.
- If your functions remove arbitrary limits from existing functions
(either under the same name, or as a slightly different name), we should
be able to include it.
- If your functions define completely new but rarely used
functionality, you should probably consider packaging it as a separate
All Gnulib source code is copylefted by the Free Software Foundation.
Assignment forms may be necessary before we can access your source
Principal active contributors to Gnulib:
and Simon Josefsson.
Please use the mailing list for contact.