summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2005-08-10 19:02:17 +0000
committerKarl Berry <karl@freefriends.org>2005-08-10 19:02:17 +0000
commit5dc0042226db5eadfb07b5cc3cc4972fcc56560d (patch)
tree37aa5b02a5b59248dee30219a0fb015a09a652b9 /README
parent6e32a4f3592731c432e463a855e303cdc73c4e4c (diff)
downloadgnulib-5dc0042226db5eadfb07b5cc3cc4972fcc56560d.tar.gz
typos from Ralf, other updates
Diffstat (limited to 'README')
-rw-r--r--README71
1 files changed, 35 insertions, 36 deletions
diff --git a/README b/README
index c3c593abf5..54cc04eb5c 100644
--- a/README
+++ b/README
@@ -1,29 +1,26 @@
-GNULib
+Gnulib
======
-GNULib is intended to be the canonical source for most of the important
-"Portability" files for GNU projects.
+Gnulib is intended to be the canonical source for most of the important
+"portability" and/or common files for GNU projects. These are files
+intended to be shared at the source level; Gnulib is not a library meant
+to be installed and linked against.
-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 achieved at a low cost. This collection helps lower that cost.
+While portability across operating systems is not one of GNU's primary
+goals, it has helped introduce many people to the GNU system, and is
+worthwhile when it can be achieved 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
+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.
+email bug-gnulib@gnu.org. You can review the archives, subscribe, etc.,
+via http://lists.gnu.org/mailman/listinfo/bug-gnulib.
Generally we are looking for files that fulfill at least one of the
following requirements:
@@ -38,24 +35,24 @@ 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.
+
License
-------
-
-GNULib contains code both under GPL and LGPL. Because several packages
-that use GNULib are GPL, the files state they are licensed under GPL.
+Gnulib contains code both under GPL and LGPL. Because several packages
+that use Gnulib are GPL, the files state they are licensed under GPL.
However, to support LGPL projects as well, you may use some of the
files under LGPL. The "License:" information in the files under
modules/ clarifies the real license that applies to the module source.
-Keep in mind that if you submit patches to files in GNULib, you should
+Keep in mind that if you submit patches to files in Gnulib, you should
license them under a compatible license, which means that sometimes
the contribution will have to be LGPL, if the original file is
available under LGPL via a "License: LGPL" information in the
projects' modules/ file.
+
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/<module>.m4. See m4/README for details.
@@ -89,17 +86,17 @@ Other things:
Portability guidelines
----------------------
-GNULib code is intended to be portable to a wide variety of platforms,
+Gnulib code is intended to be portable to a wide variety of platforms,
not just GNU platforms.
-Many GNULib modules exist so that applications need not worry about
+Many Gnulib modules exist so that applications need not worry about
undesirable variability in implementations. For example, an
application that uses the 'malloc' module need not worry about (malloc
(0)) returning NULL on some Standard C platforms; and 'time_r' users
need not worry about localtime_r returning int (not char *) on some
platforms that predate POSIX 1003.1-2001.
-Originally much of the GNULib code was portable to ancient hosts like
+Originally much of the Gnulib code was portable to ancient hosts like
4.2BSD, but it is a maintenance hassle to maintain compatibility with
unused hosts, so currently we assume at least a freestanding C89
compiler, possibly operating with a C library that predates C89. The
@@ -108,7 +105,7 @@ though we haven't tested this exact combination. SunOS 4 last shipped
on 1998-09-30, and Sun dropped support for it on 2003-10-01, so at
some point we may start assuming a C89 library as well.
-Because we assume a freestanding C89 compiler, GNULib code can include
+Because we assume a freestanding C89 compiler, Gnulib code can include
<float.h>, <limits.h>, <stdarg.h>, and <stddef.h> unconditionally. It
can also include hosted headers like <errno.h> that were present in
Unix Version 7 and are thus widely available. Similarly, many modules
@@ -116,25 +113,25 @@ include <sys/types.h> even though it's not even in C99; that's OK
since <sys/types.h> has been around nearly forever. <string.h> and
<stdlib.h> were not in Unix Version 7, so they weren't universally
available on ancient hosts, but they are both in SunOS 4 (the oldest
-platform still in relatively-common use) so GNULib assumes them now.
+platform still in relatively-common use) so Gnulib assumes them now.
Even if the include files exist, they may not conform to C89.
However, GCC has a "fixincludes" script that attempts to fix most
-C89-conformance problems. So GNULib currently assumes include files
+C89-conformance problems. So Gnulib currently assumes include files
largely conform to C89 or better. People still using ancient hosts
should use fixincludes or fix their include files manually.
Even if the include files conform to C89, the library itself may not.
-For example, SunOS 4's (free (NULL)) can dump core, so GNULib code
+For example, SunOS 4's (free (NULL)) can dump core, so Gnulib code
must avoid freeing a null pointer, even though C89 allows it.
You can work around some of these problems by requiring the relevant
-modules, e.g., the GNULib 'free' module supplies a conforming 'free'.
+modules, e.g., the Gnulib 'free' module supplies a conforming 'free'.
-The GNU coding standards allow one departure from strict C99: GNULib
+The GNU coding standards allow one departure from strict C99: Gnulib
code can assume that standard internal types like size_t are no wider
than 'long'. POSIX 1003.1-2001 and the GNU coding standards both
-require 'int' to be at least 32 bits wide, so GNULib code assumes this
-as well. GNULib code makes the following additional assumptions:
+require 'int' to be at least 32 bits wide, so Gnulib code assumes this
+as well. Gnulib code makes the following additional assumptions:
* Signed integer arithmetic is two's complement, without runtime
overflow checking. This is the traditional behavior, and is
@@ -167,9 +164,9 @@ appreciate hearing of any fixes. We need fixes that do not increase
runtime overhead on standard hosts and that are relatively easy to
maintain.
-With the above caveats, GNULib code should port without problem to new
+With the above caveats, Gnulib code should port without problem to new
hosts, e.g., hosts conforming to C99 or to recent POSIX standards.
-Hence GNULib code should avoid using constructs (e.g., undeclared
+Hence Gnulib code should avoid using constructs (e.g., undeclared
functions return 'int') that do not conform to C99.
High Quality
@@ -186,17 +183,19 @@ should be done on branches to help promote this.
CVS
===
-GNULib is available for anonymous checkout. In any Bourne-shell the
+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
+Gnulib is hosted on savannah.gnu.org. The project page is
+http://savannah.gnu.org/projects/gnulib.
------
-Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+-----
+Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by