1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun.. include:: ../disclaimer-zh_CN.rst 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun:Original: :ref:`Documentation/process/license-rules.rst <kernel_licensing>` 6*4882a593Smuzhiyun:Translator: Alex Shi <alex.shi@linux.alibaba.com> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun.. _cn_kernel_licensing: 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunLinux内核许可规则 11*4882a593Smuzhiyun================= 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunLinux内核根据LICENSES/preferred/GPL-2.0中提供的GNU通用公共许可证版本2 14*4882a593Smuzhiyun(GPL-2.0)的条款提供,并在LICENSES/exceptions/Linux-syscall-note中显式 15*4882a593Smuzhiyun描述了例外的系统调用,如COPYING文件中所述。 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun此文档文件提供了如何对每个源文件进行注释以使其许可证清晰明确的说明。 18*4882a593Smuzhiyun它不会取代内核的许可证。 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun内核源代码作为一个整体适用于COPYING文件中描述的许可证,但是单个源文件可以 21*4882a593Smuzhiyun具有不同的与GPL-20兼容的许可证:: 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun GPL-1.0+ : GNU通用公共许可证v1.0或更高版本 24*4882a593Smuzhiyun GPL-2.0+ : GNU通用公共许可证v2.0或更高版本 25*4882a593Smuzhiyun LGPL-2.0 : 仅限GNU库通用公共许可证v2 26*4882a593Smuzhiyun LGPL-2.0+: GNU 库通用公共许可证v2或更高版本 27*4882a593Smuzhiyun LGPL-2.1 : 仅限GNU宽通用公共许可证v2.1 28*4882a593Smuzhiyun LGPL-2.1+: GNU宽通用公共许可证v2.1或更高版本 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun除此之外,个人文件可以在双重许可下提供,例如一个兼容的GPL变体,或者BSD, 31*4882a593SmuzhiyunMIT等许可。 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun用户空间API(UAPI)头文件描述了用户空间程序与内核的接口,这是一种特殊情况。 34*4882a593Smuzhiyun根据内核COPYING文件中的注释,syscall接口是一个明确的边界,它不会将GPL要求 35*4882a593Smuzhiyun扩展到任何使用它与内核通信的软件。由于UAPI头文件必须包含在创建在Linux内核 36*4882a593Smuzhiyun上运行的可执行文件的任何源文件中,因此此例外必须记录在特别的许可证表述中。 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun表达源文件许可证的常用方法是将匹配的样板文本添加到文件的顶部注释中。由于 39*4882a593Smuzhiyun格式,拼写错误等,这些“样板”很难通过那些在上下文中使用的验证许可证合规性 40*4882a593Smuzhiyun的工具。 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun样板文本的替代方法是在每个源文件中使用软件包数据交换(SPDX)许可证标识符。 43*4882a593SmuzhiyunSPDX许可证标识符是机器可解析的,并且是用于提供文件内容的许可证的精确缩写。 44*4882a593SmuzhiyunSPDX许可证标识符由Linux 基金会的SPDX 工作组管理,并得到了整个行业,工具 45*4882a593Smuzhiyun供应商和法律团队的合作伙伴的一致同意。有关详细信息,请参阅 46*4882a593Smuzhiyunhttps://spdx.org/ 47*4882a593Smuzhiyun 48*4882a593SmuzhiyunLinux内核需要所有源文件中的精确SPDX标识符。内核中使用的有效标识符在 49*4882a593Smuzhiyun`许可标识符`_ 一节中进行了解释,并且已可以在 50*4882a593Smuzhiyunhttps://spdx.org/licenses/ 上的官方SPDX许可证列表中检索,并附带许可证 51*4882a593Smuzhiyun文本。 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun许可标识符语法 54*4882a593Smuzhiyun-------------- 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun1.安置: 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun 内核文件中的SPDX许可证标识符应添加到可包含注释的文件中的第一行。对于大多 59*4882a593Smuzhiyun 数文件,这是第一行,除了那些在第一行中需要'#!PATH_TO_INTERPRETER'的脚本。 60*4882a593Smuzhiyun 对于这些脚本,SPDX标识符进入第二行。 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun| 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun2. 风格: 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun SPDX许可证标识符以注释的形式添加。注释样式取决于文件类型:: 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun C source: // SPDX-License-Identifier: <SPDX License Expression> 69*4882a593Smuzhiyun C header: /* SPDX-License-Identifier: <SPDX License Expression> */ 70*4882a593Smuzhiyun ASM: /* SPDX-License-Identifier: <SPDX License Expression> */ 71*4882a593Smuzhiyun scripts: # SPDX-License-Identifier: <SPDX License Expression> 72*4882a593Smuzhiyun .rst: .. SPDX-License-Identifier: <SPDX License Expression> 73*4882a593Smuzhiyun .dts{i}: // SPDX-License-Identifier: <SPDX License Expression> 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun 如果特定工具无法处理标准注释样式,则应使用工具接受的相应注释机制。这是在 76*4882a593Smuzhiyun C 头文件中使用“/\*\*/”样式注释的原因。过去在使用生成的.lds文件中观察到 77*4882a593Smuzhiyun 构建被破坏,其中'ld'无法解析C++注释。现在已经解决了这个问题,但仍然有较 78*4882a593Smuzhiyun 旧的汇编程序工具无法处理C++样式的注释。 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun| 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun3. 句法: 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun <SPDX许可证表达式>是SPDX许可证列表中的SPDX短格式许可证标识符,或者在许可 85*4882a593Smuzhiyun 证例外适用时由“WITH”分隔的两个SPDX短格式许可证标识符的组合。当应用多个许 86*4882a593Smuzhiyun 可证时,表达式由分隔子表达式的关键字“AND”,“OR”组成,并由“(”,“)”包围。 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun 带有“或更高”选项的[L]GPL等许可证的许可证标识符通过使用“+”来表示“或更高” 89*4882a593Smuzhiyun 选项来构建。:: 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0+ 92*4882a593Smuzhiyun // SPDX-License-Identifier: LGPL-2.1+ 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun 当需要修正的许可证时,应使用WITH。 例如,linux内核UAPI文件使用表达式:: 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 97*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun 其它在内核中使用WITH例外的事例如下:: 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 WITH mif-exception 102*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun 例外只能与特定的许可证标识符一起使用。有效的许可证标识符列在异常文本文件 105*4882a593Smuzhiyun 的标记中。有关详细信息,请参阅 `许可标识符`_ 一章中的 `例外`_ 。 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun 如果文件是双重许可且只选择一个许可证,则应使用OR。例如,一些dtsi文件在双 108*4882a593Smuzhiyun 许可下可用:: 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun 内核中双许可文件中许可表达式的示例:: 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 OR MIT 115*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 116*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 117*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 118*4882a593Smuzhiyun // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT 119*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun 如果文件具有多个许可证,其条款全部适用于使用该文件,则应使用AND。例如, 122*4882a593Smuzhiyun 如果代码是从另一个项目继承的,并且已经授予了将其放入内核的权限,但原始 123*4882a593Smuzhiyun 许可条款需要保持有效:: 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun 另一个需要遵守两套许可条款的例子是:: 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+ 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun许可标识符 132*4882a593Smuzhiyun---------- 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun当前使用的许可证以及添加到内核的代码许可证可以分解为: 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun1. _`优先许可`: 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun 应尽可能使用这些许可证,因为它们已知完全兼容并广泛使用。这些许可证在内核 139*4882a593Smuzhiyun 目录:: 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun LICENSES/preferred/ 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun 此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识 144*4882a593Smuzhiyun 符相同,后者应用于源文件中的许可证。 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun 例如:: 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun LICENSES/preferred/GPL-2.0 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun 包含GPLv2许可证文本和所需的元标签:: 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun LICENSES/preferred/MIT 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun 包含MIT许可证文本和所需的元标记 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun _`元标记`: 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun 许可证文件中必须包含以下元标记: 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun - Valid-License-Identifier: 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun 一行或多行, 声明那些许可标识符在项目内有效, 以引用此特定许可的文本。通 163*4882a593Smuzhiyun 常这是一个有效的标识符,但是例如对于带有'或更高'选项的许可证,两个标识 164*4882a593Smuzhiyun 符都有效。 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun - SPDX-URL: 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun SPDX页面的URL,其中包含与许可证相关的其他信息. 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun - Usage-Guidance: 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun 使用建议的自由格式文本。该文本必须包含SPDX许可证标识符的正确示例,因为 173*4882a593Smuzhiyun 它们应根据 `许可标识符语法`_ 指南放入源文件中。 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun - License-Text: 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun 此标记之后的所有文本都被视为原始许可文本 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun 文件格式示例:: 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun Valid-License-Identifier: GPL-2.0 182*4882a593Smuzhiyun Valid-License-Identifier: GPL-2.0+ 183*4882a593Smuzhiyun SPDX-URL: https://spdx.org/licenses/GPL-2.0.html 184*4882a593Smuzhiyun Usage-Guide: 185*4882a593Smuzhiyun To use this license in source code, put one of the following SPDX 186*4882a593Smuzhiyun tag/value pairs into a comment according to the placement 187*4882a593Smuzhiyun guidelines in the licensing rules documentation. 188*4882a593Smuzhiyun For 'GNU General Public License (GPL) version 2 only' use: 189*4882a593Smuzhiyun SPDX-License-Identifier: GPL-2.0 190*4882a593Smuzhiyun For 'GNU General Public License (GPL) version 2 or any later version' use: 191*4882a593Smuzhiyun SPDX-License-Identifier: GPL-2.0+ 192*4882a593Smuzhiyun License-Text: 193*4882a593Smuzhiyun Full license text 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun :: 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun SPDX-License-Identifier: MIT 198*4882a593Smuzhiyun SPDX-URL: https://spdx.org/licenses/MIT.html 199*4882a593Smuzhiyun Usage-Guide: 200*4882a593Smuzhiyun To use this license in source code, put the following SPDX 201*4882a593Smuzhiyun tag/value pair into a comment according to the placement 202*4882a593Smuzhiyun guidelines in the licensing rules documentation. 203*4882a593Smuzhiyun SPDX-License-Identifier: MIT 204*4882a593Smuzhiyun License-Text: 205*4882a593Smuzhiyun Full license text 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun| 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun2. 不推荐的许可证: 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun 这些许可证只应用于现有代码或从其他项目导入代码。这些许可证在内核目录:: 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun LICENSES/other/ 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun 此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识 216*4882a593Smuzhiyun 符相同,后者应用于源文件中的许可证。 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun 例如:: 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun LICENSES/other/ISC 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun 包含国际系统联合许可文本和所需的元标签:: 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun LICENSES/other/ZLib 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun 包含ZLIB许可文本和所需的元标签. 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun 元标签: 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun “其他”许可证的元标签要求与 `优先许可`_ 的要求相同。 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun 文件格式示例:: 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun Valid-License-Identifier: ISC 235*4882a593Smuzhiyun SPDX-URL: https://spdx.org/licenses/ISC.html 236*4882a593Smuzhiyun Usage-Guide: 237*4882a593Smuzhiyun Usage of this license in the kernel for new code is discouraged 238*4882a593Smuzhiyun and it should solely be used for importing code from an already 239*4882a593Smuzhiyun existing project. 240*4882a593Smuzhiyun To use this license in source code, put the following SPDX 241*4882a593Smuzhiyun tag/value pair into a comment according to the placement 242*4882a593Smuzhiyun guidelines in the licensing rules documentation. 243*4882a593Smuzhiyun SPDX-License-Identifier: ISC 244*4882a593Smuzhiyun License-Text: 245*4882a593Smuzhiyun Full license text 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun| 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun3. _`例外`: 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun 某些许可证可以修改,并允许原始许可证不具有的某些例外权利。这些例外在 252*4882a593Smuzhiyun 内核目录:: 253*4882a593Smuzhiyun 254*4882a593Smuzhiyun LICENSES/exceptions/ 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun 此目录中的文件包含完整的例外文本和所需的 `例外元标记`_ 。 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun 例如:: 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun LICENSES/exceptions/Linux-syscall-note 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun 包含Linux内核的COPYING文件中记录的Linux系统调用例外,该文件用于UAPI 263*4882a593Smuzhiyun 头文件。例如:: 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun LICENSES/exceptions/GCC-exception-2.0 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun 包含GCC'链接例外',它允许独立于其许可证的任何二进制文件与标记有此例外的 268*4882a593Smuzhiyun 文件的编译版本链接。这是从GPL不兼容源代码创建可运行的可执行文件所必需的。 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun _`例外元标记`: 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun 以下元标记必须在例外文件中可用: 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun - SPDX-Exception-Identifier: 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun 一个可与SPDX许可证标识符一起使用的例外标识符。 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun - SPDX-URL: 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun SPDX页面的URL,其中包含与例外相关的其他信息。 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun - SPDX-Licenses: 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun 以逗号分隔的例外可用的SPDX许可证标识符列表。 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun - Usage-Guidance: 287*4882a593Smuzhiyun 288*4882a593Smuzhiyun 使用建议的自由格式文本。必须在文本后面加上SPDX许可证标识符的正确示例, 289*4882a593Smuzhiyun 因为它们应根据 `许可标识符语法`_ 指南放入源文件中。 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun - Exception-Text: 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun 此标记之后的所有文本都被视为原始异常文本 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun 文件格式示例:: 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun SPDX-Exception-Identifier: Linux-syscall-note 298*4882a593Smuzhiyun SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html 299*4882a593Smuzhiyun SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ 300*4882a593Smuzhiyun Usage-Guidance: 301*4882a593Smuzhiyun This exception is used together with one of the above SPDX-Licenses 302*4882a593Smuzhiyun to mark user-space API (uapi) header files so they can be included 303*4882a593Smuzhiyun into non GPL compliant user-space application code. 304*4882a593Smuzhiyun To use this exception add it with the keyword WITH to one of the 305*4882a593Smuzhiyun identifiers in the SPDX-Licenses tag: 306*4882a593Smuzhiyun SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note 307*4882a593Smuzhiyun Exception-Text: 308*4882a593Smuzhiyun Full exception text 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun :: 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun SPDX-Exception-Identifier: GCC-exception-2.0 313*4882a593Smuzhiyun SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html 314*4882a593Smuzhiyun SPDX-Licenses: GPL-2.0, GPL-2.0+ 315*4882a593Smuzhiyun Usage-Guidance: 316*4882a593Smuzhiyun The "GCC Runtime Library exception 2.0" is used together with one 317*4882a593Smuzhiyun of the above SPDX-Licenses for code imported from the GCC runtime 318*4882a593Smuzhiyun library. 319*4882a593Smuzhiyun To use this exception add it with the keyword WITH to one of the 320*4882a593Smuzhiyun identifiers in the SPDX-Licenses tag: 321*4882a593Smuzhiyun SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0 322*4882a593Smuzhiyun Exception-Text: 323*4882a593Smuzhiyun Full exception text 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun 326*4882a593Smuzhiyun所有SPDX许可证标识符和例外都必须在LICENSES子目录中具有相应的文件。这是允许 327*4882a593Smuzhiyun工具验证(例如checkpatch.pl)以及准备好从源读取和提取许可证所必需的, 这是 328*4882a593Smuzhiyun各种FOSS组织推荐的,例如 `FSFE REUSE initiative <https://reuse.software/>`_. 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun_`模块许可` 331*4882a593Smuzhiyun----------------- 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun 可加载内核模块还需要MODULE_LICENSE()标记。此标记既不替代正确的源代码 334*4882a593Smuzhiyun 许可证信息(SPDX-License-Identifier),也不以任何方式表示或确定提供模块 335*4882a593Smuzhiyun 源代码的确切许可证。 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun 此标记的唯一目的是提供足够的信息,该模块是否是自由软件或者是内核模块加 338*4882a593Smuzhiyun 载器和用户空间工具的专有模块。 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun MODULE_LICENSE()的有效许可证字符串是: 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun ============================= ============================================= 343*4882a593Smuzhiyun "GPL" 模块是根据GPL版本2许可的。这并不表示仅限于 344*4882a593Smuzhiyun GPL-2.0或GPL-2.0或更高版本之间的任何区别。 345*4882a593Smuzhiyun 最正确许可证信息只能通过相应源文件中的许可证 346*4882a593Smuzhiyun 信息来确定 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun "GPL v2" 和"GPL"相同,它的存在是因为历史原因。 349*4882a593Smuzhiyun 350*4882a593Smuzhiyun "GPL and additional rights" 表示模块源在GPL v2变体和MIT许可下双重许可的 351*4882a593Smuzhiyun 历史变体。请不要在新代码中使用。 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun "Dual MIT/GPL" 表达该模块在GPL v2变体或MIT许可证选择下双重 354*4882a593Smuzhiyun 许可的正确方式。 355*4882a593Smuzhiyun 356*4882a593Smuzhiyun "Dual BSD/GPL" 该模块根据GPL v2变体或BSD许可证选择进行双重 357*4882a593Smuzhiyun 许可。 BSD许可证的确切变体只能通过相应源文件 358*4882a593Smuzhiyun 中的许可证信息来确定。 359*4882a593Smuzhiyun 360*4882a593Smuzhiyun "Dual MPL/GPL" 该模块根据GPL v2变体或Mozilla Public License 361*4882a593Smuzhiyun (MPL)选项进行双重许可。 MPL许可证的确切变体 362*4882a593Smuzhiyun 只能通过相应的源文件中的许可证信息来确定。 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun "Proprietary" 该模块属于专有许可。此字符串仅用于专有的第三 365*4882a593Smuzhiyun 方模块,不能用于在内核树中具有源代码的模块。 366*4882a593Smuzhiyun 以这种方式标记的模块在加载时会使用'P'标记污 367*4882a593Smuzhiyun 染内核,并且内核模块加载器拒绝将这些模块链接 368*4882a593Smuzhiyun 到使用EXPORT_SYMBOL_GPL()导出的符号。 369*4882a593Smuzhiyun ============================= ============================================= 370*4882a593Smuzhiyun 371