Table of Contents

SVN/Trac

Notice

SVN and Trac hosting has been discontinued, however the ACM offers git hosting to members via

https://acm.cs.uic.edu/git

Which includes project wiki pages and other features that are typical to trac. If you have an existing SVN repo please use an available 'svn to git' conversion tools and switch if you wish publicly host your code with us. You can still use and create SVN repos local to your user account. However, there will be no assistance provided to host them in a shared manner.

The documentation below is for legacy and reference purposes only


For a list of trac repos: https://acm.cs.uic.edu/trac/

for a list of svn repos: https://acm.cs.uic.edu/svn/

your credentials are standard AD credentials

Server Setup

prerequisites

Have apache with ssl ready. Have ldap ready.== Install trac, and svn.

Configure apache

Only do this once. (Not once per project, only once per server)

/etc/httpd/conf/vhosts/acm.cs.uic.edu-secure

        ## trac/svn section -- hef ##
        <Location "/trac">
                SetHandler mod_python
                PythonInterpreter main_interpreter
                PythonHandler   trac.web.modpython_frontend
                PythonOption    TracEnvParentDir /var/lib/trac
                PythonOption    TracUriRoot /trac
                SetEnv TRAC_ENV_PARENT_DIR "/var/lib/trac"
                PythonOption PYTHON_EGG_CACHE "/var/www/acm.cs.uic.edu/egg-cache"
        </Location>
        <LocationMatch "/trac/[^/]+/login">
                AuthType Basic
                AuthName "Trac"
                AuthBasicProvider "ldap"
                AuthLDAPURL "ldap://acm.cs:3268/DC=acm,DC=cs?sAMAccountName?sub?(objectClass=user)"
                AuthLdapBindDN  apacheacm@acm.cs
                AuthLDAPBindPassword "YourLdapBindPassword"
                require valid-user
        </LocationMatch>
        <Location /svn>
                DAV svn
                SVNParentPath /var/svn/repos
                SVNListParentPath on
                AuthzSVNAccessFile /var/svn/conf/SVNAccessFile
                AuthType Basic
                AuthName "Trac"
                AuthBasicProvider "ldap"
                AuthLDAPURL "ldap://acm.cs:3268/DC=acm,DC=cs?sAMAccountName?sub?(objectClass=user)"
                AuthLdapBindDN  apacheacm@acm.cs
                AuthLDAPBindPassword "YourLdapBindPassword"
                <LimitExcept GET PROPFIND OPTIONS REPORT>
                        require valid-user
                </LimitExcept>

        </Location>
        ## end trac/svn section ##
If you are not using AD for ldap, your ldap settings and BindDN will look wildly different.

Creating a new project

for sysadmins:

create svn repo and trac project page

svnadmin create --fs-type fsfs /var/svn/repos/myproject
trac-admin /var/lib/trac/myproject initenv
chown -R www-data /var/lib/trac/myproject
trac-admin /var/lib/trac/myproject permission add myuser TRAC_ADMIN

adding trac access

/var/lib/trac/myproject/conf/trac.ini

[trac]
authz_file = /var/svn/conf/SVNAccessFile
autgz_module_name = myproject

svn write access

/var/svn/conf/SVNAccessFile

[myproject:/]
myuser1 = rw
myuser2 = rw

Future stuff

trac respects AuthzSVNAccessFile but does not manage it… yet.

So I beat around for a while and found this ticket: http://trac.edgewall.org/ticket/5257 Maybe someday sakkos and I will actually write that plugin.