근거
라이선스 식이 도입되면 개별 라이선스 식별자, 예외 식별자 또는 라이선스 식에 대한 참조 텍스트를 제공하는 신뢰할 수 있는 서비스가 있어야 한다는 요구 사항이 등장했습니다. 이 서비스에 대한 추가 요구 사항은 링크 부패에 취약하지 않은 안정적인 URL 스키마를 갖추는 것으로, 이전 클라이언트에게 이전 버전과의 호환성을 안전하게 제공할 수 있도록 해야 합니다.
Licenses.nuget.org 해당 역할을 수행합니다. Nuget.org 이를 사용하여 라이선스 식을 사용하여 라이선스를 지정하는 패키지에 대한 라이선스 텍스트 참조를 제공합니다.
nuget pack 또는 다른 클라이언트 도구와 함께 압축할 때, licenseUrl 요소를 licenses.nuget.org를 가리키도록 설정하여, license 요소를 지원하지 않는 예전 클라이언트와의 이전 버전 호환성을 제공합니다.
라이선스 및 예외 텍스트
licenses.nuget.org 표시되는 라이선스 및 라이선스 예외 정보는 SPDX 프로젝트의 라이선스 목록 데이터 리포지토리에서 복사됩니다. 정보가 표시되는 형식은 SPDX 웹 사이트 자체에서 사용하는 형식과 밀접하게 모방됩니다. 예를 들어 licenses.nuget.org MIT 및 SPDX.org MIT를 참조하세요.
오픈 소스 이니셔티브 또는 무료 소프트웨어 재단에서 승인되지 않은 라이선스는 licenses.nuget.org 호스트되지 않으며 제외됩니다.
일반 텍스트 외에도 여러 스타일이 라이선스 표시에 사용됩니다. SPDX 라이선스 목록 데이터 FAQ에 따르면 빨간색 텍스트는 바꿀 수 있는 것으로 간주되며 파란색 텍스트는 생략할 수 있는 것으로 간주됩니다. SPDX 라이선스 목록 데이터에 대한 자세한 내용은 해당 FAQ 및 SPDX 라이선스 템플릿 사양을 참조하세요.
데이터는 SPDX에서 비정기적으로 nuget.org에 의해 licenses.nuget.org로 복사됩니다. 라이선스 식별자가 오픈 소스 이니셔티브 또는 프리 소프트웨어 재단의 승인을 받았지만 licenses.nuget.org에 표시되지 않는 경우, 문제를 보고해 주시면, nuget.org 팀이 SPDX의 최신 데이터로 licenses.nuget.org를 업데이트하고 nuget.org의 패키지 업로드 유효성 검사를 작업합니다.
패키지 작성자가 licenses.nuget.org 사용할 수 있는 공유 라이선스 텍스트에 만족하지 않는 경우 NuGet 패키지에 대한 라이선스 식 대신 포함된 라이선스 텍스트 (<license type="file">)를 사용하는 것이 좋습니다. 이렇게 하면 라이선스 조건을 완전히 사용자 지정하고 패키지 내에 사용자 지정된 텍스트를 포함할 수 있습니다.
프로토콜
Licenses.nuget.org은 사용자가 브라우저에서 볼 수 있도록 만들어졌으며, 기계가 읽을 수 있는 응답은 제공되지 않습니다.
HTTPS 프로토콜을 사용해야 하며 요청은 특정 방식으로 생성되어야 합니다.
GET 요청만 지원합니다.
라이선스 식 또는 라이선스 예외 식별자를 아래에 지정된 방식으로 입력으로 허용합니다. 라이선스 식의 모든 요소는 대/소문자를 구분하므로 licenses.nuget.org 대한 모든 입력도 대/소문자를 구분합니다.
라이선스 표현
요청
라이선스 식(식이 단일 라이선스로 구성된 경우의 사소한 경우 포함)은 URL로 인코딩 되고 licenses.nuget.org 요청의 경로로 사용되어야 합니다.
| 라이선스 표현 | 사용할 URL 주소 |
|---|---|
| MIT | https://licenses.nuget.org/MIT |
| (MIT) | https://licenses.nuget.org/(MIT) |
| (LGPL-2.0-only WITH FLTK-exception OR Apache-2.0 이상) | https://licenses.nuget.org/(LGPL-2.0-only%20WITH%20FLTK-exception%20OR%20Apache-2.0+) |
이 서비스는 nuget.org 허용되는 라이선스 식별자 및 라이선스 예외 식별자만 지원합니다. 특히 이는 오픈 소스 이니셔티브 또는 무료 소프트웨어 재단에서 승인한 라이선스 식별자만 수락됨을 의미합니다. 지원되지 않는 라이선스 식별자 또는 라이선스 예외 식별자를 포함하거나 라이선스 식 구문을 준수하지 않는 모든 라이선스 식은 잘못된 것으로 간주됩니다.
응답
Licenses.nuget.org HTTP 200 상태 코드와 라이선스 식에 대한 설명이 포함된 웹 페이지가 있는 유효한 라이선스 식을 포함하는 요청에 응답합니다.
- 제공된 라이선스 식에 단일 라이선스 식별자가 포함되어 있으면 해당 라이선스 참조 텍스트가 포함된 웹 페이지가 반환됩니다.
- 제공된 라이선스 식이 복합 라이선스 식이면 개별 라이선스 또는 라이선스 예외 참조에 대한 링크가 포함된 라이선스 식이 포함된 웹 페이지가 반환됩니다.
잘못된 라이선스 식을 포함하는 모든 요청은 HTTP 404 응답을 생성합니다.
라이선스 예외
요청
라이선스 예외 식별자는 URL로 인코딩되고 licenses.nuget.org 요청의 경로로 사용되어야 합니다. 단일 요청에서 단일 라이선스 예외 식별자만 제공할 수 있습니다. URL의 경로 부분에 라이선스 예외 식별자 외에 추가 문자가 없을 수 있습니다.
| 라이선스 예외 식별자 | 사용할 URL |
|---|---|
| FLTK 예외 | https://licenses.nuget.org/FLTK-exception |
| openvpn-openssl-exception | https://licenses.nuget.org/openvpn-openssl-exception |
응답
Licenses.nuget.org HTTP 200 응답 및 지정된 라이선스 예외에 대한 참조 텍스트가 포함된 웹 페이지를 사용하여 알려진 라이선스 예외 식별자를 사용하여 요청에 응답합니다.
지원되지 않는 라이선스 예외 식별자를 포함하는 모든 요청은 HTTP 404 응답을 생성합니다.