mieki256's diary



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.14パッケージをアンインストール。 :

既に、msys2上で GIMP 2.10.14 がインストールされているので、pacman を使って一旦アンインストール。

  • 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/

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 を実行してみたものの、やはりメニューには ―― フィルター → マップ、の中に項目が出てこない。

起動時のログを眺めた感じでは…。

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 という説明ファイルがあって、フランス語と英語で説明が書いてある。

インストール。 :

petit-msys-mingw-gimp28(v3).7z を解凍。

解凍すると、約1.7GBほどになる。中には、以下の一式が入っている。
  • msys
  • mingw
  • GIMPバイナリやヘッダーファイルやライブラリファイル
  • Perl
  • Python
解凍した中身を、C:\petit-msys-mingw-gimp28\ というフォルダを作って、中に入れる。

この、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 で確認。
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 がある。これがビルドできるか試してみる。

cd /env/compilers_win32
make

vignetting.exe が得られた。*.c が1ファイルだけなら、ビルドできそう。

Makefile を眺めてみれば、コンパイラ(gcc, mingw32-gcc.exe) に、どんなオプションを渡しているのか把握できる。

./configureを使う場合。 :

プラグインによっては、./configure を実行して、Makefile を生成する場合がある。

その場合は、以下の環境変数を設定しておく必要があるらしい。

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 はどう書くのか、といったところから勉強しないとダメっぽいなと…。

*1: 自分、最初はそのことが分からなくて、違うドライブ・フォルダ名に入れてしまい、「/xxx ディレクトリなんて無いんだけど…変だな…」と首を捻ってしまったわけで。

以上、1 日分です。

過去ログ表示

Prev - 2019/11 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project