オープンソースライセンスの使用方法と推奨されるもの


8

共有したいコードがありますが、オープンソースライセンスを使用して公開したいのですが。しかし、そのライセンスをどのように使用する必要があるのか​​はわかりません。

オープンソースライセンスをアクティブ化するにはどうすればよいですか?すべてのファイルにライセンスのテキストを含めるだけですか?他に何をしなければなりませんか?権利を購入する必要がありますか?すべてのディレクトリにreadme.txtを含めますか?つまり、ライセンスの法的テストによってコードを保護したい場合はどうすればよいですか?

2番目の質問は、この条件に適したライセンスは何ですか。

  • 私は、人々が私のコードで何をしているか、教育の目的でお金を稼ぐことを気にしていません。
  • しかし、私は人々がコードから私の名前を削除しないようにしてください、そして彼らが私のコードを使用する場合、彼らに私に言及することを強制します。彼らが私のコードを変更し、誰かがそれらの変更を要求した場合、彼らはコードに変更を与えます。
  • しかし、たとえ彼らが私のコードを使用しているとしても、人々に彼らのアプリケーションのコードを公開することを強制したくありません。

その目的に最適なライセンスは何ですか?


私はあなたがあなたが望むものについてもっと明確にする必要があると思います。「コードが変更され、誰かがそれらの変更を要求した場合」-Webアプリケーション、デスクトップアプリケーション、またはその両方が好きですか?これは実際にはライセンスに関連していますが、驚くほど十分です!
ロビングリーン

ポイントのおかげで、私は後のコメントで明確にしただけです。誰かが私のコードを使用する場合、彼らがどこか(Webなど)でコードが私のものであると言う義務があることを望みます。しかし、私のコードを使用しているからといって、オープンソースプロジェクトでプロジェクトを回したくないのかどうかは気になりません。

確かに、あなたはプレゼント(コード)を作って、そのプレゼントを好きなように使えて、儲けにも使えるし、気にしない。しかし、あなたは彼らがあなたのコードを使用していることを人々に知ってもらいたいのです。

ここで多くの人が実際に4節のBSDの使用を提案していることに気づきました。技術的には、OSIによると、そのライセンスはオープンソースでさえありません。物事に関するGNUプロジェクトの見解には同意しませんが、4節のBSDに関する彼らの論文は一読に値すると思います。tl; dr-LinuxやBSDディストリビューションなどの大きなプロジェクトの広告に何千もの帰属文が表示されます。
Nathan2055 2013

回答:


13

ここに便利なガイドがあります:

http://i.stack.imgur.com/GvOBw.png

上記のフローチャートのPDFおよびGraffleバージョンへの参照は、Karl Fogelのブログで入手できます。


1
[-1]。私は完全に理解しているが、それは主に情報提供というよりむしろ面白いことになっていることを私は信じている。しかし、それは含まれています。[次のコメントを参照]
Dmitry Alexandrov

1
①チャートのタイトルは「どのオープンソースライセンスですか?」悪名高い4節のBSDライセンスも選択肢の1つです。しかし、4-BSDLの下のソフトウェアは、OSIではいわゆる「オープンソース」と見なされません。FSFによると、これはいわゆる「無料」ですが、それでも強くは推奨されません
Dmitry Alexandrov 14

1
②「クリエイティブ・コモンズ」はまったくライセンスではありません。それは根本であり、根本的に異なるライセンスの束を公開しました。これは、パブリックドメインの献身CC0から「無料広告ライセンス」CC-BY-NC-NDまでさまざまであり、それらのほとんどは非フリー。
Dmitry Alexandrov

③(スタンドアロンプ​​ログラムではなく)インフラストラクチャ用に何かを書いている場合、当然、そこで受け入れられているライセンスを適用する必要があるという背景の提案は正しいですが、PerlとMozillaソフトウェアであり、それぞれArtisticとMPLでのみライセンスされていません。PerlはArtisicまたはGPLv1 +の下にあり、MozillaソフトウェアはMPLまたはGPLv2またはLGPLv2.1の下にあります。「または」は制限の分離を意味します。そのため、リストからライセンスを1つだけ選択すると、互換性が失われます。
Dmitry Alexandrov 14

5

オリジナルの4節のBSDライセンスを使用します。

  • 私は、人々が私のコードで何をしているか、教育の目的でお金を稼ぐことを気にしていません。

  • しかし、たとえ彼らが私のコードを使用しているとしても、人々に彼らのアプリケーションのコードを公開することを強制したくありません。

ほとんどのオープンソースライセンスと同様に、ユーザーはソースを変更および再配布できます。それは彼らがどんな目的にもそれを使うことを可能にします。

  • しかし、私は人々がコードから私の名前を削除しないようにしてください、そして彼らが私のコードを使用する場合、彼らに私に言及することを強制します。

最新のOSI承認ライセンスとは異なり、このライセンスにはいわゆる「広告条項」があります。つまり、ライブラリを使用するソフトウェアの作成者は、自社の製品に開発者が開発したコードが含まれていることを言及する必要があります。

条項のテキスト:

「このソフトウェアの機能または使用法について言及するすべての広告資料には、次の謝辞を表示する必要があります。この製品には、が開発したソフトウェアが含まれてい<organization>ます。」

  • 彼らが私のコードを変更し、誰かがそれらの変更を要求した場合、彼らはコードに変更を与えます。

それは一種の問題です。コピーレフトライセンスのみが必要です。コピーレフトライセンスの使用は、残りの要件と矛盾します。


1
オリジナルの4節のバージョンは、オープンソースイニシアティブによってオープンソースライセンスとしてリストされていません(opensource.org/licenses/bsd-licenseを参照)。古いライセンスやバリアントライセンスを持ち込まなくても、ライセンスの急増とライセンスの非互換性は十分にあります。
David Thornley、2011

1
@David:もちろん、OSIにはリストされていません。広告句はOSI定義と互換性がありません。
vartec 2011

古いBSDライセンスは、最終的な著作権表示で名前の無限のリストをコンパイルする必要があったため、廃止されました。新しいBSDライセンスは、彼の場合と同様に適切です(おそらくより適切です)。作者の名前はコード自体に残す必要があります。
Denis de Bernardy、

1
OPは、「私のコードを変更し、誰かがそれらの変更を要求した場合、コードに変更を加えます」と言います。BSDでは必要ありません。コピーレフトではありません。LGPLの方が良いかもしれません。
MarkJ 2013年

3

私は弁護士ではありませんが、以下は法的アドバイスではありませんが、プログラマーとして著作権法について収集したものです。

ソフトウェアを作成する場合、誰かがあなたにそれを書くために支払ったのでない限り、あなたはそのソフトウェアの著作権を持っています。ソフトウェアまたはの著作権を明記しREADME、その後にライセンス条項を記載する必要があります。GPLなどの詳細なライセンスを使用している場合は、ライセンスが記載されている場所へのポインタを記載してください。ソフトウェアを公開すると、ライセンスの対象になります。インストーラーやマニュアルなどで、ユーザーにライセンスを通知する必要があります。

欲しいライセンスの種類はコピーレフトのように聞こえますが、GPLよりは弱いです。GNU Lesser General Public License(LGPL)を検討してください。


(L)GPLには、Pedroが述べたように「コード(コードを使用している人々)に私(元の作者)に言及させる」という原因があるとは思わない。

2
@danielkza:著作権で保護された作品から著作権表示を合法的に削除することはできないので、OPの名前は削除できません。
Fred Foo、

1
@larsmans:コード自体ではなく、クレジット/アバウトボックス/サイトフッターなどに自分の名前を引用したいと思います。私はそれを誤解しているかもしれません。

答えてくれてありがとう。非常に役立つ情報。思った通りですが、よくわかりませんでした。法的な文章がどのように含まれているかを確認するために、いくつかのオープンソースプロジェクトを見ていきます。

私は、GPLとLGPLの2つのライセンスを読んで、自分にとって何がより良いかを見ていきます。

2

Free Software Foundationは、オープンソースライセンスの条件に違反した人々に対する訴訟を起こすことに非常に成功しています。2006年の記事で、当時4対4であったことを覚えています。最近では、Cisco、Skype、およびVerizonに対する訴訟を解決し、すべてFSFへの支払いをもたらしました。ただし、一般に訴訟は、被告に義務を通知するための繰り返しの試みが行われた後にのみ開始されます。したがって、時間を節約するために、標準のライセンスダイアログの[同意する]ボタンをクリックするようユーザーに要求し、独自の[ライセンス]フォルダーにライセンス条項ファイルを保存すれば、準備は完了です。

使用する特定のライセンスに関しては、LGPLが必要なように聞こえます。LGPLは、アトリビューションの部分を除いて、要求するすべてのことを実行します。これを別の規定にする必要があるかもしれません。


ありがとうLGPLテキストを読みますが、法的テキストを読むのはとても退屈です;)

1
IIUC LGPLは、GPLの代わりに使用されます。競合他社のライブラリではなく、ライブラリの急増に関心があり、この場合、自由度にそれほど関心がない場合です。たとえば、他の画像ライブラリと競合する画像ライブラリを作成した場合、LGPLを使用すると、他のユーザーが[独自の]競合ライブラリよりも簡単にライブラリを使用できます。
ジェフウェリング

2

要件に完全に一致するライセンスはないと思います。AGPLとLGPLの何らかの混合が必要なようです。しかし、FSFはまだそのようなライセンスの作成に取り掛かっていません!あなたはここで彼らの公式の応答を見ることができます:https//stackoverflow.com/questions/3330792/why-isnt-there-a-lesser-affero-general-public-license/4419776#4419776


答えてくれてありがとう、私にはライセンスがないと思っていましたが、少なくとも私は最高のマッチを探しています。

私が使用している場合、人々が自分のコードを公開することを強制するいくつかのライセンスがあります。つまり、これらのライセンスでコードを使用する場合は、プロジェクトをオープンソースプロジェクトに変換する必要があります。彼らが自分のコードを公開したくないのかどうか私は気にしません。私の主な懸念は、少なくとも今は人々が私のコードを使用しているということです。それで十分です。

誰かが私のコードを自分のプロジェクトで使用したいとは思いません;)主に、TDDを使用して3層のJavaアプリケーションをゼロから作成する方法を示す演習であるためです。私はそのコードを共有したいと思いますし、人々がTDDを教えるためにそれを使用して欲しいですが、私は例が私の演習は私のものであると言わざるを得ません。

1

オープンソースライセンスをアクティブ化するにはどうすればよいですか?すべてのファイルにライセンスのテキストを含めるだけですか?

正確な法的要件が何かはわかりませんが、通常は、各ファイルの先頭に小さなヘッダーコメントを含めることになります。

  • 誰が著作権を所有しているのか、そして
  • これは、ファイルがそのようなライセンスでカバーされていることを示し、ライセンスのテキストを含むファイルの名前を読者に通知し、ファイルが欠落している場合はテキストの場所を読者に通知します。

他に何をしなければなりませんか?権利を購入する必要がありますか?

番号。

すべてのディレクトリにreadme.txtを含めますか?

いいえ、できません。ディレクトリツリーのルートに1つのREADMEファイルを置くことをお勧めしますが、必須ではありません。

つまり、ライセンスの法的テストによってコードを保護したい場合はどうすればよいですか?

確かに、弁護士に相談してください。


ライセンス要件について。

(1)私は、コード、教育目的でお金を稼ぐために人々が何をするか気にしません。彼らが何をしたいかは気にしません。

それは一種の非要件です。お金を稼ぐこと、教育で使用することなどを禁止するライセンスはほとんどありません。

しかしながら、「彼らがそれで好きなことをしてください」はあなたの他の要件のいくつかと文字通り矛盾しています。

(2)彼らが私のコードを変更し、誰かがそれらの変更を要求した場合、彼らはコードに変更を与えます。

変更のソースコードを提供するという要件は、GPL、LGPL、AGPLにはありますが、Apache、BSD、およびその他の一般的なライセンスにはありません。

(3)しかし、コードから私の名前を削除されないようにしてください。また、私のコードを使用している場合は、彼らに私に言及するよう強制します。

ほとんどのライセンスでは、コード内にとどまるために、コード内の属性が必要です。

しかし、「彼らに私に言及させる」ことは難しく、ライセンスがそれを言っているとしてもごくわずかです。実際、FSFの立場では、このような要件によりコードがフリーにならないということです...

(4)しかし、私がコードを使用している場合でも、人々にアプリケーションのコードを公開することを強制したくありません。

もちろん、人々がアプリケーションのコードを公開することを強制するライセンスはほとんどありません。GPLファミリーの最も過激なものでさえ、純粋に私的な目的でソフトウェアを使用および変更することができます。

ただし、GPLなどは、ユーザーが自分のアプリケーションに基づいてアプリケーションを配布する場合、ソースの公開を強制します。(正確な条件はライセンスによって異なります。たとえば、LGPLでは、ユーザーに自分のコードを公開せずにコードをリンクさせることができます。一方、GPLでは、そのような状況でコードを公開することを要求し、AGPLはこれを他の領域に拡張します。)

また、要件(2)と(4)は文字通り矛盾しています。


要約すると、ライセンスの要件を明確に表現できる必要があります。それができない場合は、要件に一致するライセンスを見つけるチャンスはほとんどありません。

または、弁護士に相談する必要があるかもしれません。(彼/彼女は明らかにあなたにあなたの本当の要件が何であるかを引き出すためにあなたにたくさんの質問をする必要があるでしょう。)


0

あなたが所有する作品(あなたが著作権を持っている)で、必要なライセンスを(自分で作成することも)使用できます。これは通常COPYING、ソースコードとともにファイルにライセンスのコピーを含めることによって行われます。

あなたが探しているのはXFree86 1.1スタイルのライセンス(これは寛容な非コピーレフトライセンスです(使用する場合にソースを開く必要はありませんが、確認が必要です)であり、すべての要件を満たしています。

  1. 再配布に含まれるエンドユーザーのドキュメントには、もしあれば、次の謝辞が含まれている必要があります。「他のサードパーティの謝辞と同じ場所と形式。または、この確認は、ソフトウェア自体に、他のサードパーティの確認と同じ形式と場所で表示される場合があります。

xfree86の名前を自分の名前に置き換えて配布できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.