Ubuntu Unityの2017年4月の状況

# Ubuntu Unityの2017年4月の状況

「遅すぎたエイプリルフール」とか「4月爆弾」とか言われた、UbuntuのUnityに対する方針変更のアナウンスのあとの状況について、現時点でわかっている範囲の話をまとめておきます。

より丁寧な解説や今後の状況の変化に伴う情報は[Ubuntu Weekly Topics](http://gihyo.jp/admin/clip/01/ubuntu-topics)に期待しましょう。


## Unityに関する正式なアナウンス

今後のUnityに関する正式なアナウンスは、2017年4月10日時点においては、4月5日にマーク・シャトルワースが公開した次の記事だけです。

  * https://insights.ubuntu.com/?p=65030

上記についてはUbuntu Weekly Topicsの[2017年4月7日号](http://gihyo.jp/admin/clip/01/ubuntu-topics/201704/07)にまとまっています。

簡単にまとめておくと次のとおりです。

  * CanonicalはUnity 8とUbuntu Phoneへの投資をやめる
  * Ubuntuの標準のデスクトップシェルは今後GNOMEへと移行する

Topicsにも記載があるように、おそらくユーザーが気になるであろういくつかの点については記載がありません。実際のところ今週の17.04のリリースが完了するまでは、17.10以降についての話どころではないので決まっていないことも多々あるのでしょう。17.10の開発が始まると同時に、いろいろと詳細をつめていくことになるのだと思います。


## Google Plusでのマークの発言

上記アナウンス後、Google Plusにおいてマークがユーザーからの質問に応える形で、いくつかの興味深い発言を行っています。

  * https://plus.google.com/+MarkShuttleworthCanonical/posts/7LYubpaHUHH

簡単に抽出してまとめると次のとおりです。

  * Ubuntu GNOMEチームと協力し、Ubuntu GNOMEに投資する予定
  * デスクトップチームは、Ubuntu GNOMEの安定化や改善、Unityからのアップグレードの実装に注力する
  * Unity7について、18.04では引き続きuniverseからインストールできる見込み
  * SnapやCoreは継続する（デスクトップセッションも含めたAll Snapsも諦めていない雰囲気？）
  * Mirへの投資も継続予定（IoTで利用されているため）
  * Mir-hateに対する愚痴

Ubuntu GNOMEをUbuntuへと昇格することは、ほぼ決まりのようです。これによりUbuntu 10.10あたりまでと同様に、GNOMEベースのLinuxディストリビューションになるのかもしれません。

ただしUbuntuには、Unity（デスクトップシェル）以外にもNotify OSDやOverlay Scrollbar、リリース毎の壁紙などUbuntu独自のUIコンポーネントが存在します。またUbuntu Weekly Recipeの記事にもあるように、純粋な「最新のGNOME」とは異なるバージョン構成になっています。

  * [Ubuntu GNOME 16.10の変更点](http://gihyo.jp/admin/serial/01/ubuntu-recipe/0442)

unity-settings-daemonのようにUbuntu独自のカスタマイズが加えられたソフトウェアもありますので、これらの扱い方によっては「単純にUbuntu GNOMEの名前を変えただけ」にはおさまらないかもしれません。とは言え「all-GNOME desktopを提供するつもりである」とか「Ubuntu GNOMEと競合する何か新しいものを作るつもりはない」とも言っていますので、可能な限りUbuntu独自のUIコンポーネントは廃されることになるでしょう。

おそらく日本人にとっていちばん影響しそうなのが日本語入力まわりです。FcitxからIBusに戻るのか、何かミラクルなチェンジが起こるのか。このあたりはUbuntu Weekly Recipeの今後の記事に期待しましょう。

Snap・Ubuntu Core・Mirは継続する見込みです。MirはUnity 8とセットで語られることが多いので「Unity 8終了＝Mir終了」との誤解もあったようです。最近のMirは、IoT向けのmir-kioskとかMirALとかそのへんの開発も行われているため、Unity 8とは独立したUbuntu Core向けのコンポーネントとしての地位を確立しています。将来性にはまだまだ疑問があるものの、現時点での廃止は免れたようです。「WaylandがあるからMirは消えてくれ」と思っていた方、ざんねんでしたー！


## Unity 8からフォークしたプロジェクト「Yunit」

そこそこのユーザーが存在するプロジェクトが終了したら、そのフォークプロジェクトが現れるのはFLOSS界ではよくあることです。Unity 7自体はメンテナンスモードという扱いのため、おそらく誰もフォークすることはありませんが、Unityシリーズの次期バージョンであるUnity 8に対しては「Yunit」というプロジェクトが立ち上がりました。

  * https://yunit.io/

もともとは「unity8org」という名前で作られましたが、その後の[投票](http://www.strawpoll.me/12696619/r)で「Yunit」（[Your Unityの略](https://github.com/yunit-io/yunit/issues/11#issuecomment-292492903)）という名前に[決定しました](https://github.com/yunit-io/yunit/issues/11#issuecomment-292735605)。その発音については、発案者が「[文字でうまく説明できないので、語学学んでいるいとこにちょっと聞いてくる！](https://www.reddit.com/r/Yunit/comments/649qj8/yunit_pronunciation/dg10bpu/)」と言った結果「[[YuniT](https://www.reddit.com/r/Yunit/comments/649qj8/yunit_pronunciation/dg1fsss/)]」と書いているのですが、[いとこの書いた文字](http://imageshack.us/i/pmBI94zRj)を見る限り、微妙に違うような気がします。

今のところこのプロジェクトは、次の方針で対応するようです。

  * ビルドできるようにする・そのインフラを整える
  * MirからWaylandへと移行する
  * 当面の間はデクストップに注力する

実際にUnity 8を使っている人から見ればわかるかと思いますが、上記は声が大きな意見に対してのみ回答しているように見受けられます。本質的には、Unity 8だけフォークしてもダメだよね（他のツールやコアアプリとセットで考えないといけないよね）とか、Waylandへの移行よりも先にUpstartへの依存をなんとかしようよとか、Unity 8の最大の強みであるコンバージェンスを「脇に置く」ってどうなのよとか、session snapはどうするのさとか、他にも考えるべきことは山ほどあります。

ちなみにUnity 8そのものは3月末まで比較的活発に開発が続いていました。そのおかげでUbuntu 17.04のUnity 8セッションの完成度はだいぶ上がっています。少なくとも16.10とは別物だと思えるぐらいです。


## Ubuntu Phoneの遺志を受け継ぐ「UBports」

Unity 8に比べるとUbuntu Phoneの終了は、「あぁ、やっぱり……」という感想が大勢を占めていました。これでスマートフォンの「第三のOS」四天王のうち生き残っているのはJollaのSailfish OSだけです。Jollaは他の四天王と違ってこれがメインの事業なので、そう簡単には諦めないと期待しています。四天王の最後の一人は別格の強さを誇っているはずですしね。ゲーム脳的に考えて。

Ubuntu Phone/Tabletは、もともとNexus 4、Nexus 7 (2013)、Aquaris E4.5など特定のデバイスをメインサポートしているものの、ソースコードはすべて公開されていたために、コミュニティで自由に他のデバイスへとポーティングできるようになっていました。そんな中、さまざまなデバイスへのUbuntu Phoneのポーティングを主体として構築されたコミュニティが「UBports」です。

  * https://ubports.com/

MWC 2017では実際にUbuntu Phoneを移植したFairphone 2を展示しています。

Ubuntu Phoneの終了に伴い、「UbuntuとUnity 8を採用したスマートフォンOSの開発」はUBportsが引き続き行うようです。Ubuntu Phoneのアナウンス後に行われた開発者のミーティング結果が、QandAとして次の記事にまとまっています。

  * https://blog.ubports.com/2017/04/08/ubports-community-q-a.html

重要そうなところを抽出していくと、次のとおりです。

  * 当面はFairphone 2やbq M10が公式サポートデバイスとなる
  * その他の既存のデバイスのイメージも提供するつもりはあるがレガシーモードという扱い
  * レガシーモードは15.04・clickの組み合わせのまま
  * 公式サポートデバイスは16.04・snapへの移行を予定している
  * 短期的にはUnity 8/Mirを使い続ける
  * Yunitとは連携するつもりではいるがモバイルとデスクトップの違いという問題がある
  * UBportsとしてはコンバージェンスを重視したい
  * Waylandに移行するかどうかはYunitにあわせるつもり
  * 少なくともUBportsとしてディスプレイサーバーをメンテナンスするつもりはない
  * コアアプリに関してもメンテナンスするつもりだがインフラが整うまでは凍結とする
  * チケット管理にはLaunchpadを継続して使うつもり
  * コード管理はGitHubを使う
  * まずはストアやアカウント管理、通知サーバーといったインフラをどうするか再考する必要がある

プロジェクトとして継続するつもりですし、何よりUbuntu Phoneの最大の武器である「コンバージェンス」の理念を重視していることが伺えます。とはいえ完全にコミュニティベースのプロジェクトであるため、人材的にも財務的にも余裕はありません。プロジェクトとしてもCanonicalなしに継続することは難しいとは認識しているものの、「アナウンス」のあとのコミュニティの反応を見る限りまだ希望はあると考えているようです。


## 何がなくなって、何がなくならないのか

「アナウンス」の中でマーク・シャトルワースが何度も言及しているように、Unity 8とUbuntu Phoneへの「投資の」終了はあくまでCanonicalの経営上の判断です。

その「経営上の判断」の中には、「18.04が長期サポート版である」という事実も含まれているのでしょう。長期サポート版ということは、mainコンポーネントに含まれるパッケージに対して5年間サポートを続けなくてはなりません。Unity 7をUnity 8に対する「フォールバック」として残した場合、Unity 7の諸々の遺産を5年間サポートしなくてはならないことになります。それを避けるためにも、17.04ないし17.10でのUnity 8への移行が急がれていました。しかしながら経営上の判断としてUbuntu Phoneとコンバージェンスが断念されました。コンバージェンスの一角を担い、Unity 8のテストベッドという位置づけでもあったスマートフォンが崩れ去ってしまったので、デスクトップのUnity 8への移行の意味が薄れ、さらにむずかしくなってしまったのではないかと思います。

ちなみにUnity 7を捨てることで、次のコンポーネントとさよならできます。

  * Upstart
  * Compiz
  * BAMF
  * Nux

さらに状況によっては、次のコンポーネントも捨てることができるかもしれません。

  * Notify OSD
  * Overlay Scrollbar
  * libindicator
  * libusermetrics

いずれも結構なコードベースになっている上に、他のディストリビューションでは使われていないものも多いので、これらのサポートを切ることができれば、だいぶスリムアップできるのです。

でも個人的には、Upstartを使い続けていれば、Ubuntu Phoneの16.04ベースへの移行とsnap化や、ひいてはデスクトップのUnity 8への移行はもう少しはやく行えたのではないかとも考えています。


最後に、Canonicalの社員をはじめとするUbuntu Phoneの開発コミュニティに携わった人たちの「ありがとう」は、以下のURLにあるMLのスレッドから確認できます。

  * https://lists.launchpad.net/ubuntu-phone/msg23849.html

ありがとう！