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 ============================= =============================================