허용·조건·제한 한눈에 보기
조건
- 소스 공개배포할 때 소스 코드를 제공해야 한다.
- 저작권·라이선스 고지배포할 때 라이선스 사본과 저작권 표시를 함께 넣어야 한다.
- 동일 라이선스(파일 단위)기존 파일을 수정한 부분은 같은 라이선스로 배포해야 한다.
제한
- 책임 제한손해에 대한 책임을 지지 않는다고 명시한다.
- 상표 사용상표권을 부여하지 않는다고 명시한다.
- 보증 없음어떤 보증도 하지 않는다고 명시한다.
권한·조건·제한 분류 출처: choosealicense.com (GitHub, MIT 라이선스) 데이터.
어떤 라이선스인가
MPL 2.0 은 Mozilla 재단이 2012년 1월에 발표했습니다. Firefox·Thunderbird 등 Mozilla 제품이 쓰며, 카피레프트의 범위를 파일 단위로 잡은 것이 특징입니다. MPL 이 적용된 파일(및 그 파일을 고친 부분)은 MPL 로 소스를 공개해야 하지만, 새로 작성한 별도 파일은 다른 라이선스로 둘 수 있고 MPL 코드와 합친 'Larger Work'(3.3조) 전체는 원하는 조건으로 배포할 수 있습니다. 명시적 특허 허락과 특허 소송 시 허락 종료 조항도 있습니다.
배포할 때 지켜야 할 것
- 실행 파일로 배포하면 MPL 적용 파일의 소스를 받을 수 있는 방법을 알립니다(3.2조).
- MPL 파일의 라이선스 고지를 제거·변경하지 않습니다.
- MPL 파일을 수정했다면 그 파일은 계속 MPL-2.0 으로 배포합니다.
Secondary License 와 GPL 호환성
MPL-2.0 1.12조는 GPL-2.0·LGPL-2.1·AGPL-3.0 과 그 이후 판을 'Secondary License'로 정의합니다. 3.3조에 따라 MPL 코드와 GNU 라이선스 코드를 결합한 Larger Work 는 GNU 라이선스로 배포할 수 있습니다. 단 원저작자가 파일에 Exhibit B('Incompatible With Secondary Licenses') 고지를 붙였다면 이 호환성은 적용되지 않습니다. MPL-1.1 에는 이런 장치가 없어 GPL 과 호환되지 않았고, 2.0 에서 개선됐습니다.
자주 하는 오해
- "MPL 라이브러리를 쓰면 내 앱도 MPL" — 아닙니다. 내가 새로 만든 파일은 MPL 이 아니어도 됩니다.
- "MPL 은 GPL 과 섞을 수 없다" — 2.0 부터는 Exhibit B 가 없는 한 가능합니다.
- "MPL 파일을 복사해 내 파일에 붙여 넣어도 내 파일은 자유" — MPL 코드를 옮겨 붙인 부분은 여전히 MPL 입니다. 파일 경계가 곧 의무의 경계이므로 코드를 섞지 말고 파일로 분리하는 것이 안전합니다.
적용 방법
원문을 LICENSE 에 두고, 각 소스 파일 맨 위에 Exhibit A 고지문('This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0…')을 붙이는 것이 권장됩니다. 파일에 넣기 어렵다면 해당 디렉터리의 LICENSE 파일처럼 수신자가 찾을 만한 곳에 둬도 됩니다. SPDX 식별자는 MPL-2.0(Exhibit B 가 있으면 MPL-2.0-no-copyleft-exception)입니다.
이런 경우에 어울린다
라이브러리나 엔진 자체의 개선은 돌려받고 싶지만, 이를 쓰는 제품의 라이선스는 제약하고 싶지 않을 때 좋은 절충안입니다. LGPL 보다 조건이 단순하고 정적 링크 문제도 없습니다. HashiCorp 가 2023년에 Terraform 을 MPL-2.0 에서 BUSL 로 바꾸자 커뮤니티가 MPL-2.0 버전을 OpenTofu 로 포크한 사례도 있습니다.
MPL-2.0 코드를 다른 프로젝트에 넣을 수 있을까?
이 라이선스로 공개된 코드를 가져와 아래 라이선스의 프로젝트에 합쳐 배포할 때의 일반적인 판정입니다. 호환성 검사기에서 다른 조합 보기 →
| 넣으려는 프로젝트 | 판정 | 메모 |
|---|---|---|
| 비공개(상용) 소프트웨어 | 조건부 가능 | MPL 파일은 파일 단위로 MPL-2.0 을 유지하고 그 파일들의 소스를 제공해야 합니다. 나머지 코드는 다른 라이선스로 둘 수 있습니다. |
| MIT | 조건부 가능 | MPL 파일은 파일 단위로 MPL-2.0 을 유지하고 그 파일들의 소스를 제공해야 합니다. 나머지 코드는 다른 라이선스로 둘 수 있습니다. |
| Apache-2.0 | 조건부 가능 | MPL 파일은 파일 단위로 MPL-2.0 을 유지하고 그 파일들의 소스를 제공해야 합니다. 나머지 코드는 다른 라이선스로 둘 수 있습니다. |
| LGPL-2.1 | 조건부 가능 | MPL-2.0 은 GPL-2.0 이상·LGPL-2.1 이상·AGPL-3.0 이상을 'Secondary License'로 인정해 결합본을 GNU 라이선스로 배포할 수 있습니다. 단 원저작자가 'Incompatible With Secondary Licenses'(Exhibit B)를 붙였다면 불가합니다. |
| LGPL-3.0 | 조건부 가능 | MPL-2.0 은 GPL-2.0 이상·LGPL-2.1 이상·AGPL-3.0 이상을 'Secondary License'로 인정해 결합본을 GNU 라이선스로 배포할 수 있습니다. 단 원저작자가 'Incompatible With Secondary Licenses'(Exhibit B)를 붙였다면 불가합니다. |
| GPL-2.0 | 조건부 가능 | MPL-2.0 은 GPL-2.0 이상·LGPL-2.1 이상·AGPL-3.0 이상을 'Secondary License'로 인정해 결합본을 GNU 라이선스로 배포할 수 있습니다. 단 원저작자가 'Incompatible With Secondary Licenses'(Exhibit B)를 붙였다면 불가합니다. |
| GPL-3.0 | 조건부 가능 | MPL-2.0 은 GPL-2.0 이상·LGPL-2.1 이상·AGPL-3.0 이상을 'Secondary License'로 인정해 결합본을 GNU 라이선스로 배포할 수 있습니다. 단 원저작자가 'Incompatible With Secondary Licenses'(Exhibit B)를 붙였다면 불가합니다. |
| AGPL-3.0 | 조건부 가능 | MPL-2.0 은 GPL-2.0 이상·LGPL-2.1 이상·AGPL-3.0 이상을 'Secondary License'로 인정해 결합본을 GNU 라이선스로 배포할 수 있습니다. 단 원저작자가 'Incompatible With Secondary Licenses'(Exhibit B)를 붙였다면 불가합니다. |
이 사이트의 내용은 일반 정보이며 법률 자문이 아닙니다. 실제 배포·계약·분쟁 판단은 변호사 등 전문가와 상의하세요.