私は寛大なライセンスの下でリリースしたいオープンソース プロジェクトに取り組んでいます。これはアプリケーションではなくライブラリであり、個人的にはライブラリ コードのコピーレフトが好きではないからです。何かを行う方法の一般的なアイデアを得るためだけに、別のプログラミング言語で書かれた GPL コードを閲覧し、使用している言語で同様または同一のアルゴリズムの別の実装を作成した場合、どのようになる可能性がありますか?結果は?私のコードがコピーレフトの所有者のコードと多少似ていて、明らかに影響を受けている場合、コピーレフトの所有者は正当な苦情を申し立てますか? これらの灰色の領域は通常どのように機能しますか?
6 に答える
「二次創作とは?」プログラマーが答えられる質問ではありません。たとえば、「集合体」と他の種類の「変更されたバージョン」の違いは何ですか? およびGNU ライセンス FAQ全般。
あなたの特定のケースに関して、アルゴリズムは通常著作権法の対象ではありませんが、(悲しいことに)特許法の対象となります。
これらの灰色の領域が通常機能する方法は、あなたがそれについてオープンであり、元の作者と話し、おそらく契約を結ぶことです. どちらの当事者もそこから大きな利益を得ることができないため、そのようなケースが法廷に持ち込まれる可能性は非常に低いです。法廷に持ち込まれた場合、プログラマーではなく、弁護士と裁判官が決定することになります。
プログラムをリリースするときは GPL2/3 に頼ることが知られていますが、私は通常、あらゆる種類のライブラリをリリースするときに X11 ライセンス (別名 3 条項 BSD) を使用します。私がこれを行うのは、私のライブラリがどの FLOSS プロジェクトでも制限なく使用できるようにするためです。これは、ライブラリに関してはコピーレフトの理想を主張するよりも重要です。
その点でライブラリを制限的にするのはちょっとばかげています。たとえば、BSD は GNU の libreadline を editline に書き直し、100% 互換性のあるインターフェイスを維持しました。それはまた、あなたが意図したことをおそらく実行できる理由の適切な例でもあります.
あなたがSchemeで書かれたいくつかの例を見ているなら、あるいはLISP、おそらくPERLでさえ..そしてCでそれの実装を書いているなら、あなたは完全にうまくいくはずです. 独自の実装を作成する際に、既存の実装を調査することはまったく問題ありません。
GNU プロジェクトに問い合わせることを強くお勧めします。きっととてもフレンドリーな返事が返ってくるので、安心して進められるでしょう。
RMS 自身でさえ、GPL/AGPL/LGPL を解釈するのは面倒な場合があることを認めており、この種の質問を期待し、歓迎しています。
おそらくあなたの要件に合う 2 つの優れたライセンス:
- Apache ライセンス、バージョン 2.0は非常に寛容 (MIT/BSD のように) ですが、両当事者を特許訴訟で保護します。
- LGPL、バージョン 3、ライブラリの使用は許可されていますが、さらに開発 (および配布) するには、LGPL を保持し、ソースをリリースする必要があります。
免責事項: 私は弁護士ではありません。ソフトウェア ライセンスについて十分に理解している知的財産権の弁護士に相談してください。愚かな人に会いに行くと、「安全のためにやらないでください」と言われますが、これは誰にでも言えることです。
クリーン ルームの設計を参照してください。ソフトウェアがほぼ同じように動作する場合は、ソース コードを読む必要はありません。
使用を計画している許容ライセンスによっては、質問が意味をなさない場合があります。言い換えれば、あなたのコードが LGPL が提供する基本的な自由を持っているなら、コードのそのままのコピーでも問題なく、著作権所有者があなたを追いかけることはありません。
もう 1 つのポイントは、元のコードが GPL 化されている場合、作成者は、アルゴリズムやアイデアから何かを導き出すことに反対するタイプではないということです (コピーレフトはソフトウェア特許に反対する傾向があるため)。
通常の IANAL 免責事項 - かなりの量のコードを使用し、作成者がコピーレフトで保証することを意図した自由を制限しようとしない限り、実際の問題になる可能性は低いと思います。
通常、SWが機能するために GPL コードに「リンク」する必要がある場合、それは派生作品です...