Advocacy documentation.
authorBruno Haible <bruno@clisp.org>
Sat, 6 Dec 2008 12:04:07 +0000 (13:04 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 6 Dec 2008 12:04:07 +0000 (13:04 +0100)
ChangeLog
doc/gnulib-intro.texi
doc/gnulib.texi

index d34dbab54d1b79cc4dcda14033cfb7f5ea85de85..26a393a4f767edb93e45fce8ab4f5a3b3a05f4a2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-12-06  Bruno Haible  <bruno@clisp.org>
+
+       Advocacy documentation.
+       * doc/gnulib-intro.texi (Benefits): New section.
+       * doc/gnulib.texi: Update.
+
 2008-12-06  Bruno Haible  <bruno@clisp.org>
 
        Document the 'manywarnings' module.
index 169ca80547324c38f70c4315dc277091c03660d0..fa282a4b29512b39135700a9121176782def052d 100644 (file)
@@ -1,3 +1,37 @@
+@node Benefits
+@section Benefits of using Gnulib
+
+Gnulib is useful to enhance various aspects of a package:
+
+@itemize @bullet
+@item
+Portability: With Gnulib, a package maintainer can program against the
+POSIX and GNU libc APIs and nevertheless expect good portability to
+platforms that don't implement POSIX.
+
+@item
+Maintainability: When a package uses modules from Gnulib instead of code
+written specifically for that package, the maintainer has less code to
+maintain.
+
+@item
+Security: Gnulib provides functions that are immune against vulnerabilities
+that plagues the uses of the corresponding commonplace functions. For
+example, @code{asprintf}, @code{canonicalize_file_name} are not affected
+by buffer sizing problems that affect @code{sprintf}, @code{realpath}.
+@code{openat} does not have the race conditions that @code{open} has. Etc.
+
+@item
+Reliability: Gnulib provides functions that combine a call to a system
+function with a check of the result. Examples are @code{xalloc},
+@code{xprintf}, @code{xstrtod}, @code{xgetcwd}.
+
+@item
+Structure: Gnulib offers a way to structure code into modules, typically
+one include file, one source code file, and one autoconf macro for each
+functionality. Modularity helps maintainability.
+@end itemize
+
 @node Library vs Reusable Code
 @section Library vs. Reusable Code
 
index a93b64345e888322c13f4d2d5abd50b4f6096e44..8411c80a647e0da03f65aa9f0964bcdfc423374c 100644 (file)
@@ -78,6 +78,7 @@ If you need this particular \thing\, you may write to
 @w{@code{<bug-gnulib at gnu dot org>}}.
 @end macro
 
+
 @node Introduction
 @chapter Introduction
 
@@ -96,6 +97,7 @@ Resources:
 @end itemize
 
 @menu
+* Benefits::
 * Library vs Reusable Code::
 * Portability and Application Code::
 * Modules::