GitLab 라이선스 및 호환성
GitLab v19.1GitLab Community Edition (CE)은 MIT 라이선스 조건에 따라 라이선스가 부여됩니다. 우리가 사용하는 라이브러리의 라이선스 조건을 준수하기 위해, 새로운 gem이 추가될 때마다 호환 가능한 라이선스인지 확인해야 합니다.
GitLab Community Edition (CE)은 MIT 라이선스 조건에 따라 라이선스가 부여됩니다. GitLab Enterprise Edition (EE)은 "GitLab Enterprise Edition (EE) 라이선스"에 따라 라이선스가 부여되며, 더 많은 제한이 있습니다.
자동화 테스트#
우리가 사용하는 라이브러리의 라이선스 조건을 준수하기 위해, 새로운 gem이 추가될 때마다 호환 가능한 라이선스인지 확인해야 합니다. 이 프로세스를 자동화하기 위해 Pivotal의 License Finder gem을 사용합니다. 새 커밋이 푸시될 때마다 실행되어, 번들의 모든 gem과 노드 모듈이 GitLab Community Edition 또는 GitLab Enterprise Edition의 라이선스와 충돌하지 않는 라이선스를 사용하는지 검증합니다.
그러나 자동화 테스트에는 몇 가지 제한이 있습니다. Bundler, npm, 또는 Yarn을 통해 포함되지 않은 CSS, JavaScript, 또는 Ruby 라이브러리(예: 소스 트리의 vendor 디렉터리에 수동으로 복사된 것들)는 수동으로 독립적으로 검증해야 합니다. 자동화 테스트가 이러한 라이브러리의 문제 있는 라이선스를 감지하지 못하므로, 이러한 라이브러리를 사용할 때는 주의가 필요합니다.
일부 gem은 gemspec 파일에 라이선스 정보를 포함하지 않을 수 있으며, 일부 노드 모듈은 package.json 파일에 라이선스 정보를 포함하지 않을 수 있습니다. 이러한 경우 License Finder가 감지하지 못하므로 수동으로 검증해야 합니다.
License Finder 명령어#
License Finder가 제공하는 기본 명령어 중 라이선스 감지를 관리하는 데 필요한 몇 가지가 있습니다.
검사가 통과되는지 확인하거나 어떤 의존성이 검사 실패를 유발하는지 확인하려면:
bundle exec license_finder
새 라이선스를 허용 목록에 추가하려면:
license_finder permitted_licenses add MIT
새 라이선스를 거부 목록에 추가하려면:
license_finder restricted_licenses add Unlicense
라이선스가 자동으로 감지되지 않는 의존성의 라이선스를 License Finder에 알리려면:
license_finder licenses add my_unknown_dependency MIT
위의 모든 명령어에는 --why "Reason"과 --who "My Name"을 포함하여 decisions.yml 파일에서 의존성을 언제, 왜, 누가 승인했는지 추적할 수 있도록 합니다.
gem과 명령어 작동 방식에 대한 자세한 정보는 License Finder README에서 확인할 수 있습니다.
미승인 또는 Lead 라이선스 소프트웨어 승인 받기#
때로는 Blue Oak Council 라이선스 목록에 없거나 목록에서 Lead 등급으로 표시된 라이선스를 가진 서드파티 소프트웨어를 사용해야 할 수 있습니다. 이 경우 소프트웨어를 설치하기 전에 사용 사례에 대한 법적 승인이 필요합니다. 이에 대한 자세한 내용은 핸드북에서 확인할 수 있습니다.
법적 승인을 받으려면 다음 단계를 따르세요:
- 새 법적 이슈를 생성하세요. 가능한 한 많은 세부 정보를 포함해야 합니다:
소프트웨어가 사용하는 라이선스는 무엇인가요?
-
어떻게, 어디서 사용될 예정인가요?
-
벤더링 또는 포킹될 예정인가요, 아니면 업스트림 프로젝트를 그대로 사용할 예정인가요?
-
관련 링크.
-
사용이 법적으로 승인된 후, GitLab 프로젝트에서 소프트웨어를 허용 목록에 추가하세요. 위의 License Finder 명령어를 참조하세요.
-
소프트웨어가 Omnibus에서도 인식되는지 확인하세요.
omnibus-gitlab프로젝트에 새 머지 리퀘스트를 생성하세요. 변경 사항이 어떻게 보여야 하는지에 대한 예시는 이 머지 리퀘스트를 참조하세요. 다음 파일들을 편집해야 합니다:
lib/gitlab/license/analyzer.rb
support/dependency_decisions.yml
암호화 키#
라이선스가 Customers Portal 또는 License App의 로컬 개발 또는 스테이징 환경에서 생성된 경우, 올바른 복호화 키를 사용하기 위해 값이 test인 GITLAB_LICENSE_MODE 환경 변수를 설정해야 합니다.
해당 프로젝트들은 기본적으로 테스트 라이선스 암호화 키를 사용하도록 설정되어 있습니다.
추가 정보#
라이선스에 대한 자세한 내용은 오픈 소스 페이지를 참조하세요.