Merge tag 'io_uring-5.11-2021-01-16' of git://git.kernel.dk/linux-block
[linux/fpc-iii.git] / Documentation / translations / it_IT / process / license-rules.rst
blob4cd87a3a7bf92c4c9231eced56a0d8137bbb1819
1 .. SPDX-License-Identifier: GPL-2.0
3 .. include:: ../disclaimer-ita.rst
5 :Original: :ref:`Documentation/process/license-rules.rst <kernel_licensing>`
6 :Translator: Federico Vaga <federico.vaga@vaga.pv.it>
8 .. _it_kernel_licensing:
10 Regole per licenziare il kernel Linux
11 =====================================
13 Il kernel Linux viene rilasciato sotto i termini definiti dalla seconda
14 versione della licenza *GNU General Public License* (GPL-2.0), di cui una
15 copia è disponibile nel file LICENSES/preferred/GPL-2.0; a questo si
16 aggiunge eccezione per le chiamate di sistema come descritto in
17 LICENSES/exceptions/Linux-syscall-note; tutto ciò è descritto nel file COPYING.
19 Questo documento fornisce una descrizione su come ogni singolo file sorgente
20 debba essere licenziato per far si che sia chiaro e non ambiguo. Questo non
21 sostituisce la licenza del kernel.
23 La licenza descritta nel file COPYING si applica ai sorgenti del kernel nella
24 loro interezza, quindi i singoli file sorgenti possono avere diverse licenze ma
25 devono essere compatibili con la GPL-2.0::
27     GPL-1.0+  :  GNU General Public License v1.0 o successiva
28     GPL-2.0+  :  GNU General Public License v2.0 o successiva
29     LGPL-2.0  :  GNU Library General Public License v2
30     LGPL-2.0+ :  GNU Library General Public License v2 o successiva
31     LGPL-2.1  :  GNU Lesser General Public License v2.1
32     LGPL-2.1+ :  GNU Lesser General Public License v2.1 o successiva
34 A parte questo, i singolo file possono essere forniti con una doppia licenza,
35 per esempio con una delle varianti compatibili della GPL e alternativamente con
36 una licenza permissiva come BSD, MIT eccetera.
38 I file d'intestazione per l'API verso lo spazio utente (UAPI) descrivono
39 le interfacce usate dai programmi, e per questo sono un caso speciale.
40 Secondo le note nel file COPYING, le chiamate di sistema sono un chiaro
41 confine oltre il quale non si estendono i requisiti della GPL per quei
42 programmi che le usano per comunicare con il kernel.  Dato che i file
43 d'intestazione UAPI devono poter essere inclusi nei sorgenti di un
44 qualsiasi programma eseguibile sul kernel Linux, questi meritano
45 un'eccezione documentata da una clausola speciale.
47 Il modo più comune per indicare la licenza dei file sorgenti è quello di
48 aggiungere il corrispondente blocco di testo come commento in testa a detto
49 file.  Per via della formattazione, dei refusi, eccetera, questi blocchi di
50 testo sono difficili da identificare dagli strumenti usati per verificare il
51 rispetto delle licenze.
53 Un'alternativa ai blocchi di testo è data dall'uso degli identificatori
54 *Software Package Data Exchange* (SPDX) in ogni file sorgente.  Gli
55 identificatori di licenza SPDX sono analizzabili dalle macchine e sono precisi
56 simboli stenografici che identificano la licenza sotto la quale viene
57 licenziato il file che lo include.  Gli identificatori di licenza SPDX sono
58 gestiti del gruppo di lavoro SPDX presso la Linux Foundation e sono stati
59 concordati fra i soci nell'industria, gli sviluppatori di strumenti, e i
60 rispettivi gruppi legali. Per maggiori informazioni, consultate
61 https://spdx.org/
63 Il kernel Linux richiede un preciso identificatore SPDX in tutti i file
64 sorgenti.  Gli identificatori validi verranno spiegati nella sezione
65 `Identificatori di licenza`_ e sono stati copiati dalla lista ufficiale di
66 licenze SPDX assieme al rispettivo testo come mostrato in
67 https://spdx.org/licenses/.
69 Sintassi degli identificatori di licenza
70 ----------------------------------------
72 1. Posizionamento:
74    L'identificativo di licenza SPDX dev'essere posizionato come prima riga
75    possibile di un file che possa contenere commenti.  Per la maggior parte
76    dei file questa è la prima riga, fanno eccezione gli script che richiedono
77    come prima riga '#!PATH_TO_INTERPRETER'.  Per questi script l'identificativo
78    SPDX finisce nella seconda riga.
82 2. Stile:
84    L'identificativo di licenza SPDX viene aggiunto sotto forma di commento.
85    Lo stile del commento dipende dal tipo di file::
87       sorgenti C:       // SPDX-License-Identifier: <SPDX License Expression>
88       intestazioni C:   /* SPDX-License-Identifier: <SPDX License Expression> */
89       ASM:      /* SPDX-License-Identifier: <SPDX License Expression> */
90       scripts:  # SPDX-License-Identifier: <SPDX License Expression>
91       .rst:     .. SPDX-License-Identifier: <SPDX License Expression>
92       .dts{i}:  // SPDX-License-Identifier: <SPDX License Expression>
94    Se un particolare programma non dovesse riuscire a gestire lo stile
95    principale per i commenti, allora dev'essere usato il meccanismo accettato
96    dal programma.  Questo è il motivo per cui si ha "/\* \*/" nei file
97    d'intestazione C.  Notammo che 'ld' falliva nell'analizzare i commenti del
98    C++ nei file .lds che venivano prodotti.  Oggi questo è stato corretto,
99    ma ci sono in giro ancora vecchi programmi che non sono in grado di
100    gestire lo stile dei commenti del C++.
104 3. Sintassi:
106    Una <espressione di licenza SPDX> può essere scritta usando l'identificatore
107    SPDX della licenza come indicato nella lista di licenze SPDX, oppure la
108    combinazione di due identificatori SPDX separati da "WITH" per i casi
109    eccezionali. Quando si usano più licenze l'espressione viene formata da
110    sottoespressioni separate dalle parole chiave "AND", "OR" e racchiuse fra
111    parentesi tonde "(", ")".
113    Gli identificativi di licenza per licenze come la [L]GPL che si avvalgono
114    dell'opzione 'o successive' si formano aggiungendo alla fine il simbolo "+"
115    per indicare l'opzione 'o successive'.::
117       // SPDX-License-Identifier: GPL-2.0+
118       // SPDX-License-Identifier: LGPL-2.1+
120    WITH dovrebbe essere usato quando sono necessarie delle modifiche alla
121    licenza.  Per esempio, la UAPI del kernel linux usa l'espressione::
123       // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
124       // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note
126    Altri esempi di usi di WITH all'interno del kernel sono::
128       // SPDX-License-Identifier: GPL-2.0 WITH mif-exception
129       // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0
131    Le eccezioni si possono usare solo in combinazione con identificatori di
132    licenza. Gli identificatori di licenza riconosciuti sono elencati nei
133    corrispondenti file d'eccezione. Per maggiori dettagli consultate
134    `Eccezioni`_ nel capitolo `Identificatori di licenza`_
136    La parola chiave OR dovrebbe essere usata solo quando si usa una doppia
137    licenza e solo una dev'essere scelta.  Per esempio, alcuni file dtsi sono
138    disponibili con doppia licenza::
140       // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
142    Esempi dal kernel di espressioni per file licenziati con doppia licenza
143    sono::
145       // SPDX-License-Identifier: GPL-2.0 OR MIT
146       // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
147       // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0
148       // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1
149       // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT
150       // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL
152    La parola chiave AND dovrebbe essere usata quando i termini di più licenze
153    si applicano ad un file. Per esempio, quando il codice viene preso da
154    un altro progetto il quale da i permessi per aggiungerlo nel kernel ma
155    richiede che i termini originali della licenza rimangano intatti::
157       // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT
159    Di seguito, un altro esempio dove entrambe i termini di licenza devono
160    essere rispettati::
162       // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+
164 Identificatori di licenza
165 -------------------------
167 Le licenze attualmente in uso, così come le licenze aggiunte al kernel, possono
168 essere categorizzate in:
170 1. _`Licenze raccomandate`:
172    Ovunque possibile le licenze qui indicate dovrebbero essere usate perché
173    pienamente compatibili e molto usate.  Queste licenze sono disponibile nei
174    sorgenti del kernel, nella cartella::
176      LICENSES/preferred/
178    I file in questa cartella contengono il testo completo della licenza e i
179    `Metatag`_.  Il nome di questi file è lo stesso usato come identificatore
180    di licenza SPDX e che deve essere usato nei file sorgenti.
182    Esempi::
184      LICENSES/preferred/GPL-2.0
186    Contiene il testo della seconda versione della licenza GPL e i metatag
187    necessari::
189      LICENSES/preferred/MIT
191    Contiene il testo della licenza MIT e i metatag necessari.
193    _`Metatag`:
195    I seguenti metatag devono essere presenti in un file di licenza:
197    - Valid-License-Identifier:
199      Una o più righe che dichiarano quali identificatori di licenza sono validi
200      all'interno del progetto per far riferimento alla licenza in questione.
201      Solitamente, questo è un unico identificatore valido, ma per esempio le
202      licenze che permettono l'opzione 'o successive' hanno due identificatori
203      validi.
205    - SPDX-URL:
207      L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti
208      la licenza.
210    - Usage-Guidance:
212      Testo in formato libero per dare suggerimenti agli utenti. Il testo deve
213      includere degli esempi su come usare gli identificatori di licenza SPDX
214      in un file sorgente in conformità con le linea guida in
215      `Sintassi degli identificatori di licenza`_.
217    - License-Text:
219      Tutto il testo che compare dopo questa etichetta viene trattato
220      come se fosse parte del testo originale della licenza.
222    Esempi::
224       Valid-License-Identifier: GPL-2.0
225       Valid-License-Identifier: GPL-2.0+
226       SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
227       Usage-Guide:
228         To use this license in source code, put one of the following SPDX
229         tag/value pairs into a comment according to the placement
230         guidelines in the licensing rules documentation.
231         For 'GNU General Public License (GPL) version 2 only' use:
232           SPDX-License-Identifier: GPL-2.0
233         For 'GNU General Public License (GPL) version 2 or any later version' use:
234           SPDX-License-Identifier: GPL-2.0+
235       License-Text:
236         Full license text
238    ::
240       SPDX-License-Identifier: MIT
241       SPDX-URL: https://spdx.org/licenses/MIT.html
242       Usage-Guide:
243         To use this license in source code, put the following SPDX
244         tag/value pair into a comment according to the placement
245         guidelines in the licensing rules documentation.
246           SPDX-License-Identifier: MIT
247       License-Text:
248         Full license text
252 2. Licenze deprecate:
254    Questo tipo di licenze dovrebbero essere usate solo per codice già esistente
255    o quando si prende codice da altri progetti.  Le licenze sono disponibili
256    nei sorgenti del kernel nella cartella::
258      LICENSES/deprecated/
260    I file in questa cartella contengono il testo completo della licenza e i
261    `Metatag`_.  Il nome di questi file è lo stesso usato come identificatore
262    di licenza SPDX e che deve essere usato nei file sorgenti.
264    Esempi::
266      LICENSES/deprecated/ISC
268    Contiene il testo della licenza Internet System Consortium e i suoi
269    metatag::
271      LICENSES/deprecated/GPL-1.0
273    Contiene il testo della versione 1 della licenza GPL e i suoi metatag.
275    Metatag:
277    I metatag necessari per le 'altre' ('other') licenze sono gli stessi
278    di usati per le `Licenze raccomandate`_.
280    Esempio del formato del file::
282       Valid-License-Identifier: ISC
283       SPDX-URL: https://spdx.org/licenses/ISC.html
284       Usage-Guide:
285         Usage of this license in the kernel for new code is discouraged
286         and it should solely be used for importing code from an already
287         existing project.
288         To use this license in source code, put the following SPDX
289         tag/value pair into a comment according to the placement
290         guidelines in the licensing rules documentation.
291           SPDX-License-Identifier: ISC
292       License-Text:
293         Full license text
297 3. Solo per doppie licenze
299    Queste licenze dovrebbero essere usate solamente per codice licenziato in
300    combinazione con un'altra licenza che solitamente è quella preferita.
301    Queste licenze sono disponibili nei sorgenti del kernel nella cartella::
303      LICENSES/dual
305    I file in questa cartella contengono il testo completo della rispettiva
306    licenza e i suoi `Metatag`_.  I nomi dei file sono identici agli
307    identificatori di licenza SPDX che dovrebbero essere usati nei file
308    sorgenti.
310    Esempi::
312      LICENSES/dual/MPL-1.1
314    Questo file contiene il testo della versione 1.1 della licenza *Mozilla
315    Pulic License* e i metatag necessari::
317      LICENSES/dual/Apache-2.0
319    Questo file contiene il testo della versione 2.0 della licenza Apache e i
320    metatag necessari.
322    Metatag:
324    I requisiti per le 'altre' ('*other*') licenze sono identici a quelli per le
325    `Licenze raccomandate`_.
327    Esempio del formato del file::
329     Valid-License-Identifier: MPL-1.1
330     SPDX-URL: https://spdx.org/licenses/MPL-1.1.html
331     Usage-Guide:
332       Do NOT use. The MPL-1.1 is not GPL2 compatible. It may only be used for
333       dual-licensed files where the other license is GPL2 compatible.
334       If you end up using this it MUST be used together with a GPL2 compatible
335       license using "OR".
336       To use the Mozilla Public License version 1.1 put the following SPDX
337       tag/value pair into a comment according to the placement guidelines in
338       the licensing rules documentation:
339     SPDX-License-Identifier: MPL-1.1
340     License-Text:
341       Full license text
345 4. _`Eccezioni`:
347    Alcune licenze possono essere corrette con delle eccezioni che forniscono
348    diritti aggiuntivi.  Queste eccezioni sono disponibili nei sorgenti del
349    kernel nella cartella::
351      LICENSES/exceptions/
353    I file in questa cartella contengono il testo completo dell'eccezione e i
354    `Metatag per le eccezioni`_.
356    Esempi::
358       LICENSES/exceptions/Linux-syscall-note
360    Contiene la descrizione dell'eccezione per le chiamate di sistema Linux
361    così come documentato nel file COPYING del kernel Linux; questo viene usato
362    per i file d'intestazione per la UAPI.  Per esempio
363    /\* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note \*/::
365       LICENSES/exceptions/GCC-exception-2.0
367    Contiene la 'eccezione di linking' che permette di collegare qualsiasi
368    binario, indipendentemente dalla sua licenza, con un compilato il cui file
369    sorgente è marchiato con questa eccezione. Questo è necessario per creare
370    eseguibili dai sorgenti che non sono compatibili con la GPL.
372    _`Metatag per le eccezioni`:
374    Un file contenente un'eccezione deve avere i seguenti metatag:
376    - SPDX-Exception-Identifier:
378      Un identificatore d'eccezione che possa essere usato in combinazione con
379      un identificatore di licenza SPDX.
381    - SPDX-URL:
383      L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti
384      l'eccezione.
386    - SPDX-Licenses:
388      Una lista di licenze SPDX separate da virgola, che possono essere usate
389      con l'eccezione.
391    - Usage-Guidance:
393      Testo in formato libero per dare suggerimenti agli utenti. Il testo deve
394      includere degli esempi su come usare gli identificatori di licenza SPDX
395      in un file sorgente in conformità con le linea guida in
396      `Sintassi degli identificatori di licenza`_.
398    - Exception-Text:
400      Tutto il testo che compare dopo questa etichetta viene trattato
401      come se fosse parte del testo originale della licenza.
403    Esempi::
405       SPDX-Exception-Identifier: Linux-syscall-note
406       SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
407       SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
408       Usage-Guidance:
409         This exception is used together with one of the above SPDX-Licenses
410         to mark user-space API (uapi) header files so they can be included
411         into non GPL compliant user-space application code.
412         To use this exception add it with the keyword WITH to one of the
413         identifiers in the SPDX-Licenses tag:
414           SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
415       Exception-Text:
416         Full exception text
418    ::
420       SPDX-Exception-Identifier: GCC-exception-2.0
421       SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html
422       SPDX-Licenses: GPL-2.0, GPL-2.0+
423       Usage-Guidance:
424         The "GCC Runtime Library exception 2.0" is used together with one
425         of the above SPDX-Licenses for code imported from the GCC runtime
426         library.
427         To use this exception add it with the keyword WITH to one of the
428         identifiers in the SPDX-Licenses tag:
429           SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0
430       Exception-Text:
431         Full exception text
433 Per ogni identificatore di licenza SPDX e per le eccezioni dev'esserci un file
434 nella sotto-cartella LICENSES.  Questo è necessario per permettere agli
435 strumenti di effettuare verifiche (come checkpatch.pl), per avere le licenze
436 disponibili per la lettura e per estrarre i diritti dai sorgenti, così come
437 raccomandato da diverse organizzazioni FOSS, per esempio l'`iniziativa FSFE
438 REUSE <https://reuse.software/>`_.
440 _`MODULE_LICENSE`
441 -----------------
443    I moduli del kernel necessitano di un'etichetta MODULE_LICENSE(). Questa
444    etichetta non sostituisce le informazioni sulla licenza del codice sorgente
445    (SPDX-License-Identifier) né fornisce informazioni che esprimono o
446    determinano l'esatta licenza sotto la quale viene rilasciato.
448    Il solo scopo di questa etichetta è quello di fornire sufficienti
449    informazioni al caricatore di moduli del kernel, o agli strumenti in spazio
450    utente, per capire se il modulo è libero o proprietario.
452    Le stringe di licenza valide per MODULE_LICENSE() sono:
454     ============================= =============================================
455     "GPL"                         Il modulo è licenziato con la GPL versione 2.
456                                   Questo non fa distinzione fra GPL'2.0-only o
457                                   GPL-2.0-or-later. L'esatta licenza può essere
458                                   determinata solo leggendo i corrispondenti
459                                   file sorgenti.
461     "GPL v2"                      Stesso significato di "GPL". Esiste per
462                                   motivi storici.
464     "GPL and additional rights"   Questa è una variante che esiste per motivi
465                                   storici che indica che i sorgenti di un
466                                   modulo sono rilasciati sotto una variante
467                                   della licenza GPL v2 e quella MIT. Per favore
468                                   non utilizzatela per codice nuovo.
470     "Dual MIT/GPL"                Questo è il modo corretto per esprimere il
471                                   il fatto che il modulo è rilasciato con
472                                   doppia licenza a scelta fra: una variante
473                                   della GPL v2 o la licenza MIT.
475     "Dual BSD/GPL"                Questo modulo è rilasciato con doppia licenza
476                                   a scelta fra: una variante della GPL v2 o la
477                                   licenza BSD. La variante esatta della licenza
478                                   BSD può essere determinata solo attraverso i
479                                   corrispondenti file sorgenti.
481     "Dual MPL/GPL"                Questo modulo è rilasciato con doppia licenza
482                                   a scelta fra: una variante della GPL v2 o la
483                                   Mozilla Public License (MPL). La variante
484                                   esatta della licenza MPL può essere
485                                   determinata solo attraverso i corrispondenti
486                                   file sorgenti.
488     "Proprietary"                 Questo modulo è rilasciato con licenza
489                                   proprietaria. Questa stringa è solo per i
490                                   moduli proprietari di terze parti e non può
491                                   essere usata per quelli che risiedono nei
492                                   sorgenti del kernel. I moduli etichettati in
493                                   questo modo stanno contaminando il kernel e
494                                   gli viene assegnato un flag 'P'; quando
495                                   vengono caricati, il caricatore di moduli del
496                                   kernel si rifiuterà di collegare questi
497                                   moduli ai simboli che sono stati esportati
498                                   con EXPORT_SYMBOL_GPL().
500     ============================= =============================================