Perjanjian lisensi kontributor dan header

Halaman ini membahas dua tugas penting kontributor: menandatangani perjanjian lisensi kontributor dan memastikan penggunaan header pemberian lisensi yang benar dalam kode Anda.

Menandatangani perjanjian lisensi kontributor

Semua kontributor perorangan (yang memberikan kontribusi ide, kode, atau dokumentasi ke Android Open Source Project (AOSP) atas nama mereka sendiri) diwajibkan untuk mengisi, menandatangani, dan mengirimkan Perjanjian Lisensi Kontributor Perorangan. Anda dapat menjalankan perjanjian ini secara online melalui alat peninjauan kode. Perjanjian ini menentukan persyaratan untuk memberikan kontribusi kekayaan intelektual ke AOSP. Lisensi ini untuk melindungi Anda sebagai kontributor serta melindungi project; lisensi ini tidak mengubah hak Anda untuk menggunakan kontribusi Anda sendiri untuk tujuan lain.

Perjanjian Lisensi Kontributor Perusahaan tersedia untuk perusahaan (atau entitas lain) dengan karyawan yang mengerjakan AOSP. Versi perjanjian ini memungkinkan perusahaan mengizinkan kontribusi yang dikirimkan oleh karyawan yang ditunjuk dan memberikan lisensi hak cipta dan paten.

Google mendasarkan perjanjian lisensi kontributornya pada perjanjian yang digunakan oleh Apache Software Foundation, yang dapat ditemukan di situs Apache.

Menyertakan header lisensi

Project Open Source Android (AOSP) menggunakan beberapa lisensi open source yang disetujui oleh inisiatif open source untuk software kami.

Lisensi Apache, Versi 2.0 (Apache 2.0) adalah lisensi pilihan untuk AOSP, dan sebagian besar software Android berlisensi Apache 2.0. Meskipun project tersebut berusaha untuk mematuhi lisensi pilihan, terkadang juga terdapat pengecualian yang perlu ditangani secara kasus per kasus. Misalnya, patch kernel Linux berada di bawah lisensi GPLv2 dengan pengecualian sistem, yang dapat ditemukan di The Linux Kernel Archives.

Untuk software ruang pengguna (non-kernel), Google lebih memilih Apache 2.0 (dan lisensi serupa seperti BSD dan MIT) daripada lisensi lain seperti GNU Lesser General Public License (LGPL). Berikut alasannya:

  • Android adalah tentang kebebasan dan pilihan. Tujuan Android adalah untuk mempromosikan keterbukaan di dunia seluler, dan Google tidak dapat memprediksi atau mendikte semua penggunaan software kami. Jadi, meskipun Google mendorong semua orang untuk membuat perangkat yang terbuka dan dapat dimodifikasi, kami tidak merasa berhak memaksa mereka melakukannya. Penggunaan library LGPL dapat membatasi. Berikut beberapa kekhawatiran spesifik kami:

    • Secara sederhana, LGPL mewajibkan pengiriman kode sumber ke aplikasi; penawaran tertulis untuk kode sumber; atau menautkan library yang menggunakan LGPL secara dinamis dan mengizinkan pengguna mengupgrade atau mengganti library secara manual. Software Android biasanya dikirimkan sebagai image sistem statis, sehingga mematuhi persyaratan ini membatasi desain produsen perangkat. Misalnya, pengguna sulit mengganti pustaka di penyimpanan flash hanya baca.

    • LGPL mewajibkan izin modifikasi dan rekayasa balik oleh pelanggan untuk men-debug modifikasi tersebut. Sebagian besar produsen perangkat tidak ingin terikat dengan persyaratan ini.

    • Secara historis, library LGPL telah menjadi sumber banyak masalah kepatuhan bagi pembuat perangkat dan developer aplikasi hilir. Mendidik engineer tentang masalah ini sulit dan memakan waktu. Sangat penting bagi kesuksesan Android bahwa produsen perangkat dapat dengan mudah mematuhi lisensi.

Kekhawatiran ini bukan kritik terhadap LGPL atau lisensi lainnya. Google menghargai semua lisensi open source dan gratis, serta menghormati preferensi lisensi orang lain. Google telah memutuskan bahwa Apache 2.0 adalah yang paling sesuai dengan tujuan kami.

Saat mengirimkan kode untuk disertakan dalam AOSP, Anda harus memastikan penggunaan header lisensi yang tepat. Bagian berikut menjelaskan cara menangani header lisensi untuk file baru dan kode yang ada.

Ikuti praktik terbaik berikut untuk header hak cipta dan lisensi:

  • Jangan mengubah hak cipta yang ada. Misalnya, jika Anda ingin memberikan kontribusi file ke AOSP yang berisi kode yang berasal dari file dengan pemberitahuan hak cipta sendiri, Anda harus mempertahankan pemberitahuan hak cipta tersebut dari file asli.

  • Jika Anda menambahkan file sumber yang benar-benar baru, gunakan hak cipta AOSP default dan header lisensi berikut, kecuali jika project yang Anda kontribusikan memiliki lisensi standar yang berbeda:

    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.