rust-lang/rust ライセンス
rustc コンパイラのソースと標準ライブラリは、特に明記されていない限り、Apache License v2.0 と MIT License のデュアルライセンスです。
詳細なライセンス情報は、rust-lang/rust リポジトリの COPYRIGHT ドキュメント で入手できます。
レビュアー向けガイドライン
一般に、レビュアーはコントリビューションのコード品質だけでなく、それらが適切にライセンスされているかにも 目を向ける必要があります。 レビュー時に注意すべき点について、以下にいくつかのヒントを示します。ただし、あるコードが適切に ライセンスされているかどうか少しでも不安に感じた場合は、安全側に倒してください — フィードバックを得るために Council または Compiler Team Leads に連絡してください!
注意すべき点:
- PR の作成者が、他のソースからコードをコピー、移植、または改変したと述べている。
- コード内に、Web ページを指すコメントや、そのアルゴリズムがどこから取られたかを説明するコメントがある。
- アルゴリズムやコードパターンが、どこか他の場所からコピーされた可能性が高いように見える。
- 新しい依存関係を追加する場合は、その依存関係のライセンスを再確認する。
これらすべての場合において、そのソースが Rust のライセンスと互換性のある形で ライセンスされていることを確認する必要があります。
例
- GNU binutils のような GPL プロジェクトから C コードを移植することは許可されません。それには Rust 自体を GPL の下でライセンスする必要が生じます。
- アルゴリズムの教科書からコードをコピーすることは許可される場合がありますが、一部のアルゴリズムは特許で保護されています。
移植
rustc へのコントリビューション、特にプラットフォームやコンパイラ組み込み関数に関するものには、 他のプロジェクト、主に LLVM や GCC から作業を移植することがよく含まれます。
いくつかの一般的なルールが適用されます:
- 作業をコピーする場合は、元のライセンスに従う必要があります
- これは直接のコピー&ペーストに適用されます
- これは、あなたが参照して移植したコードにも適用されます
一般に、他のコードベースから着想を得ることは問題ありませんが、コードを 移植する際には注意を払ってください。
完全なライブラリ(例: LLVM に同梱されている C ライブラリ)の移植は、元の ライブラリのライセンスを維持しなければなりません。