##はじめに
GitHubでソースコードを公開する場合、ライセンスを明記していないリポジトリがよくあります。
誰かに使ってもらうことを想定していないのであれば特に問題ないのですが、せっかく公開しているのであれば、誰かに使ってほしいですよね。
というわけで、GitHubでのライセンス設定の方法を紹介したいと思います。
##ライセンスを明記するかどうか
まず、ライセンスを明記しない場合は、どのような扱いになるのでしょうか。
ライセンスが明記されていないソースコードに対しては、このページにあるように、デフォルトの著作権法が適用されます。
つまり、ソフトウェアの複製、改変、(複製物または二次的著作物の)再頒布が認められません。
(ただし、forkした場合は上記を認める記述がGitHubの利用規約中にあり、GitHubの利用者はそれに同意したことになります)
改変せずにそのまま使用することだけを認めたいなら、ライセンスは明記しなくてもOKということです。
##どのライセンスを使用するか
では、誰かがソースコードを改変したり、さらに広めてほしいと思ったら、どんなライセンスを使ったらいいのでしょうか。
というわけで、代表的なオープンソースライセンスについて書いてみます。
以下のライセンスは、記載した一定の条件の下でソフトウェアの使用、複製、改変、(複製物または二次的著作物の)再頒布を認めています。
ざっくりと書いていますが、それぞれのライセンスの雰囲気は伝わると思います。
####MIT License
- 作成者や著作権者は、製品に対しての義務や責任を何ら負わないこと
- 著作権の表示を保持すること
####BSD License (3-clause BSD License)
- 作成者や著作権者は、製品に対しての義務や責任を何ら負わないこと
- 著作権の表示を保持すること
- 派生した製品に、勝手に製品の宣伝または推薦者として組織や貢献者の名前を使用しないこと
####Apache License
- 作成者や著作権者は、製品に対しての義務や責任を何ら負わないこと
- 著作権と特許権の表示を保持すること
- 製品を改変した場合は、その変更点を示すこと
- 製品中の特許に対して特許侵害を主張する場合は、その特許ライセンスは終了する
####GNU General Public License (GPL)
- 作成者や著作権者は、製品に対しての義務や責任を何ら負わないこと
- 著作権の表示を保持すること
- 改変、再頒布の前提としてソースコードへのアクセスができること
- 製品を改変した場合は、その変更点を示すこと
- 製品を改変した場合もGPLで配布すること
ここで注意してほしいのは、必ず(!)英語の原文を置いてください。
日本語に翻訳されたものを置いても、ライセンスとしては効果を発揮しません。
また他のライセンスについては、コリスさんのこの記事が詳しいので、ご参考ください。
##ライセンスを設定する
実は、GitHubにはライセンスを設定する機能がはじめから付いています。
リポジトリを作成するときに、「Add a license: None」というセレクトボックスがあります。
ここから、設定したいライセンスを選んでリポジトリを作成するだけで、LICENSEというファイルが出来ちゃいます。かんたん。
LICENSEファイルには自動でCopyrightの日付と所有者が記載されるので、あとは必要であればorganizationを埋めるだけです。
オープンソースの素晴らしさは、世界中の誰もがあなたのソースコードをより良くできることにあると思います。
ライセンスがそれを邪魔してしまうはもったいないです。ぜひライセンスの設定をご検討ください。