私はiOS開発者で、最近さまざまなプロジェクトのために他のいくつかの言語からコードを移植していることに気づき、コードのライセンスについて考えさせられました。
コードを移植するとき、それは既存のコードの「使用」と見なされますか、それとも何もコピーして貼り付けていないので、コードは新しいエンティティですか?
portingがあります。これは、誰かのソースコードを使用して、別のシステムまたは別の言語で動作するものを作成することです。
次に、リバースエンジニアリングがあります。これは、他の誰かのプログラムのように動作するが、元の作業からの本質は何もないものを作成することです。
移植は、あなたが彼らの許可を得ていることを意味します。そのため、元の作成者に、ライセンスに関するあなたの権利とそのリリース方法を尋ねる必要があります。
リバースエンジニアリングは、できないまたはできない元の作成者に相談してください。そうすれば、好きなことを何でもできます。 (弁護士のために目を光らせてください)
アルゴリズムは特許を取得していますか?そうでない場合、残っているのは著作権のみです。著作権は、元の言語の元のソースコードに適用されます。だから問題は、新しいバージョンはどのように違うのですか?
ライブラリを変更しなければならないほど、それは完全に新しい作品になります。
これは元のライセンスに依存します-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 を参照してください