Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

부록: 라이선스 분류자를 SPDX 식별자에 매핑하기

대부분의 단일 라이선스 분류자(즉, 아래에 언급되지 않은 모든 분류자)는 유효한 단일 SPDX 라이선스 식별자에 매핑됩니다. 따라서 도구는 해당 분류자에 대응하는 SPDX 라이선스 식별자를 추론하여 패키지를 분석하고 감사하는 데 사용할 수 있으며, PEP 639 명세에 따라 license 키나 License-Expression 필드를 채우는 반자동 메커니즘을 제공할 수도 있습니다.

일부 레거시 라이선스 분류자는 특정 라이선스를 지정하려는 의도로 만들어졌지만 구체적인 버전이나 변형을 지정하지 않기 때문에, 해당 라이선스의 조건, 호환성, 수용 가능성에 관해 심각한 모호성을 초래합니다. 이러한 분류자 중 하나가 사용된 경우, 도구는 사용자의 명시적인 조치 없이 License-Expression을 자동으로 추론하려고 시도해서는 안 됩니다(MUST NOT).

  • License :: OSI Approved :: Academic Free License (AFL)
  • License :: OSI Approved :: Apache Software License
  • License :: OSI Approved :: Apple Public Source License
  • License :: OSI Approved :: Artistic License
  • License :: OSI Approved :: BSD License
  • License :: OSI Approved :: GNU Affero General Public License v3
  • License :: OSI Approved :: GNU Free Documentation License (FDL)
  • License :: OSI Approved :: GNU General Public License (GPL)
  • License :: OSI Approved :: GNU General Public License v2 (GPLv2)
  • License :: OSI Approved :: GNU General Public License v3 (GPLv3)
  • License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)
  • License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
  • License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
  • License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)

이러한 분류자와 각 분류자가 대응할 수 있는 구체적인 식별자를 망라한 매핑을 Dustin Ingram이 정리했습니다. 도구는 사용자에게 프로젝트에 의도한 라이선스 식별자를 명시적으로 선택하도록 요청할 때, 이 매핑을 참고하여 사용자에게 제시할 식별자 선택지를 정할 수 있습니다(MAY).

Note

몇몇 추가 분류자, 즉 AGPLv3, GPLv2, GPLv3, LGPLv3의 “or later” 변형도 앞서 언급한 매핑에 포함되어 있지만, 이들은 각자의 라이선스에 모호함 없이 매핑되므로 여기에는 나열하지 않습니다. 다만 LGPLv2는 해당 라이선스의 서로 다른 변형인 v2.0과 v2.1 중 어느 쪽을 가리키는지 모호할 수 있으므로 위 목록에 포함했습니다.

또한 여러 특수한 경우에 대해서는 다음 매핑을 이 명세의 목적상 정식이자 규범적인 것으로 간주합니다.

  • License :: Public Domain 분류자는 일반적인 License-Expression: LicenseRef-Public-Domain에 매핑할 수 있습니다(MAY). 도구가 이렇게 매핑하는 경우, CC0 1.0 라이선스 (CC0-1.0), Unlicense (Unlicense), MIT 라이선스 (MIT)의 식별자처럼 더 명시적이고 법적으로 이식성 있는 라이선스 식별자를 사용하도록 권장하는 안내성 경고를 표시해야 합니다(SHOULD). “퍼블릭 도메인”이라는 용어의 의미는 관련된 특정 법적 관할권에 전적으로 좌우되며, 일부 관할권에는 이 개념 자체가 아예 없기 때문입니다. 또는 도구는 이러한 분류자를 모호한 것으로 취급하도록 선택할 수도 있습니다(MAY).
  • 일반적이며 때로는 모호한 분류자는 다음과 같습니다.
    • License :: Free For Educational Use
    • License :: Free For Home Use
    • License :: Free for non-commercial use
    • License :: Freely Distributable
    • License :: Free To Use But Restricted
    • License :: Freeware
    • License :: Other/Proprietary License

    일반적인 License-Expression: LicenseRef-Proprietary로 매핑할 수 있지만(MAY), 도구가 그렇게 하는 경우 눈에 잘 띄고 유익한 경고를 반드시 표시해야 합니다(MUST). 또는 도구는 이러한 분류자를 모호한 것으로 취급하도록 선택할 수도 있습니다(MAY).

  • 일반적이고 모호한 분류자인 License :: OSI Approved와 License :: DFSG approved는 어떠한 라이선스 표현식에도 매핑되지 않으므로, 도구는 이를 모호한 것으로 취급해야 하며(SHOULD), 그렇지 않은 경우에는 반드시 무시해야 합니다(MUST).
  • License :: GUST Font License 1.0과 License :: GUST Font License 2006-09-30 분류자는 SPDX 라이선스 식별자로 매핑되지 않으며, 2022-07-09 기준으로 이를 사용하는 PyPI 패키지도 없습니다.

여러 라이선스 분류자가 사용되는 경우 이들 사이의 관계는 모호하며, 모든 라이선스가 적용되는지 아니면 라이선스 중 하나를 선택할 수 있는지를 판단하는 것은 일반적으로 불가능합니다. 이 경우 도구는 라이선스 표현식을 자동으로 추론해서는 안 됩니다(MUST NOT). 단, 한 라이선스 분류자가 다른 분류자의 부모인 경우, 즉 자식이 부모의 ::로 구분된 모든 구성 요소를 포함하는 경우는 예외이며, 이때 도구는 부모 분류자를 무시할 수 있지만(MAY) 그렇게 할 때는 유익한 경고를 표시해야 합니다(SHOULD).