今回、GPLのソースコードを利用させていただこうと思い、全く理解していないのでどういうものなのか調べていきます。
今回主として参考にしたものは。
ウィキペディアのGPL記事
https://ja.wikipedia.org/wiki/GNU_General_Public_License
GPLv3クイックガイド
https://www.gnu.org/licenses/quick-guide-gplv3.ja.html
また、実際に利用する際には次のページで検索するのがよさそうです。
GNUライセンスに関してよく聞かれる質問
https://www.gnu.org/licenses/gpl-faq.ja.html
Contents
概要
GNU General Public License(GPL)とは、GNUプロジェクトの為にリチャード・ストールマンにより作成されたフリーソフトウェアライセンスです。
フリーソフトウェア財団(Free Software Foundation)により公開・管理されています。
ライセンスとは、使用許諾条件のことであり、権利者(Licenser)が利用者(Licensee)に対してある条件の下で利用を認めること。逆に言えば条件を満たさなければ使えませんよーという宣言です。
今回取り上げるGPL以外のオープンソースソフトウェアで使われている主要なライセンスとしては、BSD、MIT、OSD、Apache、CCライセンスなどがあります。

GPLの特徴
ではGPLの特徴はどのようなものでしょうか。
GPLはすべてのユーザーが自由にコードを利用できることを意図して作られたライセンスです。
自由ソフトウェアであること。つまりプログラムの利用者は以下の4つの自由があります。
- ソフトウェアの利用
- ソフトウェアを分析し、変更すること
- 複製物を再頒布すること
- 改良をリリースすること
次に、コピーレフトであります。
つまり、プログラム利用者は上の4つの自由を有しますが、それは自分が改良したソフトウェアを公開するときにも同じライセンスでなければならないということです。
GPLライセンスのソフトウェアを改変したものもまたGPLライセンスになります。
例えば、企業が商業目的でオープンソースソフトウェアを利用しようとしたときにGPLが紛れ込んでいると、制作したソフトウェア全体のソースコードの開示をしなければならなくなってしまいます。たった一つGPLのソースコードがあるだけですべてに波及してしまうことを、揶揄してGPL汚染と言われることもあるようです。
一方で、GPLのライセンス条文自体はGPLで配布されているわけではなく。条文の改変などは許可されていません。条文が改変されてしまうと、わけがわからなくなりますから当然のことかもしれません。
GPLの仕様
現時点(2020.03.21)ではバージョン3が最新版となっております。
GPLv3の原文はこちらにあります。
https://www.gnu.org/licenses/gpl-3.0.txt
オープンソースグループジャパンが運営しているwikiで、八田真行さんによる日本語訳が非公式で公開されています。
https://ja.osdn.net/projects/opensource/wiki/licenses%2FGNU_General_Public_License_version_3.0
IPA(情報処理推進機構)による逐条解説書も公開されています。(こちらは、CCライセンス表示 – 非営利 – 改変禁止 2.1 日本)
https://www.ipa.go.jp/osc/license1.html
GNUライセンスを使う方法
https://www.gnu.org/licenses/gpl-howto.html
著作権表示をして。そのすぐ後ろにコピー許可の文章を置くということですね。
FSFの他のライセンス
次のページにはGNUライセンスを含め様々なライセンスがまとめられています。
https://www.gnu.org/licenses/licenses.html
ソフトウェアの種類や、目的に応じて派生した別のライセンスを適応した方がいいかもしれません。
GNU Lesser General Public License(GNU LGPL)
これはGPLから派生した。ライブラリ等への適用を意図したもの。
実行時に動的リンクを行う場合はコピーレフトの義務を免除している。ただし、リバースエンジニアリングを禁じてはならない。
1991年にGPL2.0とともにLibrary GPL2.0として公開されています。そのため、バージョン1.xは存在しないようです。しかし、適用がライブラリに限定されないこと、またGPLとの関係性を明示するため正式名称はLesser GPLへ変更されました。
他にも、Affero条項を加えた、GNU Affero General Public License v3(GNU AGPLv3)や、ソフトウェアではなく文書ライセンスであるGNU Free Documentation License(GNU FDL)などがあるようです。
ライセンスの互換性
これだけたくさんのライセンスがあると、同じように自由なソフトウェアを志したライセンス同士で矛盾してしまうことがあります。
GPLではない別のライセンスのソフトウェアを組み合わせることができない場合があります。基本的にはGPLv3より条件の緩いパーミッシブなライセンスやコピーライト性の弱いライセンスとは一緒に使えるということみたいです。

このページには様々なライセンスがGPLと両立するかについて概説してあります。実際に違うライセンスを3つ以上組み合わせることになったら、もう訳が分からなくなりそうですね...。
https://www.gnu.org/licenses/license-list.html
GPLライセンスの傑出したフリーソフトウェア
沢山あるみたいですが代表的なものを。
- Linuxカーネル
- GNUコンパイラコレクション(GCC)
- wordpress
- Firefoxブラウザ
GPLの意義
GPLにはソフトウェアは自由であるべきだという理想があります。
ソフトウェア開発が商業的に重要な地位を占める前は、プログラマー同士で互いのソースコードを利用しあったりと、協力することが自然な文化があったようです。
しかしソフトウェアの商業利用が進んだ結果、著作権によりプログラムにも利用を独占する権利が与えられました。
そうなると、ソフトウェアの原作者はコミュニティーの為に無償でオープンなものとして提供しているのに、それを改変してプロプライエタリな(専有的)ソフトとして販売されてしまうということが起きるようになってしまいます。
そういったコミュニティに還元しないのにただ搾取するだけの行為を防ぐためにコピーレフトという概念が生まれました。
自由なソフトウェアを改変したソフトウェアも自由でなければならないという条件には、ソフトウェアが自由であり続けコミュニティに貢献したいという願いも込められています。
自由ソフトウェア
参考資料としては
https://www.gnu.org/philosophy/free-sw.html
です。
無料で使えるという意味のfreeではなく、倫理的で自由であるといういみのフリーソフトウェアということですね。混同を避けるためLibreという言葉が選ばれることもあるようです。
また自由ソフトウェアのライセンスにも、コピーレフトなもの、コピーレフトでないものなど種類は様々です。
オープンソフトウェアとの違いについては、上の資料で熱く語られていますが、触れるとあまりにも長くなってしまいそうなので今回はスルーです(笑)
GNUプロジェクト、Linuxとかそこらへんも含めて、また今度調べなおしてみたいところです!
GPLの歴史
誕生の契機
ストールマンのLisp経験とGNU Emacs開発
当時、ストールマンはMITの人工知能研究所で働いていた。AI研ではTECOというラインエディタを使っていたが、TECOを改良してEmacsを作成した。ゴスリンはGosMacsというEmacsのバージョンを作っていて、当初はフリーソフトウェアの意思を持っていたが、途中でそれをプロプライエタリにしてしまい売却してしまった。
また、Lispオペレーティングシステムを搭載したマシンを作ろうという機運になったときの事。当初グリーンブラットがAI研の分化を保持しつつ会社を創設しようとします。グループの人はグリーブラットはビジネス向きではないだろうと思っていたので、会社がうまくいくか懐疑的でした。
そこで、グリーンブラットはビジネスの才能があるラッセル・ノフトスカを採用します。
しかし、ラッセルはグリーンブラットを見捨てて別会社を作ろうとグループに呼びかけ、シンボリックスという会社を、外部資金を受けて創設しました。
たがグリーンブラットも諦めることなくリスプ・マシン社(LMI)を開始し、なんと成功します。どちらもビジネスとしても成功したのですが、シンボリックスはLMIをつぶそうと画策し始めます。
AI研で働くハッカーを排除してしまい、MIT側に圧力をかけることで、MITの開発成果がLMIに反映されないようにします。
ストールマンはLMIの為に陰ながら開発を支援することでLMIは存続できました。
こういった経験があったため、もともとあった自由なソフトウェア文化だけでは、権利を専有しユーザーを支配しようという輩に自由な文化が負けてしまうと考えました。
GPLv1
1989年2月、リチャード・ストールマンがGPLを作成。目的はGNUプロジェクトのソフトウェアの配布。
GNU Emacs、GNUデバッガ等個別のソフトウェアに作られていたライセンスをベースとしし、多くのプロジェクトがコードを共有できるような、汎用的なライセンスを意図して制作されました。
GPLv1の特徴。
- 機械可読可能なソースコードを利用できるようにする必要性がある。→再配布者が実行ファイルのみを公開し、現実的にソースコードの利用の自由が妨げられることを防ぐ。
- 再配布物は全体としてGPLv1を適用しなければならない。→ライセンスに追加の制限を加えることでGPLv1が侵害されることを防ぐ。
GPLv2
1991年6月、バージョン2をリリース。
バージョン2での大きな変更点は、GPLのもと配布できなければ、配布は一切できないということ。特許を行使して、フリーソフトウェア開発者から金を脅し取ろうとする企業を減らすことをもくろむ。
また、ライブラリに関しては制限の緩いライセンスの方が戦略的に有効であることが明らかになってきた。そのため、GPLと相補的なものとしてLGPLが同時に導入される。
GPLv3
2007年6月、バージョン3がFSFにより発表される。
GPLライセンスの次のような抜け道を防ぐための内容を追加。
- Tivoization:GPLのソフトウェアの改変は可能だが、改変するとソフトウェアが実行できないようにハードウェアを制作すること。
- デジタル制限管理(DRM):制限を破るようなソフトウェアを書いたり共有することを禁じること
- 差別的な特許取引:GPLに敵対する武器として特許を差別的に利用すること。
このGPLv3に加えて、SaaSのようなASPモデルによってGPLを回避しようとする試みを封じるための条項が追加されたGNU AGPLv3も作成された。
Next Actions
GNUプロジェクトについて。
リチャード・ストールマン。
ライセンスや著作権法の国ごとの違い。歴史的経緯。
ライセンスの法律的な立ち位置は?例えば、著作権法とのかかわり。
他の著名なライセンス、BSD、MIT。
ここら辺をまた調べてみたいですね。

コメントを残す