우선, 저는 변호사가 아닙니다. 그러나 많은 라이센스를 연구하고 라이센스에 관한 문제를 이해했습니다.
둘째, 나는 이것이 오래된 질문이라는 것을 알고 있지만 여전히 혼란과 우려의 포인트라고 생각합니다. 그것이 관심의 대상이 아니라면 그럴 것입니다. 라이센스를 선택하는 것은 특히 여러 기고자가 참여하는 경우 사소하게 도로를 바꿀 수없는 큰 문제입니다.
(L) GPL은 불행히도 C / C ++를 염두에두고 작성되었습니다. "소스 코드", "오브젝트 코드", "동적 링크", "정적 링크", "컴파일러"및 "오브젝트 코드 인터프리터"에 대해 설명합니다. 따라서 동일한 컴파일 기술을 따르지 않는 다른 언어 (예 : Java의 바이트 코드, Python의 적시 컴파일 또는 Javascript의 해석 된 자연)를 번역하려면 약간의 추측과 가정이 필요합니다. 법에 대해 이야기 할 때, 즉 두 당사자가 논쟁을 벌이는 최종 법원 사건에 대해 생각할 때 명확한 구분이없는 것은 나쁜 것입니다.
표준 GPL 라이센스 코드는 의도가 매우 간단합니다. 해당 코드를 사용하는 사람은 코드를 배포하거나 판매 할 때 모든 사용자에게 코드를 공개해야합니다. 이것이 Richard Stallman이 명확하고 깨끗하게 만들고 싶었던 GPL 바이러스입니다.
LGPL은 원래 바이러스 성이없는 "라이브러리"를 허용하려는 시도였습니다. 그러나 그들은 여전히 최종 사용자가 스스로 라이브러리를 교체 할 수 있기를 원했기 때문에 "정적"링크와 "동적"링크의 차이점이 있습니다. 사용자는 다른 동적 링크 라이브러리로 교체 할 수 있으므로 GPL로 라이센스가 부여됩니다. 그리고 정적 링크를 사용하려면 사용자가 GPL이어야합니다. 라이센스는 실제로 C / C ++에서는 명확하지만 Java, Python, Javascript 등의 세계에서는 명확하지 않은 "헤더 파일"에 대해 설명합니다. 따라서 LGPL 자료의 L ( "라이브러리")은 가장 탁합니다.
이것은 문제의 핵심에 도달합니다. 불분명 한 것은 법의 세계에서 나쁜 것입니다. GPL 또는 LGPL 구성 요소를 사용하여 무언가를 만들려고한다면, 법정에 입소 할 경우 법적 근거가 무엇인지 확실히 알고 싶습니다. 그러나 현재로서는 법적인 판례를 확립하는 좋은 법원 사건이 없었고 이와 같은 포럼에 대한 지적 주장 만 있었기 때문에 확실하지 않습니다.
여기에 클래스 패스 예외가 매우 중요합니다. 라이센스에 따른 코드는 (L) GPL이지만, 해당 코드를 사용 하는 모든 코드는 원하는 라이센스를 따를 수 있습니다. if, ands, 또는 buts는 없습니다. 핵심 코드 (예 : 버그 수정)를 변경해도 GPL의 일부로 해당 변경 사항을 릴리스해야합니다. 그러나을 사용해도 감염되지는 않습니다.
비즈니스 관점에서, 일부는 왜 10 '극으로 GPL 코드를 건드리고 싶지 않은지 이해합니다. 법적 지위가 불분명하고 법적 선례가 마침내 결정될 때 사업이 10 년 동안 멈출 수 있습니다. 또는 법적 선례를 세우기 위해 수년간 법원에 갇혀있을 수도 있습니다. 어쨌든 그들은 그 전투 비용을 위험에 빠뜨리고 싶지 않습니다. Classpath Exception 조항을 추가하면 법적 질문을 없애고 (심각한) 잠재적 인 법원 사건을 피할 수 있습니다.
따라서 클래스 패스 예외는 LGPL과 크게 다릅니다. GPL 또는 LGPL 소스 코드 또는 라이브러리를 GPL 이외의 용도로 사용할 수 있도록 밝은 선을 그리는 것이 합법적으로 깨끗한 방법입니다.