Shade for Linux Preview KitをFreeBSDで動かす方法をまとめてみました.
メモとりながら作業したわけではないので抜けがあったらごめんなさい.

なお,Shade for Linux FreeTalkの動作環境探検隊のボードの森 秀樹さんからのコメントの方が参考になると思います.

FreeBSDで動かす方法

  1. まずrootになります. http://www.FreeBSD.org/~marcel/ にある.The linux_base-6.0 port をつかって RedHatのライブラリ等をインストールします. /usr/ports/emulators/linux_base/(RedHat-5.2ベース)を既にインストール済の方は
    mv /compat/linux /compat/linux-5.2
    
    として待避しておきましょう.
  2. cd /compat/linux
    rpm2cpio shade-r4rev12-28107.i386.rpm |cpio -i -d 
    
    として展開します. ここで/compat/linux/usr/local/bin, /compat/linux/usr/local/lib, /compat/linux/usr/local/shade等のディレクトリが作成されます.
    これらのディレクトリのモードをchmod 755しておきます.また
    brandelf -t Linux /compat/linux/usr/local/bin/shade-28107
    
    も実行してshadeのELFバイナリのABIタイプにLinuxを指定します.
  3. ftp://ftp.redhat.com/pub/redhat/old-releases/redhat-6.0/i386/RedHat/RPMS/tcl-8.0.4-29.i386.rpmをひろってきて
    cd /tmp
    rpm2cpio tcl-8.0.4-29.i386.rpm| cpio -i -d
    
    で展開します.展開したあと
    cp /tmp/usr/lib/libtcl8.0.so /compat/linux/usr/lib
    cd /compat/linux/usr/lib
    ln -s libtcl8.0.so libtcl.so
    
    とします.
  4. /compat/linux/etc/ld.so.confの最後の行に /usr/local/libを付け加えて
    cd /compat/linux
    sbin/ldconfig
    
    を実行します. ここで
    /usr/bin/ldd usr/local/bin/shade-28107
    
    を実行すると
    libdl.so.2 => /lib/libdl.so.2 (0x284e7000)
    libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x284ea000)
    libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x28587000)
    libpth.so.11 => /usr/local/lib/libpth.so.11 (0x28593000)
    /usr/lib/libtcl.so => /usr/lib/libtcl.so (0x285a2000)
    libqt.so.2 => /usr/local/lib/libqt.so.2 (0x28606000)
    libc.so.6 => /lib/libc.so.6 (0x28965000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x284d1000)
    libstdc++-libc6.1-1.so.2 => /usr/lib/libstdc++-libc6.1-1.so.2 (0x28a53000)
    libm.so.6 => /lib/libm.so.6 (0x28a95000)
    
    となっていればすべてのライブラリがそろっています. そうでなければライブラリが足りていません.
  5. いよいよshadeの実行です.これ以降は一般ユーザで問題ないです. /compat/linux/usr/local/bin/shadeを見てみると 環境変数SHADE_ETCをセットしているので
    setenv SHADE_ETC /usr/local/shade
    unsetenv LANG
    
    とします. kinput2がうごいていればkillしておきます.
    cd /compat/linux
    usr/local/bin/shade-28107
    
    としてShadeのタイトル画面が出てくればOKです.
なお,動作確認は で行いました. Linuxのカーネルスレッドをshadeは使用していないので FreeBSD-3.3-stableのSMPカーネルでも問題なく動作しているようです。 ただしSMPでもレンダリングが速くなるわけではありません.

補足
なお,shadeの.shdデータを読み込んだあと,データによってはSIGFPEで落ちるようです.
pth-1.1.5.tar.gzのpth_lib.cのint pth_init(void)関数にsignal(SIGFPE, SIG_IGN)を付け加え,Slackware-7.0環境で再コンパイルしたlibpth.so.11を使うと SIGFPEで落ちなくなりました.
梅野 崇 (umeno@rr.iij4u.or.jp)