How to update Python bindings to subversion.
Recently I run into the problem that a team had a requirement for subversion 1.6.6 (while CentOS 5u3 was not supporting this… but the vendor didn’t provide a newer release). This team also had a requirement to have TRAC… TRAC is depended on Python… but I was not allowed to update the subversion bindings for python by updating the it on the whole system… so… this is what I did:
- Installed a number of devel packages:
# yum install apr-devel neon{,-devel} apr-util-devel
- Compiled sqlite version 3.6.13 and installed it on NFS:
$ ./configure --prefix=/nfs/apps/webservices/trac-parent/sqlite/3.6.13
...
$ make ; make install
... - Compiled subversion 1.6.6 and installed it on NFS:
$ make clean; ./configure
--prefix=/nfs/apps/webservices/trac-parent/subversion/1.6.6
--with-sqlite=/nfs/apps/webservices/trac-parent/sqlite/3.6.13
--without-neon
...
$ make -j8 ; make install ; make swig-py ; make install-swig-py…
- Added the following line to /etc/sysconfig/httpd:
export LD_LIBRARY_PATH=/nfs/apps/webservices/trac-parent/sqlite/3.6.13/lib/
- Modified /etc/httpd/conf.d/trac.conf by adding a ‘PythonPath’ to the location-directive:
<Location /projects>
...
PythonPath "['/nfs/apps/webservices/trac-parent/subversion/1.6.6/lib/svn-python'] + sys.path"
</Location> - Restart the trac daemon:
# service httpd stop
# service httpd start - Now you’ve to resync the trac-instance with Subversion (the
repository_dir value in the trac.ini of the instance).. but make sure
you use the correct bindings in Python:# export LD_LIBRARY_PATH=/nfs/apps/webservices/trac-parent/sqlite/3.6.13/lib/
# export PYTHONPATH=/nfs/apps/webservices/trac-parent/subversion/1.6.6/lib/svn-python
# trac-admin ${TRAC_INSTANCE_PATH} repository resync "*"