ja ja ja ja ja ja ja ja ja en ja ja ja ja ja ja ja ja ja ja ja ru ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja en ja ja ja en ja ja ja de ja ja ja de ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja en ja en ja ja ja ja ja en ja en ja ja ja ja ja ja ja ja ja ja ja ja ja ja en ja ja ja ja ja ja ja ja ja ja en ja ja en ja ja vi ja sv eu ja en en hu ja ja en en pl ja ja jbo hbs_lat en ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja
フリーソフトウェアライセンス(オープンソースソフトウェアライセンス)入門 - 2022-04-06 - ククログ
コピーレフト(Copyleft)とは、コピーライト(Copyright)、すなわち著作権をもじった概念です。著作権は、利用者の自由を制限するために使われることがあります。フリーソフトウェアにおいてはそういったケースとは逆に、著作権を利用者の自由を保護するために用います。例えば、二次的著作物のユーザーもそれをコントロールできるようにするならば二次的著作物を作れるようにして、さらにその二次的著作物の二次的著作物にも同様の約束を設定します。こうすることで、再帰的に全ての二次的著作物のユーザーがソフトウェアをコントロールできます。
コピーレフトのあるライセンスは、ソフトウェアをフリーソフトウェアであり続けさせるための保護の仕組みを提供してくれます。そのため、フリーソフトウェアを推進する我々としては、この種類のライセンスから選ぶことをお勧めします。
コピーレフトのないライセンス
ライセンスには、コピーレフトではないものも存在します。MITライセンスが有名でしょう。
こういったライセンスは、制限が緩く使いやすいと認識されることもありますが、「制限が緩い」ということは「保護が弱い」ということでもあり、立場や状況によってメリットにもなればデメリットにもなります。「制限が緩い」ということをメリットとだけ考えて採用することは、フリーソフトウェアを推進する我々としては推奨できません。今後非公開のソフトウェアにする可能性がある場合や、脅威となる競合があり、できるだけ広く利用してもらうことを優先したい場合などに、採用することを推奨します。
フリーソフトウェアに使われるライセンス一覧は、 https://www.gnu.org/licenses/license-list.html で確認できます。
見ての通り多くの種類がありますが、まずはコピーレフトの強さという観点で代表的なライセンスを把握することをお勧めします。
GPLv3 (GNU GENERAL PUBLIC LICENSE Version 3)
しっかりしたコピーレフトのライセンスです。
ソフトウェアをフリーソフトウェアであり続けさせるための保護が受けられるので、最もお勧めするライセンスです。
ライセンス内容: https://www.gnu.org/licenses/gpl-3.0.html
LGPLv3 (GNU LESSER GENERAL PUBLIC LICENSE Version 3)
GPLv3に比べ、弱い(LESSERな)コピーレフトのライセンスです。GPLv3と同等にユーザーの自由を保護しつつ、GPLv3を採用したくない他のソフトウェアからの利用を許します。
ライブラリーを作成する時に、GPLv3の代わりに用いることがあります。GPLv3のソフトウェアであればGPLv3のライブラリーを利用できます。つまり、GPLv3を採用したくないソフトウェアからは利用してもらえません。もしくは他に競合となるライブラリーがある場合、GPLv3を用いることはソフトウェア側に他のライブラリーを選ばせ、そのライブラリーを使ってもらえない原因になり得ます。こういった場合にGPLv3の代わりに使用できるものがLGPLv3です。
ライセンス内容: https://www.gnu.org/licenses/lgpl-3.0.html
コピーレフトではないライセンスです。
コピーレフトではないライセンスの中では、「特許ライセンスの付与(Grant of Patent License)」条項があり、開発元から特許権を行使される心配なくユーザーに利用してもらえるため、他のコピーレフトではないライセンスよりお勧めです。
ライセンス内容: https://www.apache.org/licenses/LICENSE-2.0
コピーレフトではないライセンスです。
シンプルなライセンスです。一方で、Apache-2.0もそうですが、ソフトウェアをフリーソフトウェアであり続けさせるための保護が受けられない、という側面もあります。よって、他のライセンスは難しそう、という理由だけで選ぶのはお勧めできません。
ライセンス内容: https://opensource.org/licenses/MIT
以下の手順でライセンスを選択することをお勧めします。
関連するフリーソフトウェアがあるならそのソフトウェアと同じライセンスを選ぶ
関連するフリーソフトウェアがなく、単独で動くプログラムならGPLv3を選ぶ
関連するフリーソフトウェアがなく、ライブラリーならLGPLv3を選ぶ
また、もしコピーレフトを含められない事情がある場合は、Apache-2.0を選びます。ただし、Apache-2.0はGPLv27とのライセンス互換性8がないため、それが問題となる場合のみMITを選びます。
まず、関連するフリーソフトウェアと同じライセンスを選ぶことをお勧めするのは、ライセンス互換性8の問題などを気にする必要がなくなり、そのプロジェクトへの貢献がしやすくなるからです。
より詳しく知りたい方は、 https://www.gnu.org/licenses/license-recommendations.html をご覧下さい。
以上の通り、関連するフリーソフトウェアがある場合にはそれと同じライセンスを選ぶべきです。この場合は、その関連ソフトウェアがどうライセンスを適用しているのかを参考にしつつ、そのライセンスの正しい使い方を調べることになります。
そうでない場合は、GPLv3かLGPLv3を選ぶことをお勧めします。その使い方の1例を紹介します。厳密には、 https://www.gnu.org/licenses/gpl-3.0.html の末尾にあるHow to Apply These Terms to Your New Programsの内容や https://www.gnu.org/licenses/gpl-howto.html をご覧下さい。
以下の手順でプログラムにライセンスを適用することができます。
COPYINGという名前のファイルをプログラムに追加し、GPLv3の原文をコピーする(LGPLv3でもGPLv3の原文をコピーする)
LGPLv3の場合は、さらにCOPYING.LESSERという名前のファイルを加えて、LGPLv3の原文をコピーする
主要な各ファイルの冒頭にライセンス告知(後述)をつける
GPLv3の原文の末尾のHow to Apply These Terms to Your New Programsに、告知の原文があります。ここで記載されている通り、この告知文は必要に応じてアレンジ可能であり、著作権者と完全な原文の入手方法が明記されていれば良いです。LGPLv3の場合は、3箇所あるGNU General Public Licenseの表記をGNU Lesser General Public Licenseに変更します。また、ソースコードファイル上におけるコメントアウト方法はプログラム言語によって変わります。
原文では最後に「プログラムと一緒にライセンスのコピーが渡されているはずです。もしそうでなければ、 https://www.gnu.org/licenses/ を見てください。」という趣旨の文が書いてあり、このためCOPYINGというファイルを用意するわけです。
また、 https://www.gnu.org/licenses/gpl-howto.html に記載されている通り、複数ファイルからなるプログラムの場合は、This programをプログラム名に変更し、This file is part of {プログラム名}.という一行を追加することを推奨します。
GPLv3の告知文は例えば下記のようになります。
# Copyright (C) {著作権発生年} {ファイル作成者名}   # This file is part of {プログラム名}. # {プログラム名} is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # {プログラム名} is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see  .
LGPLv3の告知文は例えば下記のようになります。
# Copyright (C) {著作権発生年} {ファイル作成者名}   # This file is part of {プログラム名}. # {プログラム名} is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # {プログラム名} is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see  .
or later と only について
GPLv3やLGPLv3などのライセンスでは、今後ライセンスが新しいバージョンに更新された場合に、その新しい方を選べるようにするかどうかを決められます。
ライセンスの新しいバージョンを選べる場合はGPLv3 or later、現バージョンに限定する場合はGPLv3 only、のようにor laterかonlyを付けて区別します。
これはライセンス告知の内容によって決まり、デフォルトの内容ではor laterになっています。onlyにしたい場合は告知文を変更する必要があります。
例えばGPLv3 or laterでは以下のようになる部分を、
# {プログラム名} is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version.
GPLv3 onlyにする場合は以下のように変更します。
# {プログラム名} is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation.
今後作られる新しいバージョンのライセンスがどのような内容になるのか分からないため、それを気にする場合はonlyにすることを検討します。
フリーソフトウェアを公開する際のライセンスの選び方や使い方を、フリーソフトウェアやライセンスの基本的な事柄も含めて簡単に紹介しました。
ライセンスはたくさん種類があり、それぞれ内容が難しいので、いざ自分で使おうとするとハードルが高いですよね。
コピーレフトのあるライセンスは、制限が強いと評されることもありますが、ソフトウェアをフリーソフトウェアであり続けさせるための保護を提供してくれます。フリーソフトウェアを大事にしたい場合には、こういったライセンスの採用を検討することをお勧めします。
本記事の内容が少しでも参考になり、状況に応じて適切なライセンスを選んで頂けたら幸いです。
より詳しく厳密に知りたい方は、 https://www.gnu.org/licenses/licenses.html をご覧下さい。
「フリー」(「自由」、「free」)という言葉は「無料」を意味しているわけではありません。 ↩
自由ソフトウェアとは?: https://www.gnu.org/philosophy/free-sw.ja.html ↩
なぜ、オープンソースは自由ソフトウェアの的を外すのか: https://www.gnu.org/philosophy/open-source-misses-the-point.html ↩
クリアコードとフリーソフトウェアとビジネス ↩
コピーレフト: https://www.gnu.org/licenses/copyleft.html ↩
パブリックドメイン・ソフトウェア: https://www.gnu.org/philosophy/categories.html#PublicDomainSoftware ↩
GPLv2とは、GPLv3の前のバージョンです: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html ↩
ライセンス互換性: https://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible ↩
現在クリアコードではソフトウェア開発者を募集しています! フリーソフトウェア開発での開発の仕方をベースに、成果や知識を公開し共有しながら業務に携われます。
PGroongaでのクラッシュセーフ機能の実装
Bio"Pack"athon 2022 #4 - Treefitのパッケージング
Apache Arrow
milter manager
ククログの記事はCC BY-SA 4.0とGFDLのデュアルライセンスで自由に利用できます。
クリアコードはプログラミングが楽しいソフトウェア開発者を1名募集しています。
クリアコードは「クリアコードをいい感じにする人」を1名募集しています。
クリアコードはフリーソフトウェア開発で培った技術力を提供しています。特にMozilla製品(Mozilla FirefoxとMozilla Thunderbird)とRubyとGroonga(全文検索)に関連した開発を得意としています。