From a55be43327031d8a659d74108361f1099773a104 Mon Sep 17 00:00:00 2001 From: jalenchen Date: Fri, 4 Jun 2021 21:40:34 +0800 Subject: [PATCH] =?UTF-8?q?!297=20=E5=AE=8C=E5=96=84=E5=BC=80=E6=BA=90?= =?UTF-8?q?=E8=BD=AF=E4=BB=B6=E5=BC=95=E5=85=A5=E8=A7=84=E5=88=99=E5=8F=8A?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9=EF=BC=8C=E8=A1=A5=E5=85=85=E8=AE=B8?= =?UTF-8?q?=E5=8F=AF=E8=AF=81=E4=B8=8E=E7=89=88=E6=9D=83=E8=A7=84=E8=8C=83?= =?UTF-8?q?=20*=20add=20new=203rd=20oss=20license=20description=20*=20?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=AF=84=E5=AE=A1=E6=84=8F=E8=A7=81=E5=88=B7?= =?UTF-8?q?=E6=96=B0=20*=20Add=20steps=20*=20Add=20license=20and=20copyrig?= =?UTF-8?q?ht=20headers=20*=20Add=20license=20and=20copyright=20headers=20?= =?UTF-8?q?*=20Modify=203rd=20license=20rule=20descriptions=20*=20Add=20li?= =?UTF-8?q?cense=20and=20notice=20rules=20*=20Modify=20rule=20list=20*=20M?= =?UTF-8?q?odify=20rule=20list=20*=20=E7=BB=93=E5=90=88=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E5=88=B7=E6=96=B0=E6=8F=8F=E8=BF=B0=20*=20?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E8=BD=AF=E4=BB=B6=E5=BC=95=E5=85=A5=E5=89=8D?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9=20*=20=E8=A1=A5=E5=85=85=E8=BD=AF?= =?UTF-8?q?=E4=BB=B6=E5=BC=95=E5=85=A5=E5=89=8D=E6=A3=80=E6=9F=A5=E9=A1=B9?= =?UTF-8?q?=20*=20=E8=A1=A5=E5=85=85=E8=BD=AF=E4=BB=B6=E5=BC=95=E5=85=A5?= =?UTF-8?q?=E5=89=8D=E6=A3=80=E6=9F=A5=E9=A1=B9=20*=20=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E9=80=80=E5=87=BA=E5=8E=9F=E5=88=99=20*=20=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E9=80=80=E5=87=BA=E5=8E=9F=E5=88=99=20*=20=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E5=BC=95=E5=85=A5=E5=8E=9F=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../public_sys-resources/icon-caution.gif | Bin .../public_sys-resources/icon-danger.gif | Bin .../public_sys-resources/icon-note.gif | Bin .../public_sys-resources/icon-notice.gif | Bin .../public_sys-resources/icon-tip.gif | Bin .../public_sys-resources/icon-warning.gif | Bin ...57\350\257\201\350\257\264\346\230\216.md" | 100 +++++++++++++----- ...25\345\205\245\346\214\207\345\257\274.md" | 82 ++++++++++++-- ...10\346\235\203\350\247\204\350\214\203.md" | 83 +++++++++++++++ 9 files changed, 228 insertions(+), 37 deletions(-) mode change 100755 => 100644 en/application-dev/connectivity/public_sys-resources/icon-caution.gif mode change 100755 => 100644 en/application-dev/connectivity/public_sys-resources/icon-danger.gif mode change 100755 => 100644 en/application-dev/connectivity/public_sys-resources/icon-note.gif mode change 100755 => 100644 en/application-dev/connectivity/public_sys-resources/icon-notice.gif mode change 100755 => 100644 en/application-dev/connectivity/public_sys-resources/icon-tip.gif mode change 100755 => 100644 en/application-dev/connectivity/public_sys-resources/icon-warning.gif create mode 100644 "zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\210\346\235\203\350\247\204\350\214\203.md" diff --git a/en/application-dev/connectivity/public_sys-resources/icon-caution.gif b/en/application-dev/connectivity/public_sys-resources/icon-caution.gif old mode 100755 new mode 100644 diff --git a/en/application-dev/connectivity/public_sys-resources/icon-danger.gif b/en/application-dev/connectivity/public_sys-resources/icon-danger.gif old mode 100755 new mode 100644 diff --git a/en/application-dev/connectivity/public_sys-resources/icon-note.gif b/en/application-dev/connectivity/public_sys-resources/icon-note.gif old mode 100755 new mode 100644 diff --git a/en/application-dev/connectivity/public_sys-resources/icon-notice.gif b/en/application-dev/connectivity/public_sys-resources/icon-notice.gif old mode 100755 new mode 100644 diff --git a/en/application-dev/connectivity/public_sys-resources/icon-tip.gif b/en/application-dev/connectivity/public_sys-resources/icon-tip.gif old mode 100755 new mode 100644 diff --git a/en/application-dev/connectivity/public_sys-resources/icon-warning.gif b/en/application-dev/connectivity/public_sys-resources/icon-warning.gif old mode 100755 new mode 100644 diff --git "a/zh-cn/contribute/\347\254\254\344\270\211\346\226\271\345\274\200\346\272\220\350\275\257\344\273\266\345\217\212\350\256\270\345\217\257\350\257\201\350\257\264\346\230\216.md" "b/zh-cn/contribute/\347\254\254\344\270\211\346\226\271\345\274\200\346\272\220\350\275\257\344\273\266\345\217\212\350\256\270\345\217\257\350\257\201\350\257\264\346\230\216.md" index a95e27f48d..0f32b1be89 100755 --- "a/zh-cn/contribute/\347\254\254\344\270\211\346\226\271\345\274\200\346\272\220\350\275\257\344\273\266\345\217\212\350\256\270\345\217\257\350\257\201\350\257\264\346\230\216.md" +++ "b/zh-cn/contribute/\347\254\254\344\270\211\346\226\271\345\274\200\346\272\220\350\275\257\344\273\266\345\217\212\350\256\270\345\217\257\350\257\201\350\257\264\346\230\216.md" @@ -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模块 。
(1)jffs2模块是为了兼容jffs2而引入,jffs2采用GPLV2+EXCEPTION的许可,并非纯粹的GPLV2,您可以通过如下链接查看其许可证:https://gitee.com/openharmony/third_party_Linux_Kernel/blob/master/fs/jffs2/LICENCE
OpenHarmony对jffs2模块的编译及链接使用方式满足其EXCEPTION的规定,故对该模块的使用,不会导致项目其他代码受到GPLV2的影响。
(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 | -|
vendor_hisi_hi35xx_middleware_source_third_party_ffmpeg
| 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模块 。
(1)jffs2模块是为了兼容jffs2而引入,jffs2采用GPLV2+EXCEPTION的许可,并非纯粹的GPLV2,您可以通过如下链接查看其许可证:https://gitee.com/openharmony/third_party_Linux_Kernel/blob/master/fs/jffs2/LICENCE
OpenHarmony对jffs2模块的编译及链接使用方式满足其EXCEPTION的规定,故对该模块的使用,不会导致项目其他代码受到GPLV2的影响。
(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
Artistic License 2.0
BSD 2-Clause License
BSD 3-Clause License
ICU License
MIT License
OpenSSL License
Public Domain
SSLeay License
UNICODE INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
c-ares license
zlib/libpng License
| 该软件包含的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无强制开放源码义务条款。 | diff --git "a/zh-cn/contribute/\347\254\254\344\270\211\346\226\271\345\274\200\346\272\220\350\275\257\344\273\266\345\274\225\345\205\245\346\214\207\345\257\274.md" "b/zh-cn/contribute/\347\254\254\344\270\211\346\226\271\345\274\200\346\272\220\350\275\257\344\273\266\345\274\225\345\205\245\346\214\207\345\257\274.md" index cf99ed6d91..c69b3b4af4 100755 --- "a/zh-cn/contribute/\347\254\254\344\270\211\346\226\271\345\274\200\346\272\220\350\275\257\344\273\266\345\274\225\345\205\245\346\214\207\345\257\274.md" +++ "b/zh-cn/contribute/\347\254\254\344\270\211\346\226\271\345\274\200\346\272\220\350\275\257\344\273\266\345\274\225\345\205\245\346\214\207\345\257\274.md" @@ -1,30 +1,70 @@ # 第三方开源软件引入指导 ## 目的 +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定稿。 -### 基本要求 -为便于第三方开源软件的维护与演进,在引入第三方开源软件时请参考如下原则:
+## 软件引入与引入原则 +### 什么是软件引入 +一个软件的引入指的是为满足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、软件来自知名社区或组织,社区或组织通过发布公告、修改软件仓库状态、将仓库放到特定目录下等方式告知停止维护的,不建议引入。
2、软件来自个人、小型社区或组织,两年内未发布版本(含正式版本与测试版本),无明确版本计划,社区提交了有效的Bug或PR,但是半年以上未响应的,不建议引入。
3、社区运营状态不明确,通过Issue 或者邮件等方式询问社区是否继续维护,半年以上未响应或者答复停止维护的,不建议引入。| +| 规范化软件名称 | 1、 仓库命名统一为third_party_软件名称,其中软件名称和其官网保持一致。
2、 不允许以软件的子模块作为软件名。
3、 当软件是某个语言的开发库时,可以追加python-、perl-等前缀予以规范化管理。 | +| 官网信息 | 1、在申请引入请求中准确描述该软件官方网址,如无正式官网则提供主流代码托管商上面对应的项目网址,不能使用maven、mvnrepository、springsource等托管库地址。
2、必须同时提供要引入版本的官方源代码包下载地址,以达到可溯源,如需要二进制包,请提供官方的二进制包下载地址。 | +| License检查 | 1、待引入软件是否有license。
2、入库的License是否和官网对应版本的License保持一致。
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 License,Version 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 diff --git "a/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\210\346\235\203\350\247\204\350\214\203.md" "b/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\210\346\235\203\350\247\204\350\214\203.md" new file mode 100644 index 0000000000..2f40d8081d --- /dev/null +++ "b/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\210\346\235\203\350\247\204\350\214\203.md" @@ -0,0 +1,83 @@ +# 许可证与版权规范 + +## 目的 +本规范明确了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. 许可头信息必须与该开源仓的许可证信息一致,如果某文件是双重许可证,则其许可头要清晰地说明各许可证的适用条件,并在文件许可头中包含各许可证定义的许可头描述。 -- GitLab