참여자 라이선스 계약 및 헤더

이 페이지에서는 기여자 라이선스 계약 서명과 코드에서 라이선스 헤더의 올바른 사용을 보장하는 두 가지 중요한 기여자 작업을 다룹니다.

기여자 라이선스 계약 서명

Android 오픈소스 프로젝트(AOSP)에 아이디어, 코드 또는 문서를 기여하는 모든 개인 기여자(본인만을 대표하여 기여하는 사람)는 개인 기여자 라이선스 계약을 작성하고 서명한 다음 제출해야 합니다. 코드 검토 도구를 통해 온라인으로 이 계약을 체결할 수 있습니다. 이 계약은 AOSP에 지식 재산을 기여하는 조건을 정의합니다. 이 라이선스는 프로젝트 및 기여자의 보호를 위한 것이며 기여자가 자신의 기여물을 다른 목적으로 사용할 권리에 영향을 주지 않습니다.

직원이 AOSP에 참여하는 기업(또는 기타 법인)은 기업 기여자 라이선스 계약을 사용할 수 있습니다. 이 버전의 계약을 통해 기업은 지정된 직원이 제출한 기여를 승인하고 저작권 및 특허 라이선스를 부여할 수 있습니다.

Google의 기여자 라이선스 계약은 Apache 웹사이트에서 확인할 수 있는 Apache Software Foundation에서 사용하는 계약에 기반합니다.

라이선스 헤더 포함

Android 오픈소스 프로젝트(AOSP)에서는 오픈소스 이니셔티브 승인을 받은 오픈소스 라이선스 몇 가지를 Google 소프트웨어에 사용합니다.

Apache 라이선스 버전 2.0(Apache 2.0)은 AOSP의 기본 라이선스이며, 대부분의 Android 소프트웨어에는 Apache 2.0 라이선스가 부여됩니다. 본 프로젝트를 진행하면서 기본 라이선스를 준수하기 위해 노력하겠지만, 사례별로 처리되는 예외가 있을 수 있습니다. 예를 들어 Linux 커널 패치에는 Linux 커널 자료실에서 확인할 수 있는 시스템 예외가 포함된 GPLv2 라이선스가 적용됩니다.

커널이 아닌 사용자 공간 소프트웨어의 경우 Google에서는 GNU 약소 일반 공중 라이선스(LGPL)와 같은 다른 라이선스보다 Apache 2.0 및 이와 유사한 BSD, MIT와 같은 라이선스를 선호합니다. 이유는 다음과 같습니다.

  • Android는 자유와 선택을 중시합니다. Android의 목적은 모바일 환경의 개방성을 촉진하는 것이며 Google에서는 Google 소프트웨어의 모든 사용을 예측하거나 지시할 수는 없습니다. 따라서 개방형 기기와 수정 가능한 기기를 모두 권장하고 있지만, 두 종류의 기기를 만들도록 강제하는 일은 Google의 몫이 아니라고 생각합니다. LGPL 라이브러리의 사용은 제한적일 수 있습니다. 이에 관한 몇 가지 구체적인 문제는 다음과 같습니다.

    • 간단히 말해 LGPL을 사용하려면 애플리케이션에 소스를 제공하거나, 서면 형태로 소스를 제공하거나, LGPL이 적용되는 라이브러리를 동적으로 연결하고 사용자가 라이브러리를 직접 업그레이드하거나 교체할 수 있어야 합니다. 일반적으로 Android 소프트웨어는 정적 시스템 이미지로 제공되므로 이러한 요구사항을 준수하면 기기 제조업체가 설계상의 제약을 받습니다. 예를 들어 사용자가 읽기 전용 플래시 저장소의 라이브러리를 교체하기는 어렵습니다.

    • LGPL은 고객 수정 및 이러한 수정사항을 디버깅하기 위한 리버스 엔지니어링을 허용하도록 요구합니다. 대부분의 기기 제조업체는 이러한 조건에 구속되기를 원하지 않습니다.

    • 이전부터 다운스트림 기기 제조업체와 앱 개발자 입장에서 LGPL 라이브러리는 많은 규정 준수 문제의 근원이었습니다. 엔지니어에게 이러한 문제를 교육하는 일은 어려우며 시간이 많이 소요됩니다. Android의 성공을 위해서는 기기 제조업체가 쉽게 라이선스를 준수할 수 있어야 합니다.

이러한 우려는 LGPL이나 기타 라이선스를 비판하는 것이 아닙니다. Google에서는 모든 자유 및 오픈 소스 라이선스를 환영하고 타인의 라이선스 선호도를 존중합니다. Google에서는 Apache 2.0이 Google의 목표에 가장 적합하다는 결론을 내렸습니다.

AOSP에 포함될 코드를 제출할 때는 라이선스 헤더를 올바르게 사용해야 합니다. 다음 섹션에서는 새 파일과 기존 코드의 라이선스 헤더를 처리하는 방법을 설명합니다.

다음 저작권 및 라이선스 헤더 권장사항을 따르세요.

  • 기존 저작권을 수정하면 안 됩니다. 예를 들어 자체 저작권 고지가 있는 파일에서 시작된 코드가 포함된 파일을 AOSP에 제공하고 싶다면 원본 파일의 해당 저작권 고지를 유지해야 합니다.

  • 완전히 새로운 소스 파일을 추가하려면 기본 AOSP 저작권과 다음 라이선스 헤더를 사용합니다. 단, 기여하는 프로젝트에 다른 사전 정의된 라이선스가 있는 경우는 예외입니다.

    Copyright (C) yyyy The Android Open Source Project
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    
    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.