ライセンスとは何か、整理してみた

Memorandum of Understanding between Highways Agency and Environment Agency

先日の勉強会でも取り上げた「ライセンスとは何なのか」という話題について整理してみます。オープンソース界隈では、オープンソースライセンスは、契約なのか、そうでないのかという話が、昔からありまして。「契約として厳密に考えないとビジネスでは使えないだろう」という意見もあれば、「そんな細かいことは良いんだヨ。イノベーションだ、新しいことに挑戦することが重要だ」という考える人もいます。

私としては、開発者やコミュニティを尊重して、オープンソースライセンスを遵守するなら、実務上は問題にならないと考えています。ただ、「コミュニティって何それ。うまいの?」という人もいるので、そういう立場の人たちとコミュニケーションを成立させるためにも、「そもそもライセンスとは法律的に何なかの」を整理してみました。

日ごろ見かけるライセンス

あまり気づいていないかもしれませんが、「ライセンス」(License/Lisence)は日常的に存在しています。パソコンを使っていれば、Windowsのライセンスを受けていることになります。このブログを読んでいる人なら、ライセンスといえばオープンソースライセンスのことかも知れません。自動車の運転免許書は、英語でドライバーズライセンス(Driver’s License)といいます。ビジネスの世界では、特許や知的財産の利用許可を「ライセンスを与える」「ライセンスを受ける」といいます。官公庁からの業務認可や鑑札などもライセンスと呼ばれます。「ライセンス」とは、このような認可・許可・免許のことなのです。

では、ライセンスは法律的には、どのような位置付けになるのでしょう。

契約/約款/ライセンス

まず、法律的な基礎知識のおさらいから。オープンソースとかソフトウエア開発に限らず、契約という約束事により、拘束されることがあります。

契約

契約」(Contract)とは、一方の申し出を、他方が承諾することで成立する約束事、と民法では定義しています。「この条件で良いですよね(申込み)」「いいですよ(承諾)」という手続きで成立します。なので、当事者が署名した契約書でも成立しますし、メールや口頭でも成立します。

license_002

申込みと承諾によって成立するので、相手ごとに契約の内容は違っていても構いません。たとえば、売買契約だと、ある人には3000円で売って、別のある人には100円で売ってもいい。だから、契約するときは常に交渉の余地がある。発注元に言われたからと、それを丸ごと飲み込むことはない。また、「契約自由の原則」というのがあって、誰と契約するか、どんな条件で契約するか、どんな方式で契約するか、そもそも契約するか否かなどを自由に選べるとしています(法律などによって規制される場合あり)。

約款

いちいち、不特定多数を相手によって交渉するのは大変な場合は、約款(やっかん)を使います。「約款」(普通取引約款)とは、企業などが、不特定多数の利用者との契約を定型的に処理するためにあらかじめ作成した契約条項のこと。プログラムやWebサービスの利用許諾がこれにあたります。

yakkan_101

契約の一種なので、ちゃんと相手に内容を理解してもらうことが重要です。小さな文字で好き勝手なことを書くとか、ちゃんと説明しないとかアウトになる場合があります。その上で、相手の承諾をちゃんともらう必要があります(重要事項説明 – Wikipedia)。

ライセンス

さて、「ライセンス」(License)は、”それが存在しなければ違法となる行為をすることを許可すること、あるいはその許可を証する書面のことをいう”(Wikipedia)。手続きによっては、契約と解釈できる場合もありますし、承諾がないために契約が成立しないと解釈できる場合もあります。

license_001

運転免許証(Driver’s License)は、契約ではなく、その名のとおりライセンス。

多くのソフトウェアのライセンスでは、インストール時にライセンス条項が表示されて、それに「同意する」ボタンをクリックすることで、インストールが進みます。Webサービスの場合は、会員登録の際に、利用条件が表示されて、それに「同意する」ボタンをクリックすることで、会員登録が進みます。この「同意する」ボタンをクリックするところが契約の承諾にあたるので、これらは単なるライセンスではなく、契約と見なされるといえます。

オープンソースソフトウェアのライセンス

一方で、オープンソースソフトウェアの場合は、ライセンス文書はテキストファイルとして、ソースコードのファイル群に同梱されています。同梱されているだけで、必ず表示される訳ではありません。apt-getなどの自動アップデートの場合は、ファイルの中身を確認する機会がない場合もあります。また、ソースコードの冒頭に、コメント文として、適用するライセンスが記載されている場合もありますし、クライアントサイドのJavascriptの場合は、そもそもソフトウェアが読み込まれたことさえ、ユーザーは意識しないでしょう。

各オープンソースソフトウェアのライセンスを確認するのが、どんなに面倒かは、以下の記事で解説しています。

こんな複雑なものについて、ソフトウェアエンジニアであれば確認するのが当たり前とは思えません。そのために、オープンソースソフトウェアのライセンスは、契約として成立しないのではないか、と言われているのです。

オープンソースのライセンスが契約か否かについて、NECの姉崎氏が下記にて解説しています。

OSSライセンスで条件を指定する権利はどこからくるのか?(1):「OSSライセンス=契約」という誤解を解く – @IT

一方で、先日の勉強会では、弁護士の野島さんは、次のように説明しています。

厳密に申しますと、OSSライセンスは、黙示の合意がある以上契約である、と裁判所によって判断される可能性も十分あり、しかし、そうではない、と解釈される可能性も十分あり、何とも言えないけれど、一つの抗弁として、裁判を闘う上で機能するであろうことは十分に予想される

これは、「エンジニアのための法律勉強会#5」へ行ってきた – ただのにっき(2015-06-24)に対して、勉強会に登壇した野島さんがコメントしたものです。(うーむ、抗弁という言葉は始めて知りました)

さて、ライセンスが契約か否かによって、その効力が変わる場合があります。

・契約であれば、その条項に強制力がある。
・契約でなければ、元になる権利分だけ強制力がある

一般的なソフトウェア利用ライセンスであれば、リバースエンジニアリングの禁止条項の効力が変わってきます。GPLの場合は、改変版の配布条件(コピーレフト)などが、効力が変わってくると考えられます。

実務上の問題

では、こんな些細な点で実務上問題があるのでしょうか。

冒頭でも書きましたが、私は、開発者やコミュニティを尊重して、ライセンスを遵守するなら、実務上は問題にならないと考えています。社会的にも、開発コミュニティの中でも、善良に振舞うことは、健全な関係をためには、とても重要な方針ではないでしょうか。Googleの「Don’t be evil」というスローガンに近いかも知れません。また、オープンソースソフトウェアを使用するだけのユーザーであれば、ライセンスにより制約があるとも考えられません。

とはいえ、コミュニティに理解がない人もいますし、法律違反でないなら、どんどんやるという方針をとる企業もあるでしょう。企業法務の担当者ならではの視点もあるでしょう。

ただただしさんは、「エンジニアのための法律勉強会#5」レポートの中で、

ライセンスを契約ととらえて(つまり不用意に使うととても危険なシロモノとして扱う)、OSSコミュニティへの参加を非常に限定的にしたがる人たちとバトルしたことがあって

というエピソードを紹介しています。

前述の姉崎さんの解説記事でも、

OSSに直接的にかかわらない人の多くは、こうした解説記事を見ると「OSSライセンスは契約だ」と理解してしまっている。加えて、民法になじみのない人ほど、契約というものを「紙にサインする契約書」のイメージで捉え、さらに誤解を増長させているようだ。その誤解に基づいてOSSに対応しようとする企業があるなど、弊害も見られるようになった。

というように、契約という解釈が、オープンソースソフトウェアの利用を阻害している可能性を指摘しています。

まあ、確かに企業法務に関わる人たちからしたら、ソフトウェアエンジニアの開発コミュニティというものは、言葉も通じないし、ビジネスや契約といった話が通じにくい場に見えるかも知れません。そういう人たちがオープンソースライセンスについて情報交換する機会としては、オープンソースライセンス研究所の勉強会とか良いかも知れません。

一方、イノベーティブな取り組みを進めるためには、ライセンスの細かな点にこだわらない方が良い、という立場もあるでしょう。「許可を求めるな。謝罪せよ」というフレーズもあることだし。

という訳で、ライセンスとオープンソースの関係について整理してみました。結局、「ライセンスは契約なのか否か」という点では、グレーとなると思います。一方で、コミュニティとの関係や企業の立場でも、evilでない取り組みというのは、実務上可能でしょう。

皆様のご意見ご感想、お気づきの点があれば、お寄せ頂ければ助かります。