July 9, 2010

Setting up CVS pserver on OSX 10.4 and up (10.5, 10.6)

There's no /etc/inetd.conf, or /etc/xinetd.conf.  New version of OSX uses something called "launchd."

Read following pages for setting up pserver.

See:
Launchd - http://developer.apple.com/macosx/launchd.html

Copy & Paste from above site -- just in case :

CVS pserver launchd item for OS X 10.4
Tuesday, August 02 2005 @ 08:14 pm MDT
Contributed by: ChrisRyland
Views: 6,637
TipsInspired by the recent excellent launchd overview on afp548, I needed to set up a CVS pserver on our new Tiger Xserve box, migrating from an old Linux server.

Here's a recipe that seems to work.

You'll need to create a launchd control file, call it cvspserver.plist, and put it in /Library/LaunchDaemons (where local launch control files are supposed to live):







        Label
        com.apple.cvspserver
        UserName
        cvs
        Program
        /usr/bin/cvs
        ProgramArguments
        
                cvs
                -f
                --allow-root=/Users/cvs
                pserver
        
        Sockets
        
                Listeners
                
                        SockPassive
                        
                        SockServiceName
                        cvspserver
                        SockType
                        SOCK_STREAM
                
        
        inetdCompatibility
        
                Wait
                
        




You'll have to change the --allow-root=/Users/cvs CVS root specification above to match your actual root, but otherwise the above should work.

Next, it doesn't appear that cvs under Tiger can access the standard user/password database, so you'll have to create a password file in your $CVSHOME/CVSROOT directory:

$ cd ~cvs/CVSROOT
$ sudo htpasswd -c passwd user1
$ sudo htpasswd passwd user2 # etc.

Then, you'll need a

# launchctl load /Library/LaunchDaemons/cvspserver.list

and you should be in business. (At the next reboot, cvspserver.plist should be picked up by launchd.)