Building GNOME 3.14 release (TAKE 1).

一応 gsettings-desktop-schemas までビルドした。GLib や GTK+ といったコア層は完了したので、ちょうどプラットフォーム層のコンポーネントに移行し始めたといったところ。まぁ、この辺りから GNOME 以外の依存関係が広がってくるし、(1回分のリリースを飛ばしている分) ja.po の方も未訳数が桁違いになってくるので、本当に「面倒」なビルド作業はこれからなんだけど。
で、ここまでのビルドで一番気になるのは GTK+ 3.14 のリリースで正式に組み込まれた GtkInspector という内蔵型の対話式デバッガ。その他にも色々あるのだけれどバージョン 3.12 をスキップしちゃっているので実際にどのバージョンで追加されたのか詳細は不明ではあるが、例えば gtk-launch なるコマンドを使うと URI を指定してアプリケーションを起動できるようになっているので、そういった (かなり使うケースが限定される) クラスが追加されているようだ。他には、画像編集系のアプリで使いそうな十字カーソルをキャンバス上で移動させてイベントを発行する Event Axes クラスとか、目的が今ひとつ不明な FlowBox クラス、ジェスチャーをサポートした Gesture クラス、UI 系だと Header Bar クラスや Popover クラスなんかがある。
GtkInspector は、以前は .Parasaite といった GTK+ のアプリケーション一つとして実装され、他のアプリにアタッチしてウィジェットの階層やクラスのプロパティをランタイムで調査できるものだったようさ。そういえば、その昔に似たような機能を持った ginspector なる GObject 系のクラス調査ツールがあった記憶がある (確か日本人が開発していたような)。GtkInspector は、chrome とか firefox といった最近のウェブアプリには標準で実装され Web 開発で HTML ページや CSS のレイアウト調査を行う「インスペクタ」と同様の位置づけだ。従って GTK+ のアプリで、このデバッガを起動する場合は chrome や firefox のそれと同様に [Control]+[Shift]+[I]というショートカットが利用できる。もしくは環境変数として GTK_DEBUG=interactive を指定する。すると GtkWindow を持つアプリから次のようなインスペクタが起動される:
BuildingGNOME3.14-2014122401.png
ここで OK をクリックすると、インスペクタのウィンドウから GTK+ のクラスについて様々な情報を収集できるようになる:
BuildingGNOME3.14-2014122402.png
BuildingGNOME3.14-2014122403.png
CSS エディタではリアルタイムで設定を変更させて確認することが可能になっている。他にもフォントやテーマなんかも変更して即座に確認できるようになっている。
そして、それ以外に気づいた点は gdk-pixbuf を最新版 (2.31系以上) にすると Deprecated な API やクラスが削除されているため GTK+3.0 ではなく GTK+2.0 の方がビルドできなくなるのには注意が必要。その他に NetworkManager の 1.0.0 がリリースされた。その際に今までのクライアント・ライブラリが GObject 化されて libnm という一個のライブラリに統合・置き換えられるようになった。但し、この 1.0.0 では従来の libnm-glib や libnm-gtk などのライブラリも混在できるようになっている。あとベースが Ubuntu 14.04 LTS なので gcc がちょっと古いため 4.9 をインストールしている。あと -fstack-protector-strong というオプションは、このバージョンからサポートされていたようだし。
といったところで、ここまでは特に大きな問題は無し :D

Start to build GNOME 3.14, but….

もう2014年もあと一ヶ月となってしまった所で、昨年のアップグレード以来ほとんどビルドしていなかった GNOME リリースの最新版でもビルドしてインストールでも始めようかと環境を整えていたら、なんと GNOME.org のアカウントが無効になっていた。最後にアクセスしたのは確か今年の7月くらいなんだけど、それから半年近く経ってから checkout してもアクセス権が無いとかで弾かれてしまう。アカウントの連絡先のメールアドレスは gnome.gr.jp ドメインであり、最後に引っ越しした後に forwarding 設定をしていたような記憶もあるが、まったく No Any Notifications だった。まぁ、いいか :|
ということで、今迄は常に Ubuntu の最新版のリリース上でビルドしていたけど、これからは LTS リリースをベースにビルドすることにした。Security Packages 以外のアップグレードの寿命がかなり短いから。