CVS update [cvs1-11-x-branch]: /ccvs/doc/

[email protected] 14 Apr 2005 14:24:57 -0000
Newsgroups gmane.comp.version-control.cvs.cvs
Message-ID <[email protected]>
Tag: cvs1-11-x-branch
User: dprice  
Date: 05/04/14 07:24:57

Modified:
 /ccvs/doc/
  ChangeLog, cvs.texinfo, stamp-vti, version.texi

Log:
 * cvs.texinfo (Administrative files): Add "Trigger Scripts" node to
 the menu.
 (Trigger Scripts, Trigger Script Security): New nodes.
 (syntax): Move under Trigger scripts node.
 (commit files, taginfo): Rewrite to reference Trigger Script node.  

File Changes:

Directory: /ccvs/doc/
=====================

File [changed]: ChangeLog
Url: https://ccvs.cvshome.org/source/browse/ccvs/doc/ChangeLog?r1=1.721.2.86&r2=1.721.2.87
Delta lines:  +8 -0
-------------------
--- ChangeLog	6 Apr 2005 20:57:47 -0000	1.721.2.86
+++ ChangeLog	14 Apr 2005 14:24:54 -0000	1.721.2.87
@@ -1,3 +1,11 @@
+2005-04-14  Derek Price  <[email protected]>
+
+	* cvs.texinfo (Administrative files): Add "Trigger Scripts" node to
+	the menu.
+	(Trigger Scripts, Trigger Script Security): New nodes.
+	(syntax): Move under Trigger scripts node.
+	(commit files, taginfo): Rewrite to reference Trigger Script node.  
+
 2005-04-06  Derek Price  <[email protected]>
 
 	* Makefile.am (MAINTAINERCLEANFILES): Add cvs.1.

File [changed]: cvs.texinfo
Url: https://ccvs.cvshome.org/source/browse/ccvs/doc/cvs.texinfo?r1=1.545.2.40&r2=1.545.2.41
Delta lines:  +94 -50
---------------------
--- cvs.texinfo	31 Jan 2005 22:11:04 -0000	1.545.2.40
+++ cvs.texinfo	14 Apr 2005 14:24:54 -0000	1.545.2.41
@@ -11864,6 +11864,8 @@
 @menu
 * modules::                     Defining modules
 * Wrappers::                    Specify binary-ness based on file name
+* Trigger Scripts::		Some notes on the commit support files and
+				taginfo, referenced below.
 * commit files::                The commit support files (commitinfo,
                                 verifymsg, editinfo, loginfo)
 * taginfo::                     Verifying/Logging tags
@@ -12360,56 +12362,26 @@
 @c One catch--"cvs diff" will not invoke the wrappers
 @c (probably a CVS bug, although I haven't thought it out).
 
-@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-@node commit files
-@appendixsec The commit support files
-@cindex Committing, administrative support files
-
-The files described in this section provide flexible ways to run
-programs whenever something is committed.
-
-There are three kinds of programs that can be run on
-commit.  They are specified in files in the repository,
-as described below.  The following table summarizes the
-file names and the purpose of the corresponding
-programs.
-
-@table @file
-@item commitinfo
-The program is responsible for checking that the commit
-is allowed.  If it exits with a non-zero exit status
-the commit will be aborted.
-
-@item verifymsg
-The specified program is used to evaluate the log message,
-and possibly verify that it contains all required
-fields.  This is most useful in combination with the
-@file{rcsinfo} file, which can hold a log message
-template (@pxref{rcsinfo}).
-
-@item editinfo
-The specified program is used to edit the log message,
-and possibly verify that it contains all required
-fields.  This is most useful in combination with the
-@file{rcsinfo} file, which can hold a log message
-template (@pxref{rcsinfo}).  (obsolete)
-
-@item loginfo
-The specified program is called when the commit is
-complete.  It receives the log message and some
-additional information and can store the log message in
-a file, or mail it to appropriate persons, or maybe
-post it to a local newsgroup, or@dots{}  Your
-imagination is the limit!
-@end table
+@c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+@node Trigger Scripts
+@appendixsec The Trigger Scripts
+@cindex Info files
+@cindex Trigger scripts
+
+Several of the administrative files support triggers, or the launching external
+scripts or programs at specific times before or after particular events.  The
+individual files are discussed in the later sections, @ref{commit files} and
+@ref{taginfo}, but some of the common elements are discussed here.
+
+All the trigger scripts are launched in a copy of the user sandbox being
+committed, on the server, in client-server mode.  In local mode, the scripts
+are actually launched directly from the user sandbox directory being committed.
+For most intents and purposes, the same scripts can be run in both locations
+without alteration.
 
 @menu
 * syntax::                      The common syntax
-* commitinfo::                  Pre-commit checking
-* verifymsg::                   How are log messages evaluated?
-* editinfo::                    Specifying how log messages are created
-                                (obsolete)
-* loginfo::                     Where should log messages be sent?
+* Trigger Script Security::	Trigger script security
 @end menu
 
 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
@@ -12474,6 +12446,78 @@
 @c unambiguous but there is nothing like an example to
 @c confirm people's understanding of this sort of thing).
 
+@c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+@node Trigger Script Security
+@appendixsubsec Security and the Trigger Scripts
+@cindex Info files, security
+@cindex Trigger scripts, security
+
+Security is a huge subject, and implementing a secure system is a non-trivial
+task.  This section will barely touch on all the issues involved, but it is
+well to note that, as with any script you will be allowing an untrusted
+user to run on your server, there are measures you can take to help prevent
+your trigger scripts from being abused.
+
+For instance, since the CVS trigger scripts all run in a copy of the user's
+sandbox on the server, a naively coded Perl trigger script which attempts to
+use a Perl module that is not installed on the system can be hijacked by any
+user with commit access who is checking in a file with the correct name.  Other
+scripting languages may be vulnerable to similar hacks.
+
+One way to make a script more secure, at least with Perl, is to use scripts
+which invoke the @code{-T}, or "taint-check" switch on their @code{#!} line.
+In the most basic terms, this causes Perl to avoid running code that may have
+come from an external source.  Please run the @code{perldoc perlsec} command
+for more on Perl security.  Again, other languages may implement other security
+verification hooks which look more or less like Perl's "taint-check" mechanism.
+
+@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+@node commit files
+@appendixsec The commit support files
+@cindex Committing, administrative support files
+
+There are three kinds of trigger scripts (@pxref{Trigger Scripts}) that can be
+run at various times during a commit.  They are specified in files in the
+repository, as described below.  The following table summarizes the
+file names and the purpose of the corresponding programs.
+
+@table @file
+@item commitinfo
+The program is responsible for checking that the commit
+is allowed.  If it exits with a non-zero exit status
+the commit will be aborted.
+
+@item verifymsg
+The specified program is used to evaluate the log message,
+and possibly verify that it contains all required
+fields.  This is most useful in combination with the
+@file{rcsinfo} file, which can hold a log message
+template (@pxref{rcsinfo}).
+
+@item editinfo
+The specified program is used to edit the log message,
+and possibly verify that it contains all required
+fields.  This is most useful in combination with the
+@file{rcsinfo} file, which can hold a log message
+template (@pxref{rcsinfo}).  (obsolete)
+
+@item loginfo
+The specified program is called when the commit is
+complete.  It receives the log message and some
+additional information and can store the log message in
+a file, or mail it to appropriate persons, or maybe
+post it to a local newsgroup, or@dots{}  Your
+imagination is the limit!
+@end table
+
+@menu
+* commitinfo::                  Pre-commit checking
+* verifymsg::                   How are log messages evaluated?
+* editinfo::                    Specifying how log messages are created
+                                (obsolete)
+* loginfo::                     Where should log messages be sent?
+@end menu
+
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node commitinfo
 @appendixsubsec Commitinfo
@@ -13054,9 +13098,9 @@
 The @file{taginfo} file defines programs to execute
 when someone executes a @code{tag} or @code{rtag}
 command.  The @file{taginfo} file has the standard form
-for administrative files (@pxref{syntax}),
+for trigger scripts (@pxref{Trigger Scripts}),
 where each line is a regular expression
-followed by a command to execute.  The arguments passed
+followed by a command to execute (@pxref{syntax}).  The arguments passed
 to the command are, in order, the @var{tagname},
 @var{operation} (@code{add} for @code{tag},
 @code{mov} for @code{tag -F}, and @code{del} for

File [changed]: stamp-vti
Url: https://ccvs.cvshome.org/source/browse/ccvs/doc/stamp-vti?r1=1.19.2.67&r2=1.19.2.68
Delta lines:  +2 -2
-------------------
--- stamp-vti	15 Mar 2005 21:56:54 -0000	1.19.2.67
+++ stamp-vti	14 Apr 2005 14:24:55 -0000	1.19.2.68
@@ -1,4 +1,4 @@
-@set UPDATED 7 March 2005
-@set UPDATED-MONTH March 2005
+@set UPDATED 8 April 2005
+@set UPDATED-MONTH April 2005
 @set EDITION 1.11.19.1
 @set VERSION 1.11.19.1

File [changed]: version.texi
Url: https://ccvs.cvshome.org/source/browse/ccvs/doc/version.texi?r1=1.20.2.67&r2=1.20.2.68
Delta lines:  +2 -2
-------------------
--- version.texi	15 Mar 2005 21:56:54 -0000	1.20.2.67
+++ version.texi	14 Apr 2005 14:24:55 -0000	1.20.2.68
@@ -1,4 +1,4 @@
-@set UPDATED 7 March 2005
-@set UPDATED-MONTH March 2005
+@set UPDATED 8 April 2005
+@set UPDATED-MONTH April 2005
 @set EDITION 1.11.19.1
 @set VERSION 1.11.19.1