문제

내가 아는 한, MySQL과 같은 GPL 코드를 사용하여 데스크톱/서버 앱을 구축할 때 내 소프트웨어의 소스 코드를 GPL에 따라 공개해야 합니다.

MySQL을 사용하여 웹앱을 개발하려는 경우 내 코드가 MySQL 라이브러리에 연결됩니다.이 상황에서 GPL을 준수하기 위해 내 웹앱의 소스코드를 공개해야 합니까?

도움이 되었습니까?

해결책

서버 전용 (따라서 "개인")을 유지한다면 GPL로 해제 할 필요가 없습니다. 그러나 공개 데스크탑에 도달하자마자 더 이상 내부 빌드로 간주 될 수 없으므로 소스 코드가 필요합니다.

그래서 당신은 할 수 있습니다 :

  • 코드를 GPL로 해제하십시오
  • MySQL의 상업용 버전을 구입하십시오
  • 서버 전용을 유지하십시오.

다른 팁

귀하는 소스 (GPL에 따라)를 릴리스하거나 MySQL에 대한 독점 라이센스를 지불하여 독점 제품이 사용하는 라이센스에 따라 MySQL 바이너리를 배포 할 권리가 있습니다. 그러나 이러한 유형의 질문을 변호사에게 가져 오는 것이 가장 좋습니다.

에타: 조금 명확히하기 위해; 와이어 라인 프로토콜을 사용하여 MySQL과 대화하는 자신의 라이브러리를 작성하면 항상 100%가 될 것입니다. 마찬가지로, 그 일을 수행했지만 BSD 라이센스가있는 라이브러리를 사용하는 경우 (예 : 예를 들어) 소켓 연결을 통해 MySQL과 대화하고 실제로 전화하지 않기 때문에 명확해질 것입니다. gpl'd 코드로. MySQL 프로토콜에 대한 BSD 라이센스 인터페이스를 즉시 알지는 못하지만 어딘가에 하나가있을 가능성이 있습니다.

웹 응용 프로그램을 직접 실행하고 응용 프로그램으로 배포하지 않는 경우 소스를 해제 할 필요가 없습니다. 웹 애플리케이션에 대한 액세스 허용은 분포로 간주되지 않습니다.

편집 : 관심이 있으시면 Affero 일반 공개 라이센스, AGPL 소프트웨어의 네트워크 사용자가 소스를 사용할 수 있도록해야합니다 (예 : 웹 응용 프로그램에 적용).

응용 프로그램에서 MySQL을 사용하기 위해 MySQL 라이브러리에 반드시 연결될 필요는 없습니다. MySQL 프로토콜을 사용하여 MySQL 서버에 "말하기"만하면됩니다. 이 경우 사용자로서 클라이언트로서 MySQL 서버에 연결하고 있으며 GNU GPL 라이센스에 따라 소프트웨어를 해제 할 필요가 없습니다.

문제는 귀하의 프로그램이 MySQL 프로토콜을 어떻게 말할 수 있습니까? 한 가지 가능성은 공식 MySQL 클라이언트 라이브러리 (커넥터)를 사용하는 것입니다. ~이다 gpl'd. 이렇게하면 프로그램을 GPL'D 라이브러리에 정적으로 연결하므로 GPL에서 소프트웨어를 해제해야합니다.

또는 다른 라이센스가있는 타사 클라이언트 라이브러리와 링크 할 수 있습니다. 예를 들어 사용할 수 있습니다 MariaDB 클라이언트 라이브러리, LGPL'D (그리고 독점 소프트웨어와 호환)이며 원래 MySQL 클라이언트 라이브러리와 동일한 API를 제공합니다. 참조 Mariadb 라이센스 FAQ, 자세한 내용과 조언은 MySQL에도 적용됩니다.

소프트웨어와 함께 MySQL 서버를 배포하는 것은 까다로울 수 있습니다. 고객이 자체적으로 MySQL을 다운로드하여 설치하거나 간단한 다운로더를 소프트웨어와 함께 배포해야 할 수도 있습니다.

MySQL은 듀얼 라이센스를 사용합니다. 그들이 말한대로 - 당신이 자유로울 경우, 우리는 자유로울 것입니다.

따라서 내가 아는 한 MySQL JDBC 커넥터 만 사용하는 경우 라이센스 또는 GPL 코드가 있어야합니다.

GPL'D 소프트웨어에서 파생 및/또는 배포하지 않으면 안전해야합니다.

MySQL 클라이언트 라이브러리와 연결하는 것은 파생 작업이나 배포가 아닙니다.

업데이트: 라이브러리와 연결하는 방법 (동적 또는 정적)이 어떻게 차이를 만들 것인지 생각해보십시오. 정적 링크는 분포이지만 동적으로 연결하고 클라이언트가 커넥터 자체를 다운로드하면 분포가 아니므로 안전해야합니다.

아, 그리고 이아날.

MySQL을 사용하여 웹앱을 개발하려는 경우 내 코드가 MySQL 라이브러리에 연결됩니다.이 상황에서 내 웹앱의 소스코드를 GPL에 따라 공개해야 합니까?

  1. 다른 사람들이 말했듯이 앱을 다른 사람에게 배포하지 않으면 전혀 문제가 없습니다.

  2. 일반적으로 표준 데이터베이스 API에 대해 개발하고 사용자가 앱에 연결할 데이터베이스를 결정하도록 합니다.이 경우에는 문제가 없습니다."귀하의 코드"는 libmysqlclient에 연결되지 않지만 잠재적으로 libmysqlclient에 연결되는 데이터베이스 액세스 모듈과 결합될 수 있습니다.

  3. 애플리케이션과 libmysqlclient를 함께 설정하는 설치 프로그램을 배포하려는 경우 아마도 "단순한 집합"으로 간주되지 않으므로 오픈 소스 라이선스에 따라 앱을 배포해야 합니다.그러나 이것이 반드시 GPL일 필요는 없습니다. MySQL FOSS 라이센스 예외.

  4. 애플리케이션과 MySQL 서버 자체를 설정하는 설치 프로그램을 배포하려는 경우 예외가 적용되지 않으므로 GPL로만 제한됩니다.

당연히 IANAL이며 특히 동적 연결과 관련하여 파생으로 간주되는 것이 무엇인지에 대해서는 여전히 약간의 불확실성이 있습니다.그러나 위 내용은 라이센스에 대한 MySQL AB의 전통적인 입장에 대한 제가 이해한 것이며, Sun 인수 이후 어떤 변화도 들어본 적이 없습니다.

불행히도, 그것은 거의 깨끗하지 않습니다. GPL은 금지합니다. 분포 모든 "파생 된 제품"의 소스를 제공하지 않고. 배포는 법적으로 공식적으로 사용하기 위해 하나 이상의 컴퓨터로 소스를 하나 이상의 컴퓨터로 전송하는 행위로 법적으로 정의됩니다.

안타깝게도, 서버 클러스터, QA 박스, 개발자 상자 등에 사용하는 것도 포함될 수 있습니다. Modern Dev Shop에서는 여러 프론트 엔드/백엔드 상자에 코드를 공개하는 것이 기술적으로 배포됩니다 (법의 눈에는).

Free Software Foundation이 어떻게 생각하는지는 중요하지 않으며, 누군가/회사가 정확히 그 일에 대해 고소되면 몇몇 판사들이 생각하는 것이 중요합니다.

그 이유는 또 하나의 이유입니다 요즘 GPL의 주요 고객은 경쟁 업체가 코드를 포킹하지 못하게하려는 기업입니다.. 다른 모든 사람들은 MIT 또는 Creative Commons Attribution 라이센스와 같은 훨씬 덜 방해하는 라이센스를 고려해야합니다.

첫째, 저는 변호사가 아닙니다. 여기서 조언을하기 전에 하나와 대화하십시오.

그 외에도 웹 앱을 배포하지 않으면 변경 사항을 해제 할 필요가 없습니다. 웹 앱을 호스팅하면 웹 앱을 다른 사람이 사용할 수있게 할 수 있습니다.

배포에 동일한 패키지에 MySQL을 포함하고 설치하는 경우 상용 라이센스가 필요합니다.

그러나 코드 만 배포하고 단순한 "MySQL 요구 사항"통지 및 설치 스크립트 (테이블을 작성/채우기위한 설치)로 배포하면 아무런 문제가 없어야합니다.

물론 이아날.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top