Licensing FAQ
이 문서에서는 MariaDB 와 MySQL 서버, 그리고 클라이언트 라이브러리의 라이센스가 다른 어플리케이션에 어떤 영향을 끼치는지와, GPL를 준수하는 절차와 어플리케이션을 변경하지 않고 GPL 을 준수하는 절차에 대해서 설명하고자 한다.
여기부터는 MariaDB에 대해 이야기하게 될 것이다. 이 가이드라인은 일반적으로 MySQL에도 적용된다. (적어도 이 문서가 쓰여진 시점의 최신 안정 버전인 5.1.55 버전까지는)
Contents
MariaDB 가 사용한 라이센스
MariaDB는 GPL license, 버전 2로 배포된다.
The MariaDB 클라이언트 라이브러리 for C, Java and ODBC 는 LGPL 라이센스, 버전 2.1 또는 그 이후 버전으로 배포된다. LGPL 라이센스는 여러분이 이 MariaDB 클라이언트 라이브러리를 이용하여 어떤 어플리케이션에서도 자유롭게 사용할 수 있도록 해준다.
MariaDB 서버에 포함된 MariaDB 클라이언트 라이브러리는 GPL 버전 2 로 배포된다. 하지만, FLOSS 예외가 있어 라이센스가 GPL과 호환되지 않는 경우라 하더라도 라이센스 충돌 없이 대부분의 다른 오픈 소스 소프트웨어와 결합할 수 있도록 도와준다. 그러나, 우리는 여러분이 GPL을 준수하지 않는 어플리케이션을 개발할 경우라면, 새로운 클라이언트 라이브러리 를 사용할 것을 적극 권장한다.
내부적 사용은 자유롭게
GPL 라이센스는 다른 사람들에게 배포하는 코드에만 영향을 미친다.
조직 내에서 내부적 사용은 완전히 자유로우며 어떠한 조건에도 구애받지 않는다. GPL을 준수하는 데에는 코드 사용에 제한을 두는 '내부 배포'는 없다.
백그라운드에서 실행되는 MariaDB (또는 다른 어떤 GPL 소프트웨어) 로의 연결 또한 자유롭다.
당신이 저작권을 보유하는 내부 프로그램들에 대해서 GPL 소프트웨어를 사용함으로써 생기는 본질적인 위험은 없다. 논쟁이 발생할 수 있는 지점은 소프트웨어가 GPL 이라면 원 저작권자에게 당신의 소스를 즉각적으로 되돌려줘야 하는 것이 아니냐는 것이다. 그러나, 당신이 내부적으로 GPL 소프트웨어를 연결했다 하더라도, 당신에게 조직 밖으로 코드를 공개하거나 재배포를 요구할 권리를 가진 사람은 아무도 없다. .
만약 당신이 속한 조직 내의 법률 자문가들이 GPL 라이브러리와 연결된 소프트웨어의 배포에 대해 염려한다면, 당신은 소프트웨어 구성 부분과 GPL 소프트웨어를 별도로 배포하고, 다른 조직에서 이를 조합함으로써 이 문제를 해결할 수 있다. 또한, 새로운 LGPL 클라이언트 라이브러리로 전환할 수도 있다.
MariaDB 커넥터/클라이언트와 어플리케이션 배포
이 섹션은 자신의 어플리케이션과 함께 MariaDB 클라이언트 라이브러리 코드를 배포하고자 하는 사람들을 위한 것이다. (MariaDB 서버가 아니라)
프리 소프트웨어 (free software)/오픈 소스 어플리케이션
당신의 어플리케이션이 프리 소프트웨어/오픈 소스라면 FLOSS 예외 에 나열된 라이센스들 중 하나를 사용하면 된다, 클라이언트 라이브러리의 GPL 라이센스는 당신의 어플리케이션에는 적용되지 않는다.
다른 경우에는 새로운 LGPL클라이언트 라이브러리를 사용할 것을 권장한다.
GPL 이 아닌 커넥터의 사용
만약 GPL 이 아닌 커넥터를 사용할 경우, 커넥터의 라이센스에 묶이게 된다. 여기에는 다음과 같은 예들이 있다.
위 라이브러리들은 GPL 라이센스에 묶이지 않고 자유롭게 사용할 수 있다.
프레임워크 독립적인 데이터베이스 소스 사용
서로 다른 RDBMS 시스템에 동적으로 연결하는 프레임워크를 사용할 때, 프레임워크에 의해 로드된 GPL 라이센스된 모듈은 어플리케이션에 아무런 영향을 미치지 않는다. 이런 프레임워크에는 다음과 같은 것들이 있다.
- ODBC (Open Database Connectivity)
- JDBC (Java Database connectivity)
- Perl
- PHP PDO MySQL driver
MySQL 클라이언트 라이브러리의 GPL이 여러분의 어플리케이션에 어떠한 영향을 미치지 않는 이유는, GPL 클라이언트가 표준 인터페이스를 지원하는 단순한 선택적 컴포넌트이기 때문이다. 그러므로, 여러분의 어플리케이션이 MariaDB 또는 MySQL 외에 다른 RDBMS 와 연결하는 프레임워크를 사용하도록 만드는 것은 매우 쉬운 일이다.
어떤 소프트웨어든 GPL 버전2 인 MySQL Connector/ODBC 와 연결할 수 있으며, 이 경우 이 소프트웨어가 반드시 GPL 일 필요는 없다. 이는 GPL인 MySQL Connector/ODBC 와 당신의 소프트웨어 사이에 일반적인 관리 소프트웨어의 일종인 ODBC 관리자가 놓여있기 때문이다. 만약 MySQL Connector/ODBC 와 인터페이스되는 어떤 로직이 반드시 GPL이어야 한다면, ODBC 관리자에게도 마찬가지로 적용된다. 그러나, ODBC 관리자는 GPL 라이센스가 아니며, 윈도나 리눅스도 그렇다. 이렇게 되면,누구도 MySQL ODBC 드라이버를 사용할 수 없을 것이다.
C언어용 MariaDB 클라이언트 라이브러리 사용
만약 FLOSS 예외 라이센스에 적용되지 않는 라이센스를 사용한다면, 반드시 LGPL client libraries for C를 사용해야 한다.
LGPL 라이센스는 어떤 어플리케이션이라도 자유롭게 MariaDB 클라이언트 라이브러리를 함께 배포할 수 있게 해준다. 만약 클라이언트 라이브러리를 변경한다면, 반드시 새로운 소스 코드를 공개 배포해야 한다.
MariaDB / MySQL server 와 함께 독점적 어플리케이션의 배포
어플리케이션을 MariaDB 또는 MySQL과 함께 배포할 때는 GPL에 묶이게 되며 (어떤 관점에서는 당신이 변호사에 의해 묶이게 되는 것일수도 있다), 다음과 같이 조항들이 적용된다.:
- MySQL 과 직접적으로 연결하는 것은 (MySQL GPL 클라이언트 라이브러리와 같이) GPL 코드를 사용하는 것이다
- 어플리케이션이 작동하기 위해서는 반드시 MariaDB 서버를 필요로 하며, MariaDB 없이 시작되지 않거나 매우 제한적인 기능만 제공할 경우
클라이언트 라이브러리의 문제를 피할 수 있는 해결 방법은 예전에 언급했던 내용을 살펴보기 바란다.
당신의 어플리케이션이 많은 데이터베이스와 함께 작동한다면 (직접 또는 데이터베이스 소스 독립적 프레임워크 중 하나를 이용하여), GPL의 영향을 받지 않고 MariaDB와 함께 자유롭게 어플리케이션을 배포할 수 있다. 이는 MariaDB가 당신의 소프트웨어 배포본에 선택적이고 독립적인 컴포넌트이기 때문이며, GPL 섹션 2 에서 명시적으로 이를 허용하고 있다.
"아울러, 특정 프로그램과 (또는 프로그램에 기반한 작업물과) 함께 이 프로그램에 기반하지 않은 다른 작업물의 동일한 스토리지 또는 배포 매체 형태의 단순한 통합의 경우에는, 이 라이센스의 범위에 속하지 않는다."
다른 저작권을 확보하기 위해 Oracle 로부터 MySQL 라이센스를 구매하는 옵션을 생각해 볼 수 있다. 만약 나중에 MySQL 대신 MariaDB 를 사용하고자 한다면, 당신의 라이센스 규약이 MySQL 코드의 변경을 허용하는지 반드시 확인해야 한다. (이는 수정하지 않는 버그들이 포함된 Oracle 제품을 사용하는 모든 경우에도 해당한다. 일반적으로 사용을 방해하는 MySQL 버그를 수정할 수 없다)
어플리케이션 내에서 MariaDB 코드 변경에 대한 사용권은 SkySQL에 문의할 수 있다.
법적 공지
이 문서는 Michael "Monty" Widenius 에 의해 작성되었으며 그는 변호사가 아니다. 그러므로, 모든 경우에 있어 위의 모든 내용들이 반드시 적용된다고 보장할 수 없다. 아울러, MySQL을 GPL로 만들고자 결정했던 David 과 Monty 는 라이센스 변경의 의도를 공개적으로 선언했으며, 이 문서가 도움이 될 수 있다.
만약 GPL 이 작동하는 방식에 대한 다른 의견이 있다면 Software Freedom Law Center 또는 Free Software Foundation 로 연락하기 바란다. 그들은 이 문서와 아무런 관련이 없지만 GPL 또는 LGPL를 알고자 할 때 가장 먼저 접촉해야하는 전문가들이다.