cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

license-rules.rst (19663B)


      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
     10Regole per licenziare il kernel Linux
     11=====================================
     12
     13Il kernel Linux viene rilasciato sotto i termini definiti dalla seconda
     14versione della licenza *GNU General Public License* (GPL-2.0), di cui una
     15copia è disponibile nel file LICENSES/preferred/GPL-2.0; a questo si
     16aggiunge eccezione per le chiamate di sistema come descritto in
     17LICENSES/exceptions/Linux-syscall-note; tutto ciò è descritto nel file COPYING.
     18
     19Questo documento fornisce una descrizione su come ogni singolo file sorgente
     20debba essere licenziato per far si che sia chiaro e non ambiguo. Questo non
     21sostituisce la licenza del kernel.
     22
     23La licenza descritta nel file COPYING si applica ai sorgenti del kernel nella
     24loro interezza, quindi i singoli file sorgenti possono avere diverse licenze ma
     25devono 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
     34A parte questo, i singolo file possono essere forniti con una doppia licenza,
     35per esempio con una delle varianti compatibili della GPL e alternativamente con
     36una licenza permissiva come BSD, MIT eccetera.
     37
     38I file d'intestazione per l'API verso lo spazio utente (UAPI) descrivono
     39le interfacce usate dai programmi, e per questo sono un caso speciale.
     40Secondo le note nel file COPYING, le chiamate di sistema sono un chiaro
     41confine oltre il quale non si estendono i requisiti della GPL per quei
     42programmi che le usano per comunicare con il kernel.  Dato che i file
     43d'intestazione UAPI devono poter essere inclusi nei sorgenti di un
     44qualsiasi programma eseguibile sul kernel Linux, questi meritano
     45un'eccezione documentata da una clausola speciale.
     46
     47Il modo più comune per indicare la licenza dei file sorgenti è quello di
     48aggiungere il corrispondente blocco di testo come commento in testa a detto
     49file.  Per via della formattazione, dei refusi, eccetera, questi blocchi di
     50testo sono difficili da identificare dagli strumenti usati per verificare il
     51rispetto delle licenze.
     52
     53Un'alternativa ai blocchi di testo è data dall'uso degli identificatori
     54*Software Package Data Exchange* (SPDX) in ogni file sorgente.  Gli
     55identificatori di licenza SPDX sono analizzabili dalle macchine e sono precisi
     56simboli stenografici che identificano la licenza sotto la quale viene
     57licenziato il file che lo include.  Gli identificatori di licenza SPDX sono
     58gestiti del gruppo di lavoro SPDX presso la Linux Foundation e sono stati
     59concordati fra i soci nell'industria, gli sviluppatori di strumenti, e i
     60rispettivi gruppi legali. Per maggiori informazioni, consultate
     61https://spdx.org/
     62
     63Il kernel Linux richiede un preciso identificatore SPDX in tutti i file
     64sorgenti.  Gli identificatori validi verranno spiegati nella sezione
     65`Identificatori di licenza`_ e sono stati copiati dalla lista ufficiale di
     66licenze SPDX assieme al rispettivo testo come mostrato in
     67https://spdx.org/licenses/.
     68
     69Sintassi degli identificatori di licenza
     70----------------------------------------
     71
     721. 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
     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 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
    1043. 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
    164Identificatori di licenza
    165-------------------------
    166
    167Le licenze attualmente in uso, così come le licenze aggiunte al kernel, possono
    168essere 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 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
    2522. 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
    2973. 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 `Metatag`_.  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
    3454. _`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
    433Per ogni identificatore di licenza SPDX e per le eccezioni dev'esserci un file
    434nella sotto-cartella LICENSES.  Questo è necessario per permettere agli
    435strumenti di effettuare verifiche (come checkpatch.pl), per avere le licenze
    436disponibili per la lettura e per estrarre i diritti dai sorgenti, così come
    437raccomandato da diverse organizzazioni FOSS, per esempio l'`iniziativa FSFE
    438REUSE <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    ============================= =============================================