brintos

brintos / linux-shallow public Read only

0
0
Text · 19.2 KiB · 4cd87a3 Raw
501 lines · plain
1.. SPDX-License-Identifier: GPL-2.02 3.. include:: ../disclaimer-ita.rst4 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 10Regole per licenziare il kernel Linux11=====================================12 13Il kernel Linux viene rilasciato sotto i termini definiti dalla seconda14versione della licenza *GNU General Public License* (GPL-2.0), di cui una15copia è disponibile nel file LICENSES/preferred/GPL-2.0; a questo si16aggiunge eccezione per le chiamate di sistema come descritto in17LICENSES/exceptions/Linux-syscall-note; tutto ciò è descritto nel file COPYING.18 19Questo documento fornisce una descrizione su come ogni singolo file sorgente20debba essere licenziato per far si che sia chiaro e non ambiguo. Questo non21sostituisce la licenza del kernel.22 23La licenza descritta nel file COPYING si applica ai sorgenti del kernel nella24loro interezza, quindi i singoli file sorgenti possono avere diverse licenze ma25devono essere compatibili con la GPL-2.0::26 27    GPL-1.0+  :  GNU General Public License v1.0 o successiva28    GPL-2.0+  :  GNU General Public License v2.0 o successiva29    LGPL-2.0  :  GNU Library General Public License v230    LGPL-2.0+ :  GNU Library General Public License v2 o successiva31    LGPL-2.1  :  GNU Lesser General Public License v2.132    LGPL-2.1+ :  GNU Lesser General Public License v2.1 o successiva33 34A parte questo, i singolo file possono essere forniti con una doppia licenza,35per esempio con una delle varianti compatibili della GPL e alternativamente con36una licenza permissiva come BSD, MIT eccetera.37 38I file d'intestazione per l'API verso lo spazio utente (UAPI) descrivono39le interfacce usate dai programmi, e per questo sono un caso speciale.40Secondo le note nel file COPYING, le chiamate di sistema sono un chiaro41confine oltre il quale non si estendono i requisiti della GPL per quei42programmi che le usano per comunicare con il kernel.  Dato che i file43d'intestazione UAPI devono poter essere inclusi nei sorgenti di un44qualsiasi programma eseguibile sul kernel Linux, questi meritano45un'eccezione documentata da una clausola speciale.46 47Il modo più comune per indicare la licenza dei file sorgenti è quello di48aggiungere il corrispondente blocco di testo come commento in testa a detto49file.  Per via della formattazione, dei refusi, eccetera, questi blocchi di50testo sono difficili da identificare dagli strumenti usati per verificare il51rispetto delle licenze.52 53Un'alternativa ai blocchi di testo è data dall'uso degli identificatori54*Software Package Data Exchange* (SPDX) in ogni file sorgente.  Gli55identificatori di licenza SPDX sono analizzabili dalle macchine e sono precisi56simboli stenografici che identificano la licenza sotto la quale viene57licenziato il file che lo include.  Gli identificatori di licenza SPDX sono58gestiti del gruppo di lavoro SPDX presso la Linux Foundation e sono stati59concordati fra i soci nell'industria, gli sviluppatori di strumenti, e i60rispettivi gruppi legali. Per maggiori informazioni, consultate61https://spdx.org/62 63Il kernel Linux richiede un preciso identificatore SPDX in tutti i file64sorgenti.  Gli identificatori validi verranno spiegati nella sezione65`Identificatori di licenza`_ e sono stati copiati dalla lista ufficiale di66licenze SPDX assieme al rispettivo testo come mostrato in67https://spdx.org/licenses/.68 69Sintassi degli identificatori di licenza70----------------------------------------71 721. Posizionamento:73 74   L'identificativo di licenza SPDX dev'essere posizionato come prima riga75   possibile di un file che possa contenere commenti.  Per la maggior parte76   dei file questa è la prima riga, fanno eccezione gli script che richiedono77   come prima riga '#!PATH_TO_INTERPRETER'.  Per questi script l'identificativo78   SPDX finisce nella seconda riga.79 80|81 822. 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 stile95   principale per i commenti, allora dev'essere usato il meccanismo accettato96   dal programma.  Questo è il motivo per cui si ha "/\* \*/" nei file97   d'intestazione C.  Notammo che 'ld' falliva nell'analizzare i commenti del98   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 di100   gestire lo stile dei commenti del C++.101 102|103 1043. Sintassi:105 106   Una <espressione di licenza SPDX> può essere scritta usando l'identificatore107   SPDX della licenza come indicato nella lista di licenze SPDX, oppure la108   combinazione di due identificatori SPDX separati da "WITH" per i casi109   eccezionali. Quando si usano più licenze l'espressione viene formata da110   sottoespressioni separate dalle parole chiave "AND", "OR" e racchiuse fra111   parentesi tonde "(", ")".112 113   Gli identificativi di licenza per licenze come la [L]GPL che si avvalgono114   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 alla121   licenza.  Per esempio, la UAPI del kernel linux usa l'espressione::122 123      // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note124      // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note125 126   Altri esempi di usi di WITH all'interno del kernel sono::127 128      // SPDX-License-Identifier: GPL-2.0 WITH mif-exception129      // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0130 131   Le eccezioni si possono usare solo in combinazione con identificatori di132   licenza. Gli identificatori di licenza riconosciuti sono elencati nei133   corrispondenti file d'eccezione. Per maggiori dettagli consultate134   `Eccezioni`_ nel capitolo `Identificatori di licenza`_135 136   La parola chiave OR dovrebbe essere usata solo quando si usa una doppia137   licenza e solo una dev'essere scelta.  Per esempio, alcuni file dtsi sono138   disponibili con doppia licenza::139 140      // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause141 142   Esempi dal kernel di espressioni per file licenziati con doppia licenza143   sono::144 145      // SPDX-License-Identifier: GPL-2.0 OR MIT146      // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause147      // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0148      // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1149      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT150      // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL151 152   La parola chiave AND dovrebbe essere usata quando i termini di più licenze153   si applicano ad un file. Per esempio, quando il codice viene preso da154   un altro progetto il quale da i permessi per aggiungerlo nel kernel ma155   richiede che i termini originali della licenza rimangano intatti::156 157      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT158 159   Di seguito, un altro esempio dove entrambe i termini di licenza devono160   essere rispettati::161 162      // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+163 164Identificatori di licenza165-------------------------166 167Le licenze attualmente in uso, così come le licenze aggiunte al kernel, possono168essere categorizzate in:169 1701. _`Licenze raccomandate`:171 172   Ovunque possibile le licenze qui indicate dovrebbero essere usate perché173   pienamente compatibili e molto usate.  Queste licenze sono disponibile nei174   sorgenti del kernel, nella cartella::175 176     LICENSES/preferred/177 178   I file in questa cartella contengono il testo completo della licenza e i179   `Metatag`_.  Il nome di questi file è lo stesso usato come identificatore180   di licenza SPDX e che deve essere usato nei file sorgenti.181 182   Esempi::183 184     LICENSES/preferred/GPL-2.0185 186   Contiene il testo della seconda versione della licenza GPL e i metatag187   necessari::188 189     LICENSES/preferred/MIT190 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 validi200     all'interno del progetto per far riferimento alla licenza in questione.201     Solitamente, questo è un unico identificatore valido, ma per esempio le202     licenze che permettono l'opzione 'o successive' hanno due identificatori203     validi.204 205   - SPDX-URL:206 207     L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti208     la licenza.209 210   - Usage-Guidance:211 212     Testo in formato libero per dare suggerimenti agli utenti. Il testo deve213     includere degli esempi su come usare gli identificatori di licenza SPDX214     in un file sorgente in conformità con le linea guida in215     `Sintassi degli identificatori di licenza`_.216 217   - License-Text:218 219     Tutto il testo che compare dopo questa etichetta viene trattato220     come se fosse parte del testo originale della licenza.221 222   Esempi::223 224      Valid-License-Identifier: GPL-2.0225      Valid-License-Identifier: GPL-2.0+226      SPDX-URL: https://spdx.org/licenses/GPL-2.0.html227      Usage-Guide:228        To use this license in source code, put one of the following SPDX229	tag/value pairs into a comment according to the placement230	guidelines in the licensing rules documentation.231	For 'GNU General Public License (GPL) version 2 only' use:232	  SPDX-License-Identifier: GPL-2.0233	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 text237 238   ::239 240      SPDX-License-Identifier: MIT241      SPDX-URL: https://spdx.org/licenses/MIT.html242      Usage-Guide:243	To use this license in source code, put the following SPDX244	tag/value pair into a comment according to the placement245	guidelines in the licensing rules documentation.246	  SPDX-License-Identifier: MIT247      License-Text:248        Full license text249 250|251 2522. Licenze deprecate:253 254   Questo tipo di licenze dovrebbero essere usate solo per codice già esistente255   o quando si prende codice da altri progetti.  Le licenze sono disponibili256   nei sorgenti del kernel nella cartella::257 258     LICENSES/deprecated/259 260   I file in questa cartella contengono il testo completo della licenza e i261   `Metatag`_.  Il nome di questi file è lo stesso usato come identificatore262   di licenza SPDX e che deve essere usato nei file sorgenti.263 264   Esempi::265 266     LICENSES/deprecated/ISC267 268   Contiene il testo della licenza Internet System Consortium e i suoi269   metatag::270 271     LICENSES/deprecated/GPL-1.0272 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 stessi278   di usati per le `Licenze raccomandate`_.279 280   Esempio del formato del file::281 282      Valid-License-Identifier: ISC283      SPDX-URL: https://spdx.org/licenses/ISC.html284      Usage-Guide:285        Usage of this license in the kernel for new code is discouraged286        and it should solely be used for importing code from an already287        existing project.288        To use this license in source code, put the following SPDX289        tag/value pair into a comment according to the placement290        guidelines in the licensing rules documentation.291          SPDX-License-Identifier: ISC292      License-Text:293        Full license text294 295|296 2973. Solo per doppie licenze298 299   Queste licenze dovrebbero essere usate solamente per codice licenziato in300   combinazione con un'altra licenza che solitamente è quella preferita.301   Queste licenze sono disponibili nei sorgenti del kernel nella cartella::302 303     LICENSES/dual304 305   I file in questa cartella contengono il testo completo della rispettiva306   licenza e i suoi `Metatag`_.  I nomi dei file sono identici agli307   identificatori di licenza SPDX che dovrebbero essere usati nei file308   sorgenti.309 310   Esempi::311 312     LICENSES/dual/MPL-1.1313 314   Questo file contiene il testo della versione 1.1 della licenza *Mozilla315   Pulic License* e i metatag necessari::316 317     LICENSES/dual/Apache-2.0318 319   Questo file contiene il testo della versione 2.0 della licenza Apache e i320   metatag necessari.321 322   Metatag:323 324   I requisiti per le 'altre' ('*other*') licenze sono identici a quelli per le325   `Licenze raccomandate`_.326 327   Esempio del formato del file::328 329    Valid-License-Identifier: MPL-1.1330    SPDX-URL: https://spdx.org/licenses/MPL-1.1.html331    Usage-Guide:332      Do NOT use. The MPL-1.1 is not GPL2 compatible. It may only be used for333      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 compatible335      license using "OR".336      To use the Mozilla Public License version 1.1 put the following SPDX337      tag/value pair into a comment according to the placement guidelines in338      the licensing rules documentation:339    SPDX-License-Identifier: MPL-1.1340    License-Text:341      Full license text342 343|344 3454. _`Eccezioni`:346 347   Alcune licenze possono essere corrette con delle eccezioni che forniscono348   diritti aggiuntivi.  Queste eccezioni sono disponibili nei sorgenti del349   kernel nella cartella::350 351     LICENSES/exceptions/352 353   I file in questa cartella contengono il testo completo dell'eccezione e i354   `Metatag per le eccezioni`_.355 356   Esempi::357 358      LICENSES/exceptions/Linux-syscall-note359 360   Contiene la descrizione dell'eccezione per le chiamate di sistema Linux361   così come documentato nel file COPYING del kernel Linux; questo viene usato362   per i file d'intestazione per la UAPI.  Per esempio363   /\* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note \*/::364 365      LICENSES/exceptions/GCC-exception-2.0366 367   Contiene la 'eccezione di linking' che permette di collegare qualsiasi368   binario, indipendentemente dalla sua licenza, con un compilato il cui file369   sorgente è marchiato con questa eccezione. Questo è necessario per creare370   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 con379     un identificatore di licenza SPDX.380 381   - SPDX-URL:382 383     L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti384     l'eccezione.385 386   - SPDX-Licenses:387 388     Una lista di licenze SPDX separate da virgola, che possono essere usate389     con l'eccezione.390 391   - Usage-Guidance:392 393     Testo in formato libero per dare suggerimenti agli utenti. Il testo deve394     includere degli esempi su come usare gli identificatori di licenza SPDX395     in un file sorgente in conformità con le linea guida in396     `Sintassi degli identificatori di licenza`_.397 398   - Exception-Text:399 400     Tutto il testo che compare dopo questa etichetta viene trattato401     come se fosse parte del testo originale della licenza.402 403   Esempi::404 405      SPDX-Exception-Identifier: Linux-syscall-note406      SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html407      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-Licenses410	to mark user-space API (uapi) header files so they can be included411	into non GPL compliant user-space application code.412        To use this exception add it with the keyword WITH to one of the413	identifiers in the SPDX-Licenses tag:414	  SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note415      Exception-Text:416        Full exception text417 418   ::419 420      SPDX-Exception-Identifier: GCC-exception-2.0421      SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html422      SPDX-Licenses: GPL-2.0, GPL-2.0+423      Usage-Guidance:424        The "GCC Runtime Library exception 2.0" is used together with one425	of the above SPDX-Licenses for code imported from the GCC runtime426	library.427        To use this exception add it with the keyword WITH to one of the428	identifiers in the SPDX-Licenses tag:429	  SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0430      Exception-Text:431        Full exception text432 433Per ogni identificatore di licenza SPDX e per le eccezioni dev'esserci un file434nella sotto-cartella LICENSES.  Questo è necessario per permettere agli435strumenti di effettuare verifiche (come checkpatch.pl), per avere le licenze436disponibili per la lettura e per estrarre i diritti dai sorgenti, così come437raccomandato da diverse organizzazioni FOSS, per esempio l'`iniziativa FSFE438REUSE <https://reuse.software/>`_.439 440_`MODULE_LICENSE`441-----------------442 443   I moduli del kernel necessitano di un'etichetta MODULE_LICENSE(). Questa444   etichetta non sostituisce le informazioni sulla licenza del codice sorgente445   (SPDX-License-Identifier) né fornisce informazioni che esprimono o446   determinano l'esatta licenza sotto la quale viene rilasciato.447 448   Il solo scopo di questa etichetta è quello di fornire sufficienti449   informazioni al caricatore di moduli del kernel, o agli strumenti in spazio450   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 o457				  GPL-2.0-or-later. L'esatta licenza può essere458				  determinata solo leggendo i corrispondenti459				  file sorgenti.460 461    "GPL v2"			  Stesso significato di "GPL". Esiste per462				  motivi storici.463 464    "GPL and additional rights"   Questa è una variante che esiste per motivi465				  storici che indica che i sorgenti di un466				  modulo sono rilasciati sotto una variante467				  della licenza GPL v2 e quella MIT. Per favore468				  non utilizzatela per codice nuovo.469 470    "Dual MIT/GPL"		  Questo è il modo corretto per esprimere il471				  il fatto che il modulo è rilasciato con472				  doppia licenza a scelta fra: una variante473				  della GPL v2 o la licenza MIT.474 475    "Dual BSD/GPL"		  Questo modulo è rilasciato con doppia licenza476				  a scelta fra: una variante della GPL v2 o la477				  licenza BSD. La variante esatta della licenza478				  BSD può essere determinata solo attraverso i479				  corrispondenti file sorgenti.480 481    "Dual MPL/GPL"		  Questo modulo è rilasciato con doppia licenza482				  a scelta fra: una variante della GPL v2 o la483				  Mozilla Public License (MPL). La variante484				  esatta della licenza MPL può essere485				  determinata solo attraverso i corrispondenti486				  file sorgenti.487 488    "Proprietary"		  Questo modulo è rilasciato con licenza489				  proprietaria. Questa stringa è solo per i490				  moduli proprietari di terze parti e non può491				  essere usata per quelli che risiedono nei492				  sorgenti del kernel. I moduli etichettati in493				  questo modo stanno contaminando il kernel e494				  gli viene assegnato un flag 'P'; quando495				  vengono caricati, il caricatore di moduli del496				  kernel si rifiuterà di collegare questi497				  moduli ai simboli che sono stati esportati498				  con EXPORT_SYMBOL_GPL().499 500    ============================= =============================================501