OpenStack 공식 프로젝트의 소스 코드는 Apache License 2.0 으로 배포된다. 소프트웨어 자체에 대한 라이선스 비용은 없고, 상업적 사용 · 수정 · 사내 비공개 사용 · 유료 제품에 포함하는 것까지 모두 허용된다. 비용이 생기는 지점은 상용 배포판 구독과 기술지원 계약이다.
| 구분 | 내용 |
|---|---|
| 허용 | 상업적 사용, 수정, 배포, 특허 사용 허락, 사유(proprietary) 제품에 포함 |
| 요구 | 라이선스 사본 동봉, 저작권 고지 유지, NOTICE 파일이 있으면 그 내용 유지, 수정한 파일에 변경 사실 표시 |
| 요구하지 않음 | 수정한 소스의 공개. Apache 2.0 은 카피레프트가 아니다 |
GPL 계열과 달리 파생물 전체를 같은 라이선스로 공개할 의무가 없다. 그래서 OpenStack 을 가져다 설치 자동화 · 운영 콘솔 · 모니터링을 얹고 자체 배포판으로 유료 판매하는 사업 모델이 성립한다. 자체 개발한 구성 요소는 별도의 상용 라이선스로 둘 수 있다.
자체 클라우드 제품
├─ OpenStack Nova / Neutron / Cinder Apache 2.0
├─ 수정한 Horizon Apache 2.0 (변경 사실 표시)
├─ 자체 설치 도구 · 관리 콘솔 · 모니터링 자체 상용 라이선스
└─ 배포판 OS · MariaDB · RabbitMQ · HAProxy 각각의 라이선스
소스 코드 재배포 권리와 OpenStack 상표 사용 권리는 다른 문제다. Apache 2.0 은 상표권을 부여하지 않는다는 조항을 명시적으로 두고 있다. 제품 이름에 OpenStack 을 넣는 형태와 "OpenStack 기반" 이라고 설명하는 형태는 법적 성격이 다르므로, 제품명을 정하기 전에 OpenStack 상표 정책을 확인하고 필요하면 별도 승인을 받는다.
공식 OpenStack 프로젝트는 대체로 Apache 2.0 이지만, 파이썬 의존 라이브러리와 배포판 패키지에는 BSD · MIT · LGPL · GPL 이 섞여 있다. 특히 LGPL 라이브러리를 정적으로 묶거나 GPL 도구를 제품에 동봉하면 의무가 달라진다. 제품으로 내보낼 것이라면 SBOM 을 만들고 라이선스 고지 문서를 따로 관리한다.
pip-licenses --format=markdown --with-urls > OSS_LICENSE_NOTICE.md
rpm -qa --qf '%{NAME} %{VERSION} %{LICENSE}\n' | sort
Red Hat OpenStack Services on OpenShift 처럼 벤더가 패키징한 제품은 OpenStack 오픈소스를 기반으로 하되 패키징 · 업데이트 · 지원에 대해 벤더의 구독 계약이 따로 적용된다. 구독 없이 그 벤더의 저장소를 쓰거나 이미지를 재배포하는 것은 오픈소스 라이선스와 무관하게 계약 위반이 될 수 있다. 직접 설치해 쓰는 커뮤니티 OpenStack 과는 구분한다.