提交 a55be433 编写于 作者: J jalenchen 提交者: NEEN

!297 完善开源软件引入规则及检查项,补充许可证与版权规范

* add new 3rd oss license description
* 根据评审意见刷新
* Add steps
* Add license and copyright headers
* Add license and copyright headers
* Modify 3rd license rule descriptions
* Add license and notice rules
* Modify rule list
* Modify rule list
* 结合评审意见刷新描述
* 补充软件引入前检查项
* 补充软件引入前检查项
* 补充软件引入前检查项
* 补充退出原则
* 补充退出原则
* 刷新引入原则
上级 cf6336b0
......@@ -2,31 +2,79 @@ OpenHarmony使用了如下第三方开源软件,下表对各开源软件采用
| 开源仓名 | License | 说明 |
| :----- | :----- | :----- |
| third_party_bounds_checking_function | Mulan Permissive Software License,Version 2 | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_bounds_checking_function/blob/master/LICENSE |
| third_party_cJSON | MIT License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_cJSON/blob/master/LICENSE |
| third_party_cmsis | Apache License V2.0 | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_cmsis/blob/master/LICENSE.txt |
| third_party_curl | Curl License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_curl/blob/master/COPYING |
| third_party_FatFs | FatFs license(BSD-style licenses) | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_FatFs/blob/master/LICENSE.txt |
| third_party_FreeBSD | BSD 2-Clause License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_FreeBSD/blob/master/COPYRIGHT |
| third_party_freetype | The FreeType Project License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_freetype/blob/master/docs/FTL.TXT |
| third_party_googletest | BSD 3-Clause License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_googletest/blob/master/LICENSE |
| third_party_harfbuzz | MIT License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_harfbuzz/blob/master/COPYING |
| third_party_iniparser | MIT License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_iniparser/blob/master/LICENSE |
| third_party_jerryscript | Apache License V2.0 | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_jerryscript/blob/master/LICENSE |
| third_party_libjpeg | Libjpeg License (JPEG License) | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_libjpeg/blob/master/README |
| third_party_libpng | libpng license | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_libpng/blob/master/LICENSE |
| third_party_Linux_Kernel | GPL V2.0+EXCEPTION | third_party_Linux_Kernel库包含两部分内容,1是jffs2模块,2是scripts模块 。<br>(1)jffs2模块是为了兼容jffs2而引入,jffs2采用GPLV2+EXCEPTION的许可,并非纯粹的GPLV2,您可以通过如下链接查看其许可证:https://gitee.com/openharmony/third_party_Linux_Kernel/blob/master/fs/jffs2/LICENCE <br>OpenHarmony对jffs2模块的编译及链接使用方式满足其EXCEPTION的规定,故对该模块的使用,不会导致项目其他代码受到GPLV2的影响。<br>(2)scripts模块是独立的编译工具,仅在编译过程中用来生成 conf和mconf工具,代码不会编译打包到kernel_liteos_a内核中。因此kernel_liteos_a内核不受GPL影响。 |
| third_party_ltp | GPL V2.0 | third_party_ltp是作为独立进程用于跨进程测试kernel_liteos_a内核接口,不会导致kernel_liteos_a内核受到GPL许可证的影响。 |
| third_party_lwip | BSD 3-Clause License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_lwip/blob/master/COPYING |
| third_party_mbedtls | Apache License V2.0 | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_mbedtls/blob/master/apache-2.0.txt |
| third_party_mtd_utils | GPL V2.0 | third_party_mtd_utils用于编译生成jffs2文件系统镜像的打包工具,该工具用于打包jffs2格式的rootfs和userfs镜像,代码不会编译打包到kernel_liteos_a内核中,故kernel_liteos_a内核不受GPL影响。 |
| third_party_musl | BSD 2-Clause License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_musl/blob/master/COPYRIGHT |
| third_party_NuttX | BSD 3-Clause License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_NuttX/blob/master/COPYING |
| third_party_openssl | OpenSSL License and Original SSLeay License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_openssl/blob/master/LICENSE |
| third_party_unity | MIT License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_unity/blob/master/LICENSE.txt |
| third_party_wpa_supplicant | BSD 3-Clause License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_wpa_supplicant/blob/master/wpa_supplicant-2.9/README |
| third_party_zlib | zlib/libpng License | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_zlib/blob/master/README |
| third_party_rt_thread | Apache License V2.0 | 该License无强制开放源码义务条款,详情参见:https://openharmony.gitee.com/openharmony/third_party_rt_thread/blob/master/LICENSE |
| <div style="width:5pt">vendor_hisi_hi35xx_middleware_source_third_party_ffmpeg</div> | LGPL V2.1 | OpenHarmony采用动态链接方式使用LGPL许可证下的ffmpeg库,不会导致该项目其它代码受到LGPL许可证的影响。 |
| third_party_bounds_checking_function | Mulan Permissive Software License,Version 2 | 该License无强制开放源码义务条款 |
| third_party_cJSON | MIT License | 该License无强制开放源码义务条款 |
| third_party_cmsis | Apache License V2.0 | 该License无强制开放源码义务条款 |
| third_party_curl | Curl License | 该License无强制开放源码义务条款 |
| third_party_FatFs | FatFs license(BSD-style licenses) | 该License无强制开放源码义务条款 |
| third_party_FreeBSD | BSD 2-Clause License | 该License无强制开放源码义务条款 |
| third_party_freetype | The FreeType Project License | 该License无强制开放源码义务条款 |
| third_party_googletest | BSD 3-Clause License | 该License无强制开放源码义务条款 |
| third_party_harfbuzz | MIT License | 该License无强制开放源码义务条款 |
| third_party_iniparser | MIT License | 该License无强制开放源码义务条款 |
| third_party_jerryscript | Apache License V2.0 | 该License无强制开放源码义务条款 |
| third_party_libjpeg | Libjpeg License (JPEG License) | 该License无强制开放源码义务条款 |
| third_party_libpng | libpng license | 该License无强制开放源码义务条款 |
| third_party_Linux_Kernel | GPL V2.0+EXCEPTION | third_party_Linux_Kernel库包含两部分内容,1是jffs2模块,2是scripts模块 。<br>(1)jffs2模块是为了兼容jffs2而引入,jffs2采用GPLV2+EXCEPTION的许可,并非纯粹的GPLV2,您可以通过如下链接查看其许可证:https://gitee.com/openharmony/third_party_Linux_Kernel/blob/master/fs/jffs2/LICENCE <br>OpenHarmony对jffs2模块的编译及链接使用方式满足其EXCEPTION的规定,故对该模块的使用,不会导致项目其他代码受到GPLV2的影响。<br>(2)scripts模块是独立的编译工具,仅在编译过程中用来生成 conf和mconf工具,代码不会编译打包到kernel_liteos_a内核中。因此kernel_liteos_a内核不受GPL影响。 |
| third_party_ltp | GPL V2.0 | third_party_ltp是作为独立进程用于跨进程测试kernel_liteos_a内核接口,不会导致kernel_liteos_a内核受到GPL许可证的影响。 |
| third_party_lwip | BSD 3-Clause License | 该License无强制开放源码义务条款 |
| third_party_mbedtls | Apache License V2.0 | 该License无强制开放源码义务条款 |
| third_party_mtd_utils | GPL V2.0 | third_party_mtd_utils用于编译生成jffs2文件系统镜像的打包工具,该工具用于打包jffs2格式的rootfs和userfs镜像,代码不会编译打包到kernel_liteos_a内核中,故kernel_liteos_a内核不受GPL影响。 |
| third_party_musl | BSD 2-Clause License | 该License无强制开放源码义务条款 |
| third_party_NuttX | BSD 3-Clause License | 该License无强制开放源码义务条款 |
| third_party_openssl | OpenSSL License and Original SSLeay License | 该License无强制开放源码义务条款 |
| third_party_unity | MIT License | 该License无强制开放源码义务条款 |
| third_party_wpa_supplicant | BSD 3-Clause License | 该License无强制开放源码义务条款 |
| third_party_zlib | zlib/libpng License | 该License无强制开放源码义务条款 |
| third_party_rt_thread | Apache License V2.0 | 该License无强制开放源码义务条款 |
| vendor_hisi_hi35xx_middleware_source_third_party_ffmpeg | LGPL V2.1 | OpenHarmony采用动态链接方式使用LGPL许可证下的ffmpeg库,不会导致该项目其它代码受到LGPL许可证的影响。 |
| vendor_hisi_hi35xx_thirdparty_uboot_src | GPL-2.0+ | uboot是作为独立进程,不会导致boot外的软件受到GPL许可证的影响。 |
| vendor_hisi_hi3861_hi3861仓下的u-boot | GPL-2.0+ | uboot是作为独立进程,不会导致boot外的软件受到GPL许可证的影响。 |
| third_party_XKeyboardConfig | MIT License | 该License无强制开放源码义务条款。 |
| third_party_abseil-cpp | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_boost | Boost Software License V1.0 | 该License无强制开放源码义务条款,tools、libs目录下部分GPLV2协议的文件为测试文件,OpenHarmony运行期不使用,不会受GPL许可证影响。 |
| third_party_boringssl | OpenSSL License,MIT License,ISC License | 该License无强制开放源码义务条款。 |
| third_party_cares | MIT License | 该License无强制开放源码义务条款。 |
| third_party_css-what | BSD 2-Clause License | 该License无强制开放源码义务条款。 |
| third_party_easymock | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_eudev | GPL V2.0/LGPL V2.0 | 独立进程,被init进程调用,OpenHarmony进程不受GPL影响。 |
| third_party_expat | MIT License | 该License无强制开放源码义务条款。 |
| third_party_flatbuffers | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_flutter | BSD 3-Clause License | 该License无强制开放源码义务条款,其中部分文件采用GNU General Public License v2.0 w/Bison exception,该文件未使用,不会参与打包;部分文件采用GPL V2协议,但仅用于生成资料文档,对OpenHarmony进程不影响。 |
| third_party_glib | LGPL V2.1 | 采用动态链接调用,OpenHarmony进程不受LGPL影响。 |
| third_party_gn | BSD 3-clause License | 该License无强制开放源码义务条款。 |
| third_party_grpc | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_gstreamer | LGPL V2.0 | 采用动态链接调用,OpenHarmony进程不受LGPL影响。 |
| third_party_javapoet | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_jinja2 | BSD 3-clause License | 该License无强制开放源码义务条款。 |
| third_party_jsframework | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_json | MIT License | 该License无强制开放源码义务条款。 |
| third_party_jsoncpp | MIT License | 该License无强制开放源码义务条款。 |
| third_party_junit | EPL V1.0 | 仅测试使用,无修改,满足EPL条款要求。 |
| third_party_libcoap | BSD 3-Clause License | 该License无强制开放源码义务条款,其中部分编译用脚本文件使用 Autoconf exception to GPL 2.0 or later协议,OpenHarmony中未使用。 |
| third_party_libdrm | MIT license | 该License无强制开放源码义务条款,其中部分文件采用GPL-2.0 WITH Linux-syscall-note,在OpenHarmony中没有使用,不受其影响。 |
| third_party_libevdev | MIT License | 该License无强制开放源码义务条款,其中部分文件使用GPL-2.0 WITH Linux-syscall-note许可,属于UAPI正常使用,不受GPL许可影响。 |
| third_party_libffi | MIT License | 该License无强制开放源码义务条款。 |
| third_party_libinput | MIT License | 该License无强制开放源码义务条款,其中部分文件使用GPL-2.0 WITH Linux-syscall-note许可,属于UAPI正常使用,不受GPL许可影响。 |
| third_party_libphonenumber | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_libunwind | MIT License | 该License无强制开放源码义务条款。 |
| third_party_libuv | MIT License | 该License无强制开放源码义务条款。 |
| third_party_libxkbcommon | MIT License | 该License无强制开放源码义务条款。 |
| third_party_libxml2 | MIT License | 该License无强制开放源码义务条款。 |
| third_party_markupsafe | BSD 3-clause License | 该License无强制开放源码义务条款。 |
| third_party_mingw-w64 | Zope Public License V2.1 | 该License无强制开放源码义务条款,其中部分编译用脚本文件使用 Autoconf exception to GPL 2.0 or later协议,满足该协议要求,OpenHarmony进程不受GPL影响;部分头文件为LGPL-2.1+,采用动态链接调用,OpenHarmony进程不受GPL影响。 |
| third_party_mtdev | MIT License | 该License无强制开放源码义务条款。 |
| third_party_ninja | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_node | Apache License V2.0<br>Artistic License 2.0<br>BSD 2-Clause License<br>BSD 3-Clause License<br>ICU License<br>MIT License<br>OpenSSL License<br>Public Domain<br>SSLeay License<br>UNICODE INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE<br>c-ares license<br>zlib/libpng License<br> | 该软件包含的License中Artistic License 2.0对应的组件在OpenHarmony项目中未使用,其余License无强制开放源码义务条款。 |
| third_party_objenesis | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_pixman | MIT license | 该License无强制开放源码义务条款。 |
| third_party_protobuf | BSD 3-Clause License | 该License无强制开放源码义务条款。 |
| third_party_python | Python Software Foundation License V2 | 该License无强制开放源码义务条款,其中部分编译用脚本文件使用 Autoconf exception to GPL 2.0 or later协议,满足该协议要求,OpenHarmony进程不受GPL影响; |
| third_party_re2 | BSD 3-Clause License | 该License无强制开放源码义务条款。 |
| third_party_sqlite | Public Domain | 该License无强制开放源码义务条款。 |
| third_party_wayland-ivi-extension | Apache License V2.0 | 该License无强制开放源码义务条款。 |
| third_party_wayland-protocols_standard | MIT license | 该License无强制开放源码义务条款,其中部分编译用脚本文件使用 Autoconf exception to GPL 2.0 or later协议,OpenHarmony中未使用。 |
| third_party_wayland_standard | MIT license | 该License无强制开放源码义务条款,其中部分编译用脚本文件使用 Autoconf exception to GPL 2.0 or later协议,OpenHarmony中未使用。部分为Libtool Exception协议,满足该协议要求。 |
| third_party_weston | MIT license | 该License无强制开放源码义务条款。 |
| third_party_lz4 | BSD 2-Clause License | 该License无强制开放源码义务条款。 |
| third_party_bzip2 | bzip2 and libbzip2 License | 该License无强制开放源码义务条款。 |
# 第三方开源软件引入指导
## 目的
OpenHarmony遵从 [Open Source Definition](https://opensource.org/docs/osd) ,满足这一定义的软件,被OpenHarmony社区认同为开源软件。
提供易用、高质量的开源软件是OpenHarmony的重要目标,因第三方开源软件数量多,而社区开发人员同样数量多、分布广,为确保OpenHarmony项目的整体质量,特别拟定本指南,供社区贡献者参考。
## 范围
本指导适用于所有引入到OpenHarmony项目中的第三方开源软件。
## 规则
## 本文的改进和修订说明
1. 本文档由OpenHarmony PMC主导起草和维护。本文档的最新版本总可以在 [这里](https://gitee.com/openharmony/docs/blob/36955109ed21d73afe09fcb5a5bc7067ad6ce18b/zh-cn/contribute/%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E5%BC%95%E5%85%A5%E6%8C%87%E5%AF%BC.md) 找到。
2. 任何对于本文中涉及的规则的增加,修改,删除都必须被追踪,请进入该追踪系统 。
3. 最终规则经过社区充分的讨论后,由PMC定稿。
### 基本要求
为便于第三方开源软件的维护与演进,在引入第三方开源软件时请参考如下原则:</BR>
## 软件引入与引入原则
### 什么是软件引入
一个软件的引入指的是为满足OpenHarmony中指定SIG的业务需求,申请将其引入到OpenHarmony项目中,具体的流程请参考的[SIG管理章程](https://gitee.com/openharmony/community/tree/master/sig) 进行具体的开源软件引入,并确保整个引入的过程都必须可被追踪。
1. 若需要使用的开源软件在OpenHarmony项目中已存在,请使用OpenHarmony项目中维护的版本。
2. 引入新的第三方开源软件到OpenHarmony项目时,请将其放置到单独的代码仓或目录中,并且软件名称和其官网保持一致。
3. 第三方开源软件仓应当完整保留该开源软件官方代码仓的目录结构、许可证及Copyright信息。
4. 不建议引入未发布正式版本(如只发布Beta版本)的开源软件。
5. 若需针对引入的开源软件进行修改,请将修改的代码放在该开源软件仓中,并确保满足该开源软件的许可证要求。
### 软件引入的基本要求
为便于第三方开源软件的维护与演进,在引入第三方开源软件时请参考如下原则:
1. 软件必须有明确的来源,引入到OpenHarmony的软件必须有清晰定义的上游社区。
2. 必须有明确的引入理由,若需要引入的软件在OpenHarmony项目中已存在,请重用该版本,避免多版本共存增加维护的复杂性。
3. 软件应该以源码方式引入,原则上二进制不应该被引入,应从源码构建。如果需要引入二进制,经由PMC评审后决定。
4. 软件应该在OpenHarmony上可以被正确构建,若该软件有尚未被引入的依赖软件,或者软件的运行或者构建依赖一个不能引入OpenHarmony的组件,需由PMC评审后决定。
5. 引入软件到OpenHarmony项目中必须将其放置到单独的代码仓或独立的目录,命名统一为third_party_软件名称,其中软件名称和其官网保持一致。
6. 应当完整保留引入软件的官方代码仓目录结构、许可证及Copyright信息,不要修改第三方开源软件的原始许可证与Copyright信息。
7. 不建议引入未发布正式版本(如只发布Beta版本)的开源软件。
8. 若需针对引入的开源软件进行修改,请将修改的代码放在该开源软件仓中,并确保满足该开源软件的许可证要求,修改的文件应当保持其原始许可证条款,新增的文件也建议采用相同的许可证条款。
9. 新引入的开源软件必须在其根目录提供README.OpenSource文件,在该文件中准确描述其软件名、许可证、许可文件位置、版本、对应版本的上游社区地址、软件的维护Owner、功能描述以及引入的原因。
10. 引入新软件到OpenHarmony时必须有对应的SIG负责管理,原则上如果没有相应SIG的确认,PMC不批准相应软件的引入。当要批量引入多个软件时,可以求助PMC主持发起SIG间的临时评审会议,提升协调效率。
如因特殊原因不能满足上述要求但又需要引入,请请联系邮箱:law@openatom.org。
### 软件引入流程
#### 软件引入前检查
| 检查点 | 说明 |
| :----- | :----- |
| 归一化 | 1、检查该软件在OpenHarmony中是否已存在,原则上一款软件只在OpenHarmony中引入一次。 |
| 来源可靠 | 1、应该从开源软件官网获取或官网指定的代码托管地址获取。 |
| 社区活跃 | 1、软件来自知名社区或组织,社区或组织通过发布公告、修改软件仓库状态、将仓库放到特定目录下等方式告知停止维护的,不建议引入。<br>2、软件来自个人、小型社区或组织,两年内未发布版本(含正式版本与测试版本),无明确版本计划,社区提交了有效的Bug或PR,但是半年以上未响应的,不建议引入。<br>3、社区运营状态不明确,通过Issue 或者邮件等方式询问社区是否继续维护,半年以上未响应或者答复停止维护的,不建议引入。|
| 规范化软件名称 | 1、 仓库命名统一为third_party_软件名称,其中软件名称和其官网保持一致。<br>2、 不允许以软件的子模块作为软件名。<br>3、 当软件是某个语言的开发库时,可以追加python-、perl-等前缀予以规范化管理。 |
| 官网信息 | 1、在申请引入请求中准确描述该软件官方网址,如无正式官网则提供主流代码托管商上面对应的项目网址,不能使用maven、mvnrepository、springsource等托管库地址。<br>2、必须同时提供要引入版本的官方源代码包下载地址,以达到可溯源,如需要二进制包,请提供官方的二进制包下载地址。 |
| License检查 | 1、待引入软件是否有license。 <br>2、入库的License是否和官网对应版本的License保持一致。<br>3、高风险license的开源软件谨慎引入,在引入前请充分评估并在申请时附上分析结论。 |
#### 提交申请
如需要引入新的软件,请参考的[SIG管理章程](https://gitee.com/openharmony/community/tree/master/sig) 进行具体的开源软件引入,并在申请材料中包含如下内容:
1、引入该软件的具体价值,被哪些仓使用解决什么问题
2、引入软件的相关信息:
1)引入的软件名称及版本
2)官网链接地址
3)软件的许可证以及引入后以什么方式使用,如静态、动态链接到哪个模块,或跨被哪个进程跨进程调用等
4)是否OpenHarmony项目已存在,如果存在要引入新版本的原因
5)该软件的社区活跃情况
3、引入该软件的具体方案:
1)引入SIG名称及责任人
2)引入后开源仓名称
3)针对该软件进行OAT扫描的结果及OAT.xml内容,对于GPL、LGPL等非开放型许可证要描述具体的使用方式
4)该仓的README.OpenSource内容
### 第三方开源软件许可证要求
1. 第三方开源软件许可证类型必须是[OSI](https://opensource.org/osd-annotated) 明确定义的。
2. 第三方开源软件许可证必须与使用该开源软件的代码仓许可证兼容。
3. 如下类型许可证可以引入到OpenHarmony项目中:
* Apache License 2.0
* Mulan Permissive Software LicenseVersion 2
* Mulan Permissive Software License, Version 2
* BSD 2-clause
* BSD 3-clause
* DOM4J License
......@@ -85,5 +125,25 @@
如要引入其它类型License或上述(4)所列License,请联系邮箱:law@openatom.org。
## 本指导的改进及修订说明
本指导的变更由PMC维护,随着OpenHarmony的演进该指导可能不断刷新、完善,请社区贡献者关注最新版本的指导。
\ No newline at end of file
## 软件退出与退出原则
### 什么是软件退出
1. 一个软件的退出指的是一个软件(项目)申请从OpenHarmony项目中删除,依照本文件描述的规则讨论,最终在OpenHarmony中移除的过程。
2. 该软件相关的SIG负责申报议题到PMC评审,管理软件退出。
### 软件退出原则
当满足以下两个条件时,OpenHarmony中软件的退出申请可以被立即执行,对应文件将从项目中直接删除。
1. 软件的License变化,或者其他法律法规影响了目前正在使用的版本,导致OpenHarmony因为法务风险,不能继续集成该软件。
2. 存在恶意代码或严重安全隐患且OpenHarmony社区无能力修复的,要求软件被立即移除。
除以上描述两种场景外,其它场景OpenHarmony对软件的退出实行过程化管理:
1. 随着技术演进与发展,软件因技术陈旧或架构落后,不能满足现有的应用场景被其他更优秀的软件所取代。
2. OpenHarmony已经集成的版本过于老旧,且软件新版本License或其他法律法规限制导致OpenHarmony不能升级新版本。
3. 软件来自知名社区或组织,社区或组织通过发布公告、修改软件仓库状态、将仓库放到特定目录下等方式告知停止维护的。
4. 软件来自个人、小型社区或组织,两年内未发布版本(含正式版本与测试版本),无明确版本计划,社区提交了有效的Bug或PR,社区半年以上未响应的。
5. 社区运营状态不明确,通过Issue或者邮件等方式询问社区是否继续维护,社区半年以上未响应或者答复停止维护的。
如果软件符合以上任何一条退出条件,PMC与相应SIG首先分析该软件在当前OpenHarmony社区中被依赖、被使用的情况。
1. 如果OpenHarmony中存在依赖关系,且短时间内不能解除,我们建议SIG新建分支代码仓,并主动进行社区维护动作。
2. 如果OpenHarmony中不存在依赖关系,或者短时间内可以解除,则责任SIG将软件从OpenHarmony正式发行中移出,并在相应的Release Notes中说明移除的原因及影响。
\ No newline at end of file
# 许可证与版权规范
## 目的
本规范明确了OpenHarmony社区的代码贡献者、Committer、PMC成员如何处理Repo及源代码文件的许可与版权声明,包括如下几个部分
1. LICENSE文件
2. NOTICE文件
3. 版权和许可头
## 范围
本规范仅适用于OpenHarmony社区,不适用于将OpenHarmony项目应用于个人或企业以开发其它产品的场景,也不适用分发第三方开源软件的场景(该场景参见[第三方开源软件引入指导](第三方开源软件引入指导.md))。
## 本文的改进和修订说明
1. 本文档由OpenHarmony PMC主导起草和维护。本文档的最新版本总可以在 [这里](许可证与版权规范.md) 找到。
2. 任何对于本文中涉及的规则的增加,修改,删除都必须被追踪,请进入该追踪系统。
3. 最终规则经过社区充分的讨论后,由PMC定稿。
## LICENSE文件
1. 每个开源仓必须有清晰描述的许可证信息,且许可证必须与OpenHarmony整体许可证规则一致,如用户态开源仓使用Apache License 2.0许可协议,LiteOS内核态开源仓使用BSD 3-clause许可协议。
2. 每个开源仓的许可证文件必须为纯文本格式,放置于代码仓的根目录,里面包含该许可的全文,并且以”LICENSE“命名,不用带".txt",".md"等后缀。
3. 如果开源仓的不同源码包含多种许可证,请将主许可证描述在以”LICENSE“命名的文件中,其它许可证请以”LICENSE-许可证类型-备注“命名并放置于仓的根目录或该许可证对应源码的根目录,同时在主许可证中描述各许可证文件位置及其适用的范围与场景。
4. 每个开源仓的许可证文件必须要涵盖该仓下所有文件,确保各许可证的涵盖范围描述准确、精简,并且不要包含不在本仓发布的其它源代码许可等不必要的信息,比如要单独下载的依赖软件的许可不要包含在仓和许可证信息中。
5. 如果开源仓在发布时以二进制形式发布,请确保许可证文件位于其发布格式的常规位置,如发布文件夹或压缩包的顶层目录,对于".jar"格式的文件,许可证可位于META-INF目录。
## NOTICE文件
1. 如分发的二进制文件中包含有第三方开源软件,请提供以“NOTICE”命名的文件,NOTICE文件以纯文本格式描述包含的所有第三方开源软件名称、软件版本、权利人声明、License信息
2. NOTICE文件通常放置在发布文件夹或压缩包的顶层目录,对于".jar"格式的文件,许可证可位于META-INF目录。
## 版权和许可头
1. 开源仓中的文件原则上都应当包含合适的版权和许可头声明,除非是如下几种场景:
* 添加版权和许可声明会影响到该文件的功能,如JSON文件因不支持注释,可不添加版权和许可头。
* 工具生成的文件且包含说明该文件是由工具自动生成的描述信息。
* 简短的供用户阅读的说明文件,添加版权许可头会影响其可读性和,如README等。
2. 版权和许可头声明形式如下:
```
Copyright (C) [第一次发布年份]-[当前版本发布年份] [版权所有者]
许可证头,以具体的许可证内容为准,如:
Apache License Version 2.0许可头:
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
BSD-3-Clause 许可头:
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used
to endorse or promote products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
2. 版权头中的年份注意是作品对外发布的年份,如果是第一次发布则写发布年份即可,如果不是第一次发布,则写 "第一次发布年份-当前版本发布年份"。
3. 版权所有者是法律实体,可以是个人或者公司,若代表公司贡献代码,请写公司法律实体。
4. 许可头信息必须与该开源仓的许可证信息一致,如果某文件是双重许可证,则其许可头要清晰地说明各许可证的适用条件,并在文件许可头中包含各许可证定义的许可头描述。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册