Clearsilver (http://www.clearsilver.net/) is a powerful and flexible HTML templating engine.
Clearsilver has its drawbacks, and after a few years of successful (but sometimes frustrating) use, the TracTeam unanimously—and enthusiastically!—decided to go for another templating engine: Genshi.
Therefore, starting with 0.11, Trac will no longer require Clearsilver. However, through 0.12 Trac will retain the infrastructure needed to support plugins using Clearsilver.
Plugin developers should nonetheless consider switching to Genshi during the transition phase of 0.11 development. See TracDev/ApiChanges/0.11
Trac 0.12 still contains the Clearsilver supporting code, although the code is no longer supported.
For Python 2.5, you need to build the package yourself, and you probably need the following patch: googlegroups:trac-users:5b502b38f4e13c8f
Furthermore for Python 2.5 on Win32 there is an egg build (and instructions) at http://tn123.ath.cx/clearsilver/
Building the package yourself
If you have to build the package yourself, be sure to build a thread-safe version of the library. There's no explicit configuration switch for that. Just pay attention to the Checking pthread.h… yes line during configuration. If it's no, then you'll have to fix the configuration step yourself (see that comment).
Non thread-safe builds have been reported to not work with Trac in a multi-threaded setup (see the comment linked above).
x86_64 platforms, the 0.10.x series is needed.
For gcc4, the latest release (0.10.2) should be used. (Should this page be updated to reflect 0.10.4?)
There's a typo in the configure scripts. You'll need to apply the following patch first:
diff -r 1f523c238d93 -r 74f546b8d58b configure
a b 6045 6045 PYTHON=$python_bin 6046 6046 PYTHON_INC="-I$python_inc" 6047 6047 PYTHON_LIB=$python_lib 6048 if test ! $ ?PYTHON_SITE; then 6048 if test ! $PYTHON_SITE; then 6049 6049 PYTHON_SITE=$python_site 6050 6050 fi 6051 6051 BUILD_WRAPPERS="$BUILD_WRAPPERS python"
diff -r 1f523c238d93 -r 74f546b8d58b configure.in
a b 288 288 PYTHON=$python_bin 289 289 PYTHON_INC="-I$python_inc" 290 290 PYTHON_LIB=$python_lib 291 if test ! $ ?PYTHON_SITE; then 291 if test ! $PYTHON_SITE; then 292 292 PYTHON_SITE=$python_site 293 293 fi 294 294 BUILD_WRAPPERS="$BUILD_WRAPPERS python"
Then, you can call
configure, for example like this:
./configure --prefix=/opt/clearsilver-0.10.2 \ --with-python=/opt/python-2.4.2/bin/python \ --disable-ruby --disable-java --disable-perl --disable-apache --disable-csharp
At this point,
make && make install should work. (Be Warned: Should is very relative).
Note for *BSD: you may have to use GNUmake by using
make may not work.
Note for x86_64 Linux: ClearSilver is known not to compile on RHEL 4.x x86_64. The ClearSilver developers have not responded except to occasionally nuke threads on their mailing list about the topic… Consider using Trac .11-devel instead. (This might no longer be true for clearsilver 0.10.5, I've compiled & installed without issue on x86_64)
Useful thread here on Python2.5 and Clearsilver10.3, covers compiling and making things work on x86_64. https://launchpad.net/ubuntu/+source/clearsilver/+bug/86685