~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/process/license-rules.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/process/license-rules.rst (Version linux-6.12-rc7) and /Documentation/process/license-rules.rst (Version linux-4.9.337)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 .. _kernel_licensing:                             
  4                                                   
  5 Linux kernel licensing rules                      
  6 ============================                      
  7                                                   
  8 The Linux Kernel is provided under the terms o    
  9 License version 2 only (GPL-2.0), as provided     
 10 with an explicit syscall exception described i    
 11 LICENSES/exceptions/Linux-syscall-note, as des    
 12                                                   
 13 This documentation file provides a description    
 14 should be annotated to make its license clear     
 15 It doesn't replace the Kernel's license.          
 16                                                   
 17 The license described in the COPYING file appl    
 18 as a whole, though individual source files can    
 19 which is required to be compatible with the GP    
 20                                                   
 21     GPL-1.0+  :  GNU General Public License v1    
 22     GPL-2.0+  :  GNU General Public License v2    
 23     LGPL-2.0  :  GNU Library General Public Li    
 24     LGPL-2.0+ :  GNU Library General Public Li    
 25     LGPL-2.1  :  GNU Lesser General Public Lic    
 26     LGPL-2.1+ :  GNU Lesser General Public Lic    
 27                                                   
 28 Aside from that, individual files can be provi    
 29 e.g. one of the compatible GPL variants and al    
 30 permissive license like BSD, MIT etc.             
 31                                                   
 32 The User-space API (UAPI) header files, which     
 33 user-space programs to the kernel are a specia    
 34 note in the kernel COPYING file, the syscall i    
 35 which does not extend the GPL requirements to     
 36 communicate with the kernel.  Because the UAPI    
 37 into any source files which create an executab    
 38 kernel, the exception must be documented by a     
 39                                                   
 40 The common way of expressing the license of a     
 41 matching boilerplate text into the top comment    
 42 formatting, typos etc. these "boilerplates" ar    
 43 tools which are used in the context of license    
 44                                                   
 45 An alternative to boilerplate text is the use     
 46 Exchange (SPDX) license identifiers in each so    
 47 identifiers are machine parsable and precise s    
 48 under which the content of the file is contrib    
 49 identifiers are managed by the SPDX Workgroup     
 50 have been agreed on by partners throughout the    
 51 legal teams.  For further information see http    
 52                                                   
 53 The Linux kernel requires the precise SPDX ide    
 54 The valid identifiers used in the kernel are e    
 55 `License identifiers`_ and have been retrieved    
 56 license list at https://spdx.org/licenses/ alo    
 57                                                   
 58 License identifier syntax                         
 59 -------------------------                         
 60                                                   
 61 1. Placement:                                     
 62                                                   
 63    The SPDX license identifier in kernel files    
 64    possible line in a file which can contain a    
 65    of files this is the first line, except for    
 66    '#!PATH_TO_INTERPRETER' in the first line.     
 67    identifier goes into the second line.          
 68                                                   
 69 |                                                 
 70                                                   
 71 2. Style:                                         
 72                                                   
 73    The SPDX license identifier is added in for    
 74    style depends on the file type::               
 75                                                   
 76       C source: // SPDX-License-Identifier: <S    
 77       C header: /* SPDX-License-Identifier: <S    
 78       ASM:      /* SPDX-License-Identifier: <S    
 79       scripts:  # SPDX-License-Identifier: <SP    
 80       .rst:     .. SPDX-License-Identifier: <S    
 81       .dts{i}:  // SPDX-License-Identifier: <S    
 82                                                   
 83    If a specific tool cannot handle the standa    
 84    appropriate comment mechanism which the too    
 85    is the reason for having the "/\* \*/" styl    
 86    files. There was build breakage observed wi    
 87    'ld' failed to parse the C++ comment. This     
 88    there are still older assembler tools which    
 89    comments.                                      
 90                                                   
 91 |                                                 
 92                                                   
 93 3. Syntax:                                        
 94                                                   
 95    A <SPDX License Expression> is either an SP    
 96    identifier found on the SPDX License List,     
 97    SPDX short form license identifiers separat    
 98    exception applies. When multiple licenses a    
 99    of keywords "AND", "OR" separating sub-expr    
100    "(", ")" .                                     
101                                                   
102    License identifiers for licenses like [L]GP    
103    are constructed by using a "+" for indicati    
104                                                   
105       // SPDX-License-Identifier: GPL-2.0+        
106       // SPDX-License-Identifier: LGPL-2.1+       
107                                                   
108    WITH should be used when there is a modifie    
109    For example, the linux kernel UAPI files us    
110                                                   
111       // SPDX-License-Identifier: GPL-2.0 WITH    
112       // SPDX-License-Identifier: GPL-2.0+ WIT    
113                                                   
114    Other examples using WITH exceptions found     
115                                                   
116       // SPDX-License-Identifier: GPL-2.0 WITH    
117       // SPDX-License-Identifier: GPL-2.0+ WIT    
118                                                   
119    Exceptions can only be used with particular    
120    valid License identifiers are listed in the    
121    file. For details see the point `Exceptions    
122    identifiers`_.                                 
123                                                   
124    OR should be used if the file is dual licen    
125    to be selected.  For example, some dtsi fil    
126    licenses::                                     
127                                                   
128       // SPDX-License-Identifier: GPL-2.0 OR B    
129                                                   
130    Examples from the kernel for license expres    
131                                                   
132       // SPDX-License-Identifier: GPL-2.0 OR M    
133       // SPDX-License-Identifier: GPL-2.0 OR B    
134       // SPDX-License-Identifier: GPL-2.0 OR A    
135       // SPDX-License-Identifier: GPL-2.0 OR M    
136       // SPDX-License-Identifier: (GPL-2.0 WIT    
137       // SPDX-License-Identifier: GPL-1.0+ OR     
138                                                   
139    AND should be used if the file has multiple    
140    apply to use the file. For example, if code    
141    project and permission has been given to pu    
142    original license terms need to remain in ef    
143                                                   
144       // SPDX-License-Identifier: (GPL-2.0 WIT    
145                                                   
146    Another other example where both sets of li    
147    adhered to is::                                
148                                                   
149       // SPDX-License-Identifier: GPL-1.0+ AND    
150                                                   
151 License identifiers                               
152 -------------------                               
153                                                   
154 The licenses currently used, as well as the li    
155 kernel, can be broken down into:                  
156                                                   
157 1. _`Preferred licenses`:                         
158                                                   
159    Whenever possible these licenses should be     
160    fully compatible and widely used.  These li    
161    directory::                                    
162                                                   
163       LICENSES/preferred/                         
164                                                   
165    in the kernel source tree.                     
166                                                   
167    The files in this directory contain the ful    
168    `Metatags`_.  The file names are identical     
169    identifier which shall be used for the lice    
170                                                   
171    Examples::                                     
172                                                   
173       LICENSES/preferred/GPL-2.0                  
174                                                   
175    Contains the GPL version 2 license text and    
176                                                   
177       LICENSES/preferred/MIT                      
178                                                   
179    Contains the MIT license text and the requi    
180                                                   
181    _`Metatags`:                                   
182                                                   
183    The following meta tags must be available i    
184                                                   
185    - Valid-License-Identifier:                    
186                                                   
187      One or more lines which declare which Lic    
188      inside the project to reference this part    
189      this is a single valid identifier, but e.    
190      later' options two identifiers are valid.    
191                                                   
192    - SPDX-URL:                                    
193                                                   
194      The URL of the SPDX page which contains a    
195      to the license.                              
196                                                   
197    - Usage-Guidance:                              
198                                                   
199      Freeform text for usage advice. The text     
200      for the SPDX license identifiers as they     
201      files according to the `License identifie    
202                                                   
203    - License-Text:                                
204                                                   
205      All text after this tag is treated as the    
206                                                   
207    File format examples::                         
208                                                   
209       Valid-License-Identifier: GPL-2.0           
210       Valid-License-Identifier: GPL-2.0+          
211       SPDX-URL: https://spdx.org/licenses/GPL-    
212       Usage-Guide:                                
213         To use this license in source code, pu    
214         tag/value pairs into a comment accordi    
215         guidelines in the licensing rules docu    
216         For 'GNU General Public License (GPL)     
217           SPDX-License-Identifier: GPL-2.0        
218         For 'GNU General Public License (GPL)     
219           SPDX-License-Identifier: GPL-2.0+       
220       License-Text:                               
221         Full license text                         
222                                                   
223    ::                                             
224                                                   
225       SPDX-License-Identifier: MIT                
226       SPDX-URL: https://spdx.org/licenses/MIT.    
227       Usage-Guide:                                
228         To use this license in source code, pu    
229         tag/value pair into a comment accordin    
230         guidelines in the licensing rules docu    
231           SPDX-License-Identifier: MIT            
232       License-Text:                               
233         Full license text                         
234                                                   
235 |                                                 
236                                                   
237 2. Deprecated licenses:                           
238                                                   
239    These licenses should only be used for exis    
240    code from a different project.  These licen    
241    directory::                                    
242                                                   
243       LICENSES/deprecated/                        
244                                                   
245    in the kernel source tree.                     
246                                                   
247    The files in this directory contain the ful    
248    `Metatags`_.  The file names are identical     
249    identifier which shall be used for the lice    
250                                                   
251    Examples::                                     
252                                                   
253       LICENSES/deprecated/ISC                     
254                                                   
255    Contains the Internet Systems Consortium li    
256    metatags::                                     
257                                                   
258       LICENSES/deprecated/GPL-1.0                 
259                                                   
260    Contains the GPL version 1 license text and    
261                                                   
262    Metatags:                                      
263                                                   
264    The metatag requirements for 'other' licens    
265    requirements of the `Preferred licenses`_.     
266                                                   
267    File format example::                          
268                                                   
269       Valid-License-Identifier: ISC               
270       SPDX-URL: https://spdx.org/licenses/ISC.    
271       Usage-Guide:                                
272         Usage of this license in the kernel fo    
273         and it should solely be used for impor    
274         existing project.                         
275         To use this license in source code, pu    
276         tag/value pair into a comment accordin    
277         guidelines in the licensing rules docu    
278           SPDX-License-Identifier: ISC            
279       License-Text:                               
280         Full license text                         
281                                                   
282 |                                                 
283                                                   
284 3. Dual Licensing Only                            
285                                                   
286    These licenses should only be used to dual     
287    license in addition to a preferred license.    
288    from the directory::                           
289                                                   
290       LICENSES/dual/                              
291                                                   
292    in the kernel source tree.                     
293                                                   
294    The files in this directory contain the ful    
295    `Metatags`_.  The file names are identical     
296    identifier which shall be used for the lice    
297                                                   
298    Examples::                                     
299                                                   
300       LICENSES/dual/MPL-1.1                       
301                                                   
302    Contains the Mozilla Public License version    
303    required metatags::                            
304                                                   
305       LICENSES/dual/Apache-2.0                    
306                                                   
307    Contains the Apache License version 2.0 lic    
308    metatags.                                      
309                                                   
310    Metatags:                                      
311                                                   
312    The metatag requirements for 'other' licens    
313    requirements of the `Preferred licenses`_.     
314                                                   
315    File format example::                          
316                                                   
317       Valid-License-Identifier: MPL-1.1           
318       SPDX-URL: https://spdx.org/licenses/MPL-    
319       Usage-Guide:                                
320         Do NOT use. The MPL-1.1 is not GPL2 co    
321         dual-licensed files where the other li    
322         If you end up using this it MUST be us    
323         license using "OR".                       
324         To use the Mozilla Public License vers    
325         tag/value pair into a comment accordin    
326         the licensing rules documentation:        
327       SPDX-License-Identifier: MPL-1.1            
328       License-Text:                               
329         Full license text                         
330                                                   
331 |                                                 
332                                                   
333 4. _`Exceptions`:                                 
334                                                   
335    Some licenses can be amended with exception    
336    which the original license does not.  These    
337    from the directory::                           
338                                                   
339       LICENSES/exceptions/                        
340                                                   
341    in the kernel source tree.  The files in th    
342    exception text and the required `Exception     
343                                                   
344    Examples::                                     
345                                                   
346       LICENSES/exceptions/Linux-syscall-note      
347                                                   
348    Contains the Linux syscall exception as doc    
349    file of the Linux kernel, which is used for    
350    e.g. /\* SPDX-License-Identifier: GPL-2.0 W    
351                                                   
352       LICENSES/exceptions/GCC-exception-2.0       
353                                                   
354    Contains the GCC 'linking exception' which     
355    independent of its license against the comp    
356    with this exception. This is required for c    
357    from source code which is not compatible wi    
358                                                   
359    _`Exception Metatags`:                         
360                                                   
361    The following meta tags must be available i    
362                                                   
363    - SPDX-Exception-Identifier:                   
364                                                   
365      One exception identifier which can be use    
366      identifiers.                                 
367                                                   
368    - SPDX-URL:                                    
369                                                   
370      The URL of the SPDX page which contains a    
371      to the exception.                            
372                                                   
373    - SPDX-Licenses:                               
374                                                   
375      A comma separated list of SPDX license id    
376      exception can be used.                       
377                                                   
378    - Usage-Guidance:                              
379                                                   
380      Freeform text for usage advice. The text     
381      examples for the SPDX license identifiers    
382      source files according to the `License id    
383                                                   
384    - Exception-Text:                              
385                                                   
386      All text after this tag is treated as the    
387                                                   
388    File format examples::                         
389                                                   
390       SPDX-Exception-Identifier: Linux-syscall    
391       SPDX-URL: https://spdx.org/licenses/Linu    
392       SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.    
393       Usage-Guidance:                             
394         This exception is used together with o    
395         to mark user-space API (uapi) header f    
396         into non GPL compliant user-space appl    
397         To use this exception add it with the     
398         identifiers in the SPDX-Licenses tag:     
399           SPDX-License-Identifier: <SPDX-Licen    
400       Exception-Text:                             
401         Full exception text                       
402                                                   
403    ::                                             
404                                                   
405       SPDX-Exception-Identifier: GCC-exception    
406       SPDX-URL: https://spdx.org/licenses/GCC-    
407       SPDX-Licenses: GPL-2.0, GPL-2.0+            
408       Usage-Guidance:                             
409         The "GCC Runtime Library exception 2.0    
410         of the above SPDX-Licenses for code im    
411         library.                                  
412         To use this exception add it with the     
413         identifiers in the SPDX-Licenses tag:     
414           SPDX-License-Identifier: <SPDX-Licen    
415       Exception-Text:                             
416         Full exception text                       
417                                                   
418                                                   
419 All SPDX license identifiers and exceptions mu    
420 in the LICENSES subdirectories. This is requir    
421 verification (e.g. checkpatch.pl) and to have     
422 and extract right from the source, which is re    
423 organizations, e.g. the `FSFE REUSE initiative    
424                                                   
425 _`MODULE_LICENSE`                                 
426 -----------------                                 
427                                                   
428    Loadable kernel modules also require a MODU    
429    neither a replacement for proper source cod    
430    (SPDX-License-Identifier) nor in any way re    
431    determining the exact license under which t    
432    is provided.                                   
433                                                   
434    The sole purpose of this tag is to provide     
435    whether the module is free software or prop    
436    module loader and for user space tools.        
437                                                   
438    The valid license strings for MODULE_LICENS    
439                                                   
440     ============================= ============    
441     "GPL"                         Module is li    
442                                   does not exp    
443                                   GPL-2.0-only    
444                                   license info    
445                                   via the lice    
446                                   correspondin    
447                                                   
448     "GPL v2"                      Same as "GPL    
449                                   reasons.        
450                                                   
451     "GPL and additional rights"   Historical v    
452                                   module sourc    
453                                   GPL v2 varia    
454                                   not use in n    
455                                                   
456     "Dual MIT/GPL"                The correct     
457                                   module is du    
458                                   variant or M    
459                                                   
460     "Dual BSD/GPL"                The module i    
461                                   variant or B    
462                                   variant of t    
463                                   determined v    
464                                   in the corre    
465                                                   
466     "Dual MPL/GPL"                The module i    
467                                   variant or M    
468                                   choice. The     
469                                   license can     
470                                   license info    
471                                   source files    
472                                                   
473     "Proprietary"                 The module i    
474                                   This string     
475                                   party module    
476                                   which have t    
477                                   tree. Module    
478                                   the kernel w    
479                                   the kernel m    
480                                   modules agai    
481                                   with EXPORT_    
482     ============================= ============    
483                                                   
484                                                   
485                                                   
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php