Perjanjian dan header lisensi kontributor

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

Menandatangani perjanjian lisensi kontributor

Semua kontributor individu (yang memberikan kontribusi hanya atas nama mereka sendiri) ide, kode, atau dokumentasi ke Proyek Sumber Terbuka Android (AOSP) diwajibkan untuk melengkapi, menandatangani, dan mengirimkan Perjanjian Lisensi Kontributor Perorangan . Anda dapat melaksanakan perjanjian ini secara online melalui alat peninjauan kode . Perjanjian tersebut mendefinisikan ketentuan untuk menyumbangkan kekayaan intelektual kepada AOSP. Lisensi ini untuk perlindungan Anda sebagai kontributor serta perlindungan proyek; hal ini tidak mengubah hak Anda untuk menggunakan kontribusi Anda untuk tujuan lain apa pun.

Perjanjian Lisensi Kontributor Korporat tersedia untuk perusahaan (atau entitas lain) dengan karyawan yang bekerja di AOSP. Versi perjanjian ini memungkinkan perusahaan mengotorisasi kontribusi yang diserahkan 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 web Apache .

Sertakan header lisensi

Proyek Sumber Terbuka Android (AOSP) menggunakan beberapa inisiatif sumber terbuka yang menyetujui lisensi sumber terbuka untuk perangkat lunak kami.

Lisensi Apache, Versi 2.0 (Apache 2.0) adalah lisensi pilihan untuk AOSP, dan sebagian besar perangkat lunak Android dilisensikan dengan Apache 2.0. Meskipun proyek berupaya untuk mematuhi lisensi pilihan, terdapat pengecualian, yang ditangani berdasarkan kasus per kasus. Misalnya, patch kernel Linux berada di bawah lisensi GPLv2 dengan pengecualian sistem, yang dapat ditemukan di Arsip Kernel Linux .

Untuk perangkat lunak userspace (nonkernel), Google lebih memilih Apache 2.0 (dan lisensi serupa seperti BSD dan MIT) dibandingkan lisensi lain seperti GNU Lesser General Public License (LGPL). Inilah alasannya:

  • Android adalah tentang kebebasan dan pilihan. Tujuan Android adalah untuk mendorong keterbukaan di dunia seluler, dan Google tidak dapat memprediksi atau mendikte semua penggunaan perangkat lunak kami. Jadi, meskipun Google mendorong semua orang untuk membuat perangkat yang terbuka dan dapat dimodifikasi, menurut kami bukan tugas kami untuk memaksa mereka melakukannya. Penggunaan perpustakaan LGPL bisa jadi membatasi. Berikut adalah beberapa kekhawatiran khusus kami:

    • Dalam istilah yang disederhanakan, LGPL memerlukan pengiriman sumber ke aplikasi; tawaran tertulis untuk sumber; atau menghubungkan perpustakaan LGPL-ed secara dinamis dan memungkinkan pengguna untuk meningkatkan atau mengganti perpustakaan secara manual. Perangkat lunak Android biasanya dikirimkan sebagai image sistem statis, sehingga mematuhi persyaratan ini membatasi desain produsen perangkat. Misalnya, sulit bagi pengguna untuk mengganti perpustakaan dengan penyimpanan flash hanya-baca.

    • LGPL memerlukan izin modifikasi pelanggan dan rekayasa balik untuk men-debug modifikasi tersebut. Kebanyakan pembuat perangkat tidak ingin terikat dengan ketentuan ini.

    • Secara historis, perpustakaan LGPL telah menjadi sumber banyak masalah kepatuhan bagi pembuat perangkat hilir dan pengembang aplikasi. Mendidik para insinyur mengenai masalah ini sulit dan memakan waktu. Penting bagi kesuksesan Android agar pembuat perangkat dapat dengan mudah mematuhi lisensinya.

Kekhawatiran ini bukanlah kritik terhadap LGPL atau lisensi lainnya. Google menghargai semua lisensi gratis dan sumber terbuka, serta menghormati preferensi lisensi pihak 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 dengan benar. Bagian berikut menjelaskan cara menangani header lisensi untuk file baru dan kode yang sudah ada.

Ikuti praktik terbaik berikut untuk hak cipta dan header lisensi:

  • Jangan mengubah hak cipta yang ada. Misalnya, jika Anda ingin menyumbangkan file ke AOSP yang berisi kode yang berasal dari file dengan pemberitahuan hak ciptanya sendiri, Anda harus menyimpan pemberitahuan hak cipta tersebut dari file aslinya.

  • Jika Anda menambahkan file sumber yang sepenuhnya baru, gunakan hak cipta AOSP default dan header lisensi berikut, kecuali proyek yang Anda kontribusikan memiliki lisensi berbeda 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.