LGPL에서이 작업을 수행 할 수 있습니까?


16

LGPL 소프트웨어를 사용하여 상용 소프트웨어를 개발할 계획입니다.

클래스에서 일부 기능을 사용하는 LGPL 소프트웨어에서는 완전히 구현되지 않았습니다. 클래스 앞에 dllexport를 추가하고 함수 앞에 가상 키워드를 추가하여 클래스 및 구현되지 않은 함수를 dll 외부에서 볼 수 있도록 LGPL 코드를 수정하고 싶습니다.

그런 다음 독점 소프트웨어에서 이러한 기능을 구현할 계획입니다. 수정 된 LGPL 코드를 배포 할 준비가되었지만 원하는 방식으로 기능을 구현하는 독점 소프트웨어는 배포 할 수 없습니다.

LGPL 이용 약관을 위반합니까?



6
귀하의 질문에 대한 문제점은 귀하가 작성된 정신으로 라이센스를 사용하려고하지 않는다는 것입니다. 라이센스의 의도 된 의미에 대한 질문에 대답 할 수는 있지만 법적으로 세부적인 정보를 얻을 수는 없습니다. . 이를 위해 변호사 만 추천 할 수 있습니다. 또한 귀하가하는 일은 법에 따라 미국에서 해결되지 않은 법적 질문 (LGPL 소프트웨어의 파생 작품은 무엇입니까?)에 달려 있으며 실제 변호사와는 다른 의견을 보았습니다. (변호사 모르겠지만, 부담없이 이러한 문제를 다음 왔습니다.)
— 데이빗 쏜리

말하기 어렵다. 이것을 읽으십시오 : javalobby.org/java/forums/t15903.html- 그들은 Java에 대해 이야기하고 있지만 모든 OO 언어에 적용 가능한 것으로 보입니다.
— Mike Baranczak

답변:


26

이것은 복잡한 질문이지만 귀하가 제안한 것은 허용되지 않습니다.

최소한 라이브러리 를 서브 클래 싱 하기 쉽 도록 라이브러리에 후크를 추가하는 것이 좋습니다 . LGPL 의 정신 을 우회합니다 .

문제는 자신의 코드에서 LGPL 라이센스 가 적용되는 클래스를 하위 클래스로 분류 하면 라이브러리 를 사용 하는 작업이 아니라 라이브러리를 기반으로 하는 작업이되어 코드 가 파생 된 것입니다. 섹션 6 ( LGPL v2.1 ) 에서 다루지 않고 섹션 2 ( LGPL v2.1 ) 에서 다루는 작업 . 즉 , LGPL의 적용을받습니다 !

Stephen Colebourne이 javalobby에 대한 좋은 요약 을 제공한다고 생각합니다 .

나는 당신의 변호사 제안 에 무릎을 꿇고 말하는 큰 팬 이 아니지만 ,이 경우 에 진행할 계획이라면 그렇게할만한 가치가 있다고 생각합니다. 그렇지 않으면 자유 소프트웨어 에서 불쾌한 편지를받을 수 있습니다. 재단 법률 팀.

또는 FSF에 직접 요청할 수 있습니다. 자신의 연락처 페이지 :

무료 소프트웨어 라이센스 및 저작권에 대한 질문

우리 확인하시기 바랍니다 라이선스 질문 의 라이센스 목록 , 일반 카피 레프트 정보 및 관련 페이지를 . 질문이 남아 있으면 <licensing@gnu.org>로 이메일을 보내십시오.

또한, 관련 질문 Reflection and the LGPL 에서 gbjbaanb 은 LGPL 3.0 관점으로 대답 합니다 .


4
나는 "FSF 요청"제안을 좋아합니다
— ZJR

필자는 LGPL 라이브러리에서 더 많은 기능을 노출하고 싶었다는 것을 읽었습니다. 너무 오래 결과 LIB이기 때문에 여전히 LGPL과 영업 이익의 소프트웨어의 사용자는 자신의 빌드 lib 디렉토리를 대체하는 무료 - 나는 행복 할 것이다
— 마틴 베켓

3
@MartinBeckett-확실하지는 않지만, 질문자는 라이브러리를 수정하여 비공개 소스 코드에서 라이브러리를 수정하기 쉽게함으로써 LGPL을 우회하려고합니다. 그가 새로운 라이브러리 기능을 LGPL에 직접 추가 한 다음 자신의 코드에서이를 사용한다면 아무런 문제가 없을 것입니다. 그가 자신의 새로운 기능을 폐쇄 소스로 유지하려고 노력하고 있지만 여전히 라이브러리의 일부라는 것은 사실입니다.
— Mark Booth

6
LGPL 3.0 은 "라이브러리에 의해 정의 된 클래스의 서브 클래스를 정의하는 것은 라이브러리가 제공하는 인터페이스를 사용하는 모드로 간주된다"고 말합니다. 따라서 LGPL 3.0 이상에서는 허용해야합니다.
— David

3
@David-LGPL 라이브러리를 수정하여 일반적으로 재정의 할 수없는 기능을 재정의 할 수 있다고 믿습니다. 코드가 a 기반이 아닌 '기반'인 코드와 충분히 밀접하게 결합되어 있음을 암시하고 있습니다 라이브러리와 '사용'한 관계로 약한 카피 레프트가 활성화됩니다.
— 마크 부스

13

표준 저는 변호사 면책 조항이 아닙니다.

LGPL을 사용하려면 라이브러리 소스 코드를 수정하여 코드를 사용한 모든 사람에게 배포해야합니다. 라이브러리를 사용하는 코드가 동일한 소스로 공개 소스 화되고 릴리스 될 필요 는 없습니다 .

클래스 상속 에 대한 섹션을 포함하여 LGPL에 대한보다 상세하지만 변호사가 아닌 설명을 제공하는 Wikipedia .


+1. 요약하자면 LGPL을 위반하지 않는다고 생각합니다 (그러나 IANAL)
— MarkJ

@MarkJ- 대답 에서 설명 할 때 제기 된 질문이 단순히 클래스 상속의 문제인지 확실하지 않습니다.
— Mark Booth

9
"ANAL"을 포함하고 있기 때문에 사람들은 IANAL을 입력하는 것을 좋아한다고 생각합니다.
— g33kz0r

5

"LGPL 코드를 수정하고 싶습니다 ..." 이 수정 된 코드를 해제해야합니다 . 그런 다음 수정 된 코드를 파생 시키는 것이 파생 작업 인지 여부를 확장하는 것은 경합의 대상이되며, 그렇다면 LGPL의 적용을받습니다.

당신이하려고하는 것은 LGPL을 우회하는 것입니다.이 경우 이러한 기술로는 할 수 없습니다.

파생 작업 인 경우, 프로그램 용어는 "고객이 직접 수정하고 그러한 수정을 디버깅하기위한 리버스 엔지니어링"을 허용해야합니다. LGPL 프로그램을 사용하는 저작물이 파생물인지 아닌지는 법적 문제입니다.

그러나 당신이하려는 일이 LGPL을 우회하는 경우 Mark Booth가 권장하는대로 FSF에 연락 할 것 입니다.


1
문제는 LGPL이 일부 형태의 파생 작품을 허용하고 다른 형태는 허용하지 않는다는 것입니다. 라이브러리 (LGPL이어야 함)를 기반으로하는 작업 범주에 속하는 파생 작품 과 라이브러리를 사용하는 작업 (그렇지 않은)을 구별하기 위해 내 대답 을 업데이트했습니다 .
— Mark Booth

@MarkBooth 본인과 다른 사람들에게 동의합니다.이 경우 work based on이전에 개인 코드를 공개하기 위해 LGPL을 변경했기 때문입니다.

1

내 추측 : (그러나 IANAL) 수정 된 라이브러리를 오픈 소스로 LGPL 코드로 릴리스 한 다음 상용 프로그램에 드롭해야합니다. 작동합니다. 사실상 당신은 도서관의 오픈 소스 포크를 가지고 결국 프론트 엔드를 판매 할 것입니다.

그러나 다른 많은 사람들이 정당하게 말했듯 이 FSF에 물어보십시오 . 그것은 당신이 가지고있는 흥미로운 논쟁적인 시나리오입니다. 적용 가능한지 아닌지 궁금해 할 수도 있습니다. (또는 주제에 대한 FAQ 항목을 게시 할 정도로 충분히 신경 쓰지 마십시오)


1

https://www.gnu.org/licenses/lgpl-java.html

LGPL 라이브러리를 가져 오는 Java 응용 프로그램을 배포하면 LGPL을 쉽게 준수 할 수 있습니다. 애플리케이션 라이센스는 사용자가 라이브러리를 수정하고 코드를 리버스 엔지니어링하여 이러한 수정을 디버그 할 수 있도록해야합니다. 그렇다고 소스 코드 나 응용 프로그램 내부에 대한 세부 정보를 제공 할 필요는 없습니다. 물론 사용자가 라이브러리를 변경하면 인터페이스가 손상되어 라이브러리가 응용 프로그램에서 작동하지 않을 수 있습니다. 걱정할 필요는 없습니다. 라이브러리를 수정하는 사람들은 라이브러리를 작동시킬 책임이 있습니다.

간단히 말해서 라이브러리 코드 자체를 변경하지 않는 한 상속에는 문제가 없지만, 변경하더라도 애플리케이션 코드가 아닌 라이브러리 수정 코드 만 해제해야합니다.


1
귀하의 답변은 다른 답변과 모순되지만 귀하의 주장을 뒷받침하는 것은 아닙니다. 다른 답변은 더 자세하고 어설 션을 설명하는 데 더 효과적입니다. 제발 편집 귀하의 주장을 백업하기 위해 라이센스 또는 자유 소프트웨어 재단에서 관련 견적을 제공하기 위해 답변을.

실제로 내 답변이 내 주장을 뒷받침하는 데 많은 도움이되지 않습니까? LGPL과 클래스 상속에 대한 혼란을 없애기 위해 공식 GNU 페이지에 링크했습니다. LGPL v3을 포함하도록 업데이트되었습니다.
— Nik.B

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.