Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / Documentation / translations / it_IT / process / license-rules.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 .. include:: ../disclaimer-ita.rst
4
5 :Original: :ref:`Documentation/process/license-rules.rst <kernel_licensing>`
6 :Translator: Federico Vaga <federico.vaga@vaga.pv.it>
7
8 .. _it_kernel_licensing:
9
10 Regole per licenziare il kernel Linux
11 =====================================
12
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.
18
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.
22
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::
26
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
33
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.
37
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.
46
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.
52
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/
62
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/.
68
69 Sintassi degli identificatori di licenza
70 ----------------------------------------
71
72 1. Posizionamento:
73
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.
79
80 |
81
82 2. Stile:
83
84    L'identificativo di licenza SPDX viene aggiunto sotto forma di commento.
85    Lo stile del commento dipende dal tipo di file::
86
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>
93
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++.
101
102 |
103
104 3. Sintassi:
105
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 "(", ")".
112
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'.::
116
117       // SPDX-License-Identifier: GPL-2.0+
118       // SPDX-License-Identifier: LGPL-2.1+
119
120    WITH dovrebbe essere usato quando sono necessarie delle modifiche alla
121    licenza.  Per esempio, la UAPI del kernel linux usa l'espressione::
122
123       // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
124       // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note
125
126    Altri esempi di usi di WITH all'interno del kernel sono::
127
128       // SPDX-License-Identifier: GPL-2.0 WITH mif-exception
129       // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0
130
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`_
135
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::
139
140       // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
141
142    Esempi dal kernel di espressioni per file licenziati con doppia licenza
143    sono::
144
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
151
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::
156
157       // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT
158
159    Di seguito, un altro esempio dove entrambe i termini di licenza devono
160    essere rispettati::
161
162       // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+
163
164 Identificatori di licenza
165 -------------------------
166
167 Le licenze attualmente in uso, così come le licenze aggiunte al kernel, possono
168 essere categorizzate in:
169
170 1. _`Licenze raccomandate`:
171
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::
175
176      LICENSES/preferred/
177
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.
181
182    Esempi::
183
184      LICENSES/preferred/GPL-2.0
185
186    Contiene il testo della seconda versione della licenza GPL e i metatag
187    necessari::
188
189      LICENSES/preferred/MIT
190
191    Contiene il testo della licenza MIT e i metatag necessari.
192
193    _`Metatag`:
194
195    I seguenti metatag devono essere presenti in un file di licenza:
196
197    - Valid-License-Identifier:
198
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.
204
205    - SPDX-URL:
206
207      L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti
208      la licenza.
209
210    - Usage-Guidance:
211
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`_.
216
217    - License-Text:
218
219      Tutto il testo che compare dopo questa etichetta viene trattato
220      come se fosse parte del testo originale della licenza.
221
222    Esempi::
223
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
237
238    ::
239
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
249
250 |
251
252 2. Licenze deprecate:
253
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::
257
258      LICENSES/deprecated/
259
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.
263
264    Esempi::
265
266      LICENSES/deprecated/ISC
267
268    Contiene il testo della licenza Internet System Consortium e i suoi
269    metatag::
270
271      LICENSES/deprecated/GPL-1.0
272
273    Contiene il testo della versione 1 della licenza GPL e i suoi metatag.
274
275    Metatag:
276
277    I metatag necessari per le 'altre' ('other') licenze sono gli stessi
278    di usati per le `Licenze raccomandate`_.
279
280    Esempio del formato del file::
281
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
294
295 |
296
297 3. Solo per doppie licenze
298
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::
302
303      LICENSES/dual
304
305    I file in questa cartella contengono il testo completo della rispettiva
306    licenza e i suoi `Metatags`_.  I nomi dei file sono identici agli
307    identificatori di licenza SPDX che dovrebbero essere usati nei file
308    sorgenti.
309
310    Esempi::
311
312      LICENSES/dual/MPL-1.1
313
314    Questo file contiene il testo della versione 1.1 della licenza *Mozilla
315    Pulic License* e i metatag necessari::
316
317      LICENSES/dual/Apache-2.0
318
319    Questo file contiene il testo della versione 2.0 della licenza Apache e i
320    metatag necessari.
321
322    Metatag:
323
324    I requisiti per le 'altre' ('*other*') licenze sono identici a quelli per le
325    `Licenze raccomandate`_.
326
327    Esempio del formato del file::
328
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
342
343 |
344
345 4. _`Eccezioni`:
346
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::
350
351      LICENSES/exceptions/
352
353    I file in questa cartella contengono il testo completo dell'eccezione e i
354    `Metatag per le eccezioni`_.
355
356    Esempi::
357
358       LICENSES/exceptions/Linux-syscall-note
359
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 \*/::
364
365       LICENSES/exceptions/GCC-exception-2.0
366
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.
371
372    _`Metatag per le eccezioni`:
373
374    Un file contenente un'eccezione deve avere i seguenti metatag:
375
376    - SPDX-Exception-Identifier:
377
378      Un identificatore d'eccezione che possa essere usato in combinazione con
379      un identificatore di licenza SPDX.
380
381    - SPDX-URL:
382
383      L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti
384      l'eccezione.
385
386    - SPDX-Licenses:
387
388      Una lista di licenze SPDX separate da virgola, che possono essere usate
389      con l'eccezione.
390
391    - Usage-Guidance:
392
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`_.
397
398    - Exception-Text:
399
400      Tutto il testo che compare dopo questa etichetta viene trattato
401      come se fosse parte del testo originale della licenza.
402
403    Esempi::
404
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
417
418    ::
419
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
432
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/>`_.
439
440 _`MODULE_LICENSE`
441 -----------------
442
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.
447
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.
451
452    Le stringe di licenza valide per MODULE_LICENSE() sono:
453
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.
460
461     "GPL v2"                      Stesso significato di "GPL". Esiste per
462                                   motivi storici.
463
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.
469
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.
474
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.
480
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.
487
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().
499
500     ============================= =============================================