「
Monoを3.10.0に更新中 #2」の記事で書いた、x11-toolkits/libgdiplus の問題は、数日前にPortsをアップデイトしたら、files/patch-src_gifcodec.c のパッチが追加されていて解決しました(万歳!)。
ただし、そのままコンパイルしてしまうと、XOpenDisplay()等の関数を呼び出してしまうので、Xをインストールしていない環境では、OpenSim起動時にエラーになってしまいます。
この為、次のMakefile.localと、files/patch-src_general.c を x11-toolkits/libgdiplus のディレクトリに追加してビルドします(
昔の記事には、このパッチを載せてなかったみたい...そのうちちゃんとまとめねば....)。
ただし、これはXをインストールしていない環境で無理やりOpenSimを動かすためのものなので、Xが存在する環境では、この作業はしないでください。libgdiplus を使う他のアプリケーションに悪影響がでる可能性があります。
Makefile.local
#
# Makefile.local --- Local settings for OpenSIM
#
.if defined(WITHOUT_X11)
CFLAGS+= -DWITHOUT_X11
MAKE_ARGS+= 'SUBDIRS=src'
.endif
files/patch-src_general.c
--- src/general.c.orig 2011-01-13 22:28:19.000000000 +0000
+++ src/general.c 2012-08-27 07:31:08.000000000 +0000
@@ -132,6 +132,9 @@
dpis = h_dpi;
return dpis;
+#elif defined(__FreeBSD__) && defined(WITHOUT_X11)
+ dpis = 96.0f;
+ return dpis;
#else
char *val;
これで、Portsを最新にしても、OpenSimを動かすことができるようです。