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

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