|
From: Kouhei S. <ko...@co...> - 2013-04-29 08:40:20
|
須藤です。
Ruby-GNOME2プロジェクトはRuby-GNOME2 2.0.0をリリースしました!
2.0.0です!
今回のリリースからGObject Introspectionベースのバインディング
のWindows用バイナリ入りgemの提供を開始しました。(例えば、
Ruby/GStreamerやRuby/Clutter。)これで、今後はGObject
Introspectionベースで開発していけそうだなぁという気がしたの
で2.0.0にしました!
ただ、まだ細々したところを作りこめていないので、引き続き使っ
て問題点があったら教えてもらえるとうれしいです!特に、オブジェ
クトの所有権周りのところが怪しいので、メモリリークしているっ
ぽいとか開放しすぎててSEGVするとかいうのを教えてもらえるとう
れしいです。
今回からRuby/GStreamerがGObject Introspectionベースになって、
GStreamer 1.0系をサポートしました。ただし、古いGStreamer
0.10系はサポートしないので、古いGStreamerを使いたい場合は古
いRuby/GStreamerを使ってください。
GObject Introspectionベースの方はまだ荒削りですが、シンプル
に使う分にはちゃんと動いています。
== お願い
=== Ruby/GTK3に関して
Ruby/GTK3のサンプルの多くはRuby/GTK2から移行しきっていません。
これらのサンプルはまだたくさん警告を出力します。すべてのサン
プルをRuby/GTK2から移行したいと思っています。この作業を手伝っ
て欲しいです。
具体的には以下のような作業になります。
% gem install gtk3
% git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git
% cd ruby-gnome2/gtk3/gtk-demo
% ruby main.rb # たくさんの警告がでます。
% vim xxx.rb # 警告やエラーを直して欲しいす。
# 期待する挙動はRuby/GTK2のサンプルを動かしてみてください。
# % cd ${RUBY_GNOME2_TOP_DIR}/gtk2/gtk-demo
# % ruby main.rb
# GTK+ 3のオリジナルのサンプルも参考にしてください。
# https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo
# もしかしたら、GTK+ 3から移行していないサンプルもあるか
# もしれません。そんなサンプルを見つけたらRuby/GTK3へポー
# ティングして欲しいです。
↑の作業をしてpull requestを送ってくれるとうれしいです。単位
は細かくていいです。大きいのがドカンとくるよりは細かく送って
くれたほうが確認しやすくてうれしいです。なので、少し進めたら
送ってくれると嬉しいです。
この作業の流れはgtk-demo用ですが、他にもgtk3/misc/と
gtk3/testgtk/にもサンプルがあります。これらに関しても手伝っ
てくれるとうれしいです。
=== GObject Introspectionベースのバインディングに関して
既存のバインディングの中で、可能なものはGObject
Introspectionベースのバインディングに置き換えていきたいと思っ
ています。具体的には、まずは、Ruby/GStreamerとRuby/GooCanvas
を置き換えたいと思っています。Ruby/GStreamerの方は基本的な機
能は置き換えていますが、細かい部分はまだ未確認です。というこ
とで、そのあたりの作業を手伝ってもらえないでしょうか。
これらはAPIが多くてなかなか完成しなく、まだ「実験的」な扱い
のライブラリです。しかも、新しいバージョンへの対応もできてい
ません。
GObject Introspectionベースのバインディングにすることにより、
半自動的に新しいバージョンにも対応できるようになり、開発者に
とっても利用者にとってもうれしくなります。
で、やって欲しい作業ですが、サンプルを移植して欲しいです。
こんな風にすると作業を開始できます。おかげさまでGStreamerの
方は移植が進んでいます!
GStreamerの場合:
% gem install gobject-introspection
% git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git
% cd ruby-gnome2/gstreamer
% cd vim sample/xxx.rb
require "gst"
Gst.init
# サンプルを移植する
% ruby -I sample sample/xxx.rb
GStreamerのサンプルは
http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tests/examples/
以下にあるようです。例えば、以下がサンプルです。
http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tests/examples/helloworld/helloworld.c
GooCanvasの場合:
% gem install gobject-introspection
% git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git
% cd ruby-gnome2/goocanvas
% cd vim sample/xxx.rb
require "goocanvas-gi"
# サンプルを移植する
% ruby -I sample sample/xxx.rb
GooCanvasのサンプルはここにあります。
http://git.gnome.org/browse/goocanvas/tree/demo
どれもサンプルをひとつ移植するごとにpull requestを送っても
らえるとうれしいです。
また、中にはうまく移植できないものもあるかもしれません。その
ときはpull requestかメーリングリストで教えてください。
Ruby/GObjectIntrospectionで未実装な機能が必要かもしれません。
== インストール方法
% gem install gtk2
% gem install gtk3
== Ruby-GNOME2 2.0.0: 2013-04-29
WindowsでGObject Introspectionベースのバインディングをサポー
ト!
=== 変更点
==== NEWS
* 修正
* typoを修正。 [Masafumi Yokoyamaさんが報告]
* typoを修正。 [Toyo Abeさんが報告]
==== Ruby/GLib2
* 改良
* lib/gnome2-*.rbをlib/gnome2/ディレクトリに移動。
* GLib 2.34をサポート。 [OBATA Akioさんが報告]
==== Ruby/GdkPixbuf2
* 修正
* [windows] PNGを扱えない問題を修正。
[ruby-gnoem2-devel-ja] [Masafumi Yokoyamaさんが報告]
==== Ruby/GDK3
* 改良
* [windows] 必要のないGreybirdテーマを削除。
[ruby-gnome2-devel-en] [Regis d'Aubaredeさんが報告]
* Gdk::Window#create_cairo_contextを追加。
[ruby-gnome2-devel-en] [Detlef Reichlさんが報告]
==== Ruby/GTK3
* 改良
* サンプルを更新。
[GitHub #140][GitHub #141][GitHub #144]
[Simon Arnaudさんがパッチ提供]
[GitHub #142][GitHub #143][GitHub #145][GitHub #146][GitHub #148]
[Detlef Reichlさんがパッチ提供]
==== Ruby/GObjectIntrospection
* 改良
* [windows] サポート!!
==== Ruby/GStreamer
* 改良
* GStreamer 1.0サポート!
* GObject Introspectionベースに移行!
* GStreamer 0.10サポートを削除。
==== Ruby/Clutter
* 改良
* [windows] サポート!
==== Ruby/ClutterGTK
* 改良
* [windows] サポート!
=== 感謝
* Masafumi Yokoyamaさん
* Toyo Abeさん
* OBATA Akioさん
* Regis d'Aubaredeさん
* Detlef Reichlさん
* Simon Arnaudさん
|