Header dan perjanjian lisensi kontributor

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

Tanda tangani perjanjian lisensi kontributor

Semua kontributor perorangan (mereka yang memberikan kontribusi sendirian nama) ide, kode, atau dokumentasi untuk Proyek Open Source Android (AOSP) diwajibkan untuk melengkapi, menandatangani, dan menyerahkan Perjanjian Lisensi Kontributor Perorangan. Anda dapat menyetujui perjanjian ini secara online melalui alat peninjauan kode. Perjanjian ini mendefinisikan persyaratan untuk menyumbangkan kekayaan intelektual ke AOSP. Lisensi ini ditujukan untuk perlindungan Anda sebagai kontributor serta perlindungan proyek; hal ini tidak mengubah hak Anda untuk menggunakan kontribusi untuk tujuan lain.

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

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

Sertakan header lisensi

Proyek Open Source Android (AOSP) menggunakan beberapa inisiatif open source yang disetujui lisensi untuk perangkat lunak kami.

Lisensi Apache, Versi 2.0 (Apache 2.0) adalah lisensi pilihan untuk AOSP, dan sebagian besar Android perangkat lunak ini dilisensikan dengan Apache 2.0. Sementara proyek ini berusaha untuk mematuhi lisensi pilihan, ada pengecualian, yang ditangani berdasarkan kasus per kasus layanan. Misalnya, {i>patch<i} 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 yang seperti BSD dan MIT) dibanding lisensi lain seperti GNU Lesser General Lisensi Publik (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 digunakan untuk perangkat lunak kita. Jadi, sementara Google mendorong semua orang untuk membuat perangkat yang dapat dimodifikasi, menurut kami ini bukan tempat kami untuk memaksa mereka melakukannya. Menggunakan Library LGPL dapat dibatasi. Berikut adalah beberapa permasalahan khusus kami:

    • Singkatnya, LGPL mewajibkan pengiriman sumber ke aplikasi; suatu penawaran tertulis sebagai sumber; atau menautkan pustaka berbasis LGPL secara dinamis dan yang memungkinkan pengguna untuk memperbarui atau mengganti {i>library<i} secara manual. Software Android adalah biasanya dikirim sebagai gambar sistem statis, jadi mematuhi persyaratan membatasi desain produsen perangkat. Misalnya, kesulitan bagi pengguna untuk mengganti perpustakaan di penyimpanan flash {i>read-only<i}.

    • LGPL mewajibkan izin modifikasi dan rekayasa balik yang diberikan pelanggan untuk melakukan proses debug pada modifikasi tersebut. Sebagian besar produsen perangkat tidak ingin terikat oleh persyaratan ini.

    • Secara historis, library LGPL telah menjadi sumber banyak kepatuhan bagi pembuat perangkat downstream dan developer aplikasi. Mengedukasi para insinyur untuk menangani masalah ini adalah hal yang sulit dan memakan waktu. Sangat penting untuk Keberhasilan Android bahwa produsen perangkat dapat dengan mudah mematuhi lisensi tersebut.

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

Saat mengirimkan kode untuk disertakan dalam AOSP, Anda harus memastikan penggunaan header lisensi. Bagian berikut menjelaskan cara menangani {i>header<i} lisensi untuk file baru dan kode yang sudah ada.

Ikuti praktik terbaik berikut untuk header hak cipta dan lisensi:

  • Jangan mengubah hak cipta yang sudah ada. Misalnya, jika Anda ingin berkontribusi ke AOSP yang berisi kode yang berasal dari sebuah file dengan pemberitahuan hak cipta, Anda harus mempertahankan pemberitahuan hak cipta tersebut dari file aslinya.

  • Jika Anda menambahkan file sumber yang sepenuhnya baru, gunakan hak cipta AOSP default dan 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.