2009-08-11 3 views
4

MySQL ++는 LGPL 라이센스를 보유하고 있으므로, GPL이 아닌 소스 코드에 대해 걱정할 필요없이 동적으로 링크 된 실행 파일을 릴리스 할 수 있습니다. 그러나 MySQL ++은 GPLed 인 libmysqlclient {_r}. {a} (http://tangentsoft.net/mysql++/#linkerrors)와 연결됩니다.
MySQL ++는 기술적으로는 단지 '래퍼'(매우 잘 구현 된 래퍼인데, 잘못하지는 마십시오)인데, GPLed libmysqlclient {_r}을 향해 있습니다. {a, 그래서}, MySQL ++에 링크하면 libmysqlclient {_r}과 (와) 연결됩니다. {a, so}?MySQL ++, GPL 및 LGPL 정보

그렇다면 LGPL이 적용된 MySQL ++의 목적은 동적으로 링크 된 실행 파일이 libmysqlclient {_r}과 연결되어야한다는 점에서 볼 때 무의미합니다. {a, so}. 내가 어디서 잘못한거야?

+4

** 프로그래밍이나 소프트웨어 개발이 아닌 라이센스 또는 법적 문제 **에 관한 내용이므로 주제를 벗어난 것으로 닫으려고합니다. 자세한 내용은 [여기를 참고하십시오] (http://meta.stackoverflow.com/a/274964/1402846) 및 [help/on-topic]을 참조하십시오. –

답변

4

귀하의 프로그램이 MySQL 배포본의 EXCEPTIONS-CLIENT 파일에 나열된 라이센스 중 하나에 따라 사용이 허가 된 경우 프로그램은 MySQL 클라이언트 라이브러리를 사용하기 위해 GPL 호환 일 필요는 없습니다.

그러나 일반적으로 예, GPL 라이브러리에 연결하려면 프로그램이 GPL과 호환되어야합니다.

+0

업데이트 : 아쉽게도 오라클은 새로운 버전의 MySQL에서이 클라이언트 라이브러리 예외를 제거했습니다. – snap

0

나는 당신이 GPL 라이브러리 B와 링크하는 LGPL 라이브러리 A와의 링크가 GPL 라이브러리와 링크하는 것과 동일하다는 결론을 내렸기 때문에 귀하의 프로그램이 GPL하에 있어야한다고 생각합니다.

그래서 libmysql ++가 LGPL이라는 것이 꽤 무의미하다는 점에 동의 하겠지만 이전 버전의 MySQL 클라이언트 라이브러리 을 LGPL으로 사용했기 때문에 그렇게 될 것이라고 생각합니다. (당신이 알아 차 렸듯이 지금은 모두 풀 GPL입니다.)

+0

MySQL 클라이언트에 대한 "특별한 예외"로 인해, libmysql ++의 LGPL 라이센스는 사용하는 라이센스 목록 (모든 GPL과 호환되지는 않음) 내에있는 한 반드시 의미가 없습니다. –

+0

그래서 MySQL 클라이언트 C 라이브러리의 "특별한 예외"는 무엇입니까? 어떤 링크? 건배, –

3

변호사와 상담해야 할 수도 있습니다. 나는 하나가 아니다. 그러나 고려해야 할 사항은 다음과 같습니다.

  1. LGPL에서 MySQL ++을 사용하면 결과 작업이 MySQL 용 GPL 라이센스 (GPL + 예외)에 적용될 때만 작동합니다. 따라서 귀하의 프로그램은 GPL 또는 예외적 라이센스 중 하나 여야합니다. 다른 것은 GPL 위반 일 가능성이 높습니다.
  2. 작품을 배포 할 때 GPL 및 LGPL이 적용됩니다. 나는 그런 방식으로 배포하지 않기 때문에 합법적으로 nVidia 바이너리 드라이버를 내 컴퓨터의 GPL 커널에 설치할 수 있습니다. 애플리케이션이 MySQL 파생 제품이 아닌 경우 MySQL의 저작권에 위배되지 않습니다. 앱을 배포해도 MySQL의 저작권에 위배되지 않는다면, MySQL 라이센스의 조건에 대해 걱정할 필요가 없습니다. 변호사는 파생 된 작업 경계가 어디에 있는지 알려줄 수 있습니다. FSF는 링크가 파생 된 작업을 생성한다고 주장합니다.
  3. 프로그램이 MySQL과 연결되지만 MySQL ++과 연결되지 않으면 응용 프로그램이 MySQL의 파생 제품이 아닐 수도 있습니다. 이것은 일반적으로 두 구성 요소 사이에 충분히 두꺼운 층이있을 때마다 사실입니다. JVM에서 실행중인 Java 응용 프로그램은 JVM에 링크되지만 커널에는 링크되지 않습니다. 커널의 파생 된 작업으로 간주 될 수 없습니다 (대부분의 커널은 프로그램을 파생 된 것으로 간주하지 않지만 개념은 동일합니다).

(L) GPL의 힘은 저작권에서 비롯된 것임을 기억하십시오. A가 B의 파생 저작물 인 경우 B의 저작권 보유자의 배포 허가를 받아야합니다. A가 아닌 경우 A를 배포 할 권한이 필요하지 않습니다. A가 B에서 파생되었지만 B가 C에서 파생 된 경우 A는 C에서 파생되거나 파생되지 않을 수 있습니다. 저작물이나 파생물을 배포하려면 모든 저작권 보유자의 허가가 필요합니다. 공장. (L) GPL은 어떤 조건 하에서 허가가 자동으로 부여되는지를 지정합니다.

+0

메이트 (Gates, 동적 연결이라는 용어를 사용했기 때문에 GPL 소프트웨어를 GPL에 배포하지 않고도 GPL이 아닌 소프트웨어를 LGPL 라이브러리에 연결할 수 있습니다. 요점은 또 다른 점입니다 : LGPL 구성 요소 링크 (동적으로 또는 정적으로이 경우에는 동일합니다)가 GPL 구성 요소에 링크 된 것처럼 보이지만,이 (LGPL이 아닌) 무의미한가요? –

1

오라클 (ne & eacute; Sun, ne & eacute; MySQL AB)은 sell으로 C API 라이브러리에 대한 GPL 면제를 기꺼이받을 것입니다. 그런 다음 MySQL ++ DLL을 프로그램과 함께 배포 할 수 있으며 LGPL에만 적용됩니다.

관련 문제