Edgewall Software


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.


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  
    60456045    PYTHON=$python_bin
    60466046    PYTHON_INC="-I$python_inc"
    60476047    PYTHON_LIB=$python_lib
    6048     if test ! $?PYTHON_SITE; then
     6048    if test ! $PYTHON_SITE; then
    60496049       PYTHON_SITE=$python_site
    60506050    fi
    60516051    BUILD_WRAPPERS="$BUILD_WRAPPERS python"
  • configure.in

    diff -r 1f523c238d93 -r 74f546b8d58b configure.in
    a b  
    288288    PYTHON=$python_bin
    289289    PYTHON_INC="-I$python_inc"
    290290    PYTHON_LIB=$python_lib
    291     if test ! $?PYTHON_SITE; then
     291    if test ! $PYTHON_SITE; then
    292292       PYTHON_SITE=$python_site
    293293    fi
    294294    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

Last modified 6 weeks ago Last modified on Jan 17, 2015 4:38:04 PM