I followed the instructions on http://www.sunfreeware.com/subversion.html

Worked nicely. Here my notes which also include a new svcadm entry
(which I found somewhere on the web and made it work on my Solaris
box) to allow starting it up and shutdown


Solaris:
-------------
Since Solaris 10 it is using svcadm instead of the vanilla rc3.d etc.
way of starting a service.

1) Install svn. Best here is to the packages from http://www.sunfreeware.com/.

2) Set needed LD_LIBRARY_PATH,  PATH and MANPATH to include the new
stuff. (Remember to add Apache's libs and bin explicitly)

3) Create a svnserve.xml file (see below)  to be used to configure
svcadm. We will teach svcadm about this new service vi the command
   svccfg import svnserve.xml


svnserve.xml  (assuming your svnserve is installed under
/usr/local/bin as package SMCsvn154

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<service_bundle type='manifest' name='CSWsvn:subversion'>
  <service name='network/svnserve' type='service' version='1'>

        <create_default_instance enabled='true'/>
        <single_instance/>

        <dependency name='loopback' grouping='require_all' restart_on='error'
type='service'>
                <service_fmri value='svc:/network/loopback:default'/>
        </dependency>

        <dependency name='physical' grouping='require_all' restart_on='error'
type='service'>
                <service_fmri value='svc:/network/physical:default'/>
        </dependency>

        <exec_method type='method' name='start'
                exec='/usr/local/sbin/svnserve start'
                timeout_seconds='30' />

        <exec_method type='method' name='stop'
                exec='/usr/local/sbin/svnserve stop'
                timeout_seconds='30' />

        <exec_method type='method' name='refresh'
                exec='/usr/local/sbin/svnserve refresh'
                timeout_seconds='30' />

        <stability value='Unstable' />

        <template>
                <common_name>
                        <loctext xml:lang='C'>Subversion Standalone 
Server</loctext>
                </common_name>
                <documentation>
                        <manpage title='svnserve' manpath='/usr/local/man' 
section='8' />
                        <doc_link name='Subversion Official'
                                uri='http://subversion.tigris.org/' />
                        <doc_link name='Subversion Book'
                                uri='http://svnbook.red-bean.com/' />
                </documentation>
        </template>
  </service>
</service_bundle>


4) Copy the svnserve script below to /usr/local/sbin  and give it
execute permissions (chmod 655 svnserve)

#!/sbin/sh

##  Copy/Rename this script to /usr/local/sbin/svnserve
##  Please change $REPOS to the location of your SVN Repo   <=== !!!!

SVNSERVE=/usr/local/bin/svnserve
REPOS="/data/repos/"

[ ! -d ${REPOS} ] && exit $SMF_EXIT_ERR_CONFIG

case "$1" in
'start')
        ${SVNSERVE} -d -r ${REPOS}
        exit 0
        ;;
'stop')
        kill `pgrep svnserve`
        exit 0
        ;;      
'refresh')
        ## There is no restart for svnserve, so we simply
        ##  kill it and restart.  The only reason to do this
        ##  is to change startup options on svnserve.   
        ##  We sleep for 5 secs because more than likely
        ##  SMF will restart it before we do.
        kill `pgrep svnserve`
        sleep 5
        pgrep svnserve || ${SVNSERVE} -d -r ${REPOS}
        exit 0
        ;;      
        
*)
        echo "Usage: $0 { start | stop | refresh }"
        exit 1
        ;;
esac


5) Install / create your repository  .. in this case under /data/repos


6) Now install the new service with the command:   svccfg import svnserve.xml


Check status with   svcs -l svnserve


root at mybox # svcs -l svnserve
fmri         svc:/network/svnserve:default
name         Subversion Server
enabled      true
state        maintenance
next_state   none
state_time   Tue Nov 04 12:38:18 2008
logfile      /var/svc/log/network-svnserve:default.log
restarter    svc:/system/svc/restarter:default
contract_id
dependency   require_all/error svc:/network/loopback:default (online)
dependency   require_all/error svc:/network/physical:default (online)



6) Now enable it with the command:                 svcadm enable svnserve
   Diable it via   svcadm disable svnserve

7) Open possible firewalls to allow clients to access svn://<ip of
solaris box>/trunk



(I have some probelms to get this to start automatically after reboot
and mostly have to issue the   svcadm disbale svnserve; svcadm enable
svnserve   to
get it to work)

Good luck
B-)


On 3/13/09, mark babcock <markababcock at gmail.com> wrote:
> How can I upgrade to SVN (subversion) 1.5?
>
> _______________________________________________
>  opensolaris-help mailing list
>  opensolaris-help at opensolaris.org
>

Reply via email to