GitLab 라이선싱 및 호환성
GitLab Community Edition (CE)은 MIT 라이선스 조건에 따라 라이선스가 부여됩니다. GitLab Enterprise Edition (EE)는 “GitLab Enterprise Edition (EE) 라이선스“에 따라 라이선스가 부여되며, 여기에는 더 많은 제한이 있습니다.
자동화된 테스트
사용하는 라이브러리의 라이선스 조건을 준수하려면 새로운 젬에 호환되는 라이선스가 있는지 확인해야 합니다. 이 프로세스를 자동화하기 위해 Pivotal의 License Finder 젬을 사용합니다. 새로운 커밋이 푸시될 때마다 실행되어 번들 내의 모든 젬 및 노드 모듈이 GitLab Community Edition 또는 GitLab Enterprise Edition의 라이선스와 충돌하지 않는 라이선스를 사용하는지 확인합니다.
그러나 자동화된 테스트에는 몇 가지 제한이 있습니다. Bundler, npm 또는 Yarn을 통해 포함되지 않은 CSS, JavaScript 또는 Ruby 라이브러리(예: vendor
디렉터리 내에서 매뉴얼으로 복사된 것 등)는 매뉴얼으로 독립적으로 검증해야 합니다. 이러한 라이브러리를 사용할 때 주의가 필요하며, 자동화된 테스트에서 문제가 되는 라이선스를 잡아내지 못할 수 있습니다.
일부 젬은 라이선스 정보를 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에 알려주려면:
license_finder licenses add my_unknown_dependency MIT
위 모든 명령에는 언제, 왜, 누가 의존성을 승인했는지를 decisions.yml
파일이 추적할 수 있도록 하는 --why "이유"
및 --who "내 이름"
을 포함해야 합니다.
이 젬과 해당 명령의 더 자세한 정보는 License Finder README에서 확인할 수 있습니다.
알 수 없는 또는 리드 등급 소프트웨어의 승인
우리는 Blue Oak Council의 라이선스 디렉터리에 없거나 디렉터리에서 리드 등급으로 표시된 타사 소프트웨어를 사용해야 할 때가 있습니다. 이 경우 소프트웨어를 설치하기 전에 사용 사례가 법적으로 승인되어야 합니다. 자세한 내용은 핸드북에서 확인할 수 있습니다.
법적 승인을 받으려면 다음 단계를 따르세요:
- 새 법적 이슈를 생성하세요. 가능한 많은 세부 정보를 포함해야 합니다:
- 소프트웨어의 라이선스는 무엇입니까?
- 어떻게 사용되고 어디에서 사용됩니까?
- 상위 프로젝트를 사용할건지, 판매할건지, 또는 상위 프로젝트를 사용합니까?
- 관련 링크가 있습니까?
- 사용 사례가 법적으로 승인되면 GitLab 프로젝트에 이 소프트웨어를 허용 디렉터리에 추가하세요. License Finder commands를 참조하세요.
- 소프트웨어가 Omnibus에서도 인식되도록 확인하세요.
omnibus-gitlab
프로젝트에 대해 새 MR을 생성하세요. 변경 내용은 이 MR를 참조하세요. 다음 파일을 편집해야 합니다:lib/gitlab/license/analyzer.rb
support/dependency_decisions.yml
암호화 키
고객 포털 또는 라이선스 앱의 로컬 개발 환경이나 스테이징 환경에서 라이선스를 생성한 경우, 올바른 복호화 키를 사용하려면 환경 변수 GITLAB_LICENSE_MODE
에 값 test
를 설정해야 합니다.
이러한 프로젝트는 기본적으로 테스트 라이선스 암호화 키를 사용하도록 설정되어 있습니다.
추가 정보
라이선싱에 대한 자세한 정보는 오픈 소스 페이지를 참조하세요.