SVN Hell….

Well if anyone knows if you take a open source project and check it out with svn, the files are binded to that repository.  If you wanted add your version of the project in your repository a piece of you dies because the directory structure of that project has hidden .svn files that correspond to the repository of that you downloaded it from!  Which, is very annoying! But I realized it doesn’t have to be even with projects with a million folders and subfolders.

Really all you have do is this…

cd myproject
rm -rf `find . -type d -name .svn`

How to Install Trac on LDAP Painlessly on Ubuntu 8.04 (Hardy)

Lets face it… Installing Trac is a headache not because it’s extremely complicated but because it’s a eyesore to configure. Since the Ubuntu Community Docs changes rapidly, it gets really annoying to follow just because the wiki tutorial you follow today may not be the same one you use from a month from now, despite the revision options. I guess that’s why my head exploded and it’s the reason I wrote this tutorial. I have a few friends who wanted SVN and Trac installed for their Robot Project they are working on. So I created a VM for Hardy and created a Trac for them. Things broke and went for a wrong turn but it worked….(mostly because of the snapshot feature of VMware product line)

If I can get VMware Server to work with my current Gentoo 2.6.26 Kernel or there’s a VirtualBox demand (which is currently working for me), I will throw it up here…but for now I’ll just leave instructions.

Let’s fetch Trac & Apache!

sudo apt-get install apache2 libapache2-mod-python libapache2-svn python-setuptools subversion python-subversion
sudo easy_install Trac

Make some trac dirs and set the permissions for it..

sudo mkdir /var/lib/trac
sudo chown www-data:www-data /var/lib/trac

Let’s edit the apache2 files
Remember to edit the commented areas for LDAP

sudo nano /etc/apache2/sites-available/trac

        ServerAdmin [email protected]
        DocumentRoot /var/www
        ErrorLog /var/log/apache2/error.trac.log
        CustomLog /var/log/apache2/access.trac.log combined

                SetHandler mod_python
                PythonInterpreter main_interpreter
                PythonHandler trac.web.modpython_frontend
                PythonOption TracEnvParentDir /var/lib/trac
                PythonOption TracUriRoot /projects
                PythonOption PYTHON_EGG_CACHE /tmp
        # use the following for one authorization for all projects
            AuthType Basic
            AuthName "Authorization Required"
            AuthBasicProvider ldap
            AuthLDAPURL "ldap://localhost:389/ou=People,dc=test,dc=local?uid"  #Change this for your LDAP
            AuthLDAPGroupAttribute memberUid
            AuthLDAPGroupAttributeIsDN off
            AuthzLDAPAuthoritative on
            Require ldap-group cn=admin,ou=Group,dc=test,dc=local   #Change this again for your LDAP

Lets enable the apache site

sudo a2dissite default
sudo a2ensite trac
sudo  /etc/init.d/apache2 reload

We need a SVN Repository…. (Rename YourProjectNameHere to your liken in the svnadmin line)

sudo mkdir /var/lib/svn
sudo svnadmin create /var/lib/svn/(YourProjectNameHere)

SVN Permissions

sudo chown -R www-data /var/lib/svn
sudo chown -R www-data /usr/share/trac
sudo  /etc/init.d/apache2 reload

Let setup Trac (Also again…change YourProjectNameHere to your liken)
Trac Admin will ask some questions so keep it consistent
(i.e. the project name: YourProjectNameHere, the path to SVN repository [/var/lib/svn/YourProjectNameHere])

sudo mkdir /var/lib/trac
sudo trac-admin /var/lib/trac/(YourProjectNameHere) initenv
sudo chown -R www-data /var/lib/trac

And your done…head to link below if there wasn’t any errors and login :)


You might want to change up the ou=Group in the apache2 config to your specs of what group should able to use the trac…

The link I used for this tutorial (but my tutorial is modified):

If anyone wants a awesome tutorial on how to install and configure LDAP check out the link below. I might make even a tutorial based on it to make things simpler :).

As always, leave a comment if you need help with this project……


Shout out to Hannah and Pete :)