Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 .. include:: ../disclaimer-ita.rst
0004 
0005 :Original: :ref:`Documentation/process/license-rules.rst <kernel_licensing>`
0006 :Translator: Federico Vaga <federico.vaga@vaga.pv.it>
0007 
0008 .. _it_kernel_licensing:
0009 
0010 Regole per licenziare il kernel Linux
0011 =====================================
0012 
0013 Il kernel Linux viene rilasciato sotto i termini definiti dalla seconda
0014 versione della licenza *GNU General Public License* (GPL-2.0), di cui una
0015 copia è disponibile nel file LICENSES/preferred/GPL-2.0; a questo si
0016 aggiunge eccezione per le chiamate di sistema come descritto in
0017 LICENSES/exceptions/Linux-syscall-note; tutto ciò è descritto nel file COPYING.
0018 
0019 Questo documento fornisce una descrizione su come ogni singolo file sorgente
0020 debba essere licenziato per far si che sia chiaro e non ambiguo. Questo non
0021 sostituisce la licenza del kernel.
0022 
0023 La licenza descritta nel file COPYING si applica ai sorgenti del kernel nella
0024 loro interezza, quindi i singoli file sorgenti possono avere diverse licenze ma
0025 devono essere compatibili con la GPL-2.0::
0026 
0027     GPL-1.0+  :  GNU General Public License v1.0 o successiva
0028     GPL-2.0+  :  GNU General Public License v2.0 o successiva
0029     LGPL-2.0  :  GNU Library General Public License v2
0030     LGPL-2.0+ :  GNU Library General Public License v2 o successiva
0031     LGPL-2.1  :  GNU Lesser General Public License v2.1
0032     LGPL-2.1+ :  GNU Lesser General Public License v2.1 o successiva
0033 
0034 A parte questo, i singolo file possono essere forniti con una doppia licenza,
0035 per esempio con una delle varianti compatibili della GPL e alternativamente con
0036 una licenza permissiva come BSD, MIT eccetera.
0037 
0038 I file d'intestazione per l'API verso lo spazio utente (UAPI) descrivono
0039 le interfacce usate dai programmi, e per questo sono un caso speciale.
0040 Secondo le note nel file COPYING, le chiamate di sistema sono un chiaro
0041 confine oltre il quale non si estendono i requisiti della GPL per quei
0042 programmi che le usano per comunicare con il kernel.  Dato che i file
0043 d'intestazione UAPI devono poter essere inclusi nei sorgenti di un
0044 qualsiasi programma eseguibile sul kernel Linux, questi meritano
0045 un'eccezione documentata da una clausola speciale.
0046 
0047 Il modo più comune per indicare la licenza dei file sorgenti è quello di
0048 aggiungere il corrispondente blocco di testo come commento in testa a detto
0049 file.  Per via della formattazione, dei refusi, eccetera, questi blocchi di
0050 testo sono difficili da identificare dagli strumenti usati per verificare il
0051 rispetto delle licenze.
0052 
0053 Un'alternativa ai blocchi di testo è data dall'uso degli identificatori
0054 *Software Package Data Exchange* (SPDX) in ogni file sorgente.  Gli
0055 identificatori di licenza SPDX sono analizzabili dalle macchine e sono precisi
0056 simboli stenografici che identificano la licenza sotto la quale viene
0057 licenziato il file che lo include.  Gli identificatori di licenza SPDX sono
0058 gestiti del gruppo di lavoro SPDX presso la Linux Foundation e sono stati
0059 concordati fra i soci nell'industria, gli sviluppatori di strumenti, e i
0060 rispettivi gruppi legali. Per maggiori informazioni, consultate
0061 https://spdx.org/
0062 
0063 Il kernel Linux richiede un preciso identificatore SPDX in tutti i file
0064 sorgenti.  Gli identificatori validi verranno spiegati nella sezione
0065 `Identificatori di licenza`_ e sono stati copiati dalla lista ufficiale di
0066 licenze SPDX assieme al rispettivo testo come mostrato in
0067 https://spdx.org/licenses/.
0068 
0069 Sintassi degli identificatori di licenza
0070 ----------------------------------------
0071 
0072 1. Posizionamento:
0073 
0074    L'identificativo di licenza SPDX dev'essere posizionato come prima riga
0075    possibile di un file che possa contenere commenti.  Per la maggior parte
0076    dei file questa è la prima riga, fanno eccezione gli script che richiedono
0077    come prima riga '#!PATH_TO_INTERPRETER'.  Per questi script l'identificativo
0078    SPDX finisce nella seconda riga.
0079 
0080 |
0081 
0082 2. Stile:
0083 
0084    L'identificativo di licenza SPDX viene aggiunto sotto forma di commento.
0085    Lo stile del commento dipende dal tipo di file::
0086 
0087       sorgenti C:       // SPDX-License-Identifier: <SPDX License Expression>
0088       intestazioni C:   /* SPDX-License-Identifier: <SPDX License Expression> */
0089       ASM:      /* SPDX-License-Identifier: <SPDX License Expression> */
0090       scripts:  # SPDX-License-Identifier: <SPDX License Expression>
0091       .rst:     .. SPDX-License-Identifier: <SPDX License Expression>
0092       .dts{i}:  // SPDX-License-Identifier: <SPDX License Expression>
0093 
0094    Se un particolare programma non dovesse riuscire a gestire lo stile
0095    principale per i commenti, allora dev'essere usato il meccanismo accettato
0096    dal programma.  Questo è il motivo per cui si ha "/\* \*/" nei file
0097    d'intestazione C.  Notammo che 'ld' falliva nell'analizzare i commenti del
0098    C++ nei file .lds che venivano prodotti.  Oggi questo è stato corretto,
0099    ma ci sono in giro ancora vecchi programmi che non sono in grado di
0100    gestire lo stile dei commenti del C++.
0101 
0102 |
0103 
0104 3. Sintassi:
0105 
0106    Una <espressione di licenza SPDX> può essere scritta usando l'identificatore
0107    SPDX della licenza come indicato nella lista di licenze SPDX, oppure la
0108    combinazione di due identificatori SPDX separati da "WITH" per i casi
0109    eccezionali. Quando si usano più licenze l'espressione viene formata da
0110    sottoespressioni separate dalle parole chiave "AND", "OR" e racchiuse fra
0111    parentesi tonde "(", ")".
0112 
0113    Gli identificativi di licenza per licenze come la [L]GPL che si avvalgono
0114    dell'opzione 'o successive' si formano aggiungendo alla fine il simbolo "+"
0115    per indicare l'opzione 'o successive'.::
0116 
0117       // SPDX-License-Identifier: GPL-2.0+
0118       // SPDX-License-Identifier: LGPL-2.1+
0119 
0120    WITH dovrebbe essere usato quando sono necessarie delle modifiche alla
0121    licenza.  Per esempio, la UAPI del kernel linux usa l'espressione::
0122 
0123       // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
0124       // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note
0125 
0126    Altri esempi di usi di WITH all'interno del kernel sono::
0127 
0128       // SPDX-License-Identifier: GPL-2.0 WITH mif-exception
0129       // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0
0130 
0131    Le eccezioni si possono usare solo in combinazione con identificatori di
0132    licenza. Gli identificatori di licenza riconosciuti sono elencati nei
0133    corrispondenti file d'eccezione. Per maggiori dettagli consultate
0134    `Eccezioni`_ nel capitolo `Identificatori di licenza`_
0135 
0136    La parola chiave OR dovrebbe essere usata solo quando si usa una doppia
0137    licenza e solo una dev'essere scelta.  Per esempio, alcuni file dtsi sono
0138    disponibili con doppia licenza::
0139 
0140       // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
0141 
0142    Esempi dal kernel di espressioni per file licenziati con doppia licenza
0143    sono::
0144 
0145       // SPDX-License-Identifier: GPL-2.0 OR MIT
0146       // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
0147       // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0
0148       // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1
0149       // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT
0150       // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL
0151 
0152    La parola chiave AND dovrebbe essere usata quando i termini di più licenze
0153    si applicano ad un file. Per esempio, quando il codice viene preso da
0154    un altro progetto il quale da i permessi per aggiungerlo nel kernel ma
0155    richiede che i termini originali della licenza rimangano intatti::
0156 
0157       // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT
0158 
0159    Di seguito, un altro esempio dove entrambe i termini di licenza devono
0160    essere rispettati::
0161 
0162       // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+
0163 
0164 Identificatori di licenza
0165 -------------------------
0166 
0167 Le licenze attualmente in uso, così come le licenze aggiunte al kernel, possono
0168 essere categorizzate in:
0169 
0170 1. _`Licenze raccomandate`:
0171 
0172    Ovunque possibile le licenze qui indicate dovrebbero essere usate perché
0173    pienamente compatibili e molto usate.  Queste licenze sono disponibile nei
0174    sorgenti del kernel, nella cartella::
0175 
0176      LICENSES/preferred/
0177 
0178    I file in questa cartella contengono il testo completo della licenza e i
0179    `Metatag`_.  Il nome di questi file è lo stesso usato come identificatore
0180    di licenza SPDX e che deve essere usato nei file sorgenti.
0181 
0182    Esempi::
0183 
0184      LICENSES/preferred/GPL-2.0
0185 
0186    Contiene il testo della seconda versione della licenza GPL e i metatag
0187    necessari::
0188 
0189      LICENSES/preferred/MIT
0190 
0191    Contiene il testo della licenza MIT e i metatag necessari.
0192 
0193    _`Metatag`:
0194 
0195    I seguenti metatag devono essere presenti in un file di licenza:
0196 
0197    - Valid-License-Identifier:
0198 
0199      Una o più righe che dichiarano quali identificatori di licenza sono validi
0200      all'interno del progetto per far riferimento alla licenza in questione.
0201      Solitamente, questo è un unico identificatore valido, ma per esempio le
0202      licenze che permettono l'opzione 'o successive' hanno due identificatori
0203      validi.
0204 
0205    - SPDX-URL:
0206 
0207      L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti
0208      la licenza.
0209 
0210    - Usage-Guidance:
0211 
0212      Testo in formato libero per dare suggerimenti agli utenti. Il testo deve
0213      includere degli esempi su come usare gli identificatori di licenza SPDX
0214      in un file sorgente in conformità con le linea guida in
0215      `Sintassi degli identificatori di licenza`_.
0216 
0217    - License-Text:
0218 
0219      Tutto il testo che compare dopo questa etichetta viene trattato
0220      come se fosse parte del testo originale della licenza.
0221 
0222    Esempi::
0223 
0224       Valid-License-Identifier: GPL-2.0
0225       Valid-License-Identifier: GPL-2.0+
0226       SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
0227       Usage-Guide:
0228         To use this license in source code, put one of the following SPDX
0229         tag/value pairs into a comment according to the placement
0230         guidelines in the licensing rules documentation.
0231         For 'GNU General Public License (GPL) version 2 only' use:
0232           SPDX-License-Identifier: GPL-2.0
0233         For 'GNU General Public License (GPL) version 2 or any later version' use:
0234           SPDX-License-Identifier: GPL-2.0+
0235       License-Text:
0236         Full license text
0237 
0238    ::
0239 
0240       SPDX-License-Identifier: MIT
0241       SPDX-URL: https://spdx.org/licenses/MIT.html
0242       Usage-Guide:
0243         To use this license in source code, put the following SPDX
0244         tag/value pair into a comment according to the placement
0245         guidelines in the licensing rules documentation.
0246           SPDX-License-Identifier: MIT
0247       License-Text:
0248         Full license text
0249 
0250 |
0251 
0252 2. Licenze deprecate:
0253 
0254    Questo tipo di licenze dovrebbero essere usate solo per codice già esistente
0255    o quando si prende codice da altri progetti.  Le licenze sono disponibili
0256    nei sorgenti del kernel nella cartella::
0257 
0258      LICENSES/deprecated/
0259 
0260    I file in questa cartella contengono il testo completo della licenza e i
0261    `Metatag`_.  Il nome di questi file è lo stesso usato come identificatore
0262    di licenza SPDX e che deve essere usato nei file sorgenti.
0263 
0264    Esempi::
0265 
0266      LICENSES/deprecated/ISC
0267 
0268    Contiene il testo della licenza Internet System Consortium e i suoi
0269    metatag::
0270 
0271      LICENSES/deprecated/GPL-1.0
0272 
0273    Contiene il testo della versione 1 della licenza GPL e i suoi metatag.
0274 
0275    Metatag:
0276 
0277    I metatag necessari per le 'altre' ('other') licenze sono gli stessi
0278    di usati per le `Licenze raccomandate`_.
0279 
0280    Esempio del formato del file::
0281 
0282       Valid-License-Identifier: ISC
0283       SPDX-URL: https://spdx.org/licenses/ISC.html
0284       Usage-Guide:
0285         Usage of this license in the kernel for new code is discouraged
0286         and it should solely be used for importing code from an already
0287         existing project.
0288         To use this license in source code, put the following SPDX
0289         tag/value pair into a comment according to the placement
0290         guidelines in the licensing rules documentation.
0291           SPDX-License-Identifier: ISC
0292       License-Text:
0293         Full license text
0294 
0295 |
0296 
0297 3. Solo per doppie licenze
0298 
0299    Queste licenze dovrebbero essere usate solamente per codice licenziato in
0300    combinazione con un'altra licenza che solitamente è quella preferita.
0301    Queste licenze sono disponibili nei sorgenti del kernel nella cartella::
0302 
0303      LICENSES/dual
0304 
0305    I file in questa cartella contengono il testo completo della rispettiva
0306    licenza e i suoi `Metatag`_.  I nomi dei file sono identici agli
0307    identificatori di licenza SPDX che dovrebbero essere usati nei file
0308    sorgenti.
0309 
0310    Esempi::
0311 
0312      LICENSES/dual/MPL-1.1
0313 
0314    Questo file contiene il testo della versione 1.1 della licenza *Mozilla
0315    Pulic License* e i metatag necessari::
0316 
0317      LICENSES/dual/Apache-2.0
0318 
0319    Questo file contiene il testo della versione 2.0 della licenza Apache e i
0320    metatag necessari.
0321 
0322    Metatag:
0323 
0324    I requisiti per le 'altre' ('*other*') licenze sono identici a quelli per le
0325    `Licenze raccomandate`_.
0326 
0327    Esempio del formato del file::
0328 
0329     Valid-License-Identifier: MPL-1.1
0330     SPDX-URL: https://spdx.org/licenses/MPL-1.1.html
0331     Usage-Guide:
0332       Do NOT use. The MPL-1.1 is not GPL2 compatible. It may only be used for
0333       dual-licensed files where the other license is GPL2 compatible.
0334       If you end up using this it MUST be used together with a GPL2 compatible
0335       license using "OR".
0336       To use the Mozilla Public License version 1.1 put the following SPDX
0337       tag/value pair into a comment according to the placement guidelines in
0338       the licensing rules documentation:
0339     SPDX-License-Identifier: MPL-1.1
0340     License-Text:
0341       Full license text
0342 
0343 |
0344 
0345 4. _`Eccezioni`:
0346 
0347    Alcune licenze possono essere corrette con delle eccezioni che forniscono
0348    diritti aggiuntivi.  Queste eccezioni sono disponibili nei sorgenti del
0349    kernel nella cartella::
0350 
0351      LICENSES/exceptions/
0352 
0353    I file in questa cartella contengono il testo completo dell'eccezione e i
0354    `Metatag per le eccezioni`_.
0355 
0356    Esempi::
0357 
0358       LICENSES/exceptions/Linux-syscall-note
0359 
0360    Contiene la descrizione dell'eccezione per le chiamate di sistema Linux
0361    così come documentato nel file COPYING del kernel Linux; questo viene usato
0362    per i file d'intestazione per la UAPI.  Per esempio
0363    /\* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note \*/::
0364 
0365       LICENSES/exceptions/GCC-exception-2.0
0366 
0367    Contiene la 'eccezione di linking' che permette di collegare qualsiasi
0368    binario, indipendentemente dalla sua licenza, con un compilato il cui file
0369    sorgente è marchiato con questa eccezione. Questo è necessario per creare
0370    eseguibili dai sorgenti che non sono compatibili con la GPL.
0371 
0372    _`Metatag per le eccezioni`:
0373 
0374    Un file contenente un'eccezione deve avere i seguenti metatag:
0375 
0376    - SPDX-Exception-Identifier:
0377 
0378      Un identificatore d'eccezione che possa essere usato in combinazione con
0379      un identificatore di licenza SPDX.
0380 
0381    - SPDX-URL:
0382 
0383      L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti
0384      l'eccezione.
0385 
0386    - SPDX-Licenses:
0387 
0388      Una lista di licenze SPDX separate da virgola, che possono essere usate
0389      con l'eccezione.
0390 
0391    - Usage-Guidance:
0392 
0393      Testo in formato libero per dare suggerimenti agli utenti. Il testo deve
0394      includere degli esempi su come usare gli identificatori di licenza SPDX
0395      in un file sorgente in conformità con le linea guida in
0396      `Sintassi degli identificatori di licenza`_.
0397 
0398    - Exception-Text:
0399 
0400      Tutto il testo che compare dopo questa etichetta viene trattato
0401      come se fosse parte del testo originale della licenza.
0402 
0403    Esempi::
0404 
0405       SPDX-Exception-Identifier: Linux-syscall-note
0406       SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
0407       SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
0408       Usage-Guidance:
0409         This exception is used together with one of the above SPDX-Licenses
0410         to mark user-space API (uapi) header files so they can be included
0411         into non GPL compliant user-space application code.
0412         To use this exception add it with the keyword WITH to one of the
0413         identifiers in the SPDX-Licenses tag:
0414           SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
0415       Exception-Text:
0416         Full exception text
0417 
0418    ::
0419 
0420       SPDX-Exception-Identifier: GCC-exception-2.0
0421       SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html
0422       SPDX-Licenses: GPL-2.0, GPL-2.0+
0423       Usage-Guidance:
0424         The "GCC Runtime Library exception 2.0" is used together with one
0425         of the above SPDX-Licenses for code imported from the GCC runtime
0426         library.
0427         To use this exception add it with the keyword WITH to one of the
0428         identifiers in the SPDX-Licenses tag:
0429           SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0
0430       Exception-Text:
0431         Full exception text
0432 
0433 Per ogni identificatore di licenza SPDX e per le eccezioni dev'esserci un file
0434 nella sotto-cartella LICENSES.  Questo è necessario per permettere agli
0435 strumenti di effettuare verifiche (come checkpatch.pl), per avere le licenze
0436 disponibili per la lettura e per estrarre i diritti dai sorgenti, così come
0437 raccomandato da diverse organizzazioni FOSS, per esempio l'`iniziativa FSFE
0438 REUSE <https://reuse.software/>`_.
0439 
0440 _`MODULE_LICENSE`
0441 -----------------
0442 
0443    I moduli del kernel necessitano di un'etichetta MODULE_LICENSE(). Questa
0444    etichetta non sostituisce le informazioni sulla licenza del codice sorgente
0445    (SPDX-License-Identifier) né fornisce informazioni che esprimono o
0446    determinano l'esatta licenza sotto la quale viene rilasciato.
0447 
0448    Il solo scopo di questa etichetta è quello di fornire sufficienti
0449    informazioni al caricatore di moduli del kernel, o agli strumenti in spazio
0450    utente, per capire se il modulo è libero o proprietario.
0451 
0452    Le stringe di licenza valide per MODULE_LICENSE() sono:
0453 
0454     ============================= =============================================
0455     "GPL"                         Il modulo è licenziato con la GPL versione 2.
0456                                   Questo non fa distinzione fra GPL'2.0-only o
0457                                   GPL-2.0-or-later. L'esatta licenza può essere
0458                                   determinata solo leggendo i corrispondenti
0459                                   file sorgenti.
0460 
0461     "GPL v2"                      Stesso significato di "GPL". Esiste per
0462                                   motivi storici.
0463 
0464     "GPL and additional rights"   Questa è una variante che esiste per motivi
0465                                   storici che indica che i sorgenti di un
0466                                   modulo sono rilasciati sotto una variante
0467                                   della licenza GPL v2 e quella MIT. Per favore
0468                                   non utilizzatela per codice nuovo.
0469 
0470     "Dual MIT/GPL"                Questo è il modo corretto per esprimere il
0471                                   il fatto che il modulo è rilasciato con
0472                                   doppia licenza a scelta fra: una variante
0473                                   della GPL v2 o la licenza MIT.
0474 
0475     "Dual BSD/GPL"                Questo modulo è rilasciato con doppia licenza
0476                                   a scelta fra: una variante della GPL v2 o la
0477                                   licenza BSD. La variante esatta della licenza
0478                                   BSD può essere determinata solo attraverso i
0479                                   corrispondenti file sorgenti.
0480 
0481     "Dual MPL/GPL"                Questo modulo è rilasciato con doppia licenza
0482                                   a scelta fra: una variante della GPL v2 o la
0483                                   Mozilla Public License (MPL). La variante
0484                                   esatta della licenza MPL può essere
0485                                   determinata solo attraverso i corrispondenti
0486                                   file sorgenti.
0487 
0488     "Proprietary"                 Questo modulo è rilasciato con licenza
0489                                   proprietaria. Questa stringa è solo per i
0490                                   moduli proprietari di terze parti e non può
0491                                   essere usata per quelli che risiedono nei
0492                                   sorgenti del kernel. I moduli etichettati in
0493                                   questo modo stanno contaminando il kernel e
0494                                   gli viene assegnato un flag 'P'; quando
0495                                   vengono caricati, il caricatore di moduli del
0496                                   kernel si rifiuterà di collegare questi
0497                                   moduli ai simboli che sono stati esportati
0498                                   con EXPORT_SYMBOL_GPL().
0499 
0500     ============================= =============================================