各コードファイルにライセンスを入れますか?[閉まっている]


93

各コードファイルに含めるために不必要に複製されていますが、ほとんどのオープンソースプロジェクトで見られます。同じことをするべきですか、それともコードの外側に単一のライセンスを含めるだけですか?



1
各ソースファイルで保証除外する必要があります。そうしないと、引っ掛かってしまう可能性があります。(Vimなどの適切なエディターは、保証除外定型文を自動的に折りたたむように簡単に構成できることに注意してください。)
Evgeni Sergeev

回答:


74

コード外の1つをお願いします!他の人についてはわかりませんが、すべてのファイルで同じものが表示されるのは嫌です。

私はそれを数回読んだと思います、それをpage_downするだけで。


10
Zifreに同意しません。上部に繰り返しライセンスがあると、私には不愉快です。
ストレッジャー、2009年

49
ファイルがコードの残りの部分から分離されている可能性があるため(再利用-一般に、オープンソースによって推奨)、ファイルにライセンスに関する情報が含まれていない場合、正しいライセンスに追跡するのはよりトリッキーです。しかし、各ファイルのライセンス全体-いいえ。それはGPLやLGPLにとってグロテスクです。すでに示唆したように、短いライセンスでは、実際のライセンステキストをファイルに含めるのは面倒ですが、これは判断の呼びかけです。しかし、それがどのライセンスの下でリリースされているかを識別することは賢明です。
ジョナサンレフラー、

14
プロジェクトのファイルヘッダーを更新して、著作権、ライセンス名、ライセンステキストへのURLの3行だけを追加しました。ヘッダーを26行(BSD)から3行に短縮しました。:)
Esko Luontola 2009年

3
@Esko:サンプルを投稿していただけますか?あなたが著作権のために何を書いたかわかりません。ありがとう。
Joan Venge、

6
この回答は解決策としてマークされていますが、私の意見では、私たちがいない限り、質問はまだ開かれていevidence for the legal situationます。Perhaps a lawyer can add a link to a court decision
Jonas Stein

25

ソースコードを見る人々は通常エンドユーザーではないので、EULAはここでは間違った用語です。

法的には、違いはありません。著作権を明示的に宣言する必要はありません。

基本的に、あなたが達成するのは、人々が誤ってライセンス条項に違反するリスクを軽減することです。あなたにとってそれがどれほど重要であるかを決める必要があります。

最善の妥協案は、完全なライセンステキストへのリンク(絶対URLおよびプロジェクト内の相対)を含む非常に短いヘッダーを各ソースコードファイルに挿入することです。そうすれば、ライセンスに関心がある人ならどこででもそれを見つけることができます(理想的には、大量のライセンス料金を支払う意思のある人、あなたは確かにそれらの人があなたに連絡できるようにしたいです!)


著作権は明示的である必要はないかもしれませんが、コピーレフトはどうですか?
Kekoa

1
@kekoav:コピーレフトは著作権よりも制限が少ないです。デフォルトでは、二次的著作物を作成することはできません。
Zifre 2009年

3
論争では、それは有効な議論ではありません。ライセンスがあること、およびそれを取得する方法が通知された場合、ライセンスが表示されなかった原因である技術的な障壁を突き止めることはできません。
Lasse V. Karlsen、

1
「コピーレフト」は、GPLの基本的な考え方の内面からの著作権制限を「覆す」ことを意味する俗語です。同じライセンスの下であなたに基づいています。
Michael Borgwardt、

2
正しい; しかし、この文脈では、Zifreが言ったように、それは問題ではありません。特定のコードが発行されたときのライセンスがわからない場合は、そのコードの使用がまったく許可されていないことを想定する必要があります。そのため、発行者は、ユーザーにライセンスを読ませるのに余分な時間を費やす必要はありません。
Michael Borgwardt、

14

いいえ、ライセンスを各ソースコードファイルに配置する必要はありません。

よく見ると、ほとんどのFOSSアプリケーションはそれをしていません。彼らは各ファイルの上部に著作権表示を置き、ファイルがどのライセンスの下にあり、ライセンスの全文がどこにあるかを示す短い文章を置きます。それらは通常、ライセンスの全文を含むCOPYINGまたはLICENSEファイル、および/または全文を含むWebサイトを示します(COPYINGファイルがもうない場合)。

Michael Borgwardtが彼の答えで言ったように、合法的にあなたはこれをする必要はありません。ただし、配布する予定のソースコードについては、誰が著作権を所有しているのか、どのようなライセンスなのかをすぐに確認できるため、お勧めします。


1
この。著作権表示には、ライセンス名(標準の場合)への参照と、ソースツリーでライセンスファイルを見つける方法の説明を含める必要があります。
jmucchiello 2009年

13

ライセンスによって異なります。GPLは区別しpreamblelicense。(煩わしい)プリアンブルはコードの一部でなければならないことを明確に述べています

スペースを節約するために、GPLのプリアンブル、または独自のプログラムでGPLを使用する方法の説明を省略できますか?

プリアンブルと指示はGNU GPLの不可欠な部分であり、省略できません。実際、GPLは著作権で保護されており、そのライセンスはGPL全体の逐語的コピーのみを許可します。(法的条件を使用して別のライセンスを作成できますが、GNU GPLにはなりません。)(1)

出典:1)http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble

http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.htmlも参照してください。

ifrOSSから無料の電子ブックでは、GPL 2についてドイツ語で説明およびコメントしています。GPL 3にもう1つあります

根拠のある答えを得るには、sxでは利用できない法的助言を求める必要があります。(オープンソース)プロジェクトの弁護士が見つからない場合は、FSFEの法的ネットワークをご覧ください。


7
プリアンブルと指示完全なライセンスの一部ですが、すべてのファイルに完全なライセンスを配置する必要があるということは何もありません。- 以下の通知は、フルライセンスのほんの一部です。- 最も安全ですが必須でありません。 -唯一の要件は、残りへのポインタを持つ著作権の行です。それは入れていいのフル 1つの別個のファイルにライセンスを。[...] attach the following notices to the program.safest to attach them to the start of each source fileeach file should have at least the "copyright" line and a pointer to where the full notice is found.
toxalot 2014年

3
そして、私はそうすべきだと主張します!= 必要があります。
toxalot 2014年

7

それを各ファイルに入れる理由は正当なものだと思います。合意が各ファイルに含まれている場合、ライセンスにさらされることなく誰かがコードの断片に出くわす可能性はありません。

それは良いものではないかもしれませんが、すべての大きな男の子がそれを使用しているので、それが視覚的な痛みだけの場合は、同じことをしないより良い理由を探します。

GPLを使用している場合、これはさらに問題になりますが、BSDやMITのようなパブリックドメインライセンスを使用している場合は、とにかく、人々がコードをどのように処理するかを気にしていません。それはあなたのライセンスがどれほど厳しいかに依存すると思います。


1
まあ、その場合は、続行するときに、ファイルlicence.txtのライセンスに同意することを各ファイルに指定するだけです。ただし、各ファイルに同じテキストをコピーして貼り付けないでください。ライセンスより短いコードのファイルを見つけることがあります。
ルーク

ええ、私はそれがそのように、特に長いライセンスの場合にも同様に機能することに同意します。法的に必須ではない場合や、法廷でサポートされる場合さえありますが、ライセンスの参照は、コードがどのライセンスの下にあるかを探し回る必要がない人に知らせるのに最低限役立ちます。
Kekoa

3

IANAL、

EULAではなくライセンスについて話していると仮定すると、ライセンスを外部に置くことができます。これはほとんどの場合、GPLなどの非常に長いライセンスで行われます。すべてのGPLライセンスをすべてのファイルに入れるのはばかげたことでしょう。通常、実際のライセンスがどこにあるかを示す通知が表示されます。これは完全に合法です。ただし、BSD / Apache / MIT / whateverなどの非常に短いライセンスでは、ライセンスを見つける場所を示す通知がライセンス自体とほぼ同じであるため、すべてのファイルにライセンスを含めるだけの方が簡単です。


2

それはライセンスが何を要求するかによります。たとえば、GPLは、すべてのソースファイルに短い通知を入れ、ソース配布のどこかにライセンス全体を含め、バイナリ配布のコピーを入手するすべての人がソース配布を利用できるようにするように指示します。

あなたがこれに同意せず、それがあなたのコードである場合、あなたはより適切なライセンスを選択するか、またはあなた自身のものを作成することができます。


1

コードをコンパイルしてバイナリを配布するだけの場合、それは本当に問題ではありません。バイナリを作成すると、コンパイルプロセスが行われる前にコメントが削除されるためです。実際のソースコードをオープンソースまたはクローズドソースのどちらで配布するかが問題になります。コンパイルされないスクリプト言語でアプリケーションを配布する場合、これは典型的な問題です。


ありがとう。オープンソースになるでしょう。
Joan Venge、

ハードコードされた文字列を作成してライセンスを含めることができるため、バイナリに表示されますが、多すぎます:)。
Liran Orevi 2009年

1

ライセンスには必要ありません。対象のファイルが明確である限り、単一の外部ファイルで十分です。

ただし、著作権については、すべてのテキストに著作権表示が必要です。


ありがとう、だから著作権は違うの?
Joan Venge、

INALですが、ライセンスはあなたとユーザー/顧客の間の契約です。著作権とは、著作物の一部の所有権を主張することです。誰かがあなたのコードの一部を拾い上げ、通知が欠落していたために著作権ではないと正当に主張する可能性があります。「Copyright Joe Soap(Cleansoft Inc.)」だけで十分です。
Jamesアンダーソン、

10
あなたはそれについてとても間違っています。一般に、明確にするためにすべての場所に著作権表示を実際に追加することは良いことですが、すべてが著作権で保護されていることを知っているので、「著作権が付与されていないと想定する」ことは公正なゲームではありません。誰かがソースコードを入手すると、そのコードを使用することを許可するライセンスステートメントを見つけたり、何らかの理由でそれがパブリックドメインにあることに気付く場合があります。彼がそうしなければそれは著作権で保護されており、コピーすることはできません。著作権は自動的なものであり、言及するのは良いことですが、そうしなくてもそれが失われるわけではありません...
Jasper

1

私が行うことは、会社名、最終改訂日、ソースファイルのライセンス名を示す2行のコメントをファイルの上部に配置し、ファイルの最下部に、ライセンス。

もちろん、フルライセンス(複数のライセンスの場合はすべて)は常にソースファイルとリリースディレクトリに含まれています。


3
最終改訂日をどのように自動化しますか?
ダスティンゲッツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.