OSXでgimpのプラグインを作りたくなりgimpをソースからビルドした件
はじめに
最近mrubyで画像処理を扱っていて、今年の目標というかもう10年来の目標のまま放置されているgimpのプラグイン作成をついでだからやってみようと重い腰を上げた。
gimpでScript-fuがあることは分かっており、最近はEmacsからAtomにほぼ移住した感があり、ますますlispを学ぶ機会が遠のいている。
また、ずいぶん前からPythonでもプラグインが書けることだけは知っていた。
GIMPのプラグインはタダの実行ファイルだった
たまたま、今回、公式のプラグイン作成のページがGoogleで紹介されたので、読んでみたところ、これまで、自分が考えていた構造とは異なり、たんなる実行形式のファイルをGimpのプラグインとして認識するフォルダに置けば動くということを知った。
実際には、Gimpと連携する為、内部通信するAPIを呼ぶ必要があるのだけど。。。
ともかく、これにより、太古の昔、Script-fuの書き方の説明ページを見て、lisp固有の雰囲気に飲み込まれハードルが超高層ビル並みに高い印象から、一転し、mrubyで行けるんじゃね?とさえ思うようになった。
gimptool-2.0が無かった
GIMPの公式サイトで一番最初に出てくるバイナリにはC言語でGIMPのプラグインをビルドする際に必要となる、gimptool-2.0コマンドが含まれていなかった。
jhbuild祭り
GNOME関連のプロジェクトは、tarballから自力でビルドしてみるとすぐに分かると思うが、非常に依存関係が多く、ハマること間違いない。
そこにjhbuildという神ツールが存在して、これを助けてくれる。
このページを元に作業をすすめた。
なるべくjhbuildでビルドさせる
下手にPKG_CONFIG_PATHでHomebrewを指定していると、面倒なことになりかねないと予想する。特に今回は、gtk+周りにライブラリをX11でなく、MacのUIで昔だとAquaと呼ばれていたUIに対応したモノをビルドする必要があるので、混ぜるな危険だと思われる。
unset PKG_CONFIG_PATH
cd ~ wget https://git.gnome.org/browse/gtk-osx/plain/gtk-osx-build-setup.sh sh gtk-osx-build-setup.sh ~/.local/bin/jhbuild bootstrap
これでjhbuildコマンドが、~/.local/binに作られる。自分は、忘れっぽいので、~/.local/binはパスに通さず、作業をした。ここで、パスに通して、そのまま使い続けると、Homebrew環境が動かないといった可能性が出てくる。しかも忘れたころにとか。どっぷりjhbuildでGNOMEの世界に行ってしまうなら良い機会なのかもしれないが。
pythonをjhbuild用を新たに用意
pyenvでpythonの環境を複数持っているが、これとは別にjhbuild環境用に作ることにした。PyGTKを既存の環境とは別にしておきたかった。
import libxml2でpythonが死亡
スレッドがどうのという、典型的な共有ライブラリのシンボル解決が出来ない場合のエラーが発生。
原因は
~/gtk/inst/bin/pythonがリンクしているlibpythonがApple製のものだった!
cd ~/gtk/inst/bin/ otool -L python python: /System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.6) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1151.16.0)
pythonの本体のdylibをrename
install_name_tool -change /System/Library/Frameworks/Python.framework/Versions/2.7/Python ~/gtk/inst/lib/libpython2.7.dylib python
jhbuildコマンドは、PATHに~/gtk/inst/binを先頭に追加して実行するので、以降はここでビルドしたpythonが使われることになる
GTK+のインストールまで
~/.local/bin/jhbuild build meta-gtk-osx-bootstrap ~/.local/bin/jhbuild build meta-gtk-osx-core ~/.local/bin/jhbuild build meta-gtk-osx-python
途中FTPでエラーの場合、
別のミラーサイトなりからファイルを入手して、~/gtk/source/pkgs配下にコピーすれば対処出来た。
ついにGIMP本体のビルド
~/.local/bin/jhbuild build gimp
babl、geglをwgetする必要がある模様
少なくとも、jhbuildのftpではDL出来なかった(2015/05/20時点)
python-fuを使う
jhbuild shellでgimpのソースツリーへ。
config.logにjhbuildで行ったビルド時のconfigureのオプションが先頭に書かれているので、
head config.log
で確認、「--disable-python」を「--enable-python」にしてconfigureを再実行。
ビルドされたGIMPを動かすには
関連投稿
関連記事
- GIMPのプラグインをGoで書く(その1)
- Windowsで64ビットなPythonでPython-Fuが動くgimpをビルドした
- macOS版の公式Gimp-2.10.appでPython-Fuを有効にするには
ソースからビルドつながり
- 数年ぶりにFirefoxをビルドして動かした
- wxMaximaをMavericksでビルド出来た
- Windows 10でFirefoxをソースからビルドして動かしてみた
- WindowsでPostgreSQLをソースからビルドした
- WindowsでソースからビルドしたGimpでPYTHONPATHを指定せずにPython Fuを使うには
- Windows(MSVC)でplv8をビルドするまで