2022/08/01(月) [n年前の日記]
#2 [ruby] ruby-gtk2は殺されていた
関連情報をググっていて今頃知ったのだけど、gtk2 (ruby-gtk2) は 3.4.3 が最終版で、3.4.4 以降は存在していない模様。
_mikutter GTK3対応(4) ?そして 5.0リリースへ? - tsutsuiの作業記録置き場
_News (2021-04-22 No.1) - Ruby-GNOME2 Project Website (WebArchive)
_ruby-gnome/NEWS at master - ruby-gnome/ruby-gnome
Ruby-GNOME (かつては ruby-gtk2 と ruby-gtk3 の両方を含んでいた) は、3.4.4 で色々なサポートを打ち切っていたらしい。
Windows版 Ruby 2.6.10 (x86-mingw32) 上で gtk2 をインストールしようとしてもエラーになるのはそのせいだった。
つまり、Windows版 Ruby 2.6.x でビルドが通る gtk2 のソースはそもそも存在してなかった、というオチだった。道理で、何度インストールを試みてもビルドエラーになってしまうわけで…。
_mikutter GTK3対応(4) ?そして 5.0リリースへ? - tsutsuiの作業記録置き場
_News (2021-04-22 No.1) - Ruby-GNOME2 Project Website (WebArchive)
_ruby-gnome/NEWS at master - ruby-gnome/ruby-gnome
Ruby-GNOME (かつては ruby-gtk2 と ruby-gtk3 の両方を含んでいた) は、3.4.4 で色々なサポートを打ち切っていたらしい。
- CentOS 6、Ubuntu Linux 16.04 のサポートを打ち切った。
- Ruby 2.4、Ruby 2.5 のサポートも打ち切った。
- そして、3.4.4 になったタイミングで、Ruby/GTK2 (ruby-gtk2) も削除(remove)されていた。
Windows版 Ruby 2.6.10 (x86-mingw32) 上で gtk2 をインストールしようとしてもエラーになるのはそのせいだった。
- glib2 については、3.4.3 になった際に、Windows上でもビルドができるように修正されていた。(「NEWS」内を「3.4.3」で検索すれば変更内容が把握できる。「Windows: Fixed a link errors.」と書いてある。) だから、gem install glib2 -v 3.4.3 でビルドが通った。
- しかし、gtk2 3.4.3 については放置されてしまったっぽい。だから gem install gtk2 -v 3.4.3 をしてもビルドエラーになる。
- 更に、3.4.4 になった際に ruby-gtk2 自体が削除された・非サポートになった。
つまり、Windows版 Ruby 2.6.x でビルドが通る gtk2 のソースはそもそも存在してなかった、というオチだった。道理で、何度インストールを試みてもビルドエラーになってしまうわけで…。
◎ ruby-gtk3は生きている。 :
ちなみに、Ruby 2.6.10 x86-mingw32、及び、Ruby 3.0.4 x86-mingw32 上で gtk3 をインストールしたら(gem install gtk3)、cairo 1.17.1 + gtk3 3.5.1 のビルドが通って gtk3 を使うことができた。
ruby-gtk2 は削除されてしまったけれど、ruby-gtk3 は今もメンテナンスされているし、一般的なGUIアプリを作りたいなら ruby-gtk3 を使えば済むはず、という状況ではあるらしい。
ruby-gtk2 は削除されてしまったけれど、ruby-gtk3 は今もメンテナンスされているし、一般的なGUIアプリを作りたいなら ruby-gtk3 を使えば済むはず、という状況ではあるらしい。
◎ 将来的な不安。 :
しかし、困った…。Windows上ではともかく、Debian Linux上では、まだ ruby-gtk2パッケージが用意されているから、ruby-gtk2 を使ったアプリも作れるだろうし、xscreensaver用のスクリーンセーバを Ruby + ruby-gtk2 で書くことだってできるのかもしれないけれど。公式には ruby-gtk2 が殺されてしまったわけだから、将来的には Debian Linux 上でも ruby-gtk2パッケージが消滅してしまいそうな気がする。そうなると、xscreensaver用スクリーンセーバを Ruby で書くこともできなくなるわけで…。ノリとしては、今から Flash を使ってスクリーンセーバを書くぞ、みたいなソレに結構近い可能性もありそうだなと。
ruby-gtk2 ではなく、ruby-gtk3 を使って xscreenaver用のスクリーンセーバを書くことができればいいのだろうけど、そのあたりは gtk3 に詳しい人じゃないとできないことだよな…。しかし、gtk3 でそんなことができるのかどうか…。
ruby-gtk2 ではなく、ruby-gtk3 を使って xscreenaver用のスクリーンセーバを書くことができればいいのだろうけど、そのあたりは gtk3 に詳しい人じゃないとできないことだよな…。しかし、gtk3 でそんなことができるのかどうか…。
この記事へのツッコミ
[ ツッコミを読む(1) | ツッコむ ]
以上です。
Ruby 2.6.10 x86-mingw32 + cairo 1.17.x x86-mingw32 + gtk2 3.4.3 x86-mingw32 + popplerで動かしています!
いつの間にかmsysのgccが上がってそのままではRuby/Gtk2 gemでインストール時にビルドに失敗しますね。
上記の環境では、gcc 7.xだとRuby/Gtk2(3.4.3)すんなり入りました!