Re: Using contents of Jakarta CVSROOT?

2001-02-04 Thread Jeff Turner

Cool :) 

Attached is some documentation on what all the scripts do, and
step by step instructions for installing the whole system on a new CVS
repository.

--Jeff


On Sun, 4 Feb 2001, Jon Stevens wrote:

> on 2/4/01 12:03 AM, "Jeff Turner" <[EMAIL PROTECTED]> wrote:
> 
> > Hi,
> > 
> > I'd like to use the Jakarta CVS access control and commit emailing for a
> > company CVS server. This is the stuff get get if you run 'cvs checkout
> > CVSROOT'.
> > 
> > There isn't any indication that the files are under the APL (or any
> > license), so can I assume it's in the public domain and usable by anyone?
> > 
> > I'll post installation instructions if that's the case.
> > 
> > 
> > --Jeff
> 
> Yep, it is in the public domain. Have fun.
> 
> -jon
> 
> -- 
> If you come from a Perl or PHP background, JSP is a way to take
> your pain to new levels. --Anonymous
>  | 
> 
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


Jeff Turner <[EMAIL PROTECTED]>
Written 4 Feb 2001
$Revision: 1.2 $ $Date: 2001/02/04 10:26:42 $

Introduction


This file documents the Apache projects' CVS setup, namely the contents of
the CVSROOT directory, and how to install the Apache CVS system on a new
system. All comments and improvements welcome.



Access Control Lists


The Apache access control system is very flexible and very simple (much better
than the OS username technique described in the CVS book). The ACLs (access
control lists) determine whether a user has *write* access. Who has read access
is still determined by the 'readers', 'writers' and 'passwd' files. The Apache
ACLs work in addition to the standard CVS mechanism, not replacing it.

Here is a list of new files implementing the ACL, and what they do:

avail
  The access control lists for determining write access. See
  the description in cvs_acls.pl

cvs_acls.pl
  Program that parses 'avail' and decides whether a user has
  commit access

commit_prep.pl
  Once a user has been authenticated against the ACL, this
  script creates a list of the files modified in this commit.
  This data is stored for later use by the logging script
  log_accum.pl. In this way, log_accum.pl can combine
  changes in multiple directories, and mail a single message.

commitcheck
  Program invoked from commitinfo (the standard
  CVS hook into the commit process), which in turn invokes
  cvs_acls.pl and commit_prep.pl.




Commit message Mailing System
=

By default with CVS, if files README and src/Foo.java are modified, two
separate commit messages will be emailed to the committers. This is because CVS
has a very file-centric model, and has little idea of project-wide differences,
and thus doesn't associate the changes in README and src/Foo.java.

The Apache script 'log_accum.pl' works in tandem with the commit checking
script 'commit_prep.pl' to accumulate all changes made in one commit, and the
mailing *one* message to the list.

'log_accum.pl' by default mails an Apache list, and thus needs minor
modification. See below for details.




Getting ACLs working on a new system


Here are the steps I performed to use the Apache CVSROOT system on a new CVS
repository:

1) Download the Apache CVSROOT directory as follows:

  [~/jakarta]$ cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic login
  password: anoncvs
  [~/jakarta]$ cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic checkout 
CVSROOT


2) Download the new server CVSROOT directory:

  [~/server]$ cvs -d :ext:jeff@localhost:/usr/local/src/CVS
  [~/server]$ cvs checkout CVSROOT


3) Tag the current version of new server's CVSROOT from a CVSROOT sandbox: 

  [~/server/CVSROOT]$ cvs tag before_apache


4) Copy the following files from the checked-out jakarta CVSROOT to the
checked-out server CVSROOT:

  [~/server/CVSROOT]$ cp ~/jakarta/CVSROOT/commitcheck .
  [~/server/CVSROOT]$ cp ~/jakarta/CVSROOT/cvs_acls.pl .
  [~/server/CVSROOT]$ cp ~/jakarta/CVSROOT/commit_prep.pl .
  [~/server/CVSROOT]$ cp ~/jakarta/CVSROOT/avail .


5) Add these new files to the 'checkoutlist' file, so they'll be checked out on
the server CVSROOT:

[~/server/CVSROOT]$ cat >> checkoutlist 
commitcheck
cvs_acls.pl
commit_prep.pl
avail
[$/server/CVSROOT]$


6) Add the new files to CVS, and do a 'cvs update':

[~/server/CVSROOT]$ cvs add cvs_acls.pl commit_prep.pl commitcheck avail 
[~/server/CVSROOT]$ cvs up
A avail
M checkoutlist
A commit_prep.pl
A commitcheck
M commitinfo
A cvs_acls.pl


7) Edit the ACL to allow everyone to edit everything (or customise it now):

[~/serv

Re: Using contents of Jakarta CVSROOT?

2001-02-04 Thread Jon Stevens

on 2/4/01 12:03 AM, "Jeff Turner" <[EMAIL PROTECTED]> wrote:

> Hi,
> 
> I'd like to use the Jakarta CVS access control and commit emailing for a
> company CVS server. This is the stuff get get if you run 'cvs checkout
> CVSROOT'.
> 
> There isn't any indication that the files are under the APL (or any
> license), so can I assume it's in the public domain and usable by anyone?
> 
> I'll post installation instructions if that's the case.
> 
> 
> --Jeff

Yep, it is in the public domain. Have fun.

-jon

-- 
If you come from a Perl or PHP background, JSP is a way to take
your pain to new levels. --Anonymous
 | 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Using contents of Jakarta CVSROOT?

2001-02-03 Thread Jeff Turner

Hi,

I'd like to use the Jakarta CVS access control and commit emailing for a
company CVS server. This is the stuff get get if you run 'cvs checkout
CVSROOT'.

There isn't any indication that the files are under the APL (or any
license), so can I assume it's in the public domain and usable by anyone?

I'll post installation instructions if that's the case.


--Jeff


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]