Esta página cubre dos tareas importantes de los contribuyentes: firmar acuerdos de licencia de contribuyentes y garantizar el uso correcto de los encabezados de licencia en su código.
Firmar acuerdos de licencia de colaborador
Todos los contribuyentes individuales (aquellos que realizan contribuciones solo en su propio nombre) de ideas, código o documentación al Proyecto de código abierto de Android (AOSP) deben completar, firmar y enviar un Acuerdo de licencia de colaborador individual . Puede ejecutar este acuerdo en línea a través de la herramienta de revisión de código . El acuerdo define los términos para contribuir con propiedad intelectual a AOSP. Esta licencia es para su protección como colaborador así como para la protección del proyecto; no cambia sus derechos a utilizar sus propias contribuciones para ningún otro propósito.
El Acuerdo de licencia de colaborador corporativo está disponible para una corporación (u otra entidad) con empleados que trabajan en AOSP. Esta versión del acuerdo permite a una corporación autorizar las contribuciones presentadas por sus empleados designados y otorgar licencias de derechos de autor y patentes.
Google basa sus acuerdos de licencia de colaborador en los utilizados por Apache Software Foundation , que se pueden encontrar en el sitio web de Apache .
Incluir encabezados de licencia
El Proyecto de código abierto de Android (AOSP) utiliza algunas licencias de código abierto aprobadas por iniciativas de código abierto para nuestro software.
La licencia Apache, versión 2.0 (Apache 2.0) es la licencia preferida para AOSP, y la mayoría del software de Android tiene licencia Apache 2.0. Si bien el proyecto se esfuerza por cumplir con la licencia preferida, existen excepciones, que se manejan caso por caso. Por ejemplo, los parches del kernel de Linux están bajo la licencia GPLv2 con excepciones del sistema, que se pueden encontrar en The Linux Kernel Archives .
Para el software del espacio de usuario (no kernel), Google prefiere Apache 2.0 (y licencias similares como BSD y MIT) a otras licencias como la Licencia pública general reducida (LGPL) de GNU. Este es el por qué:
Android se trata de libertad y elección. El propósito de Android es promover la apertura en el mundo móvil y Google no puede predecir ni dictar todos los usos de nuestro software. Entonces, si bien Google alienta a todos a crear dispositivos abiertos y modificables, no creemos que nos corresponda obligarlos a hacerlo. El uso de bibliotecas LGPL podría resultar restrictivo. Estas son algunas de nuestras preocupaciones específicas:
En términos simplificados, LGPL requiere el envío de la fuente a la aplicación; una oferta escrita de fuente; o vincular dinámicamente la biblioteca LGPL-ed y permitir a los usuarios actualizar o reemplazar manualmente la biblioteca. El software de Android normalmente se envía como una imagen estática del sistema, por lo que cumplir con estos requisitos restringe los diseños de los fabricantes de dispositivos. Por ejemplo, es difícil para un usuario reemplazar una biblioteca en un almacenamiento flash de sólo lectura.
LGPL requiere que se permitan modificaciones del cliente e ingeniería inversa para depurar esas modificaciones. La mayoría de los fabricantes de dispositivos no quieren estar sujetos a estos términos.
Históricamente, las bibliotecas LGPL han sido la fuente de muchos problemas de cumplimiento para los fabricantes de dispositivos y desarrolladores de aplicaciones. Educar a los ingenieros sobre estos temas es difícil y requiere mucho tiempo. Es fundamental para el éxito de Android que los fabricantes de dispositivos puedan cumplir fácilmente con las licencias.
Estas preocupaciones no son críticas a LGPL u otras licencias. Google valora todas las licencias gratuitas y de código abierto y respeta las preferencias de licencia de los demás. Google ha decidido que Apache 2.0 es la mejor opción para nuestros objetivos.
Al enviar código para incluirlo en AOSP, debe garantizar el uso adecuado de los encabezados de licencia. Las siguientes secciones explican cómo manejar los encabezados de licencia para archivos nuevos y código existente.
Siga las mejores prácticas en materia de licencias y derechos de autor
Siga estas mejores prácticas para derechos de autor y encabezados de licencia:
No modifique un copyright existente. Por ejemplo, si desea contribuir con un archivo a AOSP que contiene código que se originó en un archivo con su propio aviso de derechos de autor, debe conservar ese aviso de derechos de autor del archivo original.
Si agrega un archivo fuente completamente nuevo, use el copyright AOSP predeterminado y el siguiente encabezado de licencia, a menos que el proyecto al que está contribuyendo tenga una licencia predefinida diferente:
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.