Mac の GIMP 2.8.10 (gimp.org からダウンロードした本家版GIMP.app。LisaNet 版 Gimp on OS X にあらず) に、有名な画像処理のプラグイン G’MIC をインストールしようと試みたが、GIMP が認識してくれない状態だった。原因は、おそらく G’MIC のビルド上のバグで、ライブラリ libpng の配置に問題があり、読み込むことができないためである。
この問題は、簡単なワークアラウンドで回避可能で、無事インストールでき、フィルターメニューやプラグインブラウザで表示されるようになり、実際に使うことができた。
GIMP.app, which is distributed from gimp.org for Mac OS X 10.9 (Mavericks), cannot detect the G’MIC for GIMP plugin. The cause of this is that
gmic_gimp
tried to load libpng from strange location. This article proposes a work around for this issue.環境
試したのは以下のような環境です:
- GIMP
Mac の Gimp 2.8.10 でヘルプを使えるようにするには で用意したもの。LisaNet版ではなく、GIMP本家が配布している 2.8.10 である。 - G’MIC for GIMP
SourceForge.net の G’MIC プロジェクトのダウンロードページ にあるMacgmic_p_1.5.9.0_beta_macosx_Mavericks.dmg
。2014年5月13日にリリースされてたもの。 - パッケージマネージャ Homebrew。
- G’MIC の .dmg ファイルの README に記載されている
gmic_gimp
(G’MIC for GIMP) が使用しうるライブラリ: opencv, fftw, openexr, libtiff とその他に libpng は、インストール済み。なければbrew install
(もしくはport
,fink
でもなんでも) でインストールしておくこと。
- G’MIC の .dmg ファイルの README に記載されている
解析
通常、GIMP に、プラグインをインストールする場合は、所定の場所にバイナリを入れてやるだけでいい。たとえば、Mac OS X 10.9.x (Mavericks) の場合、
- /Applications/GIMP.app/Contents/Resources/lib/gimp/2.0/plug-ins/
- ~/Library/Application\ Support/GIMP/2.8/plug-ins/
のいずれかになる。
ところが G’MIC をインストールしようとしたところ、なぜか GIMP が認識してくれない。GIMP 起動時のスプラッシュ画面をみるに、いちおう探してはいてくれるようなのだが。
そこでデバッグオプションをつけてコマンドラインから調べたところ、G’MIC for GIMP (
gmic_gimp
) は、変な場所からライブラリ libpng15.15.dylib
をロードしようとしていた (dyld: Library no loaded: の行):$ /Applications/GIMP.app/Contents/MacOS/GIMP -c --debug-handlers
Setting up environment...
Enabling internal python...
Locale black magic...
Launching GIMP...
Cannot spawn a message bus without a machine-id: Unable to load /var/lib/dbus/machine-id or /etc/machine-id:
Failed to open file '/var/lib/dbus/machine-id': No such file or directory
dyld: Library not loaded: /tmp/skl/Gimp.app/Contents/Resources/lib/libpng15.15.dylib
Referenced from: /Users/honyarara/Library/Application Support/GIMP/2.8/plug-ins/gmic_gimp
Reason: image not found
(GIMP-bin:36253): LibGimpBase-WARNING **: GIMP-bin: gimp_wire_read(): error
解決方法 (ワークアラウンド)
これは G’MIC のビルド上のバグだが、以下のようなワークアラウンドとして回避できる:
libpng15.15.dylib
をコピーなりシンボリックリンクを張るなりして、/tmp/skl/Gimp.app/Contents/Resources/lib/libpng15.15.dylib
を作る。
libpng15.15.dylib
自体は、自分で用意するしかない。わたしの場合は、たまたま以前 brew
したものが、/usr/local/Cellar/libpng/1.5.17/lib/libpng15.15.dylib
に残っていたので、これを利用した:$ mkdir -p /tmp/skl/Gimp.app/Contents/Resources/lib
$ cd !$
$ ln -s /usr/local/Cellar/libpng/1.5.17/lib/libpng15.15.dylib .
こうしておいて GIMP を起動してあげると、フィルターの最後に灰色で
G'MIC
が表示されるし、プラグインブラウザで G'MIC
を検索することができた。
めでたしめでたし。ヽ(´∀`)ノ