問題点:コード署名
iPhone Developer Programは、iPhone用アプリケーションの独占供給者としての地位をAppleに与えている。そのため仮に自作したアプリケーションを無料配布することを選択したとしても、エンドユーザがアプリケーションを入手してインストールするための唯一のチャンネルとしてはiTunes Storeしか存在していないのだ。そしてAppleからの承認を得たアプリケーションのみが、暗号化キーによる認定が施されるという仕組みになっている。つまりこの認定のないアプリケーションはiPhone上で動作しないのである。
この規約の存在は“反TiVo化“(anti-TiVoization)条項とも呼ばれるGPLv3の第6セクションと真っ向から対立することになる。特にGPLv3ライセンスの適用されたiPhoneアプリケーションをAppleが配布するには、その改変版アプリケーションの作成に必要な署名キーを同梱することが必須となるのだ。
つまり、開発者が自分のコードをGPLv3適用下で公開するよう試みることまでは可能であるものの、Appleからはその配布をすることはできず、またiPhoneではAppleの署名したプログラムのみが動作する関係上、Appleを介さないルートで配布することもできないのである。
FSFのSmith氏の説明するところでは、この場合にプログラムの作成者(ここでは本稿の読者)とバイナリの配布者(つまりApple)とが異なる存在であることは、何の意味もなさないことになる。「特定のユーザ製品にインストールされることを意図したプログラムに関してGPLv3は、それが当該デバイスに直接インストールされるソフトウェアであろうが別途配布されるソフトウェアであろうが、インストレーション情報の提供についての要件が課されると定めています」
GPLは一種のウィルス的な性質を有しており、GPLv3コードを基にしたすべての派生アプリケーションはGPLv3のコード署名(code signing)要件を保持する形でライセンスされる義務が課せられることになる。ただしプロジェクトによってはGPLv2などの古いライセンスを意図的に使用し続けているところもあり、こうした従来バージョンのGPLであればコード署名要件に関する規約は設けられていない。よって理論上はGPLv2適用下でソースコードを公開するという手段も考えられるが、そうしたコードは完全にオリジナルのものであるか、GPLv2以前のライセンスが適用されているコードのみを基にしたものに限られてしまう。しかしながらそうした迂回策を用いたとしても、公開されたソースコードを改変したプログラムを各自のiPhone上で使用することができない以上、フリーソフトウェアと見なすことはできないはずだ。
Smith氏は“部分的”にフリーなソフトウェアは、まったくフリーでないのと同じだとしている。「Free Software Definitionは成績表ではありませんので、チェックリストにある条件を3つ満たすソフトウェアは2つしか満たさないソフトウェアより“優れている”ということは意味しません。Free Software Definitionに一覧されているのは満たすべき最低限の条件であり、それも他人ではなく自分の使用するソフトウェアについてのものです。ライセンスにせよパテントにせよコード署名にせよ、これらの条件のうち1つでも満たされなければ、権利上の自由は喪失したものと見なされます。結局のところ人間がコンピュータの制御権を有していなければ、自分自身がコンピュータによって制御されているのと同じなのです。この場合ソースの一部だけを入手できるとしても、それは自治権を失うことに対する些末的な残念賞に過ぎないでしょう」
しかも仮にこうした迂回策を取り得るとしても、それはソースのリリースに対する許可をAppleが与えることを前提とした話に過ぎない……。
