anchor.diff:  	"${subversion}/lib/python2.5/site-packages";
       }
     ];
  +  
  +  startupScript = pkgs.writeScript "activateTrac" ''
  +    mkdir -p /var/trac
  +    chown ${config.user}:${config.group} /var/trac
  +    
  +    ${pkgs.lib.concatMapStrings (project:
  +      ''
  +        if [ ! -d /var/trac/${project.identifier} ]
  +	then
  +	    export PYTHONPATH=${pkgs.pythonPackages.psycopg2}/lib/python2.5/site-packages
  +	    ${pkgs.pythonPackages.trac}/bin/trac-admin /var/trac/${project.identifier} initenv "${project.name}" "${project.databaseURL}" svn "${project.subversionRepository}"
  +	fi
  +      '' ) (config.projects)}
  +  '';
   }
  
positive.code:   ];
    
    extraConfig = ''
        <Location ${config.projectsLocation}>
          SetHandler mod_python
          PythonHandler trac.web.modpython_frontend
  	PythonOption TracEnvParentDir /var/trac/projects
          PythonOption TracUriRoot ${config.projectsLocation}
          PythonOption PYTHON_EGG_CACHE /var/trac/egg-cache
        </Location>
    '';
    
    globalEnvVars = [
  
negative.code:       description = "URL path in which Trac projects can be accessed";
        default = "/projects";
      };
      
      projects = mkOption {
        description = "List of projects that should be provided by Trac. If they are not defined yet empty projects are created.";
        default = [];
        example = [ { identifier = "myproject";
                      name = "My Project";
                      databaseURL="postgres://root:password@/tracdb";
                      subversionRepository="/data/subversion/myproject"; } ];
      };
      
      user = mkOption {
        default = "wwwrun";
        description = "
          User account under which Trac runs.
        ";
      };
  
      group = mkOption {
        default = "wwwrun";
        description = "
          Group under which Trac runs.
        ";
      };
    };
  
    extraModules = [
  