X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=doc%2Fstandards.texi;h=cbf2f842868ef0a0614bd614431cf16a94c29225;hb=70302e4b86816aea51eb21da522f75831fa7b993;hp=088f2fabbccc64e29631422bc5807c920695cd94;hpb=31d3154399f8c679ba23afb0f6bef03b73d4c741;p=gnulib.git diff --git a/doc/standards.texi b/doc/standards.texi index 088f2fabb..cbf2f8428 100644 --- a/doc/standards.texi +++ b/doc/standards.texi @@ -3,7 +3,7 @@ @setfilename standards.info @settitle GNU Coding Standards @c This date is automagically updated when you save this file: -@set lastupdate June 7, 2009 +@set lastupdate December 11, 2009 @c %**end of header @dircategory GNU organization @@ -81,9 +81,6 @@ programs written in C, but many of the rules and principles are useful even if you write in another programming language. The rules often state reasons for writing in a certain way. -This release of the GNU Coding Standards was last updated -@value{lastupdate}. - @cindex where to obtain @code{standards.texi} @cindex downloading this manual If you did not obtain this file directly from the GNU project and @@ -92,6 +89,18 @@ Coding Standards from the GNU web server in many different formats, including the Texinfo source, PDF, HTML, DVI, plain text, and more, at: @uref{http://www.gnu.org/prep/standards/}. +If you are maintaining an official GNU package, in addition to this +document, please read and follow the GNU maintainer information +(@pxref{Top, , Contents, maintain, Information for Maintainers of GNU +Software}). + +@cindex @code{gnustandards-commit@@gnu.org} mailing list +If you want to receive diffs for every change to these GNU documents, +join the mailing list @code{gnustandards-commit@@gnu.org}, via the web +interface at +@url{http://lists.gnu.org/mailman/listinfo/gnustandards-commit}. +Archives are also available there. + Corrections or suggestions for this document should be sent to @email{bug-standards@@gnu.org}. If you make a suggestion, please include a suggested new wording for it; our time is limited. We prefer a context @@ -114,6 +123,10 @@ The GNU Hello program serves as an example of how to follow the GNU coding standards for a trivial program. @uref{http://www.gnu.org/software/hello/hello.html}. +This release of the GNU Coding Standards was last updated +@value{lastupdate}. + + @node Legal Issues @chapter Keeping Free Software Free @cindex legal aspects @@ -3948,7 +3961,7 @@ is preferable to setting them in environment variables: CC=gcc ./configure @end example as it helps to recreate the same configuration later with -@file{config.status}. +@file{config.status}. However, both methods should be supported. @end table All @code{configure} scripts should accept all of the ``detail'' @@ -4051,13 +4064,13 @@ installing the program should @strong{never} be included in the distribution. So if you do distribute non-source files, always make sure they are up to date when you make a new distribution. -Make sure that the directory into which the distribution unpacks (as -well as any subdirectories) are all world-writable (octal mode 777). -This is so that old versions of @code{tar} which preserve the -ownership and permissions of the files from the tar archive will be -able to extract all the files even if the user is unprivileged. - -Make sure that all the files in the distribution are world-readable. +Make sure that all the files in the distribution are world-readable, and +that directories are world-readable and world-searchable (octal mode 755). +We used to recommend that all directories in the distribution also be +world-writable (octal mode 777), because ancient versions of @code{tar} +would otherwise not cope when extracting the archive as an unprivileged +user. That can easily lead to security issues when creating the archive, +however, so now we recommend against that. Don't include any symbolic links in the distribution itself. If the tar file contains symbolic links, then people cannot even unpack it on @@ -4210,5 +4223,5 @@ eval: (add-hook 'write-file-hooks 'time-stamp) time-stamp-start: "@set lastupdate " time-stamp-end: "$" time-stamp-format: "%:b %:d, %:y" -compile-command: "make just-standards" +compile-command: "cd work.s && make" End: