Perjanjian lisensi kontributor dan header

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

Menandatangani perjanjian lisensi kontributor

Semua kontributor perorangan (yang hanya memberikan kontribusi atas nama mereka sendiri) untuk ide, kode, atau dokumentasi ke Android Open Source Project (AOSP) diwajibkan untuk mengisi, menandatangani, dan mengirimkan Perjanjian Lisensi Kontributor Perorangan. Anda dapat menjalankan perjanjian ini secara online melalui the 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) yang memiliki karyawan yang bekerja di AOSP. Versi perjanjian ini memungkinkan perusahaan mengotorisasi kontribusi yang dikirimkan oleh karyawan yang ditunjuk dan memberikan lisensi hak cipta dan paten.

Google mendasarkan perjanjian lisensi kontributornya pada perjanjian yang digunakan oleh the Apache Software Foundation, yang can be found on the Apache website.

Menyertakan header lisensi

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

Apache License, Versi 2.0 (Apache 2.0) adalah lisensi pilihan untuk AOSP, dan sebagian besar software Android dilisensikan dengan Apache 2.0. Meskipun project ini berupaya mematuhi lisensi pilihan, ada pengecualian, yang ditangani berdasarkan 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 menentukan semua penggunaan software kami. Jadi, meskipun Google mendorong semua orang untuk membuat perangkat yang terbuka dan dapat dimodifikasi, kami tidak berpikir bahwa kami berhak memaksa mereka untuk melakukannya. Penggunaan library LGPL dapat membatasi. Berikut beberapa kekhawatiran khusus kami:

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

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

    • Secara historis, library LGPL telah menjadi sumber dari banyak masalah kepatuhan untuk produsen perangkat dan developer aplikasi downstream. 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 benar. Bagian berikut menjelaskan cara menangani header lisensi untuk file baru dan kode yang ada.

Ikuti praktik terbaik ini 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 yang telah ditentukan sebelumnya:

    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.