2019/11/25(月) [n年前の日記]
#1 [gimp] msys2上にGIMP 2.8.xをインストール
Windows10 x64 1903 + msys2 上で、GIMP 2.10.14 のパッケージをインストールして、CやC++で書かれたGIMPプラグインをビルドすることができる、ということは分かったけれど。GIMP 2.8.x で使えるプラグインのバイナリにはならないわけで。
ふと、GIMP 2.10.x のパッケージがあるなら、かつては GIMP 2.8.x のパッケージもあったのではないか、その古いパッケージを入れたら、GIMP 2.8.x で動くプラグインバイナリも作れないかなと思いついて。
ググってみたら、GIMP 2.8.x を配布してた時期もあるらしい。であれば、試してみようかなと。
ふと、GIMP 2.10.x のパッケージがあるなら、かつては GIMP 2.8.x のパッケージもあったのではないか、その古いパッケージを入れたら、GIMP 2.8.x で動くプラグインバイナリも作れないかなと思いついて。
ググってみたら、GIMP 2.8.x を配布してた時期もあるらしい。であれば、試してみようかなと。
◎ GIMP 2.10.14パッケージをアンインストール。 :
既に、msys2上で GIMP 2.10.14 がインストールされているので、pacman を使って一旦アンインストール。
_MSYS2 による gcc 開発環境の構築 - gcc パッケージ群の導入 - しっぽのさきっちょ | text.Baldanders.info
- pacman -R hoge : 該当パッケージのみをアンインストール。
- pacman -Rs hoge : 依存関係も含めた該当パッケージをアンインストール。
_MSYS2 による gcc 開発環境の構築 - gcc パッケージ群の導入 - しっぽのさきっちょ | text.Baldanders.info
$ pacman -Rs mingw-w64-i686-gimp 依存関係を確認しています... パッケージ (6) mingw-w64-i686-dbus-glib-0.110-1 mingw-w64-i686-libexif-0.6.21-4 mingw-w64-i686-libmypaint-1.4.0-1 mingw-w64-i686-mypaint-brushes-1.3.0-3 mingw-w64-i686-python2-gobject-3.34.0-2 mingw-w64-i686-gimp-2.10.14-1 合計削除容量: 127.36 MiB :: 以上のパッケージを削除しますか? [Y/n] y :: パッケージの変更を処理しています... (1/6) 削除 mingw-w64-i686-gimp [##########] 100% (2/6) 削除 mingw-w64-i686-python2-gobject [##########] 100% (3/6) 削除 mingw-w64-i686-mypaint-brushes [##########] 100% (4/6) 削除 mingw-w64-i686-libmypaint [##########] 100% (5/6) 削除 mingw-w64-i686-libexif [##########] 100% (6/6) 削除 mingw-w64-i686-dbus-glib [##########] 100%
◎ GIMP 2.8.14をインストール。 :
以下から、3つのパッケージを入手。
_Index of /mingw/i686/
angleproject-git, webkitgtk2 は、GIMP 2.8 をインストールする際に必要になるパッケージ ―― 依存パッケージらしい。
angleproject-git, webkitgtk2, gimp の順でインストールする。
_Index of /mingw/i686/
mingw-w64-i686-angleproject-git-2.1.r8842-1-any.pkg.tar.xz mingw-w64-i686-webkitgtk2-2.4.11-6-any.pkg.tar.xz mingw-w64-i686-gimp-2.8.14-9-any.pkg.tar.xz
angleproject-git, webkitgtk2 は、GIMP 2.8 をインストールする際に必要になるパッケージ ―― 依存パッケージらしい。
angleproject-git, webkitgtk2, gimp の順でインストールする。
pacman -U mingw-w64-i686-angleproject-git-2.1.r8842-1-any.pkg.tar.xz pacman -U mingw-w64-i686-webkitgtk2-2.4.11-6-any.pkg.tar.xz pacman -U mingw-w64-i686-gimp-2.8.14-9-any.pkg.tar.xz
◎ gimp-texturizeをビルド。 :
この状態で、msys2上で gimp-texturize をビルドして texturize.exe を得た。
◎ ダメだった。 :
GIMP 2.8.22 Portable の設定で、texturize.exe が置いてあるディレクトリを、プラグインの登録フォルダとして追加してみたけれど…。
gimp --verbose を実行してみたものの、やはりメニューには ―― フィルター → マップ、の中に項目が出てこない。
起動時のログを眺めた感じでは…。
gimp_wire_read(): error と出てる…。GIMP側から認識できないバイナリになっている、ということだろうな…。
gimp --verbose を実行してみたものの、やはりメニューには ―― フィルター → マップ、の中に項目が出てこない。
起動時のログを眺めた感じでは…。
Skipping duplicate plug-in: 'C:\home\USERNAME\.gimp-2.6\plug-ins_resynth\1.0_2.6_2.8_win32_new\resynth\plugin-uncrop.py' Parsing 'C:\Prog\GIMP-2.8.22-Portable\Data\.gimp\pluginrc' Querying plug-in: 'C:\home\USERNAME\.gimp-2.6\plug-ins_texturize_2.1_mybuild_gimp28\texturize.exe' (gimp-2.8.exe:7904): LibGimpBase-WARNING **: gimp-2.8.exe: gimp_wire_read(): error Querying plug-in: 'C:\home\USERNAME\.gimp-2.6\plug-ins_resynth\1.0_2.6_2.8_win32_new\resynth\resynthesizer.exe' Querying plug-in: 'C:\home\USERNAME\.gimp-2.6\plug-ins_resynth\1.0_2.6_2.8_win32_new\resynth\resynthesizer-gui.exe' Querying plug-in: 'C:\home\USERNAME\.gimp-2.6\plug-ins_mathmap\mathmap.exe'
gimp_wire_read(): error と出てる…。GIMP側から認識できないバイナリになっている、ということだろうな…。
[ ツッコむ ]
#2 [gimp] GIMP 2.8.6用のプラグインを作れるファイル群を入手
ググっていたら、気になる情報を見かけた。2013年頃、「GIMP 2.8.6用のプラグインを Windows上でビルドする際に必要なファイル群」をごっそりまとめた状態で配布してくれていた方がおられたようで。
_Small Windows compilation environment for Gimp 2.8 32-bit - GIMP Chat
_Small Windows compilation environment for Gimp 2.8 32-bit - Page 5 - GIMP Chat
今現在、Windows用の GIMP 2.10.14 Portable 独自ビルド版を配布してくれている、samj氏の手によるもの。らしい。
当時は、petit-msys-mingw-gimp28.7z というファイル名で配布していたらしい。しかし、残念ながら、今では該当ファイルは入手不可のようで。
ただ、少し古い、petit-msys-mingw-gimp28(v3).7z というファイルはまだ残っていたので、感謝しつつDLさせてもらったり。
コレを使えば、Windows上でも、GIMP 2.8.x で使えるプラグインのバイナリをビルドできるのではないか…。
ということで、Windows10 x64 1903 上で試してみた。
ちなみに、petit-msys-mingw-gimp28(v3).7z の中に、Readme_petit-msys-mingw-gimp28.txt という説明ファイルがあって、フランス語と英語で説明が書いてある。
_Small Windows compilation environment for Gimp 2.8 32-bit - GIMP Chat
_Small Windows compilation environment for Gimp 2.8 32-bit - Page 5 - GIMP Chat
今現在、Windows用の GIMP 2.10.14 Portable 独自ビルド版を配布してくれている、samj氏の手によるもの。らしい。
当時は、petit-msys-mingw-gimp28.7z というファイル名で配布していたらしい。しかし、残念ながら、今では該当ファイルは入手不可のようで。
ただ、少し古い、petit-msys-mingw-gimp28(v3).7z というファイルはまだ残っていたので、感謝しつつDLさせてもらったり。
コレを使えば、Windows上でも、GIMP 2.8.x で使えるプラグインのバイナリをビルドできるのではないか…。
ということで、Windows10 x64 1903 上で試してみた。
ちなみに、petit-msys-mingw-gimp28(v3).7z の中に、Readme_petit-msys-mingw-gimp28.txt という説明ファイルがあって、フランス語と英語で説明が書いてある。
◎ インストール。 :
petit-msys-mingw-gimp28(v3).7z を解凍。
解凍すると、約1.7GBほどになる。中には、以下の一式が入っている。
この、C:\petit-msys-mingw-gimp28 というドライブ名・フォルダ名は、できれば変えないほうがいい。というのも、中には msys 一式が入っていて、/etc/fstab の中で、「このフォルダはこのディレクトリ名として扱うように」という指定が決め打ちで書かれているから。 *1
もし、違うフォルダ名でインストールしたい場合は、中に入っている msys\etc\fstab を編集して、ドライブ名やフォルダ名を変更しておくこと。
解凍すると、約1.7GBほどになる。中には、以下の一式が入っている。
- msys
- mingw
- GIMPバイナリやヘッダーファイルやライブラリファイル
- Perl
- Python
この、C:\petit-msys-mingw-gimp28 というドライブ名・フォルダ名は、できれば変えないほうがいい。というのも、中には msys 一式が入っていて、/etc/fstab の中で、「このフォルダはこのディレクトリ名として扱うように」という指定が決め打ちで書かれているから。 *1
もし、違うフォルダ名でインストールしたい場合は、中に入っている msys\etc\fstab を編集して、ドライブ名やフォルダ名を変更しておくこと。
◎ 実行。 :
C:\petit-msys-mingw-gimp28\ をカレントディレクトリとした DOS窓を開いて、start_MSYS.bat を実行する。msys の sh.exe だか bash.exe だかが起動する。
初回起動時は、msys\home\ の下にユーザーのホームディレクトリを作成するっぽい。
/etc/fstab に列挙された各フォルダが認識されているか、ls で確認。
/etc/fstab は、以下の内容になっている。
初回起動時は、msys\home\ の下にユーザーのホームディレクトリを作成するっぽい。
/etc/fstab に列挙された各フォルダが認識されているか、ls で確認。
ls /env ls /mingw ls /perl ls /python ls /w32
/etc/fstab は、以下の内容になっている。
C:/petit-msys-mingw-gimp28 /env C:/petit-msys-mingw-gimp28/base/c /mingw C:/petit-msys-mingw-gimp28/base/perl /perl C:/petit-msys-mingw-gimp28/base/c/Python /python C:/petit-msys-mingw-gimp28/base/c/tmp /tmp C:/petit-msys-mingw-gimp28/compilers_win32/MinGW /w32
◎ 試しにビルド。 :
compilers_win32/ 以下に、32bit版プラグインバイナリを作るサンプルとして、vignetting.c と Makefile がある。これがビルドできるか試してみる。
vignetting.exe が得られた。*.c が1ファイルだけなら、ビルドできそう。
Makefile を眺めてみれば、コンパイラ(gcc, mingw32-gcc.exe) に、どんなオプションを渡しているのか把握できる。
cd /env/compilers_win32 make
vignetting.exe が得られた。*.c が1ファイルだけなら、ビルドできそう。
Makefile を眺めてみれば、コンパイラ(gcc, mingw32-gcc.exe) に、どんなオプションを渡しているのか把握できる。
◎ ./configureを使う場合。 :
プラグインによっては、./configure を実行して、Makefile を生成する場合がある。
その場合は、以下の環境変数を設定しておく必要があるらしい。
とりあえず、sh だか bash だかが起動した際に自動で読み込まれるという、~/.profile (= C:\petit-msys-mingw-gimp28\msys\home\USERNAME\.profile) を作成して、記述しておく。
msysシェルを閉じて(Ctrl + D)、DOS窓を開き直して、再度 start_MSYS.bat を実行。
~/.profile の内容が反映されていれば、以下の操作で、指定した内容が表示されるはず。
gimp-plugin-template-2.2.0.tar という、GIMPプラグインを作る際のテンプレートファイル群がある。コレを解凍して、./configure を使って Makefile を作成後、make をしてみる。
src/ の中に、*.exe が作られている。ビルドは通った。
その場合は、以下の環境変数を設定しておく必要があるらしい。
export CC=/w32/bin/mingw32-gcc.exe export CFLAGS="-I/mingw/include -I/w32/include -I/python/include -pipe -O3 -mms-bitfields -march=i686 -s" export LDFLAGS="-L/mingw/lib -L/w32/lib -mwindows -lpthread"
とりあえず、sh だか bash だかが起動した際に自動で読み込まれるという、~/.profile (= C:\petit-msys-mingw-gimp28\msys\home\USERNAME\.profile) を作成して、記述しておく。
msysシェルを閉じて(Ctrl + D)、DOS窓を開き直して、再度 start_MSYS.bat を実行。
~/.profile の内容が反映されていれば、以下の操作で、指定した内容が表示されるはず。
echo $CC echo $CFLAGS echo $LDFLAGS
gimp-plugin-template-2.2.0.tar という、GIMPプラグインを作る際のテンプレートファイル群がある。コレを解凍して、./configure を使って Makefile を作成後、make をしてみる。
cd /env tar xvf gimp-plugin-template-2.2.0.tar cd gimp-plugin-template-2.2.0 ./configure make
$ ls src/*.exe src/gimp-plugin-template.exe
src/ の中に、*.exe が作られている。ビルドは通った。
◎ gimp-texturizeはビルドできず。 :
この調子で、gimp-texturize もビルドしようとしたけれど、ハマってしまった。
gmp-texturize は、./autogen.sh を実行することで Makefile を作れるのだけど、./autogen.sh を実行してみてもエラーが出てしまって先に進まない。
gimp-plugin-template の src/ 以下を、gimp-texturize の src/*.(c|cpp|h) で差し替えるのはどうかな、おそらく Makefile.am あたりもちょっと書き換えるのだろう、と思って試してみたけれど。gimp-plugin-template と違って *.cpp が混ざってるせいか、エラーがバンバン出て先に進まず。
どうやら、./configure とは何なのか、Makefile はどう書くのか、といったところから勉強しないとダメっぽいなと…。
gmp-texturize は、./autogen.sh を実行することで Makefile を作れるのだけど、./autogen.sh を実行してみてもエラーが出てしまって先に進まない。
gimp-plugin-template の src/ 以下を、gimp-texturize の src/*.(c|cpp|h) で差し替えるのはどうかな、おそらく Makefile.am あたりもちょっと書き換えるのだろう、と思って試してみたけれど。gimp-plugin-template と違って *.cpp が混ざってるせいか、エラーがバンバン出て先に進まず。
どうやら、./configure とは何なのか、Makefile はどう書くのか、といったところから勉強しないとダメっぽいなと…。
*1: 自分、最初はそのことが分からなくて、違うドライブ・フォルダ名に入れてしまい、「/xxx ディレクトリなんて無いんだけど…変だな…」と首を捻ってしまったわけで。
[ ツッコむ ]
以上、1 日分です。