ClearSilver
Clearsilver 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 switch to another templating engine: Genshi. 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.
Starting with r10405 (Trac 1.0dev), that code has been removed, making the transition to Genshi templates mandatory.
Download
Official Clearsilver downloads.
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.
On x86_64
platforms, the 0.10.x series is needed.
For gcc4, Trac release 0.10+ should be used.
ClearSilver 0.10.2
There's a typo in the configure scripts. You'll need to apply the following patch first:
-
configure
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; then6048 if test ! $PYTHON_SITE; then 6049 6049 PYTHON_SITE=$python_site 6050 6050 fi 6051 6051 BUILD_WRAPPERS="$BUILD_WRAPPERS python" -
configure.in
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; then291 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. Caution: 'should' is relative.
Note for *BSD: you may have to use GNUmake by using gmake
because 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 0.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, which covers compiling and configuring on x86_64: https://launchpad.net/ubuntu/+source/clearsilver/+bug/86685