何らかの形でFOSSとしてリリースする予定のソフトウェアプロジェクトに取り組んでいます。私のコードには、他の人が書いたヘッダー/ソースファイルがかなり含まれています。
stackoverflow.comの回答から直接リフトまたは適応されたコードの断片も同様です。現在のライセンスは次のとおりです。
今、私は自分のプロジェクトをリリースできるライセンスを許可できず、また、ライセンスを許可する必要があるライセンスを確認できませんこれらの状況。私の最初の願いは、GPLのリリースと、おそらく将来的に制限が緩和されるものです。私の質問は:
注:
- 上記のライセンススープが与えられた場合、コードを単一のライセンスでリリースすることもできますか、またはコードの各部分(私のものと他のすべてのもの)に個別のライセンスがあるべきですか?
両方とも。 GPLv3は、あなたの作品が「全体として」GPLv3の下でもライセンスされることを要求します。これと並行して、パーツは独自のライセンスの下に留まることができます(条件に従う場合は必須です)。 このリンクへ によると、あなたが言及したライセンスのほとんどは、GPLv3と直接互換性があります。ただし、「Create Commons Share Alike」(CC-BY-SA-3.0)ライセンスの下にあるSOのコードは除きます、これは少しトリッキーになります。 これ 投稿SOメタ、特に2番目の回答は、CC-BY-SAライセンスを4.0に引き上げることが可能であることを示し、これにより、 GPL v3。
- 人気のあるフリー/オープンソースソフトウェアライセンス(この定義を意図的に曖昧に保つ)のうち、私が使用できるものは何ですか?2.1プロジェクト全体に対して? 2.2自分だけのコードの場合(コードの残りの部分でどのように構築する必要があるかを見て、それは私のものではありません)? 2.3別のライセンスによるコードの派生/変更であるコードについて?
2.1:GPLv3(プロジェクト全体が、含まれているGPLv3コードからの派生物であると想定)
2.2:GPL v3と互換性のある任意のライセンス(私の最初のリンクを参照)
2.3:コードのその部分のライセンスに必要なもの(したがって、すでにGPLライセンスのある部分についてはGPLv3に固執する必要があります)
- 直接使用できない場合でも、プロジェクト全体のライセンスの1つの効果をエミュレートする場合は、どのようにすればよいですか?
ライセンスを組み合わせて使用することができます(必要です)。特にプロジェクト全体でGPLv3を使用することができます。これはおそらく、プロジェクトのGPL v3ライセンステキストだけでなく、パーツのライセンステキストも含める必要があることを意味します。どのライセンスがどの部分に適用されるかを明確にする必要があることは明らかです。
これらのライセンスのほとんどは問題ありません。 (MITとBSDは間違いなく、BoostまたはOpenStackのライセンス/条件に関する問題について聞いたことがありません。)
ただし、GPLライセンスには問題があります。つまり、アプリケーションをリリースする場合は、アプリケーション全体をGPLでリリースする必要があるということです。
コンポーネントのライセンスが実際にGPLではなくLGPLである場合、それは適用されません。 LGPLはすべてを変えるでしょう......
GPLコンポーネントがデュアルライセンスである(またはない)場合は、代替ライセンスを使用できる場合があります。たとえば、著作権所有者とライセンス料について交渉します。しかし、これはあなたの裁量ではなく、あなた自身の裁量によるものです。
GPLは、問題が発生する正当な理由がある場合にのみ、本当に問題になります。
真のGPL(LGPLではない)は、ソフトウェアを使用または変更するエンドユーザーの能力を制限しません。 GPLの基本的な信条は、エンドユーザーの自由を最大化することです。ただし、GPLは、>> you <<がエンドユーザーおよびダウンストリーム組織に課すことができる制限/制約を制限します。 (たとえば、ソースコードの一部を提供しないことでそれらを実現することはできません。下流の組織もそれを行うことはできません。)
つまり、GPLに満足している場合は、コードをGPLとしてライセンスし、次に進んでください。そうでない場合...コードベースのGPLコンポーネントを別のものに置き換える必要がある可能性が最も高くなります。
標準の免責事項が適用されます。 IANAL、etcetera。
[〜#〜]更新[〜#〜]
OpenStackライセンスはMIT で問題ありません。
Boost 1.0 License は寛容なオープンソースであり、問題はありません。
直接的な質問に答えるには:
1)上記のライセンススープが与えられた場合、コードを単一のライセンスでリリースすることもできますか、またはコードの各部分(私のものと他のすべてのもの)に個別のライセンスがあるべきですか?
一部のコンポーネントは、それらを個別に配布したり、変更を個別にライセンス供与したりできますが、製品全体にGPLv3コンポーネントが含まれている場合、製品全体がGPLv3である必要があります。確かに、それが最も簡単なアプローチです。
2)人気のあるフリー/オープンソースソフトウェアライセンス(この定義を意図的に曖昧に保つ)のうち、私が使用できるものは何ですか?
2.1)プロジェクト全体について?
あなたはあなたが言ったことに基づいて、GPLv3を使わなければなりません。
2.2)自分だけのコードの場合(コードの残りの部分でどのように構築する必要があるかを見て、それは私のものではありません)?
コードをGPLv3コードにリンクする必要がある場合は、GPLv3を使用する必要があります。
2.3)別のライセンスでのコードの派生/変更であるコードについて?
それはコードに依存し、それを全体の一部として含めるのか、個別に配布するのかによって異なります。 (MIT/BSD/Boostライブラリへの変更をメイン製品とは別に配布している場合は、ほとんどすべてのライセンス条項を使用できますこれらのコンポーネントへの変更について)。
2.4)直接使用できない場合でも、プロジェクト全体のライセンスの1つの効果をエミュレートしたい場合はどうすればよいですか?
それはオプションではないと思います。特定のコンポーネントに適用されるライセンス条項を「回避」することはできません。コードを使用するための許可は、次のライセンス条項に基づいて条件付きです。最小限の条件を課すため、これは許容ライセンスの問題ではありません。しかし、GPLの場合は、再ライセンスを選択するだけで「それをなくす」ことはできません。オリジナルの著作権所有者だけがそれを行うことができます。
結論として、GPLv3ライセンスによって課せられる条件に耐えられない場合は、アプリケーションでGPLv3コンポーネント/ライブラリ/何も使用しないでください。代わりを見つけてください。
幸運を。
すべてのライセンスを読んで、公開のために設定したすべての条件を読む必要があります。 GPLv3にはGPLv3でのライセンスが必要だと確信しています。別のライセンスを同時に使用できるかどうかはわかりませんが、ありそうにありません。そして、他がGPLv3の下で公開できるかどうかはわかりません。
私が言ったように、頑張ってください。