フリーソフトウェアの理念にそぐわないiPhone SDKの利用規約

 先日AppleからiPhone用のソフトウェア開発キット(SDK:Software Development Kit)がリリースされたが、同SDKを用いたオープンソースソフトウェアの新規開発や移植を考えていたのであれば、そうした用途にそぐわない利用規約にはなはだ失望させられることになるだろう。特にフリーソフトウェア開発の妨げとなるのは、守秘義務契約の存在とコード署名に起因する問題である。

 SDKそのものは自由にダウンロードすることができ、ソフトウェアシミュレータにて実行可能なプログラムの構築に利用できるとされている。しかしながら独自に作成したソフトウェアを一般向けにリリースするためにはSDKのダウンロードとは別にiPhone Developer Programへの登録が必要であり、Appleからの許諾を受けなくてはならないのである。

 iPhone Developer Programに関してはそのリリース以来、GPLなどの一般に用いられているライセンスと共存できるか否かについて、様々なフリーソフトウェアおよびオープンソース系コミュニティにて論争が繰り広げられている。今回、この疑問に対する明確な解答を得るべく当事者団体に直接の質問を試みたところ、Appleからの返答は得られなかったものの、Free Software Foundation(FSF)にてライセンス関連の法務担当を務めるBrett Smith氏はこうしたライセンス問題についての掘り下げた議論に進んで協力してくれた。

 まず最初にSDKおよび付属するiPhone Developer Programについて確認をしておこう。

 SDKをダウンロードするにはApple IDの無料サインアップが必要で(過去に取得済みのApple Developer Connectionないし.MacやiTunes Storeなどのアカウントを有していればそれを使うこともできる)、次にこのIDを用いてAppleにiPhone Developerとしての登録を行う。またSDK本体を入手しただけではiPhone上で動作するアプリケーション構築は行えない。それを行うには更にiPhone Developer Programへの登録が必要で、その際には最低99ドルの料金をAppleに支払うことになる。

 そして現状ではすべての応募者が登録される訳ではなく、18歳以上の米国在住者のみが応募可能な上に、Appleは特定の応募者のみを選別しているのだ。この合格基準が何であるかおよびその必要性については、Apple系の話題を扱う各種Webサイトにて論議の的となっている。

 また仮に自作するアプリケーションに対する承認が得られたとしても、問題はRegistered iPhone Developer Agreementという名称のドキュメントの存在であって、そこにはiPhone用アプリケーション作成に関する諸条件が定められている。つまりGPLなどのフリーソフトウェア用ライセンスと対立するのは、これらの諸条件に他ならないのである。

問題点:コード署名

 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が与えることを前提とした話に過ぎない……。

問題点:守秘義務契約

 適用するライセンスの選択肢を制限しているのは、コード署名の問題だけではない。それはRegistered iPhone Developer Agreementという契約の存在で、これは開発者(ここでは本稿の読者)とAppleとの間で結ばれるものである。そしてこの契約に定められている多数の条件の1つにでも違反した者は、SDKのコード開発用ユーティリティおよび関連する情報やドキュメント類についての使用権を失うとされているのだ。

 この契約のセクション3に定められているのは守秘義務契約(NDA:nondisclosure agreement)である。そこには「Appleの製品、デザイン、事業計画、ビジネスチャンス、財政、研究、開発、知識、人員および第三者の機密情報についてAppleが非公開としたすべての情報」は“機密情報”であると定められており、そこから除外されるものは、その他の任意の場所にて入手できる特殊な情報とされている。また開発者はこうした機密情報の「公開、出版、頒布」をしないことだけでなく、「個々の事例についてAppleの正式代表者による書面による許諾を事前に得た場合を除き、自分自身ないし第三者の利益となるいかなる用途にも供さない」ことも約束しなければならない。

 こうしたカバー範囲の広い制約が守秘義務契約(NDA)にて謳われることは特に珍しくもないが、問題は通常行使されている、自分が構築したソースコードに自分で選んだライセンスを付ける権利の放棄も強制されてしまう点だ。この問題についてSmith氏は、「プログラムのソースコードの共有を禁止するNDAに合意することは、GPL適用下でのプログラムのリリースおよび、GPLの適用されたコードをその中で利用できなくなることを意味します」と語っている。

 iPhoneのAPI群のドキュメント類はどこにも公開されていないため、iPhone用のSDKおよびDeveloper Programのドキュメントに基づいて作成したソースコードを一般にリリースするという行為は、機密情報の“公開”、“出版”、“頒布”に該当してしまう可能性を秘めている。具体的に何が“公開”、“出版”、“頒布”に該当するかについてAppleによる明確な言質が得られればもう少し身動きを取りやすくなるのではあろうが、それが得られていない現状では、可能な限り保守的な解釈をしておくのが無難であろう。

 自分が開発したソースコードの公開許可をAppleに求めることも可能かもしれないが、そうした許可が得られない段階で使用契約に違反する行為を犯せば、SDKの使用権だけではなくソフトウェアを公開する権利も失うことになり、それは開発者である自分自身がどのようなライセンスを適用していようとも変えようがないのだ。

 そして最後に、現在設けられている“18歳以上の米国在住者のみ”というiPhone Developer Programへの登録資格は、フリーソフトウェア開発者の多くを門前払いしている形になっている。もっともiPhoneの販売地域が世界各国に広まりつつある現状を鑑みると、米国在住者のみという制限は取り除かれる可能性が高いかもしれないが、Registered iPhone Developer Agreementを法的有効性のある契約としておく関係上、年齢制限は今後も残され続けることになるだろう。

 その他にフリーソフトウェア関連の障壁として見なされ得るものに、iPhone用アプリケーションで何を行うかという側面での制限も存在している。つまりこれまでに検討した制限はいずれも、その機能とは無関係に、すべてのアプリケーションに関係するものなのである。

ソフトウェアに自由を!

 改めて言うまでもないが、コード署名および守秘義務契約(NDA)にまつわる制限は、プログラムの使用契約に同意した開発者にのみ適用される問題である。例えばiPhoneをリバースエンジニアリングできれば、思う存分に独自のコード開発ができるはずで、オフィシャルなSDKを介さなければ自分の開発成果に任意のライセンスを付けて公開することは可能なのである。

 実際、現在存在しているサードパーティ系iPhone用アプリケーションはいずれもiPhoneというデバイスを取り囲む制限を独自に突破した成果なのであるが、少なくともこうした余技にも等しい成果がAppleをしてiPhone用のSDKを整備させた一因になっていたはずである。

 またAppleの開発コミュニティの名誉のために一言触れておくと、非フリーソフトウェアに適用する場合においてもiPhone SDKの使用には制限が伴うことは彼等自身も承知しているようで、その件に言及した記事も各種執筆されている。

 iPhone SDK時代の幕開けが告げられた今日、iPhoneというデバイスの登場に際してFSFが何を語っていたかを振り返ることも一興だろう。FSFによるGPLv3の公開は奇しくもAppleによるiPhoneの販売開始日と重なっていたため、このイベントはiPhone購入者に課せられる制限という問題提起の機会としても利用されていたのである。

 FSFの取締役を務めるPeter Brown氏は「所有者の制御下にないデバイスは所有者の利益に反した行為を成し得るという点で、(このデバイスは)障害を抱えている」という発言をしており、この発言を掲載した記事では、DRMによるロックおよび“TiVo化”(TiVoization)が最大の問題であると指摘されていた。

 その後TiVo化に関する問題は曖昧化してきた印象があったものの、様々な制約が設けられた今回のiPhone SDKの登場によって、iPhone用のフリーソフトウェアが自由に作成できないという件はよりいっそう明確な問題として認識されることになった訳である。

Linux.com 原文