コピーレフトの実像

  「コピーレフト」は、GNUのサイトに「手法」と書いてあるにもかかわらず、世間では「概念」とか「考え方」とかそういう説明ばかり目につきます。
そんな「思想信条のようなものだから」と片付けるのではなく、なぜ、そのような手法を採るのか、一体、どういう手法なのか、本論では確認していきたいと思います。

1. 世間での「コピーレフト」の説明

 世間でのコピーレフトの説明は、下記のように実に様々で捉えどころがないようにみえます。

  1. 「ソースコードを下記条件で提供:・ソースコードを入手可能に、複製・配布・修正を許可する・派生ソフトウェアも同じ条件で提供する
  2. 「著作権に対する考え方で、著作権を保持したまま、二次的著作物も含めて、すべての者が著作物を利用・再配布・改変できなければならないという考え方である」
  3. 「これは著作権を保持しつつ、再頒布や改変の自由を利用者に与え続けなければならない、というものです」
  4. 『「GNUプロジェクト」の著作権に関する根本思想で、一度公開されたソフトウェアは、誰もが利用・改変・再配布できるという考え方である。FSFの創設者であるリチャード・ストールマンによって提供された』
  5. 「ソフトウェアなどの著作物の作者が、自身の著作権を保持したまま、その著作物の自由な利用/配布/改変を公衆に対して許諾し、著作物を自由(フリー)に流通させることを可能にするため、FSFによって考案されたソフトウェアライセンス概念
  6. 「著作者が著作物に対する権利(著作権)を保有したまま、著作物の配布条件として、利⽤者に著作物を複写・改変・再配布する⾃由を与える⼀⽅で、複写・改変・再配布された派⽣物(⼆次的著作物)の配布者に対しても、全く同じ条件で派⽣物を配布することを義務付けるといった考えである。この「コピーレフト」の概念は、著作物が配布され続ける限り、制限なく適⽤され続けるといった特徴をもつ」
  7. 『「著作者が著作物に対する権利(著作権)を保有したまま著作物の配布条件として、利用者に著作物を複写・改変・再配布する自由を与える」という考え方です』(上記の前半部分?)

 これらを見て、「コピーレフトの実態は何なのだろうか」と疑問を持ちませんか?
条件」なのだろうか?「考え(方)」なのだろうか?「概念」は「考え(方)」という意味で使っているのだろうか?
 何を意図してそのような表現をしているのか不明瞭で、OSSライセンスの理解のミスリードとなりかねない状況です。

2.「コピーレフト」の言葉はどこから出てきたのか

 「コピーレフト」の概念は、「リチャード・ストールマン氏から提供された」(上記4.)どころか、「提唱した」という表現もあります。
しかし、この言葉の生みの親はリチャード・ストールマン氏ではありません。

自由としてのフリー(2.0)リチャード・ストールマンと自由ソフトウェア革命 第九章 GPLには以下のような経緯が書かれています。(緑の下線は筆者)

ドン・ホプキンス(Don Hopkins)というカリフォルニアのハッカーが、(中略)地元のSF大会で入手したステッカーをたくさん貼って返信封筒を飾っていた。そのステッカーの一枚が、ストールマンの目にとまった。そこには、 "Copyleft (L), All Rights Reversed" とあった。 ストールマンはステッカーにヒントを得て、GNU Emacs ライセンスで(そして後に GPL で)使われた法的テクニックに「コピーレフト」という愛称をつけた。ユーモラスな、丸に逆向きの C がそのシンボルだ。 時とともに、その愛称は、「あるプログラムを自由ソフトウェアにし、そのプログラムを修正・拡張した版も同じように自由ソフトウェアにすることを要求する」著作権ライセンスの手法全般を表現する自由ソフトウェア財団の専門用語になった。

自由としてのフリー(2.0)リチャード・ストールマンと自由ソフトウェア革命 第九章 GPL

つまり、「コピーレフト」は、SF大会で配布されたステッカーを作製したたSFマニアの誰かが生み出したジョークのようなものなのです。
ストールマン氏がその言葉を気に入って、
作成済みのGNU Emacs ライセンスで(そして後にGPLで)使われた法的テクニックに「コピーレフト」という愛称をつけたわけです。

 コピーレフトという概念が提唱されて、GPLなどのライセンスが作成されたわけではなく、
既存のライセンスの手法の愛称として、後から付けた経緯に留意していただきたいと思います。
「コピーレフト」という愛称を概念として過剰に重要視するのではなく、その手法が何か、が大事ではないでしょうか。

 このような実態が把握されていないキーワードを使って、OSSライセンスを説明をすると混乱が増すだけです。
 例えば、前節6.では、『「コピーレフト」の概念のライセンスへの適⽤状況に応じて、OSSライセンスは、①コピーレフト型ライセンス、②準コピーレフト型ライセンス、③⾮コピーレフト型ライセンス、の3つのカテゴリ(類型)に分類される。』としており、上記3.や7.でも同じようにOSSライセンスの類型を紹介しています。

 『「コピーレフト」の概念のライセンスへの適⽤状況に応じて』と書いてありますが、
第三者が適用状況を判別し分類できるような基準が存在するわけではありません

基準に基づいて分類しているかのように書いてあるだけです。
 それ以前からある「類型」つまり、GPL、LGPL/MPLやBSDライセンスに似たライセンスで分けるという方が余計なキーワードで混乱しないのではないでしょうか。
こちらの方が私には誠実に思えます。

なお、従来の類型は、LGPLとMPLを同じ類型に入れて、3つの類型に分類しています。
しかし、LGPLにはMPLにはない条件があり、企業製プログラムにはその有無の差が大きいので、これを分けてGPL、LGPL、MPL、BSDの4つのタイプに分けて私はセミナーなどで説明しています。

3. 「コピーレフト」の手法とは

 最初に紹介した7つの「コピーレフト」の説明のうち、私が出典を判明できたのは、最初の二つです。1.は可知氏に回答いただきました。2.はウィキペディアにリンクがあります。ともに、GNUサイトにある「コピーレフトって何?」が出典になります。

そこには、以下のようにかかれています。

コピーレフト(Copyleft)とは、プログラム(もしくはその他の著作物)を自由(自由の意味において。「無償」ではなく)とし、加えてそのプログラムの改変ないし拡張されたバージョンもすべて自由であることを要求するための、一般的な手法の一つです。

コピーレフトって何?

「手法」(method)と書かれています。
「コピーレフト」を「概念」と言いつつも、「考え方」や「思想信条」かのように語る人が多いのですが、GNUの説明では「コピーレフト」は「手法」です。

※「手法」をなぜ「考え方」や「思想信条」のように語るのかは不可解です。また、組込み系のイベントでBSD系の人がセミナーで「GPLは宗教だから信じるしかない」と語ったことがありました。なにか、私には、自分が理解できないものを、怪しげなものかのように位置付けて片付けよう(誤魔化そう)としているような印象を受けます。

それでは、「コピーレフト」は、どんな手法なのか、みていきましょう。

3-1. コピーレフト条項を指定する手法なのか

 前述の「コピーレフト」のIPAの説明6.に「複写・改変・再配布された派⽣物(⼆次的著作物)の配布者に対しても、全く同じ条件で派⽣物を配布することを義務付ける」とありました。
そして、そういう条項があるライセンスがコピーレフトという説明を見かけることがあります。他の説明もそれに近いものがあります。
つまり、「全く同じ条件で派⽣物を配布することを義務付ける」条項を「コピーレフト条項」という人もいます。
しかし、そんな条項は、GPLの条文を探しても存在しません。
Linuxカーネルで使われているGPLv2の条文を見てみると、それらしい文言は、第2条b)にしかありません。

 2. あなたは自分の『プログラム』の複製物かその一部を改変して『プログラム』を基にした著作物を形成し、そのような改変点や著作物を上記第1条の定める条件の下で複製または頒布することができる。ただし、そのためには以下の条件すべてを満たしていなければならない:

a) あなたがそれらのファイルを変更したということと変更した日時が良く分かるよう、改変されたファイルに告示しなければならない。
b) 『プログラム』またはその一部を含む著作物、あるいは『プログラム』かその一部から派生した著作物を頒布あるいは発表する場合には、その全体をこの許諾書の条件に従って第三者へ無償で利用許諾しなければならない。

GPLv2 ※「第1項」→「第1条」、「契約書」→「許諾書」に変更して引用しています

 GPLv2は、第1条でソースコード形式で受け取った通りの形で再頒布する際の条件が記載されており、第2条では、改変したソースコード形式で再頒布する際の条件が記載されています。第3条では、バイナリ形式で再頒布する際の条件が記載されています。
 コピーレフト条項が第2条b)にしかないということは、ソースコード形式を改変し、それを含む著作物全体を頒布する際、もしくは、それのバイナリ形式で頒布する際にしか条件付けがないことになります。
そうすると、改変しない場合や自分自身の改変だけでそれを含む著作物の一部として頒布するのではない場合は、コピーレフト条項が無い・効かないことになります。それでは、ライセンス条件として、あまりにもチグハグです。
妥協的にはいえ、コピーレフトのライセンスとしているLGPLには、コピーレフト条項と呼べる記述自体存在しません。

つまり、コピーレフト条項があるライセンスがコピーレフトのライセンスという説明は、明らかに破綻しています。

そもそも、「全く同じ条件で派⽣物を配布することを義務付ける」必要があると、考えること自体がおかしいのです。
元著作者が著作物であるプログラムに再頒布の許諾条件として指定したライセンスは、受領者が改変の有無に関わらず再頒布する際に変えることはできません。GPLに限らず、BSDライセンスであろうと変えることはできません。

※「BSDライセンスやApacheライセンスは、商用ライセンスに変更できるでしょう。そういう製品は多いし。」という人がいるかもしれません。
 このケースは、BSDライセンスやApacheライセンスの条件を満たしたうえで、商用ライセンスを被せているだけです。
 GPLでも条件を満たしたうえで、商用ライセンスを被せることは可能です。しかし、通常の商用ライセンスはリバースエンジニアリングの禁止などGPLの条件を満たせない内容があり、これを変更したうえでの商用ライセンスでなければなりません。サブスクリプションモデルではない商用ライセンスのLinuxディストリビューションが店頭販売してもGPL違反にならなかったのはそのためです。GPL自身に有償で販売してはならないという条件があるわけではないですからGPL違反ではありません。
 もし、(4条項)BSDライセンスやApacheライセンスのOSSが 再頒布の際に他のライセンスに変更できるならば、GPLv2に変更することも可能であり、GPLv2との両立性の問題(ライセンスが矛盾する問題)が発生するわけがありません。少なくともGNUはそう考えているわけです。

もちろん、著作者が変えることができるとして頒布したものでなければです。著作者が許していれば問題ありません。

再頒布の条件を「変えることはできない」根拠はあります。
再頒布(日本では、複製権の行使)は、著作者の専有する権利と以下のように著作権法で規定されているからです。

著作者は、その著作物を複製する権利を専有する。

日本国著作権法 第二十一条

著作権のある著作物に対する排他的権利 …本編に基づき著作権を保有する者は、以下…排他的権利を有する。 (1) 著作権のある著作物をコピーまたはレコードに複製すること。

米国著作権法 第106条

MySQLは、商用ライセンスでも頒布され、GPLで頒布もされているので、「デュアルライセンス」と呼ばれています。
そういう他のライセンスを頒布ごとに変えることができるのも著作者だからです。受領者にはその権利はありません。

受領者が「プログラムを素晴らしいものに改造したのは私だぁ!」と言って自分の許諾条件のライセンスに無断で変えれば、元著作者の著作権を侵害します。

「ライセンス」を「ライセンス契約」としか捉えられない人、著作権を理解していない人は、この事実に思い至らないようなので注意が必要です。

したがって、「コピーレフト」の手法とは、コピーレフト条項をライセンス条文に指定することではありません。

3-2. 自由であることを要求するための手法

 節の最初で紹介した「コピーレフトって何?」の冒頭に記載されている「自由であることを要求するための手法」とはどういうことなのか。
 
 まず、言葉の由来に触れてみます。ストールマン氏がこの言葉を気に入ったのは、以下の文章からわかります。

プロプライエタリなソフトウェア開発者たちは、利用者の自由を奪うために著作権を使います。わたしたちは、利用者の自由を保証するために著作権を使います。これが、名前を逆に、つまり、著作権(「コピーライト」)を「コピーレフト」に変えた理由です。

コピーレフトは、プログラムの著作権を使う一つの方法です。著作権を放棄することを意味しません。実際、そうするとコピーレフトは不可能になってしまいます。「コピーレフト」の「レフト」は、動詞“to leave”を指す言葉ではなく、「ライト」の鏡像の方向を指すだけの言葉です。

コピーレフトって何?

 商用ライセンスを購入しなければ使用することもできないプロプライエタリなソフトウェアに比べれば、自由に入手し再頒布可能なFreeBSDも著作権の逆の方向の使い方なので、これもコピーレフトと呼んでもおかしくないと思うのですが、GNUはそう呼びません。
FreeBSDのライセンス(FreeBSD Copyrightと呼ばれる)つまり修正BSDライセンスについては、「ゆるい寛容なコピーレフトでない自由ソフトウェアライセンスであり、GNU GPLと両立します。」と解説しています。
この「自由」について、少し確認してみましょう。

3-2-1. GNUの言う「自由」とは

 ストールマン氏が保証したい利用者の自由とは、下記の自由ソフトウェアの4つの自由であることに異論はないかと思います。

四つの基本的な自由
あるプログラムが自由ソフトウェアであるとは、そのプログラムの利用者が、以下の四つの必須の自由を有するときです:
・どんな目的に対しても、プログラムを望むままに実行する自由 (第零の自由)。
・プログラムがどのように動作しているか研究し、必要に応じて改造する自由 (第一の自由)。ソースコードへのアクセスは、この前提条件となります。
・身近な人を助けられるよう、コピーを再配布する自由 (第二の自由)。
・改変した版を他に配布する自由 (第三の自由)。これにより、変更がコミュニティ全体にとって利益となる機会を提供できます。ソースコードへのアクセスは、この前提条件となります。

自由ソフトウェア

 FreeBSDプロジェクトが公開しているプログラムは、この4つの自由をすべて有しています。

  • 商用ライセンスのようにシュリンクラップなどの契約行為なしに実行できます。→第零の自由があります。
  • ソース公開されていて改造可能です。→第一の自由があります。
  • FreeBSD Copyrightで示す条件を満たすことにより再頒布が許諾されています。→第二第三の自由があります。

つまり、FreeBSDは自由ソフトウェアですから、GNUもFreeBSDのライセンスを自由ソフトウェアライセンスと呼んでいるのです。
では、自由ソフトウェアライセンスであるが、コピーレフトではないとはどういうことなのか、を見ていきましょう。

3-2-2. 自由ソフトウェアライセンスであるBSDライセンスの不都合

 ストールマン氏が、コピーレフトの手法を思いついたきっかけは、
自由ソフトウェアライセンスであるBSD系のライセンスで以下のような不都合を感じたからと推測します。
GosmacsがBSDライセンスかどうか不明ですが似たライセンスだと仮定してお話します。
前出の『自由としてのフリー(2.0)』の第七章 截然とした道徳的選択 の後半に記載されているGosmacsのエピソードで
その不都合を知ることができます。下図にそのイメージを示す。

BSDライセンスでできなくなること

図中上の段、(GosmacsがBSDライセンスだとして)OSS開発者としてジェームス・ゴスリング氏がGosmacsを開発し公開していました。
それに対して、リチャード・ストールマン氏は、不完全な機能、具体的には非力なMocklispを差し替えて、本物のLISPが使えるEmacs(便利なプログラム)を許諾を得て再頒布していました。
図中下の段、しかし、元著作者(の一人?)のジェームス・ゴスリング氏がユニプレス社にGosmacsの著作権を売却すると、
ユニプレス社はストールマン氏の本物のLISPが使えるEmacsを欲し、再頒布を禁止してきたそうです。
少なくとも、Gosmacsの製品化されたもののソースコードは入手できなくなりました。
その結果、利用者は不便なプログラムを我慢しなければならなくなりました。
つまり、いくら不便なプログラムを修正する能力があっても、ソースコードがなければ、改善ができない、という事態を経験したわけです。

つまり、自由ソフトウェアでも、再頒布されるプログラムは自由ソフトウェアではなくなることがあります。
(逆に立場から言えば、BSDライセンスは商用ソフトウェアにする(自由ソフトウェアでなくす)自由があるといえます)
ソースコードが入手できなければ、改変の第一の自由が損なわれるわけです。
これが、ストールマン氏がBSDライセンスなど従来のライセンスに感じた不都合です。

3-2-3. コピーレフト

 自由ソフトウェアでも、再頒布されるプログラムは自由ソフトウェアではなくなる問題を解決するために、再頒布の際の従来のBSDライセンス条件にソースコードの開示の条件を加えれば、再頒布されるプログラムも自由ソフトウェアになることにストールマン氏は気が付いたのです。
このことを前出の『自由としてのフリー(2.0)』の第九章 GPLには以下のように書かれています。

しかし、ストールマンは、GNUプロジェクトに到るまでの時期に、著作権は、著作権がカバーする一定の活動について寛大な許可を与えることができ、著作権に条件を置くこともできることに気付いた。「著作権表示付きの電子メールのメッセージに、ライセンスとして『そのままのコピーを許可する』としたものがあったんですが」とストールマンは回想する。「それでひらめいたんです。」これらのライセンスは、ライセンスの条件を除去しないこと、としていた。ここからストールマンのアイデアまで、あと数歩だった。たとえば、許諾条件は、ユーザーが修正版でさえ再配布することができ、かつ、それらは同じ許諾条件を持つようにすること、とすることが可能だった。
かくして、ストールマンは、著作権の利用は必ずしも反倫理的ではないと結論づけた。ソフトウェア著作権の駄目な点は、ユーザーに不可欠な自由を認めない著作権の典型的利用方法と利用法の設計にあったのだ。ほとんどの著作者は著作権を使う別の方法を想像することができなかった。しかし、著作権は別のやり方で使えた。それは、プログラムを自由にして、それが自由であり続けることを保証する利用方法だった。

『自由としてのフリー(2.0)』の第九章 GPL

ここで、「それが自由であり続けることを保証する利用方法」と言っているのであって、最初の「コピーレフト」のIPAの説明の6.にあるような「全く同じ条件で派⽣物を配布することを義務付け」ではないのです。
つまり、単に一律に条件を付けることではなく、改変の自由が保てるように、バイナリ形式の頒布の際にはソースコードの添付または提供する旨の申し出を添えることを条件にすることです。
そのような条件付けをしたライセンスで元著作者が再頒布を許諾すれば、著作権法により、他の条件に変更することはできないのですから、「自由であり続けることを保証する」ことができるというわけです。

これが「コピーレフト」と呼ばれる手法の実像です。

4. より適切な表現

 以上の「コピーレフト」の実像を踏まえると、最初に紹介した「コピーレフト」の7つの説明は、以下のように言い換えると、より適切な表現になるのではないでしょうか。

  1. ソースコードを下記条件で提供:・ソースコードを入手可能に、複製・配布・修正を許可する・派生ソフトウェアも同じ条件で提供する

    派生ソフトウェアも自由ソフトウェアになるように、ソースコード開示を条件に加えて、複製・頒布・修正を許可する
  2. 著作権に対する考え方で、著作権を保持したまま、二次的著作物も含めて、すべての者が著作物を利用・再配布・改変できなければならないという考え方である。

    二次的著作物も、すべての者が著作物を利用・再頒布・改変できるように著作権行使の条件を付ける手法である。
  3. これは著作権を保持しつつ、再頒布や改変の自由を利用者に与え続けなければならない、というものです。

    これは、再頒布や改変の自由を利用者に与え続けられるように条件を付ける著作権行使の手法です。
  4. 「GNUプロジェクト」の著作権に関する根本思想で、一度公開されたソフトウェアは、誰もが利用・改変・再配布できるという考え方である。FSFの創設者であるリチャード・ストールマンによって提供された。

    プログラム(もしくはその他の著作物)を自由(自由の意味において。「無償」ではなく)とし、加えてそのプログラムの改変ないし拡張されたバージョンもすべて自由であることを要求するための、手法である。FSFの創設者であるリチャード・ストールマンのアイディアであり、のちに愛称として名付けられた。
  5. ソフトウェアなどの著作物の作者が、自身の著作権を保持したまま、その著作物の自由な利用/配布/改変を公衆に対して許諾し、著作物を自由(フリー)に流通させることを可能にするため、FSFによって考案されたソフトウェアライセンス概念。

    ソフトウェアなどの著作物の作者が、その著作物の自由な利用/頒布/改変を公衆に対して許諾し、著作物を自由ソフトウェアとして流通させることを可能にするため、FSFによって考案された著作権ライセンスの手法。
  6. 著作者が著作物に対する権利(著作権)を保有したまま、著作物の配布条件として、利⽤者に著作物を複写・改変・再配布する⾃由を与える⼀⽅で、複写・改変・再配布された派⽣物(⼆次的著作物)の配布者に対しても、全く同じ条件で派⽣物を配布することを義務付けるといった考えである。この「コピーレフト」の概念は、著作物が配布され続ける限り、制限なく適⽤され続けるといった特徴をもつ。

    著作者が自由ソフトウェアを頒布する際、複写・改変・再頒布されるソフトウェアも自由ソフトウェアとなるように、ソースコードの開示を再頒布条件に加える手法である。この「コピーレフト」の手法を採ることにより、著作権法上、著作物が頒布され続ける限り、元著作者の権利として条件つけされ続ける。
  7. 「著作者が著作物に対する権利(著作権)を保有したまま著作物の配布条件として、利用者に著作物を複写・改変・再配布する自由を与える」という考え方です。

    著作者が自由ソフトウェアを頒布する際、複写・改変・再頒布されるソフトウェアも自由ソフトウェアとなるように条件付ける手法のことです。

5. まとめ

 本論では、「コピーレフト」は「概念」「考え方」など思想信条のようなものではなく、再頒布されるプログラムも自由ソフトウェアとなるように、再頒布の際の条件にソース開示の条件を加えるという著作権行使の「手法」であることを確認しました。
 開発したプログラムを従来の商用ソフトウェアにするか、自由ソフトウェアにするかは、著作者の「概念」「考え方」などの思想信条かもしれません。
しかし、それを実現するために「コピーレフト」の手法で条件付けられた再頒布の際の条件は、著作権法によって保証される著作権に基づいています。
著作権法のある国に住む国民は、その法律を遵守する必要があります。
契約ではないから守らなくてもよいというわけにはいきまません。

 リチャード・ストールマン氏は、『コピーレフト:実際的な理想主義』で以下のように述べています。

自由ソフトウェアに関するわたしの仕事の動機となっているのは、自由と協力を広めるという理想主義的な目標です。
(中略)
もしあなたが何かをこの世界で達成したいならば、理想主義だけでは十分ではありません。
あなたが目標を達成するには、そのために使える手段を選ぶ必要があります。

コピーレフト:実際的な理想主義

つまり、再頒布されるプログラムも自由ソフトウェアであり続けることを達成したいならば、自由であるべきだとする考えだけでは十分ではありません。目標を達成するために、元著作者が持つ著作権の行使の条件を指定する手段を選び、ソースコードの開示を再頒布の条件とすることによって実現します。
この「手法」を「コピーレフト」と呼んでいるのです。

結局、最初に紹介した各コピーレフトの説明は、自由であるべきとする理想主義と、それを達成するために使う手段の手法「コピーレフト」を区別できていないわけです。
その状態で「コピーレフト」をキーワードにOSSライセンスを分類し語っていては、OSS(自由ソフトウェア)を扱う人々をミスリードしてしまうことを危惧しています。

本論により、そのようなミスリードをする人が少しでも減ってくれることを願っています。

2018.9.18 姉崎章博