Contratti di licenza dei collaboratori e intestazioni

In questa pagina vengono illustrate due importanti attività dei collaboratori: la firma dei contratti di licenza dei collaboratori e la garanzia di un corretto utilizzo delle intestazioni delle licenze nel codice.

Firmare i contratti di licenza dei collaboratori

Tutti i singoli collaboratori (ovvero coloro che forniscono contributi solo per conto proprio) di idee, codice o documentazione al progetto Android Open Source (AOSP) devono compilare, firmare e inviare un contratto di licenza per i singoli collaboratori. Puoi eseguire questo contratto online tramite lo strumento di revisione del codice. Il contratto definisce i termini per la donazione di proprietà intellettuale all'AOSP. Questa licenza è a tua tutela in qualità di collaboratore e a tutela del progetto. Non modifica i tuoi diritti di utilizzo dei tuoi contributi per altri scopi.

Il Corporate Contributor License Agreement è disponibile per una società (o un'altra persona giuridica) con dipendenti che lavorano su AOSP. Questa versione del contratto consente a un'azienda di autorizzare i contributi inviati dai dipendenti designati e concedere licenze di copyright e brevetti.

Google basa i propri contratti di licenza dei collaboratori su quelli utilizzati dalla Apache Software Foundation, che sono disponibili sul sito web di Apache.

Includi le intestazioni delle licenze

Android Open Source Project (AOSP) utilizza alcune iniziative open source approvate per il nostro software.

La Licenza Apache, versione 2.0 (Apache 2.0) è la licenza preferita per AOSP e la maggior parte del software Android è concessa in licenza con Apache 2.0. Sebbene il progetto si impegni a rispettare la licenza preferita, esistono delle eccezioni, che vengono gestite caso per caso. Ad esempio, i patch del kernel Linux sono coperti dalla licenza GPLv2 con alcune eccezioni per il sistema, che puoi trovare negli archivi del kernel Linux.

Per il software nello spazio utente (non del kernel), Google preferisce Apache 2.0 (e licenze simili come BSD e MIT) ad altre licenze come la GNU Lesser General Public License (LGPL). Di seguito le ragioni:

  • Android offre libertà e scelta. Lo scopo di Android è promuovere l'apertura nel mondo mobile e Google non può prevedere o dettare tutti gli utilizzi del nostro software. Pertanto, anche se Google incoraggia tutti a creare dispositivi aperti e modificabili, non riteniamo di avere il diritto di obbligarli a farlo. L'utilizzo di librerie LGPL potrebbe essere limitativo. Ecco alcuni dei nostri dubbi specifici:

    • In termini semplificati, LGPL richiede la spedizione dell'origine all'applicazione, un'offerta scritta per l'origine o il collegamento dinamico della libreria LGPL e consentire agli utenti di eseguire manualmente l'upgrade o la sostituzione della libreria. Il software Android viene solitamente fornito come immagine di sistema statica, pertanto la conformità a questi requisiti limita i progetti dei produttori di dispositivi. Ad esempio, è difficile per un utente sostituire una raccolta su archiviazione flash di sola lettura.

    • LGPL consente la modifica da parte del cliente e il reverse engineering per il debug di queste modifiche. La maggior parte dei produttori di dispositivi non vuole essere vincolata da questi termini.

    • Storicamente, le librerie LGPL sono state fonte di molti problemi di conformità per i produttori di dispositivi e gli sviluppatori di app a valle. Formare gli ingegneri su questi problemi è difficile e richiede tempo. È fondamentale per il successo di Android che i produttori di dispositivi possano rispettare facilmente le licenze.

Questi dubbi non sono critiche alla LGPL o ad altre licenze. Google apprezza tutte le licenze senza costi e open source e rispetta le preferenze di licenza degli altri. Google ha deciso che Apache 2.0 è la soluzione più adatta per i suoi obiettivi.

Quando invii il codice da includere in AOSP, devi assicurarti di utilizzare correttamente le intestazioni delle licenze. Le sezioni seguenti spiegano come gestire le intestazioni della licenza per i nuovi file e il codice esistente.

Segui queste best practice per l'intestazione del copyright e della licenza:

  • Non modificare un copyright esistente. Ad esempio, se vuoi donare un file all'AOSP contenente codice che ha avuto origine in un file con una propria nota sul copyright, devi conservare la nota sul copyright del file originale.

  • Se aggiungi un file di origine completamente nuovo, utilizza il copyright AOSP predefinito e la seguente intestazione della licenza, a meno che il progetto a cui stai contribuendo non abbia una licenza predefinita diversa:

    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.