これならわかるOSSライセンス その10

江端コンサルタント   長年OSS業務に携わり続けてきた、OSSマーケティングのスペシャリスト。

<得意分野>
行政書士の資格を所有し、IPA国際標準化センターリーガルワーキンググループ主査としても活躍。
OSSライセンスに非常に詳しく、OSSを取り扱う各社からのコンサルティング依頼が殺到中のスペシャリスト。

<主な活動>
・OSSライセンス&コンプライアンストレーニング
・OSS組込みコンサルタンティング
・OSS関連コラム提供

行政書士/コンサルタント
エムキューブ・プラスハート株式会社
(IPA国際標準化センター主査リーガルワーキンググループ 主査) 江端 俊昭


OSSを利用するうえで、ライセンスの理解が難しいのが、モジュールにおける派生の考え方です。

そこで、まず、ソフトウェアを開発するときの原点に立ち返って考えてみましょう。

ある機能を実現するために、プログラムを開発しますが、まずソースコードファイルを生成します。
機能がシンプルであれば、一つのソースコードファイルをコンパイルし実行イメージが生成し、これを実行します。

では、プログラムを書く際、同じか同じように処理できる部分があったらどうするでしょうか?
あるいは、異なる機能が存在した場合はどうでしょうか?

こういった場合、開発者の誰でもそうですが、趣味や学習用のプログラムでなければ、
当然、ある部分に変更が生じたときやテストを行うときの「容易性」や、
同時にそのプログラムの「再利用性」も考慮するでしょう。
これがモジュール分割の一般的な方法としての「機能分割」の行動になっていくわけです。

機能分割は、機能としての「独立性」に着目して分割を行っていきます。
従って、分割された機能要素は開発時における「相互作用」が小さくなっているでしょうから、
結果、別々に開発することを可能にします。

この時、一人の開発者(一つの開発会社)ではなく、二名以上の開発者(二社以上の開発会社)が、
分割されたモジュールそれぞれを開発した場合、著作権上の権利関係はどうなるでしょうか?

例えば、”X”というソフトウェアシステムを構築する過程において、機能分割を行なった結果、
(A)(B)(C)3つのモジュールに分けられ、それぞれの開発を「A」「B」「C」3名の開発者が
行ったとしましょう。

プログラムの著作権法上の定義は、
「電子計算機を機能させて一の結果を得ることができるように
これに対する指令を組み合わせたものとして表現したものをいう」
(第2条第1項 第10号の2)となります。

条文上にある「一の結果」とは、処理による機能実現と認識されていますので、
当然機能要素として分割されたモジュールも一つプログラムであり、それが創作性を有するものであれば
著作物と認められ、開発者それぞれが当該モジュールの著作権者として権利を行使することができます。

つまり、モジュール(A)の著作権者は「A」、
モジュール(B)(C)の著作権者は同じく「B」「C」となります。

他方、一の機能を得るためには、電子計算機を機能させなければならないとされているので、
それぞれのモジュールをコンパイルし、オブジェクトコードファイル(a)(b)(c)を生成したとします。

オブジェクトコードはソースコードの複製にあたると解釈されていますから、
(a)(b)(c)の著作権者もそれぞれ「A」「B」「C」と言えそうです。

では、このオブジェクトコードファイルから実行イメージファイルを
生成した場合、権利関係はどうなるのでしょうか?

実行イメージを生成する場合に使用されるリンカーはオブジェクトファイルを解析し、
参照している他のオブジェクトファイルやライブラリなどを探し出し、必要なものを結合して
実行イメージファイルを生成します。

リンクの方式には、実行イメージファイル(例えば<X>とする)に対してすべてのモジュールを結合する静的リンクがあります。

また、実行イメージファイルとして<A><B><C>を生成し、例えば<A>の実行時に
他の実行イメージファイル<B><C>をメモリ上に呼び出す動的リンクがあります。

おそらく読者の大半は、静的リンクの場合は一つの実行イメージファイルにまとまっているが、
動的リンクの場合は<A><B><C>は独立しているので著作権法上の権利関係も異なると
考えていらっしゃるのではないでしょうか?

でも、ちょっと待ってください。

静的リンクの場合でもオブジェクトファイルである(a)の中に他の(b)(c)のオブジェクトが
含まれているのではなく、相互の参照(依存)関係の上に一つの実行イメージファイル<X>が
生成されているのであって、(a)(b)(c)は<X>の実行イメージにおいて
不可欠な構成要素という位置付けとなります。

一方、実行イメージファイルとして生成された<A><B><C>についても、確かにファイルとしての独立性はあっても、
オブジェクトファイル(a)(b)(c)相互の参照(依存)関係は静的リンクのそれと何ら変わらず、
(a)(b)(c)は<A><B><C>による一連の実行イメージにおいて不可欠な構成要素という位置付けであることには
変わりはありません。

このことから、<X>はもちろん<A><B><C>の実行イメージも、(a)(b)(c)からみた場合、
(a)の(b)のそして(c)の派生物と位置付けられ、結果、著作権者「A」「B」「C」は、
<X>、<A><B><C>いずれに対しても権利を行使できるのです。

つまり、リンクという結合方式が、
あくまでもプログラムがメモリ上で実行される際のアドレス割付けのメカニズムである以上、
静的か動的かという形式の違いは、あくまでもアドレス形成のタイミングという技術的な違いに過ぎず、
その違いによって、著作権法上の権利関係までが異なることにはならないのです。

次回は、権利関係の考え方とそれに伴うモジュール取扱いについて触れていきます。