問題点:守秘義務契約
適用するライセンスの選択肢を制限しているのは、コード署名の問題だけではない。それは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用アプリケーションで何を行うかという側面での制限も存在している。つまりこれまでに検討した制限はいずれも、その機能とは無関係に、すべてのアプリケーションに関係するものなのである。