LGPL 은 프로그램이 LGPL 라이브러리를 사용하는 경우 사용자가 다른 버전의 라이브러리와 프로그램을 다시 링크 할 수 있어야합니다.
...
d) 다음 중 하나를 수행하십시오.
0)이 라이센스의 조건에 따라 최소 해당 소스와 해당 응용 프로그램 코드를 전달하여 사용자가 응용 프로그램을 수정 된 버전의 링크 된 버전과 재결합하거나 다시 링크하여 해당 소스를 전달하기 위해 GNU GPL의 섹션 6에 지정된 방식으로 수정 된 결합 저작물.
1) 라이브러리와의 링크에 적합한 공유 라이브러리 메커니즘을 사용하십시오. 적합한 메커니즘은 (a) 사용자 컴퓨터 시스템에 이미 존재하는 라이브러리의 사본을 런타임에 사용하며 (b) 링크 된 버전과 인터페이스 호환되는 수정 된 버전의 라이브러리에서 올바르게 작동하는 것입니다.
...
그러나 경우에 따라 상당한 문제가 발생할 수 있습니다. 특히 Haskell 프로그램은 거의 항상 정적으로 컴파일됩니다. 또한 컴파일러는 모듈 간 최적화를 수행하므로 코드의 일부를 가져 와서 다른 것으로 바꿀 수 없습니다. 따라서이 조건을 만족시키기는 매우 어렵습니다. ( Haskell Wiki 에서이 링크 를 보십시오 .)
동적 연결 은 해결책이 될 수 있지만 대부분의 경우 불가능합니다. 예를 들면 다음과 같습니다.
- 일부 플랫폼에는 동적 연결이 전혀 없을 수 있습니다.
- 일부 언어는 동적 연결 가능성이 없습니다. 또는 모듈을 다중 플랫폼으로 만들 수 없습니다.
- 경우에 따라 동적 연결은 중요한 최적화를 방해 할 수 있습니다. 이것이 심각한 문제는 아니지만, Haskell과 같은 언어에서는 성능 손실이 상당히 클 수 있습니다.
따라서 다시 연결할 가능성이 필요없는 표준 LGPL과 유사한 라이센스를 찾고 있습니다 (사용자에게 부여되는 약간의 자유가 제거됨을 이해합니다). 일부 프로젝트는 자체 LGPL 수정 (예 : wxWidgets)을 사용 합니다. 그러나 다소 공식적인 표준 라이센스를 사용하고 싶습니다. 어쩌면 일부 법률 전문가가 확인하고 (L) GPL 호환 가능합니다. 그런 것이 있습니까?
(또한 LGPL의 그러한 수정으로 인한 예기치 않은 결과가 있는지 알고 싶습니다.)