せっかくなので NetworkManager のバージョン 1.0.0 をビルド・インストールしてみた。ライブラリの統廃合が大きな特徴だけれど、まだ古いライブラリも提供されているのでバージョン 0.9 系の最新版をインストールしているのとあまり変わらない感じ。と思ったら、g-c-c のネットワーク・アプレットが起動されなくなってしまった :
まぁ NetworkManager のバージョン 1.0 は GNOME 3.14 のずっと後にリリースされたから仕方がないとは思うのだけれど、なんだか「気持ち悪い」ので現在の開発ブランチである GNOME 3.15 の g-c-c のソースコードを確認してみたら、こんなログが
commit f30e6df1d4665b06a45ad7bbe7a2ed2bfa9387f5 Author: Bastien Nocera Date: Thu Dec 18 08:04:00 2014 +0100
network: Also work with NM 1.0
Remove the NetworkManager version checking altogether. The code was made to check for now very old versions of NetworkManager, and anything newer than ancient should degrade gracefully if we support newer features.
https://bugzilla.gnome.org/show_bug.cgi?id=741661
このネットワーク・アプレットは起動時に実行中の NetworkManager のバージョンを取得してチェックしている:
static gboolean panel_check_network_manager_version (CcNetworkPanel *panel) { const gchar *version; gchar **split = NULL; guint major = 0; guint micro = 0; guint minor = 0; gboolean ret = TRUE; /* 実行中のバージョンを取得して解析する */ version = nm_client_get_version (panel->priv->client); if (version != NULL) { split = g_strsplit (version, ".", -1); major = atoi (split[0]); minor = atoi (split[1]); micro = atoi (split[2]); } /* そのバージョンが新しすぎるか、もしくは古すぎるか? */ if (major > 0 || minor > 9 || (minor <= 8 && micro priv->nm_warning_idle = g_idle_add ((GSourceFunc)display_version_warning_idle, panel); } g_strfreev (split); return ret; }
この実装、本来はバージョン 1.0 の NetworkManager の場合は through するはずなのが、どうやら引っかかっていたらしい。なにやらバージョン管理も面倒になったのか、バッサリ割愛されて、かなり古いバージョンのみ弾くような実装に変更されていた。こちらをそのまま適用してネットワーク設定画面を出すことができた:
で肝心のコア・パッケージの方だけれど、安易に upstart を systemd で置き換えようとしたら、何だかいろいろ起動しなくなったので止めた。あと、このバージョンから日本語入力などの「IM 切り替えが gnome-setting-daemon から gnome-shell へ移行された」ようで、なにやらこちらも危険な匂いがしたので、ひとまず gnome-shell とそれに依存するパッケージは保留したまま Standalone なアプリを先にビルド中。
(現在インストール保留中のパッケージ)
- mutter
- clutter と clutter-gtk
- gnome-settings-daemon
- gnome-session
- gcj
- gnome-shell
ということで、現在のデスクトップは GNOME のバージョン 3.10 と 3.14 が混ざった状態。特に支障はないのでどうしょうかなぁと考え中 。