162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci.. include:: ../disclaimer-zh_TW.rst
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci:Original: :ref:`Documentation/process/license-rules.rst <kernel_licensing>`
862306a36Sopenharmony_ci:Translator: Alex Shi <alex.shi@linux.alibaba.com>
962306a36Sopenharmony_ci             Hu Haowen <src.res.211@gmail.com>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci.. _tw_kernel_licensing:
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciLinux內核許可規則
1462306a36Sopenharmony_ci=================
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciLinux內核根據LICENSES/preferred/GPL-2.0中提供的GNU通用公共許可證版本2
1762306a36Sopenharmony_ci(GPL-2.0)的條款提供,並在LICENSES/exceptions/Linux-syscall-note中顯式
1862306a36Sopenharmony_ci描述了例外的系統調用,如COPYING文件中所述。
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci此文檔文件提供了如何對每個源文件進行注釋以使其許可證清晰明確的說明。
2162306a36Sopenharmony_ci它不會取代內核的許可證。
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci內核原始碼作爲一個整體適用於COPYING文件中描述的許可證,但是單個源文件可以
2462306a36Sopenharmony_ci具有不同的與GPL-20兼容的許可證::
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci    GPL-1.0+ : GNU通用公共許可證v1.0或更高版本
2762306a36Sopenharmony_ci    GPL-2.0+ : GNU通用公共許可證v2.0或更高版本
2862306a36Sopenharmony_ci    LGPL-2.0 : 僅限GNU庫通用公共許可證v2
2962306a36Sopenharmony_ci    LGPL-2.0+: GNU 庫通用公共許可證v2或更高版本
3062306a36Sopenharmony_ci    LGPL-2.1 : 僅限GNU寬通用公共許可證v2.1
3162306a36Sopenharmony_ci    LGPL-2.1+: GNU寬通用公共許可證v2.1或更高版本
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci除此之外,個人文件可以在雙重許可下提供,例如一個兼容的GPL變體,或者BSD,
3462306a36Sopenharmony_ciMIT等許可。
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci用戶空間API(UAPI)頭文件描述了用戶空間程序與內核的接口,這是一種特殊情況。
3762306a36Sopenharmony_ci根據內核COPYING文件中的注釋,syscall接口是一個明確的邊界,它不會將GPL要求
3862306a36Sopenharmony_ci擴展到任何使用它與內核通信的軟體。由於UAPI頭文件必須包含在創建在Linux內核
3962306a36Sopenharmony_ci上運行的可執行文件的任何源文件中,因此此例外必須記錄在特別的許可證表述中。
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci表達源文件許可證的常用方法是將匹配的樣板文本添加到文件的頂部注釋中。由於
4262306a36Sopenharmony_ci格式,拼寫錯誤等,這些「樣板」很難通過那些在上下文中使用的驗證許可證合規性
4362306a36Sopenharmony_ci的工具。
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci樣板文本的替代方法是在每個源文件中使用軟體包數據交換(SPDX)許可證標識符。
4662306a36Sopenharmony_ciSPDX許可證標識符是機器可解析的,並且是用於提供文件內容的許可證的精確縮寫。
4762306a36Sopenharmony_ciSPDX許可證標識符由Linux 基金會的SPDX 工作組管理,並得到了整個行業,工具
4862306a36Sopenharmony_ci供應商和法律團隊的合作夥伴的一致同意。有關詳細信息,請參閱
4962306a36Sopenharmony_cihttps://spdx.org/
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciLinux內核需要所有源文件中的精確SPDX標識符。內核中使用的有效標識符在
5262306a36Sopenharmony_ci`許可標識符`_ 一節中進行了解釋,並且已可以在
5362306a36Sopenharmony_cihttps://spdx.org/licenses/ 上的官方SPDX許可證列表中檢索,並附帶許可證
5462306a36Sopenharmony_ci文本。
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci許可標識符語法
5762306a36Sopenharmony_ci--------------
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci1.安置:
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci   內核文件中的SPDX許可證標識符應添加到可包含注釋的文件中的第一行。對於大多
6262306a36Sopenharmony_ci   數文件,這是第一行,除了那些在第一行中需要'#!PATH_TO_INTERPRETER'的腳本。
6362306a36Sopenharmony_ci   對於這些腳本,SPDX標識符進入第二行。
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci|
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci2. 風格:
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci   SPDX許可證標識符以注釋的形式添加。注釋樣式取決於文件類型::
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci      C source:	// SPDX-License-Identifier: <SPDX License Expression>
7262306a36Sopenharmony_ci      C header:	/* SPDX-License-Identifier: <SPDX License Expression> */
7362306a36Sopenharmony_ci      ASM:	/* SPDX-License-Identifier: <SPDX License Expression> */
7462306a36Sopenharmony_ci      scripts:	# SPDX-License-Identifier: <SPDX License Expression>
7562306a36Sopenharmony_ci      .rst:	.. SPDX-License-Identifier: <SPDX License Expression>
7662306a36Sopenharmony_ci      .dts{i}:	// SPDX-License-Identifier: <SPDX License Expression>
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci   如果特定工具無法處理標準注釋樣式,則應使用工具接受的相應注釋機制。這是在
7962306a36Sopenharmony_ci   C 頭文件中使用「/\*\*/」樣式注釋的原因。過去在使用生成的.lds文件中觀察到
8062306a36Sopenharmony_ci   構建被破壞,其中'ld'無法解析C++注釋。現在已經解決了這個問題,但仍然有較
8162306a36Sopenharmony_ci   舊的彙編程序工具無法處理C++樣式的注釋。
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci|
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci3. 句法:
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci   <SPDX許可證表達式>是SPDX許可證列表中的SPDX短格式許可證標識符,或者在許可
8862306a36Sopenharmony_ci   證例外適用時由「WITH」分隔的兩個SPDX短格式許可證標識符的組合。當應用多個許
8962306a36Sopenharmony_ci   可證時,表達式由分隔子表達式的關鍵字「AND」,「OR」組成,並由「(」,「)」包圍。
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci   帶有「或更高」選項的[L]GPL等許可證的許可證標識符通過使用「+」來表示「或更高」
9262306a36Sopenharmony_ci   選項來構建。::
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0+
9562306a36Sopenharmony_ci      // SPDX-License-Identifier: LGPL-2.1+
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci   當需要修正的許可證時,應使用WITH。 例如,linux內核UAPI文件使用表達式::
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
10062306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci   其它在內核中使用WITH例外的事例如下::
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0 WITH mif-exception
10562306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci   例外只能與特定的許可證標識符一起使用。有效的許可證標識符列在異常文本文件
10862306a36Sopenharmony_ci   的標記中。有關詳細信息,請參閱 `許可標識符`_ 一章中的 `例外`_ 。
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci   如果文件是雙重許可且只選擇一個許可證,則應使用OR。例如,一些dtsi文件在雙
11162306a36Sopenharmony_ci   許可下可用::
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci   內核中雙許可文件中許可表達式的示例::
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0 OR MIT
11862306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
11962306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0
12062306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1
12162306a36Sopenharmony_ci      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT
12262306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci   如果文件具有多個許可證,其條款全部適用於使用該文件,則應使用AND。例如,
12562306a36Sopenharmony_ci   如果代碼是從另一個項目繼承的,並且已經授予了將其放入內核的權限,但原始
12662306a36Sopenharmony_ci   許可條款需要保持有效::
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci   另一個需要遵守兩套許可條款的例子是::
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci      // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci許可標識符
13562306a36Sopenharmony_ci----------
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci當前使用的許可證以及添加到內核的代碼許可證可以分解爲:
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci1. _`優先許可`:
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci   應儘可能使用這些許可證,因爲它們已知完全兼容並廣泛使用。這些許可證在內核
14262306a36Sopenharmony_ci   目錄::
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci      LICENSES/preferred/
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci   此目錄中的文件包含完整的許可證文本和 `元標記`_ 。文件名與SPDX許可證標識
14762306a36Sopenharmony_ci   符相同,後者應用於源文件中的許可證。
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci   例如::
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci      LICENSES/preferred/GPL-2.0
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci   包含GPLv2許可證文本和所需的元標籤::
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci      LICENSES/preferred/MIT
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci   包含MIT許可證文本和所需的元標記
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci   _`元標記`:
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci   許可證文件中必須包含以下元標記:
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci   - Valid-License-Identifier:
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci     一行或多行, 聲明那些許可標識符在項目內有效, 以引用此特定許可的文本。通
16662306a36Sopenharmony_ci     常這是一個有效的標識符,但是例如對於帶有'或更高'選項的許可證,兩個標識
16762306a36Sopenharmony_ci     符都有效。
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci   - SPDX-URL:
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci     SPDX頁面的URL,其中包含與許可證相關的其他信息.
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci   - Usage-Guidance:
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci     使用建議的自由格式文本。該文本必須包含SPDX許可證標識符的正確示例,因爲
17662306a36Sopenharmony_ci     它們應根據 `許可標識符語法`_ 指南放入源文件中。
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci   - License-Text:
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci     此標記之後的所有文本都被視爲原始許可文本
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci   文件格式示例::
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci      Valid-License-Identifier: GPL-2.0
18562306a36Sopenharmony_ci      Valid-License-Identifier: GPL-2.0+
18662306a36Sopenharmony_ci      SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
18762306a36Sopenharmony_ci      Usage-Guide:
18862306a36Sopenharmony_ci        To use this license in source code, put one of the following SPDX
18962306a36Sopenharmony_ci	tag/value pairs into a comment according to the placement
19062306a36Sopenharmony_ci	guidelines in the licensing rules documentation.
19162306a36Sopenharmony_ci	For 'GNU General Public License (GPL) version 2 only' use:
19262306a36Sopenharmony_ci	  SPDX-License-Identifier: GPL-2.0
19362306a36Sopenharmony_ci	For 'GNU General Public License (GPL) version 2 or any later version' use:
19462306a36Sopenharmony_ci	  SPDX-License-Identifier: GPL-2.0+
19562306a36Sopenharmony_ci      License-Text:
19662306a36Sopenharmony_ci        Full license text
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci   ::
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci      SPDX-License-Identifier: MIT
20162306a36Sopenharmony_ci      SPDX-URL: https://spdx.org/licenses/MIT.html
20262306a36Sopenharmony_ci      Usage-Guide:
20362306a36Sopenharmony_ci	To use this license in source code, put the following SPDX
20462306a36Sopenharmony_ci	tag/value pair into a comment according to the placement
20562306a36Sopenharmony_ci	guidelines in the licensing rules documentation.
20662306a36Sopenharmony_ci	  SPDX-License-Identifier: MIT
20762306a36Sopenharmony_ci      License-Text:
20862306a36Sopenharmony_ci        Full license text
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ci|
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci2. 不推薦的許可證:
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ci   這些許可證只應用於現有代碼或從其他項目導入代碼。這些許可證在內核目錄::
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci      LICENSES/other/
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci   此目錄中的文件包含完整的許可證文本和 `元標記`_ 。文件名與SPDX許可證標識
21962306a36Sopenharmony_ci   符相同,後者應用於源文件中的許可證。
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci   例如::
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ci      LICENSES/other/ISC
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci   包含國際系統聯合許可文本和所需的元標籤::
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci      LICENSES/other/ZLib
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci   包含ZLIB許可文本和所需的元標籤.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci   元標籤:
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci   「其他」許可證的元標籤要求與 `優先許可`_ 的要求相同。
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ci   文件格式示例::
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_ci      Valid-License-Identifier: ISC
23862306a36Sopenharmony_ci      SPDX-URL: https://spdx.org/licenses/ISC.html
23962306a36Sopenharmony_ci      Usage-Guide:
24062306a36Sopenharmony_ci        Usage of this license in the kernel for new code is discouraged
24162306a36Sopenharmony_ci	and it should solely be used for importing code from an already
24262306a36Sopenharmony_ci	existing project.
24362306a36Sopenharmony_ci        To use this license in source code, put the following SPDX
24462306a36Sopenharmony_ci	tag/value pair into a comment according to the placement
24562306a36Sopenharmony_ci	guidelines in the licensing rules documentation.
24662306a36Sopenharmony_ci	  SPDX-License-Identifier: ISC
24762306a36Sopenharmony_ci      License-Text:
24862306a36Sopenharmony_ci        Full license text
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_ci|
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_ci3. _`例外`:
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci   某些許可證可以修改,並允許原始許可證不具有的某些例外權利。這些例外在
25562306a36Sopenharmony_ci   內核目錄::
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ci      LICENSES/exceptions/
25862306a36Sopenharmony_ci
25962306a36Sopenharmony_ci   此目錄中的文件包含完整的例外文本和所需的 `例外元標記`_ 。
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci   例如::
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ci      LICENSES/exceptions/Linux-syscall-note
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_ci   包含Linux內核的COPYING文件中記錄的Linux系統調用例外,該文件用於UAPI
26662306a36Sopenharmony_ci   頭文件。例如::
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ci      LICENSES/exceptions/GCC-exception-2.0
26962306a36Sopenharmony_ci
27062306a36Sopenharmony_ci   包含GCC'連結例外',它允許獨立於其許可證的任何二進位文件與標記有此例外的
27162306a36Sopenharmony_ci   文件的編譯版本連結。這是從GPL不兼容原始碼創建可運行的可執行文件所必需的。
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci   _`例外元標記`:
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ci   以下元標記必須在例外文件中可用:
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci   - SPDX-Exception-Identifier:
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ci     一個可與SPDX許可證標識符一起使用的例外標識符。
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ci   - SPDX-URL:
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_ci     SPDX頁面的URL,其中包含與例外相關的其他信息。
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci   - SPDX-Licenses:
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci     以逗號分隔的例外可用的SPDX許可證標識符列表。
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ci   - Usage-Guidance:
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ci     使用建議的自由格式文本。必須在文本後面加上SPDX許可證標識符的正確示例,
29262306a36Sopenharmony_ci     因爲它們應根據 `許可標識符語法`_ 指南放入源文件中。
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ci   - Exception-Text:
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_ci     此標記之後的所有文本都被視爲原始異常文本
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci   文件格式示例::
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_ci      SPDX-Exception-Identifier: Linux-syscall-note
30162306a36Sopenharmony_ci      SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
30262306a36Sopenharmony_ci      SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
30362306a36Sopenharmony_ci      Usage-Guidance:
30462306a36Sopenharmony_ci        This exception is used together with one of the above SPDX-Licenses
30562306a36Sopenharmony_ci	to mark user-space API (uapi) header files so they can be included
30662306a36Sopenharmony_ci	into non GPL compliant user-space application code.
30762306a36Sopenharmony_ci        To use this exception add it with the keyword WITH to one of the
30862306a36Sopenharmony_ci	identifiers in the SPDX-Licenses tag:
30962306a36Sopenharmony_ci	  SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
31062306a36Sopenharmony_ci      Exception-Text:
31162306a36Sopenharmony_ci        Full exception text
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_ci   ::
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci      SPDX-Exception-Identifier: GCC-exception-2.0
31662306a36Sopenharmony_ci      SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html
31762306a36Sopenharmony_ci      SPDX-Licenses: GPL-2.0, GPL-2.0+
31862306a36Sopenharmony_ci      Usage-Guidance:
31962306a36Sopenharmony_ci        The "GCC Runtime Library exception 2.0" is used together with one
32062306a36Sopenharmony_ci	of the above SPDX-Licenses for code imported from the GCC runtime
32162306a36Sopenharmony_ci	library.
32262306a36Sopenharmony_ci        To use this exception add it with the keyword WITH to one of the
32362306a36Sopenharmony_ci	identifiers in the SPDX-Licenses tag:
32462306a36Sopenharmony_ci	  SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0
32562306a36Sopenharmony_ci      Exception-Text:
32662306a36Sopenharmony_ci        Full exception text
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ci
32962306a36Sopenharmony_ci所有SPDX許可證標識符和例外都必須在LICENSES子目錄中具有相應的文件。這是允許
33062306a36Sopenharmony_ci工具驗證(例如checkpatch.pl)以及準備好從源讀取和提取許可證所必需的, 這是
33162306a36Sopenharmony_ci各種FOSS組織推薦的,例如 `FSFE REUSE initiative <https://reuse.software/>`_.
33262306a36Sopenharmony_ci
33362306a36Sopenharmony_ci_`模塊許可`
33462306a36Sopenharmony_ci-----------------
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_ci   可加載內核模塊還需要MODULE_LICENSE()標記。此標記既不替代正確的原始碼
33762306a36Sopenharmony_ci   許可證信息(SPDX-License-Identifier),也不以任何方式表示或確定提供模塊
33862306a36Sopenharmony_ci   原始碼的確切許可證。
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ci   此標記的唯一目的是提供足夠的信息,該模塊是否是自由軟體或者是內核模塊加
34162306a36Sopenharmony_ci   載器和用戶空間工具的專有模塊。
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_ci   MODULE_LICENSE()的有效許可證字符串是:
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_ci    ============================= =============================================
34662306a36Sopenharmony_ci    "GPL"			  模塊是根據GPL版本2許可的。這並不表示僅限於
34762306a36Sopenharmony_ci                                  GPL-2.0或GPL-2.0或更高版本之間的任何區別。
34862306a36Sopenharmony_ci                                  最正確許可證信息只能通過相應源文件中的許可證
34962306a36Sopenharmony_ci                                  信息來確定
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ci    "GPL v2"			  和"GPL"相同,它的存在是因爲歷史原因。
35262306a36Sopenharmony_ci
35362306a36Sopenharmony_ci    "GPL and additional rights"   表示模塊源在GPL v2變體和MIT許可下雙重許可的
35462306a36Sopenharmony_ci                                  歷史變體。請不要在新代碼中使用。
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci    "Dual MIT/GPL"		  表達該模塊在GPL v2變體或MIT許可證選擇下雙重
35762306a36Sopenharmony_ci                                  許可的正確方式。
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_ci    "Dual BSD/GPL"		  該模塊根據GPL v2變體或BSD許可證選擇進行雙重
36062306a36Sopenharmony_ci                                  許可。 BSD許可證的確切變體只能通過相應源文件
36162306a36Sopenharmony_ci                                  中的許可證信息來確定。
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci    "Dual MPL/GPL"		  該模塊根據GPL v2變體或Mozilla Public License
36462306a36Sopenharmony_ci                                  (MPL)選項進行雙重許可。 MPL許可證的確切變體
36562306a36Sopenharmony_ci                                  只能通過相應的源文件中的許可證信息來確定。
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_ci    "Proprietary"		  該模塊屬於專有許可。此字符串僅用於專有的第三
36862306a36Sopenharmony_ci                                  方模塊,不能用於在內核樹中具有原始碼的模塊。
36962306a36Sopenharmony_ci                                  以這種方式標記的模塊在加載時會使用'P'標記汙
37062306a36Sopenharmony_ci                                  染內核,並且內核模塊加載器拒絕將這些模塊連結
37162306a36Sopenharmony_ci                                  到使用EXPORT_SYMBOL_GPL()導出的符號。
37262306a36Sopenharmony_ci    ============================= =============================================
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ci
375