2022.07.26
안녕하세요?
이 게시판의 아래 링크의 글에 답변으로 제공된 MinIO의 라이선스인 AGPL v3에 대한 내용에 대하여 반론을 제기합니다.
아래 링크의 답변은 일부 인터넷에 떠도는 AGPL-3.0에 대한 부정확한 설명에 근거하여 모호한 답변을 제공함으로써 오픈소스 사용에 대한 근거없는 불안감을 조성하고 있으며 MinIO의 확산을 막고 있으니 검토하여 보시고 수정을 부탁 드립니다.
*
AGPLv3 라이센스 관련 문의
https://www.oss.kr/oss_license_qna/show/b0de8062-045f-41bc-98ab-bd27e5ccc34f
>> AGPL-3.0은 가장 강력한 카피레프트 성향의 라이선스입니다.
>>
연결되는 모든 소스코드에 소스코드 공개의무가 발생
하며, 네트워크 서비스 시에도
>> 소스코드 공개의무가 발생할 수 있습니다.
>> 즉, MinIO(AGPL-3.0)가 포함된 프로젝트를 배포한다면
MinIO와 연결된 모든 소스코드 범위에
>> 소스코드 공개의무가 발생
합니다.
>> 또한, MinIO를 통해 네트워크 서비스 시 네트워크 서비스를 이용하는 모든 이용자에게도
>> 소스코드 공개의무가 발생합니다.
위의 글은
'
MinIO와 연결된 모든 소스코드
'
라는 모호한 표현을 사용하여
공개가 필요한 소스코드의 범
위와
소스코드를 제공 받는 대상자
에 대하여 부정확한 인식을 주고 있습니다.
AGPL-3.0의 특징은 라이선스의 대상 소프트웨어를 네트워크를 통해서 서비스할 때,
네트워크를 통해서 접속한 주체에게도 소스코드를 제공할 의무
가 발생한다는 것입니다. 이는
누구에게 소스코드를 제공해야하는 지에 대해 명시
하고 있는 것이며
제공해야하는 소스코드의 범위에 대한 내용이 아닙니다.
이는 아래 라이선스 원문에 명시되어 있습니다.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently
offer all users interacting with it remotely through a computer network
(if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work.
The terms of this License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version 3 of the GNU General Public License.
AGPL-3.0 라이선스 대상 저작물과 GPL v3 저작물을 함께 링크하거나 결합하여 하나의 저작물을 생성할 경우, AGPL-3.0 라이선스는 원래 적용되었던 저작물 부분(covered work)에 적용되고, GPL v3가 적용되었던 저작물은 원래의 라이선스(GPL v3)를 적용 받는다.
그리고 아래 라이선스 원문은 수정된 소스를 배포할 때 라이선스의 적용범위에 대하여 명시하고 있습니다.
5. Conveying Modified Source Versions.
생략
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit.
Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
라이선스 대상 프로그램의 소스 원본이나 수정본을, 아래 두가지 종류의 별개의 독립적인 저작물과 함께 컴파일한 결과물과 그 결과에 의해 생성된 저작권이, 컴파일에 사용된 독립적인 저작물이 허용하는 범위를 넘어서 사용자의 법적권리나 결과물의 사용을 제한하기 위해 사용되지 않는 경우에, 그 결과물을 통합물(aggregate)이라고 한다.
* 독립적인 저작물 1: 라이선스 대상 프로그램로부터 파생되지 않은 저작물
* 독립적인 저작물 2: 라이선스 대상 프로그램과 함께 더 큰 프로그램을 구성하여 저장매체나 배포 매체에 저장하는 경우
라이선스 대상 프로그램의 원본이나 수정본을 통합물(aggregate)에 포함하더라도 AGPL-3.0 라이선스가 이 통합물(aggregate)의 다른 부분의 적용되지 않는다.
이상 라이선스 원문에서 중요한 부분에 대한 정리를 마칩니다.
------ 댓글 -------
License 관리자
안녕하세요
공개소프트웨어 라이선스 관리자입니다.
의견주셔서 감사합니다.
해당 내용에 대해 설명드립니다.
해당 문의의 답변은 AGPL-3.0을 대략적으로 알리고자 작성한 내용입니다.
'MinIO 라는 오픈소스를 사용하여 개발'을 MinIO의 "수정(modify)"으로 이해하고 답변한 작성이며,
말씀해주신 것처럼 '연결'에서 aggregate에 대한 내용은 설명되지 않았습니다.
관련된 내용을 좀 더 추가하자면,
AGPL-3.0의 프로그램을 수정을 하게 된다면, AGPL-3.0 제13조에 따라 원격 사용자에게 소스코드를 제공해야 합니다.
이
소스코드를 제공 받는 대상자
는 네트워크에 접속하는 원격 사용자(all users interacting with it remotely through a computer network)이며,
공개가 필요한 소스코드의 범위
는 Corresponding Source입니다.
Corresponding Source란 생성, 설치, 실행하고 수정할 수 있는데 필요한 모든 소스코드를 뜻하며, 스크립트까지 포함됩니다.
aggregate
의 뜻은 GPL FAQ에서 확인이 가능합니다.
동일한 매체에 함께 배포되는 separate program이 있는 경우 separate program에는 GPL이 적용되지 않으며 함께 배포할 수 있습니다.
두 개의 프로그램이 파이프, 소켓, 명령행 인자로 통신하는 경우 두 프로그램은 separate program으로 볼 수 있습니다.
또한, 말씀해주신 제5조의 마지막 부분처럼 Aggregate(separate program)에는 함께 있는 AGPL 프로그램의 라이선스가 영향을 미치지 않습니다.
다만, AGPL의 work based on the Program, covered work는 AGPL의 적용을 받습니다.
------------------------------------------------------------------------------
(제13조 일부)
Notwithstanding any other provision of this License,
if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network
(if your version supports such interaction)
an opportunity to receive the Corresponding Source of your version
by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
(Corresponding Source 정의)
The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities.
However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
(aggregate에 대한 GPL FAQ 내용)
- 출처: https://www.gnu.org/licenses/gpl-faq.html#MereAggregation
An “aggregate” consists of a number of
separate programs
, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are nonfree or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.
Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).
If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
By
contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two
separate programs.
So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
------------------------------------------------------------------------------
감사합니다.
※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.
------ 댓글 -------
Hi,
Thank you for using MinIO and please find below contents for your reference. For more information, please refer to our compliance page(
https://min.io/compliance
). If you have any questions, please reach out to hello@min.io and we are happy to assist you further.
Making combined or derivative works of MinIO
Creating combined or derivative works of MinIO requires all such works to be released under the same license.
If MinIO source code is included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
By contrast, pipes, sockets, RESTful APIs, and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
Merely aggregating MinIO software into your distribution does not constitute derivative works. For more information, please refer to the
GPL FAQ.
댓글 0
댓글 작성
댓글을 작성하려면 게시글 작성 시 입력한 이메일과 패스워드를 입력해주세요.