OSSP CVS Repository

ossp - ossp-pkg/shiela/shiela-install.pod
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/shiela/shiela-install.pod
##
##  OSSP shiela - CVS Access Control and Logging Facility
##  Copyright (c) 2000-2006 Ralf S. Engelschall <rse@engelschall.com>
##  Copyright (c) 2000-2006 The OSSP Project <http://www.ossp.org/>
##
##  This file is part of OSSP shiela, an access control and logging
##  facility for Concurrent Versions System (CVS) repositories
##  which can be found at http://www.ossp.org/pkg/tool/shiela/.
##
##  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 the Free Software Foundation; either version
##  2.0 of the License, or (at your option) any later version.
##
##  This program is distributed in the hope that it will be useful,
##  but WITHOUT ANY WARRANTY; without even the implied warranty of
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
##  General Public License for more details.
##
##  You should have received a copy of the GNU General Public License
##  along with this file; if not, write to the Free Software
##  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
##
##  shiela-install.pod: install manual page (syntax: POD)
##

=pod

=head1 NAME

B<shiela-install> - OSSP shiela installation utility

=head1 VERSION

B<OSSP shiela>

=head1 DESCRIPTION

B<OSSP shiela> is an access control and logging facility for use with
the I<Concurrent Versions System> (CVS). Read shiela(1) for more
details about B<OSSP shiela> itself. This B<shiela-install> program is a
small utility intended to help in adding B<OSSP shiela> to an existing CVS
repository for testing or production purposes.

=head1 INSTALLATION: MANUALLY

B<OSSP shiela> can be installed and activated in a CVS repository either
manually or via the B<shiela-install> program. The manual steps would
be:

=over 4

=item B<1.>

make sure that you are using CVS version 1.12.6 or higher. Older
versions are no longer supported due to the new I<xxxx>C<info> hooking
(C<UseNewInfoFmtStrings=yes>) which is a mandatory configuration for
B<OSSP shiela>.

=item B<2.>

checkout a working copy of the C<CVSROOT> module from your repository.

=item B<3.>

make sure the file C<$CVSROOT/CVSROOT/config>
contains the directive ``C<UseNewInfoFmtStrings=yes>''.

=item B<4.>

create the files C<$CVSROOT/CVSROOT/shiela>,
C<$CVSROOT/CVSROOT/shiela.cfg> and C<$CVSROOT/CVSROOT/shiela.msg>
in this directory and list these three files in
C<$CVSROOT/CVSROOT/checkoutlist> (so CVS automatically checks them
out).

=item B<5.>

add to C<$CVSROOT/CVSROOT/rcsinfo> (the hook for providing log
messages): ``C<ALL $CVSROOT/CVSROOT/shiela.msg>''.

=item B<6.>

add to C<$CVSROOT/CVSROOT/taginfo> (the hook for checking tag
operations): ``C<ALL $CVSROOT/CVSROOT/shiela --hook=taginfo %t %o %p %{sv}>''.

=item B<7.>

add to C<$CVSROOT/CVSROOT/importinfo> (the hook for checking import
operations): ``C<ALL $CVSROOT/CVSROOT/shiela --hook=importinfo>''. This
assumes that you are using a CVS version with RSE patches applied (see
below). If you use a stock CVS version, you have to skip this step
and live with the fact that `C<cvs import>' commands cannot be access
controlled by B<OSSP shiela> (because then this hook does not exists at
all).

=item B<8.>

add to C<$CVSROOT/CVSROOT/admininfo> (the hook for checking admin
operations): ``C<ALL $CVSROOT/CVSROOT/shiela --hook=admininfo>''. This
requires that you are using a CVS version with RSE patches applied (see
below). If you use a stock CVS version, you have to skip this step
and life with the fact that `C<cvs admin>' commands cannot be access
controlled by B<OSSP shiela> (because then this hook does not exists at
all).

=item B<9.>

add to C<$CVSROOT/CVSROOT/commitinfo> (the hook for checking commit
operations): ``C<ALL $CVSROOT/CVSROOT/shiela --hook=commitinfo %r/%p %s>''.

=item B<10.>

add to C<$CVSROOT/CVSROOT/verifymsg> (the hook for post-processing log
messages): ``C<DEFAULT $CVSROOT/CVSROOT/shiela --hook=verifymsg %l>''.

=item B<11.>

add to C<$CVSROOT/CVSROOT/loginfo> (the hook for performing logging):
``C<ALL $CVSROOT/CVSROOT/shiela --hook=loginfo %p %{sVvto}>''.
This requires that you use a CVS version with RSE patches
applied (see below). If you use a stock CVS version, use ``C<ALL
$CVSROOT/CVSROOT/shiela --hook=loginfo %p %{sVv}>'' instead and live with
the fact that B<OSSP shiela>'s run-time efficiency is slightly decreased
and branch recognition might be less correct (because B<OSSP shiela> has
to determine details the hard way which CVS already would know easily).

=item B<12.>

edit C<$CVSROOT/CVSROOT/shiela.cfg> to fit your repository and
project situation. For details, see the description under
B<CONFIGURATION> in shiela(1).

=item B<13.>

finally commit all modifications at once.

=back

=head1 INSTALLATION: AUTOMATICALLY

For convenience reasons one can alternatively use the interactive
B<shiela-install> utility, which perform the above steps automatically
and especially creates initial C<shiela.cfg> and C<shiela.msg> files.
Just run C<shiela-install> and answer the questions.

For convenience reasons (while testing) one can also override the
default value of a question by using C<variable=value> on the
B<shiela-install> command line. For instance, ``C<shiela-install
repos_path=/tmp/cvs>'' sets the default path for the question about the
CVS repository to C</tmp/cvs>. Additionally one can specify C<batch=yes>
which runs B<shiela-install> non-interactively.

=head1 CVS INTERNAL PROCESSING

The administrative files in C<$CVSROOT/CVSROOT/> are consulted by CVS
internally in dependency of the used F<cvs> command. For your reference,
here are the processing steps CVS performs and into which B<OSSP shiela>
hooks into:

=over 1

=item On "C<cvs checkout>":

 1. CVSROOT/config       (general configuration)
 2. CVSROOT/modules      (determine module names)
 3. CVSROOT/cvswrappers  (file handling)
 4. CVSROOT/history      (logging of the commit step)

=item On "C<cvs commit>":

 1. CVSROOT/config       (general configuration)
 2. CVSROOT/modules      (determine module names)
 3. CVSROOT/commitinfo   (access control)
 4. CVSROOT/rcsinfo      (log message template)
 5. CVSROOT/editinfo     (run the log message editor)
 6. CVSROOT/verifymsg    (evaluate/adjust log message after editing)
 7. CVSROOT/cvswrappers  (file handling)
 8. CVSROOT/loginfo      (extra logging after commit)
 9. CVSROOT/history      (logging of the commit step)

=item On "C<cvs import>":

 1. CVSROOT/config       (general configuration)
 2. CVSROOT/modules      (determine module names)
 3. CVSROOT/importinfo   (access control)
 4. CVSROOT/rcsinfo      (log message template)
 5. CVSROOT/editinfo     (run the log message editor)
 6. CVSROOT/verifymsg    (evaluate/adjust log message after editing)
 7. CVSROOT/cvswrappers  (file handling)
 8. CVSROOT/loginfo      (extra logging after commit)
 9. CVSROOT/history      (logging of the commit step)

=item On "C<cvs tag>" (CVS with RSE patches only):

 1. CVSROOT/config       (general configuration)
 2. CVSROOT/modules      (determine module names)
 3. CVSROOT/taginfo      (access control and tag evaluation)
 4. CVSROOT/history      (logging of the tag step)

=item On "C<cvs admin>" (CVS with RSE patches only):

 1. CVSROOT/config       (general configuration)
 2. CVSROOT/modules      (determine module names)
 3. CVSROOT/admininfo    (access control)
 4. CVSROOT/history      (logging of the admin step)

=back

=head1 CVS WITH RSE PATCHES APPLIED

The stock CVS vendor version you can find on http://www.cvshome.org/.
Although B<OSSP shiela> works fine with just this version, it
unfortunately lacks some important features which make B<OSSP shiela>'s
processing less strong. For instance, the stock CVS does not allow
B<OSSP shiela> to apply access control to the "C<cvs tag>" and "C<cvs
admin>" commands. Hence Ralf S. Engelschall extended CVS with those
features (and more) and maintains a patch set in the "cvs" package of
his B<OpenPKG> project (http://www.openpkg.org/). You can find the latest
patch set under http://cvs.openpkg.org/openpkg-src/cvs/cvs.patches.rse

=head1 SEE ALSO

cvs(1), shiela(1).

=head1 AUTHOR

 Ralf S. Engelschall
 rse@engelschall.com
 www.engelschall.com

=cut


CVSTrac 2.0.1