WindowsAPICodePack 사용시 라이선스 고지

안녕하세요.

현재 C# 으로 프로젝트를 진행하고 있습니다.

소스상에서 WindowsAPICodePack 1.1 패키지를 를 사용중에 있습니다.
Microsoft-WindowsAPICodePack-Core
Microsoft-WindowsAPICodePack-Shell

그리고 곧 제품 출시 예정인데요.

해당 라이선스에 대한 라이선스 고지가 필요 여부를 알고자 합니다.

비쥬얼스튜디오 > 솔루션Nuget패키지관리에서 검색해보면
라이선스 링크는 404 error 가 발생하고,
프로젝트 URL 을 타고 들어가게 되면,
GitHub - contre/Windows-API-Code-Pack-1.1: Windows API Code Pack 1.1)
Custom License (MICROSOFT SOFTWARE LICENSE TERMS)
라고 나옵니다.

chatGPT 는
WindowsAPICodePack은 Microsoft가 제공하는 라이브러리이므로 별도의 라이선스 사본을 따로 요구하지 않습니다.이는 Microsoft가 제공하는 라이브러리이며, 주로 Windows API를 관리하고 상호 작용하기 위한 도구 모음입니다. 따라서 WindowsAPICodePack을 사용하여 개발하더라도 추가적인 라이선스 요구사항

라는 답변을 주네요.

Microsoft-WindowsAPICodePack-Core
Microsoft-WindowsAPICodePack-Shell

  1. 위 패키지는 라이선스 종류가 무엇인가요?
    Microsoft Public License (Ms-PL) 인가요?
  2. 그리고 그 내용과 Application 안에 License 사본을 포함해야하나요?
  3. 해당 패키지를 사용중인 개발 제품을 배포하는데 별도의 조치없이 사용자에게 배포해도 되나요?

배포 대상은 고객사 폐쇄망 PC 로 설치될 예정입니다.

현재 MIT, BSD 3 라이선스는 사본을 포함시켜 프로젝트 소스와 함께 빌드/배포예정입니다.

라이선스 관련된 내용은 반드시 법률 전문가의 검토를 받아보실 것을 강력히 권해드리며, 일단 ChatGPT를 통해 분석해볼 수 있었던 내용은 이렇게 정리됩니다.

  1. 이 프로젝트의 커스텀 라이선스는 Ms-PL과는 또 다른 라이선스입니다.

Microsoft 라이선스와 Microsoft Public License (Ms-PL) 간에는 몇 가지 중요한 차이점이 있습니다. 다음은 그 차이점에 대한 상세한 설명입니다.

Microsoft 라이선스 (Microsoft Windows API Code Pack for .NET Framework)

  • 사용 조건:
    • 소프트웨어는 “있는 그대로” 제공되며, Microsoft는 보증을 하지 않습니다.
    • 배포 시 변경 사항을 명시해야 하고, Microsoft를 면책해야 합니다.
    • 배포된 소프트웨어에 대해 법적 책임은 사용자에게 있으며, Microsoft는 책임을 지지 않습니다.
    • 특정 제한 금액($5.00)에 대한 책임 제한이 있습니다.
    • 악성, 기만적, 불법적인 프로그램에 포함되지 않아야 합니다.
    • 소스 코드의 특정 변경 및 배포에 제한이 있습니다.

Microsoft Public License (Ms-PL)

  • 주요 특징:
    • 사용 및 복제: Ms-PL은 소프트웨어의 사용, 복제, 수정, 배포를 허용합니다.
    • 소스 코드 공개: Ms-PL 라이선스 하에서 배포하는 경우, 수정된 소스 코드를 포함하여 배포해야 하지만, 소스 코드 공개를 강제하지는 않습니다.
    • 배포 조건: 수정된 소프트웨어를 배포할 때는 Ms-PL 라이선스 조건을 포함해야 합니다. 그러나 파생물에 대해 동일한 Ms-PL 라이선스를 적용할 필요는 없습니다.
    • 보증의 부인: 소프트웨어는 “있는 그대로” 제공되며, 명시적이거나 묵시적인 보증이 없습니다.
    • 책임 제한: Ms-PL도 책임을 제한하며, 사용자는 소프트웨어 사용에 따른 모든 위험을 감수해야 합니다.

주요 차이점

  1. 라이선스의 범위:

    • Microsoft 라이선스는 특정 소프트웨어(예: Microsoft Windows API Code Pack for .NET Framework)에 대한 사용 조건을 명시하며, Microsoft의 특정 요구 사항과 제한을 포함합니다.
    • Ms-PL은 더 일반적인 오픈 소스 라이선스로, Microsoft의 다양한 소프트웨어에 적용될 수 있습니다.
  2. 소스 코드 배포:

    • Microsoft 라이선스는 소스 코드 배포에 대해 특정한 제한을 두고 있으며, 특히 특정 라이선스를 사용하여 배포할 수 없도록 제한합니다.
    • Ms-PL은 소스 코드 배포를 허용하며, 수정된 소스 코드를 포함할 것을 요구하지만, GPL과 달리 소스 코드 공개를 강제하지는 않습니다.
  3. 책임 제한 및 면책:

    • Microsoft 라이선스는 특정 제한 금액($5.00)에 대한 책임 제한을 명시적으로 포함하고 있으며, 사용자가 Microsoft를 면책하도록 요구합니다.
    • Ms-PL도 책임을 제한하고 있지만, 특정 금액에 대한 제한은 없습니다. 대신 일반적인 책임 제한 조항을 포함합니다.
  4. 배포 조건:

    • Microsoft 라이선스는 배포 시 변경 사항을 명시하고, Microsoft의 상표를 사용할 수 없으며, 악성 코드에 포함되지 않도록 하는 등 더 엄격한 조건을 포함합니다.
    • Ms-PL은 수정된 소프트웨어를 배포할 때 라이선스 조건을 포함하는 것을 요구하며, 더 유연한 배포 조건을 제공합니다.

이러한 차이점들은 각 라이선스가 적용되는 소프트웨어와 목적에 따라 선택해야 할 라이선스를 결정하는 중요한 요소들입니다. Microsoft 라이선스는 특정 소프트웨어에 대해 보다 구체적이고 엄격한 조건을 두는 반면, Ms-PL은 보다 일반적이고 유연한 오픈 소스 라이선스입니다.


2번과 3번: Windows API Codec Pack을 편집하시는 경우에는 원본이 무엇이었다는 사실과 함께 전체 소스 코드를 공개할 수 있도록 준비하시는 것은 필요해보입니다. 하지만 GPL 계열의 라이선스처럼 반드시 동시 제공 의무를 지니지는 않는 것 같습니다. 또한 수정된 부분이 있다면 애플리케이션에는 고지되어야 할 것으로 보입니다. (수정의 범위는 보수적으로 보자면, .NET Framework용으로 개발된 코드를 .NET Core나 Mono용으로 포팅한 것처럼 바이너리 수준에서 일어나는 변화도 전부 포함된다고 봐야 할 것 같습니다.)

물론 Microsoft에게는 이 코드에 대한 책임이 없으며 (면책) 전적으로 개발자, 개발 회사에게 책임이 부여 (유책)된다고 봐야 할 것으로 보입니다.


Microsoft Windows API Code Pack for .NET Framework 라이선스를 사용하여 개발한 소프트웨어의 소스 코드를 반드시 공개해야 한다는 명확한 요구 사항은 없습니다. 다만, 몇 가지 중요한 조건이 있습니다. 라이선스 전문에서 관련 내용을 다시 살펴보면:

  1. 배포 요구 사항:

    • “Distribution Requirements. If you distribute the software, you must… include prominent notices in such modified files so that recipients know that they are not receiving the original software.”
  2. 배포 제한 사항:

    • “You may not… modify or distribute the source code of the software so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that the code be disclosed or distributed in source code form.”

요약

  • 소스 코드 공개 의무 없음: Microsoft Windows API Code Pack을 사용하여 개발한 소프트웨어의 소스 코드를 반드시 공개해야 한다는 의무는 없습니다.
  • 변경 사항 명시: 수정된 소프트웨어를 배포할 때는 수정된 내용을 명시해야 하며, 원본 소프트웨어가 아님을 분명히 해야 합니다.
  • 특정 라이선스 제한: GPL과 같은 소스 코드 공개를 강제하는 라이선스로 배포할 수 없습니다.

따라서, 소스 코드를 공개할 필요는 없지만, 배포 시에는 변경 사항을 명확히 알리고, 소스 코드 공개를 요구하는 라이선스를 적용할 수 없습니다. 이는 Microsoft가 소프트웨어의 무단 공개를 방지하고, 소프트웨어의 상업적 사용을 제어하려는 목적입니다.