Contratos de licença e cabeçalhos de contribuidor

Esta página aborda duas tarefas importantes do contribuidor: assinar contratos de licença de contribuidor e garantir o uso correto dos cabeçalhos de licenciamento em seu código.

Assine contratos de licença de contribuidor

Todos os contribuidores individuais (aqueles que fazem contribuições apenas em seu próprio nome) de ideias, código ou documentação para o Android Open Source Project (AOSP) são obrigados a preencher, assinar e enviar um Contrato de Licença de Contribuidor Individual . Você pode assinar este contrato on-line por meio da ferramenta de revisão de código . O acordo define os termos para contribuição de propriedade intelectual para o AOSP. Esta licença é para sua proteção como contribuidor, bem como para a proteção do projeto; isso não altera seus direitos de usar suas próprias contribuições para qualquer outra finalidade.

O Contrato de Licença de Contribuinte Corporativo está disponível para uma corporação (ou outra entidade) com funcionários trabalhando no AOSP. Esta versão do acordo permite que uma empresa autorize contribuições enviadas por seus funcionários designados e conceda licenças de direitos autorais e patentes.

O Google baseia seus contratos de licença de contribuidor naqueles usados ​​pela Apache Software Foundation , que podem ser encontrados no site da Apache .

Incluir cabeçalhos de licença

O Android Open Source Project (AOSP) usa algumas licenças de código aberto aprovadas pela iniciativa de código aberto para nosso software.

Licença Apache, versão 2.0 (Apache 2.0) é a licença preferencial para AOSP, e a maioria do software Android é licenciada com Apache 2.0. Embora o projeto se esforce para aderir à licença preferencial, há exceções, que são tratadas caso a caso. Por exemplo, os patches do kernel Linux estão sob a licença GPLv2 com exceções de sistema, que podem ser encontradas em The Linux Kernel Archives .

Para software de espaço de usuário (não-kernel), o Google prefere o Apache 2.0 (e licenças semelhantes, como BSD e MIT) a outras licenças, como a GNU Lesser General Public License (LGPL). Aqui está o porquê:

  • Android é uma questão de liberdade e escolha. O objetivo do Android é promover a abertura no mundo móvel, e o Google não pode prever ou ditar todos os usos do nosso software. Portanto, embora o Google incentive todos a criar dispositivos abertos e modificáveis, não achamos que seja nossa função forçá-los a fazer isso. O uso de bibliotecas LGPL pode ser restritivo. Aqui estão algumas de nossas preocupações específicas:

    • Em termos simplificados, a LGPL exige o envio da fonte para a aplicação; uma oferta por escrito de fonte; ou vincular dinamicamente a biblioteca LGPL e permitir que os usuários atualizem ou substituam manualmente a biblioteca. O software Android normalmente é fornecido como uma imagem estática do sistema, portanto, a conformidade com esses requisitos restringe os designs dos fabricantes de dispositivos. Por exemplo, é difícil para um usuário substituir uma biblioteca em armazenamento flash somente leitura.

    • A LGPL exige a permissão de modificação do cliente e engenharia reversa para depurar essas modificações. A maioria dos fabricantes de dispositivos não quer ficar vinculada a esses termos.

    • Historicamente, as bibliotecas LGPL têm sido a fonte de muitos problemas de conformidade para fabricantes de dispositivos e desenvolvedores de aplicativos. Educar engenheiros sobre essas questões é difícil e demorado. É fundamental para o sucesso do Android que os fabricantes de dispositivos possam cumprir facilmente as licenças.

Estas preocupações não são críticas à LGPL ou a outras licenças. O Google valoriza todas as licenças gratuitas e de código aberto e respeita as preferências de licença de terceiros. O Google decidiu que o Apache 2.0 é o mais adequado para nossos objetivos.

Ao enviar o código para ser incluído no AOSP, você deve garantir o uso adequado dos cabeçalhos de licença. As seções a seguir explicam como lidar com cabeçalhos de licença para novos arquivos e código existente.

Siga estas práticas recomendadas para direitos autorais e cabeçalho de licença:

  • Não modifique um copyright existente. Por exemplo, se quiser contribuir com um arquivo para o AOSP que contenha código originado em um arquivo com seu próprio aviso de direitos autorais, você deverá reter esse aviso de direitos autorais do arquivo original.

  • Se você adicionar um arquivo de origem totalmente novo, use os direitos autorais padrão do AOSP e o seguinte cabeçalho de licença, a menos que o projeto para o qual você está contribuindo tenha uma licença 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.