LGPL-2.1 가이드

Free Software Foundation에서 만든 대표적인 Weak Copyleft 라이선스인 LGPL-2.1은 재배포 시 소스 코드 공개를 요구하지만, LGPL Library를 Dynamic Link하여 사용하면 자사의 코드는 공개 대상에 포함되지 않습니다.

    SPDX Identifier: LGPL-2.1-only 또는 LGPL-2.1-or-later

    소스 코드 내 라이선스 문구

    LGPL-2.1 라이선스 하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있습니다.

    Copyright (C) year name of author
     
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.
     
    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    Lesser General Public License for more details.
     
    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
    

    사용 사례별 의무사항

    Case 1. 소스 형태로 재배포

    LGPL-2.1 라이선스 하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수합니다.

    1-1 고지 의무

    • 저작권 고지 제공
    • 보증 부인 제공
    • 라이선스 사본 제공

    즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포합니다.

    Case 2. 바이너리(라이브러리) 형태로 재배포

    LGPL-2.1 라이선스 하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수합니다.

    2-1 고지 의무

    • 저작권 고지 제공
    • 보증 부인 제공
    • 라이선스 사본 제공

    이상의 내용을 포함하는 오픈소스 고지문을 생성하여 라이브러리 재배포 시 동봉합니다.

    2-2 소스 코드 제공 의무

    바이너리(라이브러리)에 해당하는 소스 코드를 제공합니다. 이때 다음 사항을 준수합니다.

    1. LGPL-2.1은 파생저작물에 대해서도 LGPL-2.1을 적용하여 소스 코드를 공개할 것을 요구합니다. 아래 내용을 참고하여 LGPL-2.1 하의 오픈소스와 파생저작물의 소스 코드를 공개합니다.
    1. 사용자가 공개된 LGPL 라이브러리의 소스 코드를 빌드하여 동일한 라이브러리를 만들 수 있는 빌드 환경을 제공합니다. 여기에는 다음 사항이 포함됩니다.

      • Tool chain 정보
      • 빌드 스크립트
      • 빌드 방법 (README)
    2. LGPL 라이브러리를 Static Link하여 생성한 실행파일(Executable)을 배포하는 경우, 사용자가 LGPL 라이브러리를 수정하고 다시 실행파일을 생성할 수 있도록 실행파일을 구성하는 오브젝트 코드를 제공합니다. (#LGPLStaticVsDynamic)

    소스 코드 대신 서면 약정서(Written Offer)를 제공할 수 있습니다. 여기에는 다음 진술이 포함되어야 합니다.

    1. 서면 약정서는 제품 판매 후 3년간 유효합니다.
    2. 누구에게나 제공합니다.
    3. 비용 청구를 하지 않습니다. (소스 전달을 위해 발생하는 비용 제외)

    동적 링크 vs 정적 링크

    LGPL-2.1의 핵심은 링킹 방식에 따라 소스 코드 공개 범위가 달라진다는 점입니다.

    • 동적 링크(Dynamic Link): LGPL 라이브러리만 공개, 애플리케이션 코드는 공개 불필요
    • 정적 링크(Static Link): LGPL 라이브러리 + 오브젝트 코드 제공 필요

    상용 소프트웨어 개발 시에는 동적 링크 사용을 권장합니다.

    라이선스 호환성

    주요 라이선스와의 호환성

    결합 대상 라이선스호환 여부비고
    MIT호환동적 링크 시 상용 소프트웨어 가능
    Apache-2.0비호환특허 조항 충돌
    GPL-2.0호환GPL 부분은 GPL 유지
    LGPL-3.0조건부LGPL-2.1-or-later인 경우만 호환
    Proprietary조건부동적 링크 시 사용 가능

    참고 자료