X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=README;h=0191f7a93eeef53463aca05e92476cc53dc8bf1f;hb=fa1db0dd22768f09a507674a30beb5b8a87bb35f;hp=413c1533b4de243b0e0d4620631129b5e4b9a1b1;hpb=76a774bce0ece69de840208c0aca98a9fdbc68ff;p=gnulib.git diff --git a/README b/README index 413c1533b..0191f7a93 100644 --- a/README +++ b/README @@ -1,94 +1 @@ -GNULib -====== - -GNULib is inteded to be the canonical source for most of the important -"Portability" files for GNU projects. - -While portability is not one of our primary goals, it has helped -introduce many people to the GNU system, and is worthwhile when it can -be acheived at a low cost. This collection helps lower that cost. - -There are three directories that contain all of the files: - -gpl/ - Any source files licensed under the GNU General Public License -lgpl/ - Any source files licensed under the GNU Lesser GPL -doc/ - Any documents that may be nice to have in applications. This -includes such files as 'COPYING, COPYING.LIB, etc.' - -Contributing to GNULib -====================== - -All software here is Copyright (c) Free Software Foundation - you need -to have filled out an assignment form for a project that uses the -module for that contribution to be accepted here. - -If you have a piece of code that you would like to contribute, please -email bug-gnulib@gnu.org. We will add you to the maintainers list. - -Generally we are looking for files that fulfill at least one of the -following requirements: - - * 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 library. - -How to add a new module ------------------------ - -* Add the header files and source files to lib/. -* If the module needs configure-time checks, write an autoconf - macro for it in m4/.m4. See m4/README for details. -* Write a module description modules/, based on modules/TEMPLATE. -* Add the module to the list in MODULES.html.sh. - -You can test that a module builds correctly with: - $ ./gnulib-tool --create-testdir --dir=/tmp/testdir module1 ... moduleN - $ cd /tmp/testdir - $ ./configure && make - -Other things: -* Check the license and copyright year of headers. -* Add source files to config/srclist* if they are identical to upstream - and should be upgraded in gnulib whenever the upstream source changes. -* Include header files in source files to verify the function prototypes. -* Make sure a replacement function doesn't cause warnings or clashes on - systems that have the function. -* Autoconf functions can use gl_* prefix. The AC_* prefix is for - autoconf internal functions. -* Try to prevent that the files are built if they aren't needed on a - platform. Valid excuses to this rule include ELIDE constructs that - lead to an empty .o file (see getopt module). -* If you have a .c file that leads to an empty .o file on some platforms - (through some big #if around all the code), still make sure that after - preprocessing the compilation unit is not empty. This is usually fulfilled - if you #include or #include before the big #if; - otherwise you need to add a #else branch containing "typedef int dummy;" - or "extern int dummy;". - -High Quality -============ - -We will be developing a testsuite for these applications. The goal is -to have a 100% firm interface so that maintainers can feel free to -update to the code in CVS at *any* time and know that their -application will not break. This means that before any change can be -committed to the repository, a test suite program must be produced -that exposes the bug for regression testing. All experimental work -should be done on branches to help promote this. - -CVS -=== - -GNULib is available for anonymous checkout. In any Bourne-shell the -following should work: - -$ cvs -d :pserver:anoncvs@cvs.gnu.org:/cvsroot/gnulib login -(Just hit Enter or Return when prompt for a password) -$ cvs -d :pserver:anoncvs@cvs.gnu.org:/cvsroot/gnulib checkout gnulib - +Please see doc/gnulib-readme.texi for basic information about Gnulib.