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