読者です 読者をやめる 読者になる 読者になる

解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

WebKit の翻弄される行く末

インターネット利用が広まって久しくもう数十年にもなりますが、その主な活用形態は今でもウェブです。 おそらく、ウェブとメールが生活必需というくらいになっているでしょう。 そして、メールも「ウェブメール」の時代になってかなり経ちます。

何が言いたいのかといえばつまり、ウェブブラウジングのための「処理エンジン」が極めて重要であるということです。

そして、 GNU/Linux でも動く実用的な高機能の「処理エンジン」といえば WebKit です。 WebKit エンジンは、一般のアプリケーション・ソフトウェアでも利用することの可能なライブラリにもなっています。 GUI ツールキットのコンポーネントとして、 WebKitGTK+や、QtWebKitがあります。

プロプライエタリのウェブブラウザ

ところで、他方のマイクロソフトはとても長い間、IEです(エンジンは Trident)。 日本と韓国は特殊で、未だにWindowsIEが主流です。しかし世界的には顧みられなくなってきています。 そのIEですら、「重すぎて使い物にならない」という理由から「タブブラウザ」が広まりました。「タブブラウザ」はつまりは、IEを「処理エンジン」として、サブセットとして、利用しているわけです。 Windows 10になってブラウザとエンジンが変えられましたが、魅力の無いこのWin10がどれだけ普及するかはわかりません。ただ、物凄く強引にアップグレードさせようとねじ込んでいますから、それが功を奏すれば IE は消えていくこともありうるのかもしれませんが。

それに対してマイクロソフトと同様のプロプライエタリ勢のアップルコンピュータは、「オープンソースソフトウェア」を利用することで MacOS をはじめ多くのソフトウェアの中身を作り替えています。 そのアップルのウェブブラウザは Safari です。 そしてこの Safari の「処理エンジン」は WebKit です。 アップルは、「オープンソース」ユーザであって、言うまでもなく、フリーソフトウェア主義者ではありません。 「オープンソース」に参加してその成果物をプロプライエタリビジネスに取り込む経営手法を採っています。 Safari はあくまでもアップルの、Macの、ブラウザです。

アップルと同様に「オープンソース」を利用しているグーグルのブラウザは、Chrome です。 かつては WebKit を利用していましたが、今は WebKit をフォークして独自化してしまいました(Blink)。(こうして、 SafariChrome は全く異なるブラウザに分派したわけです。) Chrome のベースとなる部分を、 Chromium としてオープンソース化しています。 Chrome 自体は、プロプライエタリです。

WebKit のライセンス

その WebKit は、心臓部のライセンスは LGPL で、その他は BSD (3条項)ライセンスです。

つまり、 WebKit の核心部分はフリーソフトウェアプロプライエタリ化することは不可能。 フォークしても(派生させても)、その特定部位は常にフリーソフトウェアのままにしておかねばならないというのが、 LGPL の条項です。

他方で、 BSD 3条項ライセンスは、本家はオープンソースですが、これをプロプライエタリ化することが可能です。

LGPLBSD ライセンスについて詳しくは Wikipedia でも見てください。

それでこのことから言えるのは、 アップルやグーグルも、 LGPL 部分の「盗用」までは不可能だということです。 WebKitLGPL 部分はずっと、フリーソフトウェアのままにしておかねばなりません。

WebKit の主要ユーザ

このように、WebKit の主要な利用者は、アップルです。 以前はグーグルもそうでした。

そもそも WebKit の元になったのは KDE の産物(KHTML)です。 そして、KHTML を利用しようとしたアップルがフォークさせたのが WebKit です。 そして、 KHTMLLGPL なので、 WebKitLGPL を引き継がねばならないわけです。

とにかく、WebKit にバグがあると困るのは、一般のエンジニアだけではなくて、特大企業であるアップルもそうです。 グーグルも、そうでした。

このことから考えれば判るわけですが、 WebKit の主要な製作者(コミッタ、コントリビュータ)は、以前はグーグルも、そして今はアップルであるわけなのです。 アップルは、WebKit のバグ潰しに明白な動機をもっているわけで、バグ潰しに積極的に参加するのは当然のことです。 従業員などに報酬を積んででも、バグ潰しをせねばなりません。 そして、 WebKitLGPL であるからには、そのバグ潰しの成果を公開しなければ使えないわけです。

WebKitGTK+ 旧バージョンと QtWebKit は顧みられなくなっている

WebKit を熟知していて、バグ潰しに労力を余裕でかけられるのは、アップルです。 そしてそのバグ潰しの成果を、互換性の高いバージョンの WebKitGTK+ にもコミットしています。

つまり、アップルは Safari に活用するために WebKit を手直ししているわけなのですから、手直しする意味がない旧バージョンの面倒は見きれません。

もっと危ないのは QtWebkit で、熟知して直してくれる「大物製作者」が居ないに近い状態になっています。

ウェブエンジンにバグという危険性

ウェブブラウザは凡そ、インターネット接続をして用いていることでしょう。 ですから、そのエンジン部分にバグがある、あまつさえセキュリティホールであるということがあれば、危険です。 ウェブエンジンのバグというのは相対的に危険度がより高いということが一般論としていえます。

そうすると、旧バージョンの WebKitGTK+ や QtWebKit を使い続けるのは危険だぞ、といえるわけです。

QtWebkit は廃止

Qt の最新バージョンでは、 QtWebKit が廃止されています。 代わりに QtWebEngine というものが導入されています。 この中身は、グーグルの Blink を採用したものです。 Blink は WebKit のフォークですが、それを採用するに至ったわけです。

昔の WebKit をなかなか消せない……

WebKit のユーザは、アップルだけではありません。 一般のアプリケーションソフトウエアの製作者も、利用しています。フリーソフトウェアですから、誰だって利用可能です。 ウェブブラウザもあれば、 Markdown などのエディタのプレビュー機能として WebKit を利用しているような事例は沢山あります。

しかしそのアプリケーションソフトウェアの製作者がちゃんと、新バージョンや代替品に移行してくれるかというと、そうともかぎりません

そうすると、そうした更新されないアプリケーションソフトウエアを、我々は利用しない方がいいということがいえるわけです。 つまり、棄てるしかありません。 あるいは、そのアプリケーションソフトウエア、我々の誰かがフォークしてしまって書き換えてくれれば解決するわけですが……

また恐いのは、GNU/Linuxディストリビューションを、熟知もせずに使っている人の場合です。 こうなると、ディストリビューションの製作者に命を預けているようなものです。 言い換えれば、それではプロプライエタリと同じです。 自己調査&自己判断&自己決定&自己責任、というのが成り立っていません。 しかしそうした人が残念ながら沢山居ます。 「オープンソース」というブームで商売がされている界隈では、フリーソフトウェアという大人の自己責任は解らないまま、便利だとか面白いだとか色々獲り放題でタダとか、そういう理由で使っているユーザがむしろ多いわけです。 そうして obsolete なソフトウェアを使い続けるのは危険です。

Gentooのようなもののユーザならばまだしも、Ubuntu とか使っている人の多くは、 dependency で QtWebKit がインストールされたとかいうことについて知らず深く考えないまま放置して、ただ単に apt-get upgrade とかしているだけで Canonical 任せ、シャトルワース任せなんでしょう。

しつこいようですが、ここでついでにしつこく言うのは、ユーザ当人に危険が及び、またその危険性はユーザ自身が作り出しているからです。

結局は生殺与奪を握られているという現実

WebKit を直せるのがアップルくらいしか居ない。 Blink はグーグルくらいしか居ない。

そこからすると強いて言えば MozillaGecko の方がマシなのですが、GTK+ や Qt に入っているわけではありません。 そこで事実上は、多くの製作者は WebKit ユーザ、今後はあるいは Blink ユーザということになってしまうでしょう。

比較していうと実は例えば FFmpeg にしても、大物ユーザが居て(例えば Google Chrome とかね)、コードをどれほど書いているかどうかはともかくとしても生殺与奪を握っているように思われます。 これは、 Libav がフォークしたのか、そして何故寂れているのか、その遠因であろうとも思うわけです。 フリーソフトウェアを理解している例えば Debian も、当初は Libav を採用しようとしましたが、あまりにも使い物にならないので FFmpeg 採用にまた戻ってくるという結果になっていますね。

こうして、ユーザ(一般消費者)の自己決定を奪う巨大事業主の支配体制が、オープンソースを足がかりにして展開されて、さらにはフリーソフトウェアの世界にもどうにかして侵食しようとしてきているのだという実態があります。

いくらライセンスが強固であっても、例えば「生活費がないからコードが書けない」などというのでは、大資本が圧倒する現実になってしまうでしょう。

つまり我々は、大人に目覚めねばならないのです。我々の多くが子供のまま権力に甘えているから、権力に生殺与奪を握られて、人生を持っていかれるんです。

例えば Windows Update かけたら勝手に Win10 にアップグレードされるとかいう権力の独裁と横暴を、未だに甘受するのでしょうか。 Windowsプロプライエタリソフトウェア買うカネを省いたならば、それを代わりにフリーソフトウェアに注入するくらいでないと、我々は権力者に乗っ取られっぱなしのままでしょうね。