esp-idf/tools/ci/check_copyright_config.yaml
2024-02-07 17:56:16 +08:00

229 lines
6.5 KiB
YAML

# This file configures the check_copyright pre-commit hook
#
# Values from the DEFAULT section are used, when the particular option is not set in a section.
# The DEFAULT section also contains all options with description
#
# Section name is just an identifier, keep it unique.
# Section must contain the option 'include' and at least one other option
#
# The sections are matched in the order they are in this config file, the last section which matches is used.
# This means that the order of the sections should be from broad to specific.
# For example:
# sections:
# tools/
# tools/ci/file.c
# tools/ci/
# files:
# tools/file.c -> section tools/
# tools/ci/file.c -> section tools/ci/
#
# don't modify this section!
DEFAULT:
perform_check: yes # should the check be performed?
# Sections setting this to 'no' don't need to include any other options as they are ignored
# When a file is using a section with the option set to 'no', no checks are performed.
# what licenses (or license expressions) are allowed for files in this section
# when setting this option in a section, you need to list all the allowed licenses
allowed_licenses:
- Apache-2.0
license_for_new_files: Apache-2.0 # license to be used when inserting a new copyright notice
new_notice_c: | # notice for new C, CPP, H, HPP and LD files
/*
* SPDX-FileCopyrightText: {years} Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: {license}
*/
new_notice_python: | # notice for new python files
# SPDX-FileCopyrightText: {years} Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: {license}
# comment lines matching:
# SPDX-FileCopyrightText: year[-year] Espressif Systems
# or
# SPDX-FileContributor: year[-year] Espressif Systems
# are replaced with this template prefixed with the correct comment notation (# or // or *) and SPDX- notation
espressif_copyright: '{years} Espressif Systems (Shanghai) CO LTD'
# this section sets the default license for examples and unit tests of components
examples_and_unit_tests:
include:
- 'examples/'
- 'components/**/test/**'
- 'components/**/test_apps/**'
- 'tools/test_apps/**'
- '**/pytest_*.py'
allowed_licenses:
- Apache-2.0
- Unlicense
- CC0-1.0
license_for_new_files: Unlicense OR CC0-1.0
lwip_component:
include:
- 'components/lwip/**'
- 'components/esp_netif/lwip/**'
- 'examples/common_components/protocol_examples_tapif_io/lwip'
allowed_licenses:
- Apache-2.0
- BSD-3-Clause
license_for_new_files: Apache-2.0
newlib_component:
include:
- 'components/newlib/platform_include/**'
- 'components/newlib/port/**'
- 'components/newlib/priv_include/**'
- 'components/newlib/*.c'
- 'components/newlib/*.h'
allowed_licenses:
- Apache-2.0
- BSD-2-Clause-FreeBSD AND Apache-2.0
license_for_new_files: Apache-2.0
asio_component:
include:
- 'components/asio/port/**'
allowed_licenses:
- Apache-2.0
- BSL-1.0
freertos_component:
include:
- 'components/freertos/**'
allowed_licenses:
- Apache-2.0 #Files added to the freertos added by us
- MIT #FreeRTOS sources and port files
ethernet_component:
include:
- 'components/esp_eth/include/**'
- 'components/esp_eth/src/**'
allowed_licenses:
- Apache-2.0
- MIT # To allow contributed drivers
linux_component:
include:
- 'components/linux/fls.c'
allowed_licenses:
- Apache-2.0
- BSD-4-Clause-UC
systemview:
include:
- 'components/app_trace/sys_view'
allowed_licenses:
- Apache-2.0
- BSD-1-Clause
license_for_new_files: Apache-2.0
spiffs:
include:
- 'components/spiffs/include/'
allowed_licenses:
- MIT
- Apache-2.0
sdmmc:
include:
- 'components/esp_driver_sdmmc/include/driver/'
- 'components/sdmmc/'
allowed_licenses:
- Apache-2.0
- ISC
argtable3:
include:
- 'components/console/argtable3/'
allowed_licenses:
- BSD-3-Clause
- Apache-2.0
md5_hash:
include:
- 'components/esp_rom/include/**/rom/md5_hash.h'
allowed_licenses:
- BSD-3-Clause
- Apache-2.0
# OpenOCD project is licensed under GPLv2.0, which is incompatible with Apache-2.0
# The source files built by the OpenOCD stub flasher, need to be dual-licensed for the upstreaming.
# MIT is chosen as the dual license, ensuring compatibility with GPLv2.0.
app_trace:
include:
- components/app_trace/app_trace.c
- components/app_trace/app_trace_membufs_proto.c
- components/app_trace/app_trace_util.c
- components/app_trace/port/riscv/port.c
- components/app_trace/port/xtensa/port.c
allowed_licenses:
- Apache-2.0
- MIT
xtensa:
include:
- 'components/xtensa/**'
allowed_licenses:
- Apache-2.0 #Files added to the xtensa component by us
- MIT #Cadence sources
tinyusb:
include:
- 'examples/peripherals/usb/device/tusb_midi/'
allowed_licenses:
- Apache-2.0
- MIT # Example derived from TinyUSB code by HaThach
- Unlicense
- CC0-1.0
# Portions of the USB stack in ROM are derived from Zephyr project,
# with files licensed under a mix of Apache and BSD-3-Clause licenses.
esp_rom_usb:
include:
- 'components/esp_rom/include/*/rom/usb/'
allowed_licenses:
- Apache-2.0
- BSD-3-Clause
protocol_examples_common_component:
include:
- 'examples/common_components/protocol_examples_common/'
allowed_licenses:
- Apache-2.0
- BSD-2-Clause # Contains URI encoding/decoding code from nginx
- Unlicense
- CC0-1.0
license_for_new_files: Unlicense OR CC0-1.0
zigbee:
include:
- 'examples/zigbee/'
allowed_licenses:
- Apache-2.0
- LicenseRef-Included
# files matching this section do not perform the check
# file patterns starting with ! are negated, meaning files matching them won't match the section.
ignore:
perform_check: no
include:
- components/bt/host/nimble/nimble/
- components/bt/common/osi/
- components/bt/porting/ext/
- components/bt/porting/nimble/
- components/http_parser/
- components/wpa_supplicant/src/
- '!components/wpa_supplicant/esp_supplicant/'
- components/wpa_supplicant/esp_supplicant/src/crypto/fastpbkdf2*
- components/bt/host/bluedroid/
- '!components/bt/host/bluedroid/api/'
- '!components/bt/host/bluedroid/btc/'
- components/esp_local_ctrl/proto-c/
- components/esp_local_ctrl/python/
- components/protocomm/proto-c/
- components/protocomm/python/
- components/wifi_provisioning/proto-c/
- components/wifi_provisioning/python/