web-dev-qa-db-ja.com

ソフトウェアライセンスとオープンソースの著作権

ファイルの最初に著作権表示を含むソースコードをいくつか見ました。それらのほとんどはGNU General Public LicenseまたはApache Licenseのいずれかです。オープンソースソフトウェアを開発する場合、どのような手順に従う必要がありますか?どこかに登録してソフトウェアのライセンスを取得する必要がありますか、または Apache License 2. で説明されているようなテキストを追加するだけです。

別のオープンソースソフトウェアのソースコードを変更した場合、どうすればよいですか?私は彼らに許可を求めるべきですか?

4
Tapas Bose

別のオープンソースソフトウェアのソースコードを変更した場合、どうすればよいですか?私は彼らに許可を求めるべきですか?

指定したライセンス(GNU GPL、Apache 2.0)の場合、コードを変更するためのアクセス許可を明示的に要求する必要はありません。これらは、ソースコードを変更する権利を与えるフリーソフトウェアライセンスです。ですから、あなたはすでにそうすることを許可されているという書面による声明を持っています。

そのため、これらのファイルの上部にライセンスヘッダーがあり、通常は著作権表示(基本的に、このファイルを作成したのは誰か、いつ作成され、どの作品に属しているか)が含まれ、パッケージにはライセンステキストが完全に含まれていることが重要です。ライセンステキストを実際に読むことができます。一部の作成者は、一部のサードパーティのWebサイトへのリンクのみを配置しているため、実際には何も書かれておらず、変更されたかオフラインになる可能性のあるリンクのみが記述されています。

したがって、コードにバンドルされている著作権ステートメントとライセンス条項を見つけたら、それは安全な場所です。

変更/適応する権利

ソースコードを実際に変更する権利は重要であるため、すべてのフリーソフトウェアライセンスはそれをあなたに付与します。フリーソフトウェアライセンスとは何ですか?つまり、GNUGPLと互換性があるかどうかを確認してください。もしそうなら、あなたはそれが一つであるとかなり確信することができます。さらに、ここでそれについて学びましょう: フリーソフトウェアの定義

フリーソフトウェアライセンスの2つのタイプ/クラスを区別できます:GNU GPLのような種類の1つ。それらは、ソフトウェアを変更する権利を個人的にあなたに与えるだけでなく、あなたがあなたの(変更された)ソフトウェアを渡す他のすべての人にもその権利を与えます。たとえば、ソフトウェアのユーザー。

これは、ソフトウェアの自由を維持するために行われます。その背後にある考え方は基本的に:ユーザーなしのソフトウェアとは何ですか?ソフトウェアは誰のために書かれていますか?ユーザーにとって無料ではないフリーソフトウェアとは何ですか?

その他のタイプは、個人的に変更する権利を付与しますが、あなたに同じ権利を付与する必要がないフリーソフトウェアライセンスです your ソフトウェアのユーザーへの変更。 IIRCはApacheライセンスに似ていますが、このタイプは BSD-like ライセンスで最もよく知られており、おそらくそのタイプの方が適切な表現です。

これはわずかな違いのように聞こえるかもしれませんが、実際には実際の(tm)違いです。たとえば、変更をGNU GPLにして、すべてのコードの(潜在的な)ユーザーが自由に使えるようにしたい場合は、GNUのようなものに配置する必要があります。 _ GPL。しかし、それを望まない場合は、GNU GPL化されたコードをまったく使用できません(フリーソフトウェアライセンスに基づくほとんどのコードはGPLで利用できます)。

一部の開発者は、GNU GPLはそれによって制限されていると考えているため、「無料ではない」と考えています。実際、彼らは相互に関連するソフトウェアライセンスに準拠することを望んでいません(これはバイラルと呼ばれることもありますが、形容詞は正確ではありません)。代わりに、これらの開発者は、(彼らの)変更が配布時に利用可能になることを必要としないライセンスの下でコードを好みます。要するに、彼らは自分たちだけのためにソフトウェアの利益を望んでおり、ユーザーのためには望んでいません(それは本当に短く、ある程度の趣味がありますが、そう書くことも有効です)。

違いをわかりやすくするために、これを少し太字にします。実際、すべての開発者は、フリーソフトウェアやプロプライエタリソフトウェアに関係なく、いつでも、どのライセンス条件を選択するかを自分の仕事に決定する必要があります。今日、開発者として私たちはほとんどの場合、ソフトウェアをゼロから作成しないため、いわゆる派生物を実際に作成します。既存のものを変更します。したがって、私たちはすでにいくつかの既存のソフトウェアのライセンスに拘束されています。そのライセンス条項が気に入らない場合は、最初から作成する必要があります(公開されているすべてのものから学ぶことは完全に有効であるため、そうすることもできます。そうでない場合は想像してみてください)。

ここで重要なのは配布です。基本的に、それはあなたが他の誰かにソフトウェアを渡すことを意味するだけです。逆もまた同様です。他の誰かからソフトウェアを入手します。

ディストリビューションがなければ、実際にすべてのことをソースコードで行うことができます。誰も気づかないので「違法」なもの。自分で書いたようなものですが、コンピュータに入力する必要はありませんでした。かなり速く入力できても、コピーするのが大好きです。

あなたは自分でこれを行います。これには、要求する変更も含まれます。独自の only の変更を行う限り、ライセンスをまったく無視することもできます(免責事項:法的アドバイスではありません;))。誰もあなたを邪魔することはありません。実質的にも法的にも。あなたはそれをプライベートで行い、誰も気付かないからです。さて、誰かが何らかの理由で気づいた場合、いくつかのリスクがありますが、ほとんどの法的システムはその情報をあなたに対して使用することさえ許可していません。その側面はおそらくあなたの質問の境界外ですが、それは分布が重要であることを示しています

あなたがそれで遊んでいるためにいくつかのソフトウェアを変更した場合、私はあなたを妨げるような既存の法律には実際には多くはないと思います。あなたは実際にあなたの演奏を科学としてラベル付けする必要があるかもしれませんが、科学は常に演奏していたので、あなた自身を検閲する必要はありません。


つまり、要点を述べると、名前を付けたライセンスについては、著作権所有者による追加の同意を求めることなく、自分で変更を行うことができます(ただし、不明な場合はいつでも行うことができます。ただし、注意してください。ソフトウェア開発者は、約5年前にリリースしたコードについてライセンスに関する質問をしても回答しないため、元の作成者に質問しても実際には役に立たない場合があります。).

確認するには:著作権所有者は、ライセンス条項を提供することを好み、ファイルの上部にあるコードを特定の条件の下にあるとマークしました。これらの条件による変更は自由に行えますすでに(パッケージに著作権ステートメントとライセンスを含める方が常に安全です)。

ただし、用語を注意深くお読みください。いくつかの用語は、あなたが何かに従わない場合、あなたは終了したソフトウェアを変更するあなたの権利を持っていると言います。それは危険で厳しいように聞こえるかもしれませんが、一方で、ほとんどのフリーソフトウェアライセンスには、ソフトウェアが常に無料であることを保証するためにそのような終了条項が含まれていることに注意してください。 GNU GPLはこれを行いますが、他のライセンスはうまく機能します。終了のようなものに注意してください。終了条項は常に、著作権所有者のソフトウェアの取り扱い方法明示的の表明された希望を示しています。これは、助成金が for 何かに与えられることを意味します。そして、ほとんどの場合、それはお金以上のものです。言い換えれば、お金では買えないということです。

あなた自身の変更に対処するには?

あなたも尋ねました:

どこかに登録してソフトウェアのライセンスを取得する必要がありますか、それともApache License2.0で説明されているようなテキストを追加するだけですか。

登録の次に(最近は必要ありませんが、公開するだけで、必要に応じて証明可能な事実を設定できます)、変更を行うときに考慮する必要のある用語もあります。ほとんどのソフトウェアライセンスでは、相互に開始するかどうかに関係なく、既存のコードの横に変更を mark する必要があります。このようなマーク/可視化は、基本的に、誰かがあなたのコードを取得した場合、コードのどの部分があなたによって記述され、どの部分が記述されていないかを表示するという意味です。上記のようにさまざまなタイプのライセンスを使用して、変更に適用されるライセンスに違いが生じる可能性があります。

それが機能するためには、何かを変更した場所を表示する必要があります。では、これは実際にはどういう意味ですか?上部に著作権表示が含まれていて、変更を加えていないファイルの場合、何も変更していないため、著作権表示もまったく変更する必要はありません。

しかし、実際にいくつかの変更を加えたファイルの場合(1バイトを変更した場合はカウントされません。たとえば、いくつかのコード行を含む2つの関数を追加し、既存の関数のいくつかのコード行を変更したとします)、上に著作権。私は、元の著作権声明の上に、本当に上を意味します。ただし、その隣に、このファイルも他のユーザーの著作権で保護されており、その後に元の著作権ステートメントとライセンスの説明、または条件が元のファイルに含まれていた場合は条件も含まれることをステートメントの後に記述してください.

これを行う方法の説明は、次の場所にあります。 GPLライセンスプロジェクトでの許可ライセンスファイルの維持:開発者向けガイドライン 。その記事はGNU GPLの観点から見たもののように見えるかもしれませんが、著作権の侵害を防ぐために最善の意図を持って書かれています。上手。つまり、「著作権の侵害を防ぐ」とは、利用可能なさまざまなライセンスの終了をトリガーしないことを目的としているため、変更(終了しない場合に許可される変更)を(元の)用語にも互換性があります。

なんて文だ。とにかく、そのドキュメントは何をどのような理由で詳細に説明しており、自分のライセンスにも簡単に適用できるので、非常に貴重だと思います。

再開するには:著作権で既存の作品に変更を加える場合は、ファイルを変更したが、独自の(tm)著作権ステートメントとライセンス条項を追加したことを確認し、ファイルに独自のコードがまだ含まれていることを確認してください。著作権と規約。

したがって、行ったコード変更の次に、著作権の変更について説明しました。それなら、あなたは物事を公開するのはかなり大丈夫だと思います。

これはすべて個人的な意見です。いくつかの点で間違っているかもしれませんので、何の保証もありません。おそらくそれはあなたがあなたの質問を続けることができるのを助けるでしょう、しかしそれは何をするつもりでも、特定の目的に合うように書かれていません。

3
hakre

コードの作成者は、使用したいディストリビューションを設定し、必要なライセンスを使用できます。通常の方法では、すべてのソースコードファイルの先頭に小さな通知(および完全なライセンスへのリンク)を付けて、開発者にこのコードを管理するライセンスの種類を通知します。

他の人のコードを使用、変更、または配布する場合、他の人の許可を求める必要はありません。その人のライセンスに従うだけで済みます。ライセンス自体は、コードを使用して実行できることと実行できないことの許可です。

6
Peter Knego

これは、開発する内容によっては非常に複雑な質問になる場合があります。

たとえば、Eclipseプロジェクト内には、著作権ヘッダー、ルート内のepl-v10.html、および他のライセンスが使用されているサブフォルダー内のいくつかのabout.htmlがあります。

ただし、作成した単純なプロジェクトの場合は、ライセンステキストを取得してソースルートフォルダーに追加し、前述のテンプレートを使用してソースファイルヘッダーに著作権を追加するだけです。

プロジェクトでリンク/使用する追加のライブラリについては、これが合法かどうかを確認してください。詳細については、 http://www.opensource.org/ を参照してください。その場合、おそらく他のライセンスについても言及する必要があります。

1
user625146