BioErrorLog Tech Blog

試行錯誤の記録

OSSライセンスの選び方 | GitHub

GitHubが提供しているOSSライセンスの選定指針ガイド choosealicense.com から、ライセンスの選び方を学びます。

はじめに

GitHubレポジトリ等でコードを公開するときは、LICENSE.txtなどでライセンスを示すことが推奨されています。

しかし、多数あるOSSライセンスのうち、どのライセンスを選択すべきなのかは難しい問題です。

GitHubで新規レポジトリを作成する際には、数多のライセンスが候補として示される

GitHubが提供している choosealicense.com というサイトは、ライセンスの選定指針を示してくれています。

今回はこのサイトからOSSライセンスの選び方を学んで整理します。

OSSライセンスの選び方

シンプルでなるべく寛容にしたい場合

MIT Licenseが良いでしょう。

MIT Licenseでは、利用者はほぼ自由にプロジェクトを利用することができます。 クローズドソース版の作成/配布も可能です。

MIT Lisence条文。端的に極めて広い自由が認められている。画像はこちらより引用。

有名所のプロジェクトでは、Babel, .NET, RailsなどがMIT Licenseです。

改善/改変の共有を重視する場合

GNU GPLv3が良いでしょう。

GNU GPLv3では利用者には広い自由が認められていますが、クローズドソース版の配布などは禁止されています。

GNU GPLv3は、ソースコードの開示やコピーレフトなどの特徴を持つ。画像はこちらより引用。

有名プロジェクトでは、AnsibleやBash、GIMPなどがGNU GPLv3を利用しています。

コミュニティで開発する場合

既存の開発コミュニティで開発する場合、大抵そのコミュニティで好まれているライセンスがありますので、それにならったライセンスを付与するのが最も簡単で確実です。

開発コミュニティと好まれているライセンスの例:

  • Apache: Apache License 2.0
  • Cloud Native Computing Foundation: Apache License 2.0
  • GNU: GNU GPLv3
  • npm: MIT or ISC License
  • OpenBSD: ISC License
  • Rust: MIT OR Apache License 2.0
  • WordPress: GNU GPLv2 (or later)
  • Joomla: GNU GPLv2

開発するコミュニティの既存プロジェクトを確認し、そのライセンスを参考にしましょう。

ソフトウェアではない場合

ソフトウェアではないプロジェクトのときも、多くの場合ソフトウェアに使われているライセンスがマッチします。 特にプロジェクトをソースコードとしてバージョン管理している場合は、ソフトウェア同様の扱いが可能です。

ソフトウェアではないプロジェクト特有のライセンスを使いたい場合は、以下のような例があります:

・メディア/データ:
CC0-1.0、CC-BY-4.0、CC-BY-SA-4.0が、オープンライセンスとして利用できます。

・ドキュメント:
ソフトウェア用のライセンス、あるいは上記メディア用のライセンスがマッチします。

・フォント:
SIL Open Font License 1.1 によって、制作物をオープンにして他者が利用できるようになります。

・ハードウェア:
CERN Open Hardware licensesが使えます。 より寛容な順に、
CERN-OHL-P-2.0
CERN-OHL-W-2.0
CERN-OHL-S-2.0
です。

おわりに

以上、choosealicense.comからライセンスの選び方を学びました。

省略した部分も多いので、興味ある方はぜひ上記原典をご覧ください。

どなたかの参考になれば幸いです。

[関連記事]

www.bioerrorlog.work

参考