Work around the Solaris 10 ACE ACLs ABI change.
[gnulib.git] / doc / standards.texi
index 12d4267..02848ef 100644 (file)
@@ -3,7 +3,7 @@
 @setfilename standards.info
 @settitle GNU Coding Standards
 @c This date is automagically updated when you save this file:
-@set lastupdate October 10, 2007
+@set lastupdate May 5, 2008
 @c %**end of header
 
 @dircategory GNU organization
 
 @c This is used by a cross ref in make-stds.texi
 @set CODESTD  1
-@iftex
-@set CHAPTER chapter
-@end iftex
-@ifinfo
-@set CHAPTER node
-@end ifinfo
 
 @copying
 The GNU coding standards, last updated @value{lastupdate}.
 
 Copyright @copyright{} 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
 Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
@@ -311,13 +305,17 @@ for a language that is higher level than C.  Often much of the program
 is written in that language, too.  The Emacs editor pioneered this
 technique.
 
-@cindex GUILE
-The standard extensibility interpreter for GNU software is GUILE
-(@uref{http://www.gnu.org/software/guile/}), which implements the
-language Scheme (an especially clean and simple dialect of Lisp).  We
-don't reject programs written in other ``scripting languages'' such as
-Perl and Python, but using GUILE is very important for the overall
-consistency of the GNU system.
+@cindex Guile
+@cindex GNOME and Guile
+The standard extensibility interpreter for GNU software is Guile
+(@uref{http://www.gnu.org/@/software/@/guile/}), which implements the
+language Scheme (an especially clean and simple dialect of Lisp).
+Guile also includes bindings for GTK+/GNOME, making it practical to
+write modern GUI functionality within Guile.  We don't reject programs
+written in other ``scripting languages'' such as Perl and Python, but
+using Guile is very important for the overall consistency of the GNU
+system.  
+
 
 @node Compatibility
 @section Compatibility with Other Implementations
@@ -1019,60 +1017,61 @@ abbreviation as usual, as in the examples below.
 
 @table @asis
 @item GPL
-GNU General Public License, @url{http://www.gnu.org/licenses/gpl.html}.
+GNU General Public License, @url{http://www.gnu.org/@/licenses/@/gpl.html}.
 
 @item LGPL
-GNU Lesser General Public License, @url{http://www.gnu.org/licenses/lgpl.html}.
+GNU Lesser General Public License, @url{http://www.gnu.org/@/licenses/@/lgpl.html}.
 
 @item GPL/Guile
 GNU GPL with the exception for Guile; for example, GPLv3+/Guile means
 the GNU GPL version 3 or later, with the extra exception for Guile.
 
+@item GPL/Ada
 GNU GPL with the exception for Ada.
 
 @item Apache
 The Apache Software Foundation license,
-@url{http://www.apache.org/licenses}.
+@url{http://www.apache.org/@/licenses}.
 
 @item Artistic
-The Artistic license used for Perl, @url{http://www.perlfoundation.org/legal}.
+The Artistic license used for Perl, @url{http://www.perlfoundation.org/@/legal}.
 
 @item Expat
-The Expat license, @url{http://www.jclark.com/xml/copying.txt}.
+The Expat license, @url{http://www.jclark.com/@/xml/@/copying.txt}.
 
 @item MPL
-The Mozilla Public License, @url{http://www.mozilla.org/MPL/}.
+The Mozilla Public License, @url{http://www.mozilla.org/@/MPL/}.
 
 @item OBSD
 The original (4-clause) BSD license, incompatible with the GNU GPL
-@url{http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6}.
+@url{http://www.xfree86.org/@/3.3.6/@/COPYRIGHT2.html#6}.
 
 @item PHP
-The license used for PHP, @url{http://www.php.net/license/}.
+The license used for PHP, @url{http://www.php.net/@/license/}.
 
 @item public domain
 The non-license that is being in the public domain,
-@url{http://www.gnu.org/licenses/license-list.html#PublicDomain}.
+@url{http://www.gnu.org/@/licenses/@/license-list.html#PublicDomain}.
 
 @item Python
-The license for Python, @url{http://www.python.org/2.0.1/license.html}.
+The license for Python, @url{http://www.python.org/@/2.0.1/@/license.html}.
 
 @item RBSD
 The revised (3-clause) BSD, compatible with the GNU GPL,
-@url{http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5}.
+@url{http://www.xfree86.org/@/3.3.6/@/COPYRIGHT2.html#5}.
 
 @item X11
 The simple non-copyleft license used for most versions of the X Window
-system, @url{http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3}.
+system, @url{http://www.xfree86.org/@/3.3.6/@/COPYRIGHT2.html#3}.
 
 @item Zlib
-The license for Zlib, @url{http://www.gzip.org/zlib/zlib_license.html}.
+The license for Zlib, @url{http://www.gzip.org/@/zlib/@/zlib_license.html}.
 
 @end table
 
 More information about these licenses and many more are on the GNU
 licensing web pages,
-@url{http://www.gnu.org/licenses/license-list.html}.
+@url{http://www.gnu.org/@/licenses/@/license-list.html}.
 
 
 @node --help
@@ -2861,7 +2860,7 @@ void error (int status, int errnum, const char *format, ...);
 A simple way to use the Gnulib error module is to obtain the two
 source files @file{error.c} and @file{error.h} from the Gnulib library
 source code repository at
-@uref{http://savannah.gnu.org/cgi-bin/viewcvs/gnulib/gnulib/lib/}.
+@uref{http://git.savannah.gnu.org/@/gitweb/@/?p=gnulib.git}.
 Here's a sample use:
 
 @example
@@ -3826,6 +3825,17 @@ refer explicitly to the specified source directory.  To make this
 possible, @code{configure} can add to the Makefile a variable named
 @code{srcdir} whose value is precisely the specified directory.
 
+In addition, the @samp{configure} script should take options
+corresponding to most of the standard directory variables
+(@pxref{Directory Variables}).  Here is the list:
+
+@example
+--prefix --exec-prefix --bindir --sbindir --libexecdir --sysconfdir
+--sharedstatedir --localstatedir --libdir --includedir --oldincludedir
+--datarootdir --datadir --infodir --localedir --mandir --docdir
+--htmldir --dvidir --pdfdir --psdir
+@end example
+
 The @code{configure} script should also take an argument which specifies the
 type of system to build the program for.  This argument should look like
 this:
@@ -3841,7 +3851,7 @@ The @code{configure} script needs to be able to decode all plausible
 alternatives for how to describe a machine.  Thus,
 @samp{athlon-pc-gnu/linux} would be a valid alias.  There is a shell
 script called
-@uref{http://savannah.gnu.org/@/cgi-bin/@/viewcvs/@/*checkout*/@/config/@/config/@/config.sub,
+@uref{http://git.savannah.gnu.org/@/gitweb/@/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD,
 @file{config.sub}} that you can use as a subroutine to validate system
 types and canonicalize aliases.
 
@@ -3852,7 +3862,7 @@ plain @var{buildtype} argument.  For example, @samp{configure
 i686-pc-linux-gnu}.  When the build type is not specified by an option
 or argument, the @code{configure} script should normally guess it using
 the shell script
-@uref{http://savannah.gnu.org/@/cgi-bin/@/viewcvs/@/*checkout*/@/config/@/config/@/config.guess,
+@uref{http://git.savannah.gnu.org/@/gitweb/@/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD,
 @file{config.guess}}.
 
 @cindex optional features, configure-time
@@ -4057,9 +4067,9 @@ advertise them to new potential customers, or to give the public the
 idea that their existence is ethical.
 
 The GNU definition of free software is found on the GNU web site at
-@url{http://www.gnu.org/philosophy/free-sw.html}, and the definition
+@url{http://www.gnu.org/@/philosophy/@/free-sw.html}, and the definition
 of free documentation is found at
-@url{http://www.gnu.org/philosophy/free-doc.html}.  The terms ``free''
+@url{http://www.gnu.org/@/philosophy/@/free-doc.html}.  The terms ``free''
 and ``non-free'', used in this document, refer to those definitions.
 
 A list of important licenses and whether they qualify as free is in