tracのgraphviz pluginを入れるのに苦労した

だが、まず、このプラグインは要求としてgraphvizとlibrsvgを必要とする。

でスクラッチで作った環境にとって、この二つのビルドが結構きびしい。

libxml2,glib,pkg-config,freetype2,fontconfig,pango,atk,gtk,libcroco,gd,mingとか必要で、subversion用のiconvとぶつかったりしたため、いったんiconvをmake uninstallしてからビルドして、入れなおしたりとかなってしまった。

日本語を使えるようにする場合、まずUnicodeDecodeError "ascii" codec can't decode byte ...が出る場合は、lib/python2.5/site.pyで

encoding = "ascii"

となっているところがひとつあるので、それを

encoding = "utf-8"

にする。

フォント関係の設定

Webにある情報では、レンダリングにGDを使い、フォントはTTFファイル名を指定している、とかかれていたりする。
しかし、現状のgraphviz plugin v0.7はレンダリングにrsvgを使っており、rsvgはfont-config(gnomekdeで使っているものと同じしくみ)でフォント解決を行う。当然この場合は、fontnameはファミリー名であり、名前には-+スペースも(エスケープせずに)そのまま使える。


キャッシュのSVGを見て、styleがfont-family:ではなく、font:になっていて、fontnameが利かないようなら、graphvizのplugin/core/gvrender_core_svg.cのsvg_textpara関数で

if (para->postscript_alias) {
 ...
}
else {
  core_printf(job, "font:%s;", para->fontname);
}

のfont:をfont-family:に変えてビルドしなおすといいかもです。

それでフォントが見えないようであれば、/etc/fonts/conf.d等で希望のフォントのパスを追加したり、フォントファミリーをわり当てるようなfonts.confを入れるとよい。