Building GNOME 3.16 release (TAKE2).

くどいようだけれど、既に GNOME 3.16.2 のビルド・インストールは完了済み。
今回も適当に (というか、やっと systemd を採用した) Ubuntu Desktop をベースに800個以上パッケージをビルドしている。で、自分のマシンは NVIDIA GPU GeForce GTX 960 を搭載しているので、当然ながら Proprietary なドライバをインストールしているのだけれど、GNOME 3.16 の cheese とか totem とか gnome-maps なんかを起動すると:


(totem:23229): Gdk-ERROR **: The program 'totem' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
(Details: serial 401 error_code 8 request_code 154 (GLX) minor_code 31)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
[1]    23229 trace trap (core dumped)  totem

てな具合に GDK/X11 向けのバックエンドで SIGSEGV して起動しない現象が多発して手を焼いた。clutter / clutter-Gtk ライブラリ経由で地図なんかを描画しようとすると落ちる。ビルド時のオプションで無効にしたり、次のように clutter のバックエンドをソフトウェア制御することでなんとか凌いでいた:


$ CLUTTER_BACKEND=x11 cheese

まぁ意外と大勢の人達が直面していた問題だったようで、”Bug 747489 – No access to the Visual used to build the CoglOnscreen” として登録されて対応が進んでいたようだ。clutter の開発版である clutter 1.23.2 と、こちらは未だリリースされていないようだけれど clutter-gtk にもパッチが必要。こちらは、登録済みの Bug 747489 のコメント37 に添付されているので、自前でビルド・インストールしている。
これで正常にアプリを起動することが出来るようになって一安心 :):
GNOME-3.16.2-Desktop-04.png

Building GNOME 3.16 release (TAKE1).

既に GNOME 3.16.2 のビルド・インストールは完了済み。
実は、ここまで来るのにいろいろ紆余曲折があった。というのも、今年の初め、ちょうど出張に入る直前まで、昨年の9月にリリースされた GNOME 3.14 のビルドを「毎度のように」時間を見つけながらやっていたのだけれど、このリリースから部分的にサポートが始まった systemd に対応してみたり、使えない Unity デスクトップを排除するようなパッケージ (例えば unity-settings-daemon の古いサポートを無視したまま新しいバージョンの gnome-settings-daemon) をインストールしてデスクトップ再起動を繰り返しているうちに gnome-shell が起動できなくなり、さらには linux の shutdown さえもまともにできなくなってしまった :$。それがわかったのが出張の前日ということもあり、後ろ髪引かれる思いで出張へ。
毎度のことながら ja.po の更新を含めたパッケージ作成には時間がかかるもので、この時は (これも去年の長期出張により一つ前の GNOME 3.12 をスキップしているため) リリースが二つ古い GNOME 3.10 からのアップデートだったということもあり、いろいろなことで時間を食った。さらに改めて振り返ってみると、Running Machine でパッケージを作成しビルドしてインストールというスタイルの「限界」も痛感した :(。このスタイルは GNOME デスクトップのビルドを始めてからかれこれ10年近く変えていないのだけれど、近頃の GNOME はデスクトップの領分を越えてシステム規模の Requires まで要求するようになっていく傾向にあり、常々やりずらいなぁと思っていた。大昔だと、例えば Linux Kernel の Inotify やら HAL なんか。そういうことで、今回は systemd を部分的にインストールしたのが不味かったのかなぁと思っている。確か、この時点で Ubuntu デスクトップが systemd をサポートするのは 15.09 からだと聞いていたので、ubuntu 14.03 には少々強引だったかなぁとも。
そんな出張中に「systemd の導入が前倒しで 15.03から」というニュースを聞いたので、出張が終わったらゼロから構築しようと決めた。さらこのビルドからは仮想マシンをテスト機として用意し、ビルドしたパッケージのインストールや実行テストをきっちり行ってから Running Machine にインストールする方法を始めてみることにした。最初はこの二度手間が苦痛だったけど、何度か危ないケースを回避できたこともあり、今ではやってよかったと思っている。
それでもシステム全体をゼロから構築したので、ビルドの他にもいろいろ手間がかかったけれど、出来上がった現在の GNOME 3.16 デスクトップはこんな感じ:
GNOME3.16.2-Desktop-00.png
そんなこともあり、$HOME 配下に眠っていた大昔のドット・ファイルを一掃することができたもの良かった :D
GNOME 3.16 の出来の方だけれど、リリースノートを読めばわかる通り、大して嬉しい機能はなく、ちょっとした改善レベルであり、このビルドとインストールにかけた時間のことを考えると残念でならない。まぁ今に始まったことではないけれど。この程度の進歩ならば半年ではなく1年リリースで十分じゃないかと思うのは俺だけだろうか。

通知メカニズムの改善

「全面的な改良」を謳っているけど、数個先のリリースではまた改良されそうな気配:
GNOME3.16.2-Desktop-01.png
GNOME3.16.2-Desktop-02.png

Nautilus の改善

毎度「見やすさ」とか「見栄え」とかで手が加えられる「ファイルの一覧」こと Nautilus。但し一覧表示すると、「修正日時」や「詳細な修正日時」の項目の書式は US フォーマットのままで日本語。仕方ないので B.G.O #750917 に登録しておいた。直ぐ治したいのであれば、このチケットに貼り付けたパッチを参照のこと:

system-file-manager.png GNOME3.16.2-Desktop-03.png

ということで、しばらくこんな感じで「ぼやいていく」予定。

GTK+ Ref. translation is finally finished.

残っていた「GTK+ のいろいろなツール」と「用語集」が完了し、GTK+ バージョン 2.14.7 のリファレンスマニュアルの翻訳がすべて完了した。
最初に gdk-pixbuf の翻訳に着手したのが 2011年6月なのでかれこれ4年近くかかったわけだ。GLib を含めたドキュメント・ファミリーの場合だと GLib の翻訳開始が 2008年10月なので、こちらもかれこれ7年近くかかったことになる。いや~、長かった~。実際、GTK+ の2系は既にバージョン 2.24.27 までリリースされてしまっているので、新規ないし変更された仕様もあるだろうから、あまり役にたたないかもしれないけど。おまけにメインストリームは GTK+ 3 になっているし。
とはいえ、正直なところ感無量。よくぞ最後まで続けることができたものだと。次の翻訳作業は未定。ひとまず GTK+ 関連の翻訳は終了する。城攻めブログも新たに再開したいので、早いとこ自宅サーバをリプレイスしないといけないし。
ということで、この際だから他の関連するドキュメントも一旦、最新版の gtk-doc でコンパイルしなおしてアップロードしておいた:
See Also GTK+ リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also GIT リポジトリ: 作業用の GIT リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。
この GTK+ バージョン 2.14.7 をドキュメント・ファミリーとして相互参照する日本語ドキュメントは:
See Also GLib リファレンスマニュアル: v2.18.4 版の API リファレンス
See Also GObject リファレンスマニュアル: v2.18.4 版の API リファレンス
See Also GIO リファレンスマニュアル: v2.18.4 版の API リファレンス
See Also Cairo リファレンスマニュアル: v1.8.6 版の API リファレンス
See Also Pango リファレンスマニュアル: v1.22.4 版の API リファレンス
See Also gdk-pixbuf リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also GDK リファレンスマニュアル: v2.14.7 版の API リファレンス
まぁ今回も ATK のリファレンスマニュアルは翻訳していないけど。

GTK+ Ref. translation (TAKE 20).

古いバージョンからの移植について」が完了。この章は主に、GTK+ のバージョンを上げることで古い API を新しい API で置き換える際の留意点、サンプル・プログラム、バグ情報などがまとめられている。大体が GNOME ライブラリとして提供され、アプリでも利用率の高い API を GTK+ のライブラリに統合するという「恒例の作業」の一環であり、このバージョンでは 「廃止」(Obsoleted) になった libgnomeui ライブラリが対象となっている。バグ情報に関しては、「当然ながら」今のバージョンでは修正されているものがほとんどなので、そのあたりの注釈は追記しておいた。
ということで、完了までの大きな「壁」はなくなった。あとは man ページと用語解説の翻訳のみ。7年間も費やした「GTK+ ツールキット一式」のリファレンスマニュアル日本語版の完成まであともう一息。
See Also GTK+ リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also GIT リポジトリ: 作業用の GIT リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。