rust-lang/rust 라이선스
별도로 명시되지 않는 한, rustc 컴파일러 소스와 표준 라이브러리는 Apache License v2.0과 MIT License의 이중 라이선스로 배포됩니다.
자세한 라이선스 정보는 rust-lang/rust 저장소의 COPYRIGHT 문서에서 확인할 수 있습니다.
리뷰어를 위한 지침
일반적으로 리뷰어는 기여된 코드의 품질뿐만 아니라 해당 코드의 라이선스가 적절한지도 살펴보아야 합니다. 리뷰할 때 주의해야 할 사항에 대한 몇 가지 팁을 아래에 정리해 두었지만, 어떤 코드의 라이선스가 적절한지 확신이 서지 않을 때에는 언제든 안전한 쪽을 택하십시오. 위원회(Council)나 컴파일러 팀 리드에게 연락하여 의견을 구하십시오!
주의해야 할 사항:
- PR 작성자가 다른 출처의 코드를 복사하거나, 포팅하거나, 변형했다고 밝히는 경우입니다.
- 코드에 웹 페이지를 가리키거나 알고리즘의 출처를 설명하는 주석이 있는 경우입니다.
- 알고리즘이나 코드 패턴이 다른 곳에서 복사해 온 것으로 보이는 경우입니다.
- 새 의존성을 추가할 때에는 해당 의존성의 라이선스를 다시 한번 확인하십시오.
이러한 모든 경우에는 해당 출처를 확인하여 Rust의 라이선스와 호환되는 방식으로 라이선스가 부여되어 있는지 확인해야 합니다.
예시
- GNU binutils와 같은 GPL 프로젝트의 C 코드를 포팅하는 것은 허용되지 않습니다. 그렇게 하면 Rust 자체가 GPL로 라이선스되어야 하기 때문입니다.
- 알고리즘 교과서의 코드를 복사하는 것은 허용될 수도 있지만, 일부 알고리즘은 특허로 보호받고 있습니다.
포팅
rustc에 대한 기여, 특히 플랫폼 및 컴파일러 내장 함수(intrinsics)와 관련된 기여에는 다른 프로젝트(주로 LLVM과 GCC)의 작업을 포팅하는 일이 자주 포함됩니다.
다음과 같은 일반적인 규칙이 적용됩니다:
- 다른 작업을 복사할 때에는 원본 라이선스를 준수해야 합니다
- 이는 직접 복사 & 붙여넣기한 경우에 적용됩니다
- 이는 살펴본 뒤 포팅한 코드에도 적용됩니다
일반적으로 다른 코드베이스에서 영감을 얻는 것은 괜찮지만, 코드를 포팅할 때에는 주의를 기울이십시오.
라이브러리 전체를 포팅하는 경우(예: LLVM과 함께 제공되는 C 라이브러리)에는 원본 라이브러리의 라이선스를 유지해야 합니다.