web-dev-qa-db-ja.com

BSDライセンスのオープンソースプロジェクトを管理している場合、誰かがGPLライセンスのコードを違法に寄贈しないようにするにはどうすればよいですか?

BSD、MITまたは他の寛容なライセンスの下でライセンスされたオープンソースプロジェクトは、コミュニティからのコードの寄付を受け入れます。

自分が所有していないGPLライセンスのコードを誰かが取得してそれをBSDライセンスのプロジェクトに提出するのを防ぐにはどうすればよいですか?貢献がGPLライセンスのプロジェクトから盗まれたことを知りませんし、それを受け入れます。

プロジェクト全体をGPLにしないように、私はそのような貢献を受け入れたくありません。しかし、貢献者が貢献しているコードの著作権を実際に持っているかどうかを知る方法はありません。したがって、誰かがGPLライセンスのコードを私のプロジェクトに不法に寄付した場合、それらを止める方法を知りません(寄付をまったく受け入れないことを除けば)。

確かに、たくさんのBSDとMITライセンスされたプロジェクトが世の中にあるので、解決策があるはずです。

ありがとう!

8
Joe

enter image description here

単に違法な寄付を「防ぐ」だけではありません。

献金を盲目的に受け入れることは決してなく、いくつかの種類のトラブルに対して献金(自分のものを含む)を吟味するプロセスが必要です。

  • 単体テスト(自動)
  • バックドアとセキュリティの欠陥(静的分析が役立つ場合があり、他のツールが存在する)
  • コードのにおい(自動)
  • 貧弱なコードロジック(ピアレビュー、「バグを浅くするのに十分な目」など-OpenSSLの話は、これでは十分でない可能性があることを示しています)
  • 私は他のいくつかを逃したと確信しています-貢献は歓迎します

あなたがする必要がある「すべて」は、盗用のチェックを追加することです。これは、関連するコード行をグーグルするだけで、自動ツールを使用してある程度実行できます。

プロジェクトからコードのサンプルをいくつか持ち上げて試したところ、うまくいきました。コードから文字列、フォーマット、コメント、関数名、プロトタイプを抽出し、それらすべてをグーグルで検索して、単一のサイトが複数の一致で出現した場所を調べました。 19件中17件のテストで、ソースサイトは5つの候補のうちの最初のものでした。すべてのケースで、サイトは最初の5つに表示されました。対照的に、私の独自のコードでは、20件中3件(4つ)のケースで偽陽性を引き起こし、ターゲットの品質は非常に低かったため、6か所のサイトをすばやく閲覧することで、アラートを無視できました。さらに、GPLコードを使用すると、Google検索からのスニペットは、目に見えて私がテストしたコードと同じでした。

この時点で、私は手でそれを行うことができると確信しています。コードを見て、コメントを見てください(コメントは意味がありますか?そうでない場合、それは別の種類の赤信号です。そうである場合、コメントがすべて言い換えられているか(!)または見つけてください)、いくつかのテキスト文字列をGoogleや他の検索エンジンに接続します。

そして、あなたはsizeable貢献のためだけにこれをする必要があります。

法的な観点から-私はすぐに私の深みから抜け出しています-貢献者が何らかの形の放棄または彼らがそうであると述べる同意を受け入れることを必要としていると思います正直に貢献するつもりです。

それらが見つからず、あなたがそれを逃した場合(たとえば、グーグルで見つけられないようにGPLコードを変形/難読化した場合)、IMHOの可能性は、それが閉じ込め目的で行われていない限り、決して見つけられないことです。彼ら自身が笛を吹く。その時点であなたのプロジェクトはGPLに違反し、あなたは次のことができます:

  • プロジェクトからGPLコードを削除する
  • gPLに該当するプロジェクトのrestを宣言する

シナリオ全体が何らかの現実的な問題になるためには、「コントリビューター」が次のことを行う必要があります。

  • 有用な比率の意味のあるGPLコードセクションを見つけ、
  • すべてのライセンス情報を削除し、
  • コメント、関数名、重要な変数名、テキスト文字列-完全に書き換えて、検索でコードが見つからないようにしますが、同じように、同時にそのままにしておく
  • コードベースでコードを「シチュー」し、他の貢献者がその機能に依存するようにします。コードを削除することが問題になるまで

全体のシナリオ、特に最後のポイントは、私には本当に行き詰まっているようです。盗作のチェックが整ったら、私は心配しなくなります。

6
LSerni