diff --git a/README.md b/README.md index 29c7097c69260dc199a1619b189407261f90362e..4f4bd7b77d4f1cfdd2ea61c212d908efc2d15d39 100644 --- a/README.md +++ b/README.md @@ -9,63 +9,67 @@ ``` kernel/linux/ └ ─ ─ common_modules/ - ├ ─ ─ xxx/ # xxx内核独立模块目录 - │ ├ ─ ─ include/ # 模块头文件目录,可自定义 - │ ├ ─ ─ src/ # 模块源文件目录,可自定义 - │ ├ ─ ─ README.OpenSource # 模块资源配置文件 - │ ├ ─ ─ README.md # 模块自简介文件 - │ └ ─ ─ README_en.md - ├ ─ ─ yyy/ # yyy内核独立模块目录 - ├ ─ ─ LICENSE # 许可配置文件,合入模块同步更新 - ├ ─ ─ OAT.xml # OAT扫描配置文件,合入模块同步更新 - ├ ─ ─ README.md # linux内核通用模块仓介绍文档 - └ ─ ─ README_en.md + ├ ─ ─ xxx/ # xxx内核独立模块目录 + │ ├ ─ ─ include/ # 模块头文件目录,可自定义 + │ ├ ─ ─ src/ # 模块源文件目录,可自定义 + │ ├ ─ ─ third_party/ # 三方引入文件目录 + │ │ └ ─ ─ LICENSES/ # 三方使用的license文件目录 + │ ├ ─ ─ README.md # 模块自简介文件 + │ └ ─ ─ README_en.md + ├ ─ ─ LICENSE # 许可配置文件,合入模块同步更新 + ├ ─ ─ OAT.xml # OAT扫描配置文件,合入模块同步更新 + ├ ─ ─ README.md # linux内核通用模块仓介绍文档 + ├ ─ ─ README_en.md + └ ─ ─ README.OpenSource # 模块资源配置文件 ``` #### 贡献流程 1. 以模块特性为名新建仓下新目录,合入代码并提交。 -2. 更新OAT和license文件。 -3. 申请内核SIG会议进行评审。 -4. 评审通过由内核SIG committer审核合入,未评审通过可解决遗留问题再次上会评审,或评审不适合该仓则放弃合入。 -5. 内核SIG会议申请流程详见[kernel_sig community](https://gitee.com/openharmony/community/blob/master/sig/sig-kernel/sig_kernel_cn.md) 。 +2. 更新仓根目录下OAT.xml、LICENSE以及README.OpenSource文件。 +3. 申请内核SIG会议进行评审,[会议申请详见](https://gitee.com/openharmony/community/blob/master/sig/sig_kernel/sig_kernel_cn.md#%E4%BC%9A%E8%AE%AE)。 +4. 评审通过由内核SIG committer审核合入,未评审通过可解决遗留问题再次上会评审,或评审不适合该仓则放弃合入。会上无法决策的可申请架设SIG会议评审。 ### 提交指导参考 -1. 【LICENSE】由于该仓下都为Linux模块,统一使用GPL系列协议,可参考NewIP添加如下: +1. 【根目录LICENSE】:请把模块目录添加到对应的license条目下,如下的“newip”模块。如文件中没有指定的license可自行添加(2)、(3)等: ``` - Copyright (c) 2023 Huawei Device Co., Ltd. All rights reserved. - -+ The newip subdirectories is licensed under GPL-2.0+. - - a) Valid-License-Identifier: GPL-2.0 +(1) The directories below are licensed under GPL-2.0-or-later. + ./newip/ ``` -2. 【OAT】OAT为OpenHarmony社区的自动化开源审视工具,OAT.xml本仓扫描规则,各模块文件规则不一,模块上库时需更新已有OAT.xml文档,具体修改方法请参考[OAT tool README](https://gitee.com/openharmony-sig/tools_oat/blob/master/README_zh.md) 。 -3. 【构建】当前内核树外模块可以通过软链接的方式参与内核构建,可由模块目录下独立脚本执行完成动态软链接创建,可参考[NewIP软链接创建脚本](https://gitee.com/openharmony-sig/kernel_linux_common_modules/blob/master/newip/apply_newip.sh) 。 -4. 【模块README】模块目录下提供介绍文件。文件需包含模块功能说明、架构目录说明、使用说明、构建说明、相关依赖仓说明等。[文档模板](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/template/README-template.md),[可参考NewIP README文件](https://gitee.com/openharmony-sig/kernel_linux_common_modules/blob/master/newip/README_zh.md) 。 -5. 【README.OpenSource】如本模块借鉴或使用某一开源软件则需要配置该文件,该文件描述被借鉴软件的信息,以NewIP(借鉴Linux下IPv4 IPv6协议)为例进行说明如下: +2. 【OAT】OAT为OpenHarmony社区的自动化开源审视工具,OAT.xml本仓扫描规则,各模块文件规则不一,模块上库时需更新已有OAT.xml文档。 + 在中配置自己模块的扫描规则。 + 在"copyrightPolicyFilter"的中添加需要过滤扫描的版权信息文件或目录。 + 在"defaultPolicyFilter"的中添加需要过滤扫描的license文件或目录。 + 在"binaryFileTypePolicyFilter"的中添加需要过滤扫描的二进制文件。 + 具体OAT文件修改方法请参考[OAT tool README](https://gitee.com/openharmony-sig/tools_oat/blob/master/README_zh.md) 。 +3. 【README.OpenSource】如本模块借鉴或引用某一开源软件则需要在该文件中添加一条,该文件描述被借鉴软件的信息,以NewIP(借鉴Linux下IPv4 IPv6协议)为例进行说明如下: ``` [ { - "Name": "linux-5.10", # 借鉴或使用的软件名, - "License": "GPL-2.0+", # 使用的许可 - "License File": "COPYING", # 许可所在文件 - "Version Number": "5.10.93", # 借鉴时该软件的版本 - "Owner": "xxx@xxx.com", # 借鉴软件引入及拥有人邮箱 - "Upstream URL": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-5.10.y", # 借鉴软件开源地址链接 - "Description": "linux kernel 5.10" # 对借鉴的开源软件模块的描述 + "Name": "linux-5.10", # 借鉴或引用的软件名 + "License": "GPL-2.0+", # 使用的许可 + "License File": "newip/third_party/linux-5.10/LICENSES", # 指向许可所在文件或目录 + "Version Number": "5.10.93", # 借鉴或引用该软件的版本 + "Owner": "xxx@xxx.com", # 借鉴或引用软件引入人邮箱 + "Upstream URL": "https://xxx", # 借鉴或引用软件开源地址链接 + "Description": "linux kernel 5.10" # 对借鉴或引用的开源软件模块的描述 } ] ``` +4. 【模块README】模块目录下提供介绍文件。文件需包含模块功能说明、架构目录说明、使用说明、构建说明、相关依赖仓说明等。[文档模板](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/template/README-template.md) ,[可参考NewIP README文件](https://gitee.com/openharmony-sig/kernel_linux_common_modules/blob/master/newip/README_zh.md) 。 +5. 【模块LICENSE】模块的third_party下放置借鉴或引用软件的License文件或目录,可参考[NewIP LICENSE](https://gitee.com/openharmony-sig/kernel_linux_common_modules/tree/master/newip/third_party/linux-5.10/LICENSES) 。 +6. 【参与构建】当前内核树外模块可以通过软链接的方式参与内核构建,可由模块目录下独立脚本执行完成动态软链接创建。脚本可放置到构建系统中调用执行。可参考[NewIP软链接创建脚本](https://gitee.com/openharmony-sig/kernel_linux_common_modules/blob/master/newip/apply_newip.sh) ,[NewIP脚本调用样例](https://gitee.com/openharmony/device_board_hihope/blob/master/rk3568/kernel/build_kernel.sh) 。 ### 合入检视规则 1. 【规则】合入该仓模块在构建及运行时只能正向依赖内核,不得产生反向依赖。 2. 【规则】合入时同步提供可编译方案,不可仅代码上库。模块可以通过构建和config配置选择参与版本构建,以适应不同形态产品内核模块的可选择性需求。 3. 【规则】该仓为内核通用模块仓,合入模块不可依赖于特定芯片平台、产品、硬件等。 -4. 【规则】该仓使用GPL系列协议,新增模块需要配置仓LICENSE文件。 -5. 【规则】合入模块需更新OAT文件,并完成合入模块OAT扫描,评审时提供扫描报告。 -6. 【规则】合入模块需在该仓下创建独立目录,同时模块目录下同步提交README文件。 -7. 【规则】合入模块如有借鉴或使用三方开源模块的需要提供README.OpenSource文件。 -8. 【建议】具备编译ko的条件,在ko构建能力上线后可适配整改构建出ko模块。 +4. 【规则】该仓使用GPL系列协议,新增自研模块如有使用新License需要在仓根目录添加新LICENSE文件。如有借鉴或引用开源软件则需要配置third_party目录下LICENSE文件。 +5. 【规则】合入模块如有借鉴三方开源代码,需在文件头罗列所有借鉴代码文件的copyright/author信息。 +6. 【规则】合入模块需更新OAT文件,并完成合入模块OAT扫描,评审时提供扫描报告。 +7. 【规则】合入模块需在该仓下创建独立目录,同时模块目录下同步提交README文件。 +8. 【规则】合入模块如有借鉴或引用三方开源模块的需要在README.OpenSource文件中进行添加说明。 +9. 【建议】具备编译ko的条件,在ko构建能力上线后可适配整改构建出ko模块。