sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/process/license-rulesmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/zh_TW/process/license-rulesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/it_IT/process/license-rulesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/ja_JP/process/license-rulesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/ko_KR/process/license-rulesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget)/translations/sp_SP/process/license-rulesmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhV/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/process/license-rules.rsthKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(hA:ref:`Documentation/process/license-rules.rst `h]h)}(hhh]h)}(hhh]hinline)}(hhh]h'Documentation/process/license-rules.rst}(hhhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1hhhubah}(h]h ]h"]h$]h&]refdoc(translations/zh_CN/process/license-rules refdomainjreftyperef refexplicitrefwarn reftargetkernel_licensinguh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Translatorh]h Translator}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hhhKubh)}(h&Alex Shi h]h)}(h%Alex Shi h](h Alex Shi <}(hj?hhhNhNubh reference)}(halex.shi@linux.alibaba.comh]halex.shi@linux.alibaba.com}(hjIhhhNhNubah}(h]h ]h"]h$]h&]refuri!mailto:alex.shi@linux.alibaba.comuh1jGhj?ubh>}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj;ubah}(h]h ]h"]h$]h&]uh1hhj*ubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhtarget)}(h.. _cn_kernel_licensing:h]h}(h]h ]h"]h$]h&]refidcn-kernel-licensinguh1juhKhhhhhhubhsection)}(hhh](htitle)}(hLinux内核许可规则h]hLinux内核许可规则}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhK ubh)}(hLinux内核根据LICENSES/preferred/GPL-2.0中提供的GNU通用公共许可证版本2 (GPL-2.0)的条款提供,并在LICENSES/exceptions/Linux-syscall-note中显式 描述了例外的系统调用,如COPYING文件中所述。h]hLinux内核根据LICENSES/preferred/GPL-2.0中提供的GNU通用公共许可证版本2 (GPL-2.0)的条款提供,并在LICENSES/exceptions/Linux-syscall-note中显式 描述了例外的系统调用,如COPYING文件中所述。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjhhubh)}(h此文档文件提供了如何对每个源文件进行注释以使其许可证清晰明确的说明。 它不会取代内核的许可证。h]h此文档文件提供了如何对每个源文件进行注释以使其许可证清晰明确的说明。 它不会取代内核的许可证。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h内核源代码作为一个整体适用于COPYING文件中描述的许可证,但是单个源文件可以 具有不同的与GPL-20兼容的许可证::h]h内核源代码作为一个整体适用于COPYING文件中描述的许可证,但是单个源文件可以 具有不同的与GPL-20兼容的许可证:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh literal_block)}(hX@GPL-1.0+ : GNU通用公共许可证v1.0或更高版本 GPL-2.0+ : GNU通用公共许可证v2.0或更高版本 LGPL-2.0 : 仅限GNU库通用公共许可证v2 LGPL-2.0+: GNU 库通用公共许可证v2或更高版本 LGPL-2.1 : 仅限GNU宽通用公共许可证v2.1 LGPL-2.1+: GNU宽通用公共许可证v2.1或更高版本h]hX@GPL-1.0+ : GNU通用公共许可证v1.0或更高版本 GPL-2.0+ : GNU通用公共许可证v2.0或更高版本 LGPL-2.0 : 仅限GNU库通用公共许可证v2 LGPL-2.0+: GNU 库通用公共许可证v2或更高版本 LGPL-2.1 : 仅限GNU宽通用公共许可证v2.1 LGPL-2.1+: GNU宽通用公共许可证v2.1或更高版本}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubh)}(hy除此之外,个人文件可以在双重许可下提供,例如一个兼容的GPL变体,或者BSD, MIT等许可。h]hy除此之外,个人文件可以在双重许可下提供,例如一个兼容的GPL变体,或者BSD, MIT等许可。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hX用户空间API(UAPI)头文件描述了用户空间程序与内核的接口,这是一种特殊情况。 根据内核COPYING文件中的注释,syscall接口是一个明确的边界,它不会将GPL要求 扩展到任何使用它与内核通信的软件。由于UAPI头文件必须包含在创建在Linux内核 上运行的可执行文件的任何源文件中,因此此例外必须记录在特别的许可证表述中。h]hX用户空间API(UAPI)头文件描述了用户空间程序与内核的接口,这是一种特殊情况。 根据内核COPYING文件中的注释,syscall接口是一个明确的边界,它不会将GPL要求 扩展到任何使用它与内核通信的软件。由于UAPI头文件必须包含在创建在Linux内核 上运行的可执行文件的任何源文件中,因此此例外必须记录在特别的许可证表述中。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjhhubh)}(h表达源文件许可证的常用方法是将匹配的样板文本添加到文件的顶部注释中。由于 格式,拼写错误等,这些“样板”很难通过那些在上下文中使用的验证许可证合规性 的工具。h]h表达源文件许可证的常用方法是将匹配的样板文本添加到文件的顶部注释中。由于 格式,拼写错误等,这些“样板”很难通过那些在上下文中使用的验证许可证合规性 的工具。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjhhubh)}(hX样板文本的替代方法是在每个源文件中使用软件包数据交换(SPDX)许可证标识符。 SPDX许可证标识符是机器可解析的,并且是用于提供文件内容的许可证的精确缩写。 SPDX许可证标识符由Linux 基金会的SPDX 工作组管理,并得到了整个行业,工具 供应商和法律团队的合作伙伴的一致同意。有关详细信息,请参阅 https://spdx.org/h](hX样板文本的替代方法是在每个源文件中使用软件包数据交换(SPDX)许可证标识符。 SPDX许可证标识符是机器可解析的,并且是用于提供文件内容的许可证的精确缩写。 SPDX许可证标识符由Linux 基金会的SPDX 工作组管理,并得到了整个行业,工具 供应商和法律团队的合作伙伴的一致同意。有关详细信息,请参阅 }(hjhhhNhNubjH)}(hhttps://spdx.org/h]hhttps://spdx.org/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jGhjubeh}(h]h ]h"]h$]h&]uh1hhhhK*hjhhubh)}(hXLinux内核需要所有源文件中的精确SPDX标识符。内核中使用的有效标识符在 `许可标识符`_ 一节中进行了解释,并且已可以在 https://spdx.org/licenses/ 上的官方SPDX许可证列表中检索,并附带许可证 文本。h](haLinux内核需要所有源文件中的精确SPDX标识符。内核中使用的有效标识符在 }(hjhhhNhNubjH)}(h`许可标识符`_h]h许可标识符}(hj!hhhNhNubah}(h]h ]h"]h$]h&]name许可标识符jid2uh1jGhjresolvedKubh/ 一节中进行了解释,并且已可以在 }(hjhhhNhNubjH)}(hhttps://spdx.org/licenses/h]hhttps://spdx.org/licenses/}(hj7hhhNhNubah}(h]h ]h"]h$]h&]refurij9uh1jGhjubhH 上的官方SPDX许可证列表中检索,并附带许可证 文本。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK0hjhhubj)}(hhh](j)}(h许可标识符语法h]h许可标识符语法}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPhhhhhK6ubh)}(h 1.安置:h]h 1.安置:}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjPhhubhdefinition_list)}(hhh]hdefinition_list_item)}(hX    内核文件中的SPDX许可证标识符应添加到可包含注释的文件中的第一行。对于大多 数文件,这是第一行,除了那些在第一行中需要'#!PATH_TO_INTERPRETER'的脚本。 对于这些脚本,SPDX标识符进入第二行。 h](hterm)}(hp   内核文件中的SPDX许可证标识符应添加到可包含注释的文件中的第一行。对于大多h]hp   内核文件中的SPDX许可证标识符应添加到可包含注释的文件中的第一行。对于大多}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhhhKubhenumerated_list)}(hhh]h list_item)}(hXm风格: SPDX许可证标识符以注释的形式添加。注释样式取决于文件类型:: C source: // SPDX-License-Identifier: C header: /* SPDX-License-Identifier: */ ASM: /* SPDX-License-Identifier: */ scripts: # SPDX-License-Identifier: .rst: .. SPDX-License-Identifier: .dts{i}: // SPDX-License-Identifier: 如果特定工具无法处理标准注释样式,则应使用工具接受的相应注释机制。这是在 C 头文件中使用“/\*\*/”样式注释的原因。过去在使用生成的.lds文件中观察到 构建被破坏,其中'ld'无法解析C++注释。现在已经解决了这个问题,但仍然有较 旧的汇编程序工具无法处理C++样式的注释。 h](h)}(h风格:h]h风格:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjubh)}(hTSPDX许可证标识符以注释的形式添加。注释样式取决于文件类型::h]hSSPDX许可证标识符以注释的形式添加。注释样式取决于文件类型:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjubj)}(hXC source: // SPDX-License-Identifier: C header: /* SPDX-License-Identifier: */ ASM: /* SPDX-License-Identifier: */ scripts: # SPDX-License-Identifier: .rst: .. SPDX-License-Identifier: .dts{i}: // SPDX-License-Identifier: h]hXC source: // SPDX-License-Identifier: C header: /* SPDX-License-Identifier: */ ASM: /* SPDX-License-Identifier: */ scripts: # SPDX-License-Identifier: .rst: .. SPDX-License-Identifier: .dts{i}: // SPDX-License-Identifier: }hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKDhjubh)}(hXu如果特定工具无法处理标准注释样式,则应使用工具接受的相应注释机制。这是在 C 头文件中使用“/\*\*/”样式注释的原因。过去在使用生成的.lds文件中观察到 构建被破坏,其中'ld'无法解析C++注释。现在已经解决了这个问题,但仍然有较 旧的汇编程序工具无法处理C++样式的注释。h]hXy如果特定工具无法处理标准注释样式,则应使用工具接受的相应注释机制。这是在 C 头文件中使用“/**/”样式注释的原因。过去在使用生成的.lds文件中观察到 构建被破坏,其中’ld’无法解析C++注释。现在已经解决了这个问题,但仍然有较 旧的汇编程序工具无法处理C++样式的注释。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.startKuh1jhjPhhhhhK@ubj)}(hhh]j)}(hhh]h}(h]h ]h"]h$]h&]uh1hhjhhhhhKjKubah}(h]h ]h"]h$]h&]uh1jhjPhhhhhKPubj)}(hhh]j)}(hX{句法: 是SPDX许可证列表中的SPDX短格式许可证标识符,或者在许可 证例外适用时由“WITH”分隔的两个SPDX短格式许可证标识符的组合。当应用多个许 可证时,表达式由分隔子表达式的关键字“AND”,“OR”组成,并由“(”,“)”包围。 带有“或更高”选项的[L]GPL等许可证的许可证标识符通过使用“+”来表示“或更高” 选项来构建。:: // SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: LGPL-2.1+ 当需要修正的许可证时,应使用WITH。 例如,linux内核UAPI文件使用表达式:: // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 其它在内核中使用WITH例外的事例如下:: // SPDX-License-Identifier: GPL-2.0 WITH mif-exception // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 例外只能与特定的许可证标识符一起使用。有效的许可证标识符列在异常文本文件 的标记中。有关详细信息,请参阅 `许可标识符`_ 一章中的 `例外`_ 。 如果文件是双重许可且只选择一个许可证,则应使用OR。例如,一些dtsi文件在双 许可下可用:: // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 内核中双许可文件中许可表达式的示例:: // SPDX-License-Identifier: GPL-2.0 OR MIT // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL 如果文件具有多个许可证,其条款全部适用于使用该文件,则应使用AND。例如, 如果代码是从另一个项目继承的,并且已经授予了将其放入内核的权限,但原始 许可条款需要保持有效:: // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT 另一个需要遵守两套许可条款的例子是:: // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+ h](h)}(h句法:h]h句法:}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhj/ubh)}(hXI是SPDX许可证列表中的SPDX短格式许可证标识符,或者在许可 证例外适用时由“WITH”分隔的两个SPDX短格式许可证标识符的组合。当应用多个许 可证时,表达式由分隔子表达式的关键字“AND”,“OR”组成,并由“(”,“)”包围。h]hXI是SPDX许可证列表中的SPDX短格式许可证标识符,或者在许可 证例外适用时由“WITH”分隔的两个SPDX短格式许可证标识符的组合。当应用多个许 可证时,表达式由分隔子表达式的关键字“AND”,“OR”组成,并由“(”,“)”包围。}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThj/ubh)}(h带有“或更高”选项的[L]GPL等许可证的许可证标识符通过使用“+”来表示“或更高” 选项来构建。::h]h带有“或更高”选项的[L]GPL等许可证的许可证标识符通过使用“+”来表示“或更高” 选项来构建。:}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhj/ubj)}(hJ// SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: LGPL-2.1+h]hJ// SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: LGPL-2.1+}hj]sbah}(h]h ]h"]h$]h&]hhuh1jhhhK[hj/ubh)}(hb当需要修正的许可证时,应使用WITH。 例如,linux内核UAPI文件使用表达式::h]ha当需要修正的许可证时,应使用WITH。 例如,linux内核UAPI文件使用表达式:}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hj/ubj)}(hx// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-noteh]hx// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note}hjysbah}(h]h ]h"]h$]h&]hhuh1jhhhK`hj/ubh)}(h3其它在内核中使用WITH例外的事例如下::h]h2其它在内核中使用WITH例外的事例如下:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj/ubj)}(hr// SPDX-License-Identifier: GPL-2.0 WITH mif-exception // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0h]hr// SPDX-License-Identifier: GPL-2.0 WITH mif-exception // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKehj/ubh)}(h例外只能与特定的许可证标识符一起使用。有效的许可证标识符列在异常文本文件 的标记中。有关详细信息,请参阅 `许可标识符`_ 一章中的 `例外`_ 。h](h例外只能与特定的许可证标识符一起使用。有效的许可证标识符列在异常文本文件 的标记中。有关详细信息,请参阅 }(hjhhhNhNubjH)}(h`许可标识符`_h]h许可标识符}(hjhhhNhNubah}(h]h ]h"]h$]h&]name许可标识符jj1uh1jGhjj2Kubh 一章中的 }(hjhhhNhNubjH)}(h `例外`_h]h例外}(hjhhhNhNubah}(h]h ]h"]h$]h&]name例外jid5uh1jGhjj2Kubh 。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhj/ubh)}(h{如果文件是双重许可且只选择一个许可证,则应使用OR。例如,一些dtsi文件在双 许可下可用::h]hz如果文件是双重许可且只选择一个许可证,则应使用OR。例如,一些dtsi文件在双 许可下可用:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhj/ubj)}(h3// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clauseh]h3// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKnhj/ubh)}(h5内核中双许可文件中许可表达式的示例::h]h4内核中双许可文件中许可表达式的示例:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphj/ubj)}(hXD// SPDX-License-Identifier: GPL-2.0 OR MIT // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSLh]hXD// SPDX-License-Identifier: GPL-2.0 OR MIT // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKrhj/ubh)}(h如果文件具有多个许可证,其条款全部适用于使用该文件,则应使用AND。例如, 如果代码是从另一个项目继承的,并且已经授予了将其放入内核的权限,但原始 许可条款需要保持有效::h]h如果文件具有多个许可证,其条款全部适用于使用该文件,则应使用AND。例如, 如果代码是从另一个项目继承的,并且已经授予了将其放入内核的权限,但原始 许可条款需要保持有效:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhj/ubj)}(hE// SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MITh]hE// SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhK}hj/ubh)}(h5另一个需要遵守两套许可条款的例子是::h]h4另一个需要遵守两套许可条款的例子是:}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/ubj)}(h2// SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+h]h2// SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+}hj<sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj/ubeh}(h]h ]h"]h$]h&]uh1jhj,hhhhhNubah}(h]h ]h"]h$]h&]jjjhjjjKuh1jhjPhhhhhKRubeh}(h]id1ah ]h"]许可标识符语法ah$]h&]uh1jhjhhhhhK6 referencedKubj)}(hhh](j)}(h许可标识符h]h许可标识符}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_hhhhhKubh)}(hQ当前使用的许可证以及添加到内核的代码许可证可以分解为:h]hQ当前使用的许可证以及添加到内核的代码许可证可以分解为:}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj_hhubj)}(hhh]j)}(hXe_`优先许可`: 应尽可能使用这些许可证,因为它们已知完全兼容并广泛使用。这些许可证在内核 目录:: LICENSES/preferred/ 此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识 符相同,后者应用于源文件中的许可证。 例如:: LICENSES/preferred/GPL-2.0 包含GPLv2许可证文本和所需的元标签:: LICENSES/preferred/MIT 包含MIT许可证文本和所需的元标记 _`元标记`: 许可证文件中必须包含以下元标记: - Valid-License-Identifier:   一行或多行, 声明那些许可标识符在项目内有效, 以引用此特定许可的文本。通 常这是一个有效的标识符,但是例如对于带有'或更高'选项的许可证,两个标识 符都有效。 - SPDX-URL: SPDX页面的URL,其中包含与许可证相关的其他信息. - Usage-Guidance: 使用建议的自由格式文本。该文本必须包含SPDX许可证标识符的正确示例,因为 它们应根据 `许可标识符语法`_ 指南放入源文件中。 - License-Text: 此标记之后的所有文本都被视为原始许可文本 文件格式示例:: Valid-License-Identifier: GPL-2.0 Valid-License-Identifier: GPL-2.0+ SPDX-URL: https://spdx.org/licenses/GPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU General Public License (GPL) version 2 only' use: SPDX-License-Identifier: GPL-2.0 For 'GNU General Public License (GPL) version 2 or any later version' use: SPDX-License-Identifier: GPL-2.0+ License-Text: Full license text :: SPDX-License-Identifier: MIT SPDX-URL: https://spdx.org/licenses/MIT.html Usage-Guide: To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: MIT License-Text: Full license text h](h)}(h_`优先许可`:h](jv)}(h_`优先许可`h]h 优先许可}(hjhhhNhNubah}(h]id3ah ]h"] 优先许可ah$]h&]uh1juhjj^Kubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hu应尽可能使用这些许可证,因为它们已知完全兼容并广泛使用。这些许可证在内核 目录::h]ht应尽可能使用这些许可证,因为它们已知完全兼容并广泛使用。这些许可证在内核 目录:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hLICENSES/preferred/h]hLICENSES/preferred/}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubh)}(h此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识 符相同,后者应用于源文件中的许可证。h](h7此目录中的文件包含完整的许可证文本和 }(hjhhhNhNubjH)}(h `元标记`_h]h 元标记}(hjhhhNhNubah}(h]h ]h"]h$]h&]name 元标记jid4uh1jGhjj2KubhZ 。文件名与SPDX许可证标识 符相同,后者应用于源文件中的许可证。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h例如::h]h例如:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hLICENSES/preferred/GPL-2.0h]hLICENSES/preferred/GPL-2.0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubh)}(h1包含GPLv2许可证文本和所需的元标签::h]h0包含GPLv2许可证文本和所需的元标签:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hLICENSES/preferred/MITh]hLICENSES/preferred/MIT}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubh)}(h-包含MIT许可证文本和所需的元标记h]h-包含MIT许可证文本和所需的元标记}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h _`元标记`:h](jv)}(h _`元标记`h]h 元标记}(hj,hhhNhNubah}(h]jah ]h"] 元标记ah$]h&]uh1juhj(j^Kubh:}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h0许可证文件中必须包含以下元标记:h]h0许可证文件中必须包含以下元标记:}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh bullet_list)}(hhh]j)}(hValid-License-Identifier: h]h)}(hValid-License-Identifier:h]hValid-License-Identifier:}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjXubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]bullet-uh1jShhhKhjubjp)}(hhh]ju)}(h  一行或多行, 声明那些许可标识符在项目内有效, 以引用此特定许可的文本。通 常这是一个有效的标识符,但是例如对于带有'或更高'选项的许可证,两个标识 符都有效。 h](j{)}(hk  一行或多行, 声明那些许可标识符在项目内有效, 以引用此特定许可的文本。通h]hk  一行或多行, 声明那些许可标识符在项目内有效, 以引用此特定许可的文本。通}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhhhKhj{ubj)}(hhh]h)}(hx常这是一个有效的标识符,但是例如对于带有'或更高'选项的许可证,两个标识 符都有效。h]h|常这是一个有效的标识符,但是例如对于带有’或更高’选项的许可证,两个标识 符都有效。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jthhhKhjxubah}(h]h ]h"]h$]h&]uh1johjubjT)}(hhh](j)}(hMSPDX-URL: SPDX页面的URL,其中包含与许可证相关的其他信息. h](h)}(h SPDX-URL:h]h SPDX-URL:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hASPDX页面的URL,其中包含与许可证相关的其他信息.h]hASPDX页面的URL,其中包含与许可证相关的其他信息.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hUsage-Guidance: 使用建议的自由格式文本。该文本必须包含SPDX许可证标识符的正确示例,因为 它们应根据 `许可标识符语法`_ 指南放入源文件中。 h](h)}(hUsage-Guidance:h]hUsage-Guidance:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h使用建议的自由格式文本。该文本必须包含SPDX许可证标识符的正确示例,因为 它们应根据 `许可标识符语法`_ 指南放入源文件中。h](hx使用建议的自由格式文本。该文本必须包含SPDX许可证标识符的正确示例,因为 它们应根据 }(hjhhhNhNubjH)}(h`许可标识符语法`_h]h许可标识符语法}(hjhhhNhNubah}(h]h ]h"]h$]h&]name许可标识符语法jjXuh1jGhjj2Kubh 指南放入源文件中。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hLLicense-Text: 此标记之后的所有文本都被视为原始许可文本 h](h)}(h License-Text:h]h License-Text:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h<此标记之后的所有文本都被视为原始许可文本h]h<此标记之后的所有文本都被视为原始许可文本}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jvjwuh1jShhhKhjubh)}(h文件格式示例::h]h文件格式示例:}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hX,Valid-License-Identifier: GPL-2.0 Valid-License-Identifier: GPL-2.0+ SPDX-URL: https://spdx.org/licenses/GPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU General Public License (GPL) version 2 only' use: SPDX-License-Identifier: GPL-2.0 For 'GNU General Public License (GPL) version 2 or any later version' use: SPDX-License-Identifier: GPL-2.0+ License-Text: Full license texth]hX,Valid-License-Identifier: GPL-2.0 Valid-License-Identifier: GPL-2.0+ SPDX-URL: https://spdx.org/licenses/GPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU General Public License (GPL) version 2 only' use: SPDX-License-Identifier: GPL-2.0 For 'GNU General Public License (GPL) version 2 or any later version' use: SPDX-License-Identifier: GPL-2.0+ License-Text: Full license text}hjMsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj)}(hXDSPDX-License-Identifier: MIT SPDX-URL: https://spdx.org/licenses/MIT.html Usage-Guide: To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: MIT License-Text: Full license texth]hXDSPDX-License-Identifier: MIT SPDX-URL: https://spdx.org/licenses/MIT.html Usage-Guide: To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: MIT License-Text: Full license text}hj[sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhj~hhhhhNubah}(h]h ]h"]h$]h&]jjjhjjuh1jhj_hhhhhKubj)}(hhh]j)}(hhh]h}(h]h ]h"]h$]h&]uh1hhjuhhhhhKjKubah}(h]h ]h"]h$]h&]uh1jhj_hhhhhKubj)}(hhh]j)}(hXL不推荐的许可证: 这些许可证只应用于现有代码或从其他项目导入代码。这些许可证在内核目录:: LICENSES/other/ 此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识 符相同,后者应用于源文件中的许可证。 例如:: LICENSES/other/ISC 包含国际系统联合许可文本和所需的元标签:: LICENSES/other/ZLib 包含ZLIB许可文本和所需的元标签. 元标签: “其他”许可证的元标签要求与 `优先许可`_ 的要求相同。 文件格式示例:: Valid-License-Identifier: ISC SPDX-URL: https://spdx.org/licenses/ISC.html Usage-Guide: Usage of this license in the kernel for new code is discouraged and it should solely be used for importing code from an already existing project. To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: ISC License-Text: Full license text h](h)}(h不推荐的许可证:h]h不推荐的许可证:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hh这些许可证只应用于现有代码或从其他项目导入代码。这些许可证在内核目录::h]hg这些许可证只应用于现有代码或从其他项目导入代码。这些许可证在内核目录:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hLICENSES/other/h]hLICENSES/other/}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubh)}(h此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识 符相同,后者应用于源文件中的许可证。h](h7此目录中的文件包含完整的许可证文本和 }(hjhhhNhNubjH)}(h `元标记`_h]h 元标记}(hjhhhNhNubah}(h]h ]h"]h$]h&]name 元标记jjuh1jGhjj2KubhZ 。文件名与SPDX许可证标识 符相同,后者应用于源文件中的许可证。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h例如::h]h例如:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hLICENSES/other/ISCh]hLICENSES/other/ISC}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubh)}(h;包含国际系统联合许可文本和所需的元标签::h]h:包含国际系统联合许可文本和所需的元标签:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hLICENSES/other/ZLibh]hLICENSES/other/ZLib}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubh)}(h,包含ZLIB许可文本和所需的元标签.h]h,包含ZLIB许可文本和所需的元标签.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h 元标签:h]h 元标签:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hM“其他”许可证的元标签要求与 `优先许可`_ 的要求相同。h](h+“其他”许可证的元标签要求与 }(hj.hhhNhNubjH)}(h`优先许可`_h]h 优先许可}(hj6hhhNhNubah}(h]h ]h"]h$]h&]name 优先许可jjuh1jGhj.j2Kubh 的要求相同。}(hj.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h文件格式示例::h]h文件格式示例:}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hXValid-License-Identifier: ISC SPDX-URL: https://spdx.org/licenses/ISC.html Usage-Guide: Usage of this license in the kernel for new code is discouraged and it should solely be used for importing code from an already existing project. To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: ISC License-Text: Full license texth]hXValid-License-Identifier: ISC SPDX-URL: https://spdx.org/licenses/ISC.html Usage-Guide: Usage of this license in the kernel for new code is discouraged and it should solely be used for importing code from an already existing project. To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: ISC License-Text: Full license text}hj^sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjjhjjjKuh1jhj_hhhhhKubj)}(hhh]j)}(hhh]h}(h]h ]h"]h$]h&]uh1hhjxhhhhhKjKubah}(h]h ]h"]h$]h&]uh1jhj_hhhhhKubj)}(hhh]j)}(hX _`例外`: 某些许可证可以修改,并允许原始许可证不具有的某些例外权利。这些例外在 内核目录:: LICENSES/exceptions/ 此目录中的文件包含完整的例外文本和所需的 `例外元标记`_ 。 例如:: LICENSES/exceptions/Linux-syscall-note 包含Linux内核的COPYING文件中记录的Linux系统调用例外,该文件用于UAPI 头文件。例如:: LICENSES/exceptions/GCC-exception-2.0 包含GCC'链接例外',它允许独立于其许可证的任何二进制文件与标记有此例外的 文件的编译版本链接。这是从GPL不兼容源代码创建可运行的可执行文件所必需的。 _`例外元标记`: 以下元标记必须在例外文件中可用: - SPDX-Exception-Identifier:   一个可与SPDX许可证标识符一起使用的例外标识符。 - SPDX-URL: SPDX页面的URL,其中包含与例外相关的其他信息。 - SPDX-Licenses:   以逗号分隔的例外可用的SPDX许可证标识符列表。 - Usage-Guidance: 使用建议的自由格式文本。必须在文本后面加上SPDX许可证标识符的正确示例, 因为它们应根据 `许可标识符语法`_ 指南放入源文件中。 - Exception-Text: 此标记之后的所有文本都被视为原始异常文本 文件格式示例:: SPDX-Exception-Identifier: Linux-syscall-note SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ Usage-Guidance: This exception is used together with one of the above SPDX-Licenses to mark user-space API (uapi) header files so they can be included into non GPL compliant user-space application code. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH Linux-syscall-note Exception-Text: Full exception text :: SPDX-Exception-Identifier: GCC-exception-2.0 SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html SPDX-Licenses: GPL-2.0, GPL-2.0+ Usage-Guidance: The "GCC Runtime Library exception 2.0" is used together with one of the above SPDX-Licenses for code imported from the GCC runtime library. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH GCC-exception-2.0 Exception-Text: Full exception text h](h)}(h _`例外`:h](jv)}(h _`例外`h]h例外}(hjhhhNhNubah}(h]jah ]h"]例外ah$]h&]uh1juhjj^Kubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hu某些许可证可以修改,并允许原始许可证不具有的某些例外权利。这些例外在 内核目录::h]ht某些许可证可以修改,并允许原始许可证不具有的某些例外权利。这些例外在 内核目录:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hLICENSES/exceptions/h]hLICENSES/exceptions/}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubh)}(hS此目录中的文件包含完整的例外文本和所需的 `例外元标记`_ 。h](h=此目录中的文件包含完整的例外文本和所需的 }(hjhhhNhNubjH)}(h`例外元标记`_h]h例外元标记}(hjhhhNhNubah}(h]h ]h"]h$]h&]name例外元标记jid6uh1jGhjj2Kubh 。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(h例如::h]h例如:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubj)}(h&LICENSES/exceptions/Linux-syscall-noteh]h&LICENSES/exceptions/Linux-syscall-note}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhMhjubh)}(ho包含Linux内核的COPYING文件中记录的Linux系统调用例外,该文件用于UAPI 头文件。例如::h]hn包含Linux内核的COPYING文件中记录的Linux系统调用例外,该文件用于UAPI 头文件。例如:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubj)}(h%LICENSES/exceptions/GCC-exception-2.0h]h%LICENSES/exceptions/GCC-exception-2.0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhM hjubh)}(h包含GCC'链接例外',它允许独立于其许可证的任何二进制文件与标记有此例外的 文件的编译版本链接。这是从GPL不兼容源代码创建可运行的可执行文件所必需的。h]h包含GCC’链接例外’,它允许独立于其许可证的任何二进制文件与标记有此例外的 文件的编译版本链接。这是从GPL不兼容源代码创建可运行的可执行文件所必需的。}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubh)}(h_`例外元标记`:h](jv)}(h_`例外元标记`h]h例外元标记}(hj7hhhNhNubah}(h]jah ]h"]例外元标记ah$]h&]uh1juhj3j^Kubh:}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(h0以下元标记必须在例外文件中可用:h]h0以下元标记必须在例外文件中可用:}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubjT)}(hhh]j)}(hSPDX-Exception-Identifier: h]h)}(hSPDX-Exception-Identifier:h]hSPDX-Exception-Identifier:}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjaubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]jvjwuh1jShhhMhjubh)}(hG  一个可与SPDX许可证标识符一起使用的例外标识符。h]hG  一个可与SPDX许可证标识符一起使用的例外标识符。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubjT)}(hhh](j)}(hLSPDX-URL: SPDX页面的URL,其中包含与例外相关的其他信息。 h](h)}(h SPDX-URL:h]h SPDX-URL:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(h@SPDX页面的URL,其中包含与例外相关的其他信息。h]h@SPDX页面的URL,其中包含与例外相关的其他信息。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hSPDX-Licenses: h]h)}(hSPDX-Licenses:h]hSPDX-Licenses:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jvjwuh1jShhhMhjubh)}(hD  以逗号分隔的例外可用的SPDX许可证标识符列表。h]hD  以逗号分隔的例外可用的SPDX许可证标识符列表。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubjT)}(hhh](j)}(hUsage-Guidance: 使用建议的自由格式文本。必须在文本后面加上SPDX许可证标识符的正确示例, 因为它们应根据 `许可标识符语法`_ 指南放入源文件中。 h](h)}(hUsage-Guidance:h]hUsage-Guidance:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(h使用建议的自由格式文本。必须在文本后面加上SPDX许可证标识符的正确示例, 因为它们应根据 `许可标识符语法`_ 指南放入源文件中。h](h~使用建议的自由格式文本。必须在文本后面加上SPDX许可证标识符的正确示例, 因为它们应根据 }(hjhhhNhNubjH)}(h`许可标识符语法`_h]h许可标识符语法}(hjhhhNhNubah}(h]h ]h"]h$]h&]name许可标识符语法jjXuh1jGhjj2Kubh 指南放入源文件中。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hNException-Text: 此标记之后的所有文本都被视为原始异常文本 h](h)}(hException-Text:h]hException-Text:}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM#hj ubh)}(h<此标记之后的所有文本都被视为原始异常文本h]h<此标记之后的所有文本都被视为原始异常文本}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jvjwuh1jShhhMhjubh)}(h文件格式示例::h]h文件格式示例:}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hjubj)}(hXdSPDX-Exception-Identifier: Linux-syscall-note SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ Usage-Guidance: This exception is used together with one of the above SPDX-Licenses to mark user-space API (uapi) header files so they can be included into non GPL compliant user-space application code. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH Linux-syscall-note Exception-Text: Full exception texth]hXdSPDX-Exception-Identifier: Linux-syscall-note SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ Usage-Guidance: This exception is used together with one of the above SPDX-Licenses to mark user-space API (uapi) header files so they can be included into non GPL compliant user-space application code. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH Linux-syscall-note Exception-Text: Full exception text}hjY sbah}(h]h ]h"]h$]h&]hhuh1jhhhM)hjubj)}(hXSPDX-Exception-Identifier: GCC-exception-2.0 SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html SPDX-Licenses: GPL-2.0, GPL-2.0+ Usage-Guidance: The "GCC Runtime Library exception 2.0" is used together with one of the above SPDX-Licenses for code imported from the GCC runtime library. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH GCC-exception-2.0 Exception-Text: Full exception texth]hXSPDX-Exception-Identifier: GCC-exception-2.0 SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html SPDX-Licenses: GPL-2.0, GPL-2.0+ Usage-Guidance: The "GCC Runtime Library exception 2.0" is used together with one of the above SPDX-Licenses for code imported from the GCC runtime library. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH GCC-exception-2.0 Exception-Text: Full exception text}hjg sbah}(h]h ]h"]h$]h&]hhuh1jhhhM8hjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjjhjjjKuh1jhj_hhhhhKubh)}(hX'所有SPDX许可证标识符和例外都必须在LICENSES子目录中具有相应的文件。这是允许 工具验证(例如checkpatch.pl)以及准备好从源读取和提取许可证所必需的, 这是 各种FOSS组织推荐的,例如 `FSFE REUSE initiative `_.h](h所有SPDX许可证标识符和例外都必须在LICENSES子目录中具有相应的文件。这是允许 工具验证(例如checkpatch.pl)以及准备好从源读取和提取许可证所必需的, 这是 各种FOSS组织推荐的,例如 }(hj hhhNhNubjH)}(h2`FSFE REUSE initiative `_h]hFSFE REUSE initiative}(hj hhhNhNubah}(h]h ]h"]h$]h&]nameFSFE REUSE initiativerefurihttps://reuse.software/uh1jGhj ubjv)}(h h]h}(h]fsfe-reuse-initiativeah ]h"]fsfe reuse initiativeah$]h&]refurij uh1juj^Khj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMFhj_hhubeh}(h]j1ah ]h"]许可标识符ah$]h&]uh1jhjhhhhhKj^Kubj)}(hhh](j)}(h_`模块许可`h]jv)}(hj h]h 模块许可}(hj hhhNhNubah}(h]id7ah ]h"] 模块许可ah$]h&]uh1juhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhMKubh block_quote)}(hX 可加载内核模块还需要MODULE_LICENSE()标记。此标记既不替代正确的源代码 许可证信息(SPDX-License-Identifier),也不以任何方式表示或确定提供模块 源代码的确切许可证。 此标记的唯一目的是提供足够的信息,该模块是否是自由软件或者是内核模块加 载器和用户空间工具的专有模块。 MODULE_LICENSE()的有效许可证字符串是: ============================= ============================================= "GPL" 模块是根据GPL版本2许可的。这并不表示仅限于 GPL-2.0或GPL-2.0或更高版本之间的任何区别。 最正确许可证信息只能通过相应源文件中的许可证 信息来确定 "GPL v2" 和"GPL"相同,它的存在是因为历史原因。 "GPL and additional rights" 表示模块源在GPL v2变体和MIT许可下双重许可的 历史变体。请不要在新代码中使用。 "Dual MIT/GPL" 表达该模块在GPL v2变体或MIT许可证选择下双重 许可的正确方式。 "Dual BSD/GPL" 该模块根据GPL v2变体或BSD许可证选择进行双重 许可。 BSD许可证的确切变体只能通过相应源文件 中的许可证信息来确定。 "Dual MPL/GPL" 该模块根据GPL v2变体或Mozilla Public License (MPL)选项进行双重许可。 MPL许可证的确切变体 只能通过相应的源文件中的许可证信息来确定。 "Proprietary" 该模块属于专有许可。此字符串仅用于专有的第三 方模块,不能用于在内核树中具有源代码的模块。 以这种方式标记的模块在加载时会使用'P'标记污 染内核,并且内核模块加载器拒绝将这些模块链接 到使用EXPORT_SYMBOL_GPL()导出的符号。 ============================= ============================================= h](h)}(h可加载内核模块还需要MODULE_LICENSE()标记。此标记既不替代正确的源代码 许可证信息(SPDX-License-Identifier),也不以任何方式表示或确定提供模块 源代码的确切许可证。h]h可加载内核模块还需要MODULE_LICENSE()标记。此标记既不替代正确的源代码 许可证信息(SPDX-License-Identifier),也不以任何方式表示或确定提供模块 源代码的确切许可证。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMMhj ubh)}(h此标记的唯一目的是提供足够的信息,该模块是否是自由软件或者是内核模块加 载器和用户空间工具的专有模块。h]h此标记的唯一目的是提供足够的信息,该模块是否是自由软件或者是内核模块加 载器和用户空间工具的专有模块。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhj ubh)}(h3MODULE_LICENSE()的有效许可证字符串是:h]h3MODULE_LICENSE()的有效许可证字符串是:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMThj ubj )}(hXL============================= ============================================= "GPL" 模块是根据GPL版本2许可的。这并不表示仅限于 GPL-2.0或GPL-2.0或更高版本之间的任何区别。 最正确许可证信息只能通过相应源文件中的许可证 信息来确定 "GPL v2" 和"GPL"相同,它的存在是因为历史原因。 "GPL and additional rights" 表示模块源在GPL v2变体和MIT许可下双重许可的 历史变体。请不要在新代码中使用。 "Dual MIT/GPL" 表达该模块在GPL v2变体或MIT许可证选择下双重 许可的正确方式。 "Dual BSD/GPL" 该模块根据GPL v2变体或BSD许可证选择进行双重 许可。 BSD许可证的确切变体只能通过相应源文件 中的许可证信息来确定。 "Dual MPL/GPL" 该模块根据GPL v2变体或Mozilla Public License (MPL)选项进行双重许可。 MPL许可证的确切变体 只能通过相应的源文件中的许可证信息来确定。 "Proprietary" 该模块属于专有许可。此字符串仅用于专有的第三 方模块,不能用于在内核树中具有源代码的模块。 以这种方式标记的模块在加载时会使用'P'标记污 染内核,并且内核模块加载器拒绝将这些模块链接 到使用EXPORT_SYMBOL_GPL()导出的符号。 ============================= ============================================= h]htable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthK-uh1j hj ubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(h"GPL"h]h “GPL”}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMWhj5 ubah}(h]h ]h"]h$]h&]uh1j3 hj0 ubj4 )}(hhh]h)}(h模块是根据GPL版本2许可的。这并不表示仅限于 GPL-2.0或GPL-2.0或更高版本之间的任何区别。 最正确许可证信息只能通过相应源文件中的许可证 信息来确定h]h模块是根据GPL版本2许可的。这并不表示仅限于 GPL-2.0或GPL-2.0或更高版本之间的任何区别。 最正确许可证信息只能通过相应源文件中的许可证 信息来确定}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMWhjL ubah}(h]h ]h"]h$]h&]uh1j3 hj0 ubeh}(h]h ]h"]h$]h&]uh1j. hj+ ubj/ )}(hhh](j4 )}(hhh]h)}(h"GPL v2"h]h “GPL v2”}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM\hjl ubah}(h]h ]h"]h$]h&]uh1j3 hji ubj4 )}(hhh]h)}(h5和"GPL"相同,它的存在是因为历史原因。h]h9和”GPL”相同,它的存在是因为历史原因。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM\hj ubah}(h]h ]h"]h$]h&]uh1j3 hji ubeh}(h]h ]h"]h$]h&]uh1j. hj+ ubj/ )}(hhh](j4 )}(hhh]h)}(h"GPL and additional rights"h]h“GPL and additional rights”}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM^hj ubah}(h]h ]h"]h$]h&]uh1j3 hj ubj4 )}(hhh]h)}(hm表示模块源在GPL v2变体和MIT许可下双重许可的 历史变体。请不要在新代码中使用。h]hm表示模块源在GPL v2变体和MIT许可下双重许可的 历史变体。请不要在新代码中使用。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM^hj ubah}(h]h ]h"]h$]h&]uh1j3 hj ubeh}(h]h ]h"]h$]h&]uh1j. hj+ ubj/ )}(hhh](j4 )}(hhh]h)}(h"Dual MIT/GPL"h]h“Dual MIT/GPL”}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahj ubah}(h]h ]h"]h$]h&]uh1j3 hj ubj4 )}(hhh]h)}(hU表达该模块在GPL v2变体或MIT许可证选择下双重 许可的正确方式。h]hU表达该模块在GPL v2变体或MIT许可证选择下双重 许可的正确方式。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahj ubah}(h]h ]h"]h$]h&]uh1j3 hj ubeh}(h]h ]h"]h$]h&]uh1j. hj+ ubj/ )}(hhh](j4 )}(hhh]h)}(h"Dual BSD/GPL"h]h“Dual BSD/GPL”}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMdhj ubah}(h]h ]h"]h$]h&]uh1j3 hj ubj4 )}(hhh]h)}(h该模块根据GPL v2变体或BSD许可证选择进行双重 许可。 BSD许可证的确切变体只能通过相应源文件 中的许可证信息来确定。h]h该模块根据GPL v2变体或BSD许可证选择进行双重 许可。 BSD许可证的确切变体只能通过相应源文件 中的许可证信息来确定。}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMdhj( ubah}(h]h ]h"]h$]h&]uh1j3 hj ubeh}(h]h ]h"]h$]h&]uh1j. hj+ ubj/ )}(hhh](j4 )}(hhh]h)}(h"Dual MPL/GPL"h]h“Dual MPL/GPL”}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhjH ubah}(h]h ]h"]h$]h&]uh1j3 hjE ubj4 )}(hhh]h)}(h该模块根据GPL v2变体或Mozilla Public License (MPL)选项进行双重许可。 MPL许可证的确切变体 只能通过相应的源文件中的许可证信息来确定。h]h该模块根据GPL v2变体或Mozilla Public License (MPL)选项进行双重许可。 MPL许可证的确切变体 只能通过相应的源文件中的许可证信息来确定。}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhj_ ubah}(h]h ]h"]h$]h&]uh1j3 hjE ubeh}(h]h ]h"]h$]h&]uh1j. hj+ ubj/ )}(hhh](j4 )}(hhh]h)}(h "Proprietary"h]h“Proprietary”}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMlhj ubah}(h]h ]h"]h$]h&]uh1j3 hj| ubj4 )}(hhh]h)}(hX;该模块属于专有许可。此字符串仅用于专有的第三 方模块,不能用于在内核树中具有源代码的模块。 以这种方式标记的模块在加载时会使用'P'标记污 染内核,并且内核模块加载器拒绝将这些模块链接 到使用EXPORT_SYMBOL_GPL()导出的符号。h]hX?该模块属于专有许可。此字符串仅用于专有的第三 方模块,不能用于在内核树中具有源代码的模块。 以这种方式标记的模块在加载时会使用’P’标记污 染内核,并且内核模块加载器拒绝将这些模块链接 到使用EXPORT_SYMBOL_GPL()导出的符号。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMlhj ubah}(h]h ]h"]h$]h&]uh1j3 hj| ubeh}(h]h ]h"]h$]h&]uh1j. hj+ ubeh}(h]h ]h"]h$]h&]uh1j) hj ubeh}(h]h ]h"]h$]h&]colsKuh1j hj ubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j hhhMVhj ubeh}(h]h ]h"]h$]h&]uh1j hhhMMhj hhubeh}(h]id8ah ]h"]h$] 模块许可ah&]uh1jhjhhhhhMKj^Kubeh}(h](linuxjeh ]h"](linux内核许可规则cn_kernel_licensingeh$]h&]uh1jhhhhhhhK expect_referenced_by_name}j jwsexpect_referenced_by_id}jjwsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jN generatorN datestampN source_linkN source_urlN toc_backlinksj3 footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}(许可标识符](j!je例外]ja 元标记](jje许可标识符语法](jje 优先许可]j6a例外元标记]jaurefids}j]jwasnameids}(j jj j j[jXj j1jjj8jjjjCjj j j j u nametypes}(j j j[j jj8jjCj j uh}(jjj jjXjPj1j_jjjj,jjjj7j j j j j j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j KsRparse_messages](hsystem_message)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "2" (ordinal 2)h]h>Enumerated list start value not ordinal-1: “2” (ordinal 2)}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineK uh1jx hjPhhhhhK@ubjy )}(hhh]h)}(h:Enumerated list start value not ordinal-1: "3" (ordinal 3)h]h>Enumerated list start value not ordinal-1: “3” (ordinal 3)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineK uh1jx hjPhhhhhKRubjy )}(hhh]h)}(h:Enumerated list start value not ordinal-1: "2" (ordinal 2)h]h>Enumerated list start value not ordinal-1: “2” (ordinal 2)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineK uh1jx hj_hhhhhKubjy )}(hhh]h)}(h:Enumerated list start value not ordinal-1: "3" (ordinal 3)h]h>Enumerated list start value not ordinal-1: “3” (ordinal 3)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineK uh1jx hj_hhhhhKubjy )}(hhh]h)}(h/Duplicate implicit target name: "模块许可".h]h3Duplicate implicit target name: “模块许可”.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]j alevelKtypej sourcehlineMKuh1jx hj hhhhhMKubetransform_messages](jy )}(hhh]h)}(hhh]h9Hyperlink target "cn-kernel-licensing" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineKuh1jx ubjy )}(hhh]h)}(hhh]h2Hyperlink target "模块许可" is not referenced.}hj! sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineMKuh1jx ube transformerN include_log]:Documentation/translations/zh_CN/process/license-rules.rst(NNNNta decorationNhhub.