web-dev-qa-db-ja.com

コードを移植するとき、元のライセンスに従う必要がありますか?

私はiOS開発者で、最近さまざまなプロジェクトのために他のいくつかの言語からコードを移植していることに気づき、コードのライセンスについて考えさせられました。

コードを移植するとき、それは既存のコードの「使用」と見なされますか、それとも何もコピーして貼り付けていないので、コードは新しいエンティティですか?

8
Moshe

portingがあります。これは、誰かのソースコードを使用して、別のシステムまたは別の言語で動作するものを作成することです。

次に、リバースエンジニアリングがあります。これは、他の誰かのプログラムのように動作するが、元の作業からの本質は何もないものを作成することです。

移植は、あなたが彼らの許可を得ていることを意味します。そのため、元の作成者に、ライセンスに関するあなたの権利とそのリリース方法を尋ねる必要があります。

リバースエンジニアリングは、できないまたはできない元の作成者に相談してください。そうすれば、好きなことを何でもできます。 (弁護士のために目を光らせてください

3
Zeke Hansell

アルゴリズムは特許を取得していますか?そうでない場合、残っているのは著作権のみです。著作権は、元の言語の元のソースコードに適用されます。だから問題は、新しいバージョンはどのように違うのですか?

  • それは同じ言語ですが、システムライブラリへの呼び出しが更新されます。この場合、濁った水に近づかないようにするためだけに元のライセンスを保持することを強くお勧めします。これは二次的著作物であり、二次的著作物の元のライセンスで指定された条件に従います。
  • これは新しい言語でのクリーンルームの実装です。この場合、それはnotと同じプロジェクトです。アイデアは特許を取得できますが、著作権を取得することはできません。この場合は、他のライブラリがプラットフォーム上で設計されている方法に対して、APIをもう少しフレンドリーにすることもできます。

ライブラリを変更しなければならないほど、それは完全に新しい作品になります。

2
Berin Loritsch

これは元のライセンスに依存します-GPLの場合、「派生」ソフトウェアに対するコピーレフトのルールを回避するために非常に注意する必要があります。

詳細については、この質問をSOで参照してください https://stackoverflow.com/questions/3256967/what-are-the-copyright-licensing-issues-of-porting-コード

LGPLの場合、状況は似ているようです- https://stackoverflow.com/questions/481216/porting-lgpl-code-what-license-can-i-use を参照してください

1
Stuart