Skip to content

fix(ble): Fix license compliance#12440

Open
lucasssvaz wants to merge 2 commits intoespressif:masterfrom
lucasssvaz:fix/ble_license
Open

fix(ble): Fix license compliance#12440
lucasssvaz wants to merge 2 commits intoespressif:masterfrom
lucasssvaz:fix/ble_license

Conversation

@lucasssvaz
Copy link
Member

Description of Change

This pull request updates the licensing and attribution information for the BLE library, ensuring that all relevant contributors and upstream projects are properly credited. It also adds explicit Apache 2.0 license headers to the source files. No functional or behavioral code changes are included; these are documentation and legal compliance updates. PTAL if there is nothing I missed @h2zero

Licensing and Attribution Updates:

  • Added or updated copyright notices in library.properties, LICENSE, and a new NOTICE file to include Espressif Systems, Neil Kolban, Ryan Powell, and NimBLE-Arduino contributors, as well as references to upstream projects. [1] [2] [3]
  • Added Apache 2.0 license headers to all source (.cpp and .h) files in the libraries/BLE/src directory, explicitly crediting Espressif, Neil Kolban, Ryan Powell, and NimBLE-Arduino contributors where appropriate. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]

These changes ensure legal compliance and proper attribution for the BLE library's codebase.

@lucasssvaz lucasssvaz self-assigned this Mar 11, 2026
@lucasssvaz lucasssvaz requested a review from SuGlider as a code owner March 11, 2026 03:22
@lucasssvaz lucasssvaz added Type: Documentation Issue pertains to Documentation of Arduino ESP32 Area: BLE Issues related to BLE labels Mar 11, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Mar 11, 2026

Messages
📖 This PR seems to be quite large (total lines of code: 1106), you might consider splitting it into smaller PRs

👋 Hello lucasssvaz, we appreciate your contribution to this project!


📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more.

🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project.

Click to see more instructions ...


This automated output is generated by the PR linter DangerJS, which checks if your Pull Request meets the project's requirements and helps you fix potential issues.

DangerJS is triggered with each push event to a Pull Request and modify the contents of this comment.

Please consider the following:
- Danger mainly focuses on the PR structure and formatting and can't understand the meaning behind your code or changes.
- Danger is not a substitute for human code reviews; it's still important to request a code review from your colleagues.
- Addressing info messages (📖) is strongly recommended; they're less critical but valuable.
- To manually retry these Danger checks, please navigate to the Actions tab and re-run last Danger workflow.

Review and merge process you can expect ...


We do welcome contributions in the form of bug reports, feature requests and pull requests.

1. An internal issue has been created for the PR, we assign it to the relevant engineer.
2. They review the PR and either approve it or ask you for changes or clarifications.
3. Once the GitHub PR is approved we do the final review, collect approvals from core owners and make sure all the automated tests are passing.
- At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
4. If the change is approved and passes the tests it is merged into the default branch.

Generated by 🚫 dangerJS against cc021cf

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates BLE library licensing/attribution metadata to improve Apache 2.0 compliance, primarily by adding standardized license headers and introducing a NOTICE file for upstream credits.

Changes:

  • Added Apache 2.0 license headers across most libraries/BLE/src sources.
  • Updated licensing/attribution artifacts (LICENSE, new NOTICE) and expanded library.properties author list.
  • Normalized an MIT header comment block formatting in HIDTypes.h.

Reviewed changes

Copilot reviewed 61 out of 62 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
libraries/BLE/src/RTOS.h Add Apache 2.0 license header.
libraries/BLE/src/HIDTypes.h Reformat existing MIT license header comment (no Apache header added).
libraries/BLE/src/GeneralUtils.h Add Apache 2.0 license header.
libraries/BLE/src/GeneralUtils.cpp Add Apache 2.0 license header.
libraries/BLE/src/FreeRTOS.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLEValue.h Add Apache 2.0 license header.
libraries/BLE/src/BLEValue.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLEUtils.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEUtils.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEUUID.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEUUID.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEServiceMap.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLEService.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEService.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEServer.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEServer.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLESecurity.h Add Apache 2.0 license header.
libraries/BLE/src/BLESecurity.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLEScan.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEScan.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLERemoteService.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLERemoteService.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLERemoteDescriptor.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLERemoteDescriptor.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLERemoteCharacteristic.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLERemoteCharacteristic.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEHIDDevice.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEHIDDevice.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEExceptions.h Add Apache 2.0 license header.
libraries/BLE/src/BLEExceptions.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLEEddystoneURL.h Add Apache 2.0 license header.
libraries/BLE/src/BLEEddystoneURL.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLEEddystoneTLM.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEEddystoneTLM.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEDevice.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEDevice.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEDescriptorMap.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLEDescriptor.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEDescriptor.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEConnInfo.h Add Espressif copyright line to existing Apache 2.0 header.
libraries/BLE/src/BLEClient.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEClient.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLECharacteristicMap.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLECharacteristic.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLECharacteristic.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEBeacon.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEBeacon.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEAdvertising.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEAdvertising.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEAdvertisedDevice.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEAdvertisedDevice.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEAddress.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLEAddress.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLE2904.h Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLE2904.cpp Add Apache 2.0 license header with NimBLE-Arduino attribution.
libraries/BLE/src/BLE2902.h Add Apache 2.0 license header.
libraries/BLE/src/BLE2902.cpp Add Apache 2.0 license header.
libraries/BLE/src/BLE2901.h Add Apache 2.0 license header.
libraries/BLE/src/BLE2901.cpp Add Apache 2.0 license header.
libraries/BLE/library.properties Expand author attribution list.
libraries/BLE/NOTICE Add NOTICE file with upstream attribution text.
libraries/BLE/LICENSE Add additional copyright lines to the Apache 2.0 appendix boilerplate.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 1 to +5
/* Copyright (c) 2010-2011 mbed.org, MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
* and associated documentation files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or
* substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
* and associated documentation files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy, modify, merge, publish,
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR description says Apache 2.0 headers were added to all source files under libraries/BLE/src, but HIDTypes.h still carries an MIT license header (which may be correct for this third-party file). Please update the PR description to exclude MIT-licensed sources and/or explicitly call out exceptions so the compliance story is accurate.

Copilot uses AI. Check for mistakes.
derived from, or inspired by is, esp32-snippets, Copyright 2017 Neil Kolban.

If this library is used for commercial purposes, it is requested that the user consider
making a donation and/or sponsoring this project to support it's ongoing development.
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling/grammar: “support it's ongoing development” should be “support its ongoing development” (or add “[sic]” if you intend to preserve the upstream NOTICE text verbatim).

Suggested change
making a donation and/or sponsoring this project to support it's ongoing development.
making a donation and/or sponsoring this project to support it's [sic] ongoing development.

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Contributor

Test Results

101 files  101 suites   29m 37s ⏱️
 94 tests  94 ✅ 0 💤 0 ❌
833 runs  833 ✅ 0 💤 0 ❌

Results for commit cc021cf.

@github-actions
Copy link
Contributor

Memory usage test (comparing PR against master branch)

The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.

MemoryFLASH [bytes]FLASH [%]RAM [bytes]RAM [%]
TargetDECINCDECINCDECINCDECINC
ESP32000.000.00000.000.00
ESP32C3000.000.00000.000.00
ESP32C5000.000.00000.000.00
ESP32C6000.000.00000.000.00
ESP32H2000.000.00000.000.00
ESP32P4000.000.00000.000.00
ESP32S30⚠️ +40.000.00000.000.00
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32ESP32C3ESP32C5ESP32C6ESP32H2ESP32P4ESP32S3
ExampleFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAM
libraries/BLE/examples/Beacon_Scanner00000000000000
libraries/BLE/examples/Client00000000000000
libraries/BLE/examples/Client_Gamepad00000000000000
libraries/BLE/examples/Client_Server000000000000⚠️ +40
libraries/BLE/examples/Client_multiconnect00000000000000
libraries/BLE/examples/Client_secure_static_passkey00000000000000
libraries/BLE/examples/EddystoneTLM_Beacon00000000000000
libraries/BLE/examples/EddystoneURL_Beacon00000000000000
libraries/BLE/examples/Notify000000000000⚠️ +40
libraries/BLE/examples/Scan00000000000000
libraries/BLE/examples/Server00000000000000
libraries/BLE/examples/Server_Gamepad000000000000⚠️ +40
libraries/BLE/examples/Server_multiconnect000000000000⚠️ +40
libraries/BLE/examples/Server_secure_static_passkey00000000000000
libraries/BLE/examples/UART000000000000⚠️ +40
libraries/BLE/examples/Write00000000000000
libraries/BLE/examples/iBeacon000000000000⚠️ +40
libraries/BluetoothSerial/examples/DiscoverConnect00------------
libraries/BluetoothSerial/examples/GetLocalMAC00------------
libraries/BluetoothSerial/examples/SerialToSerialBT00------------
libraries/BluetoothSerial/examples/SerialToSerialBTM00------------
libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy00------------
libraries/BluetoothSerial/examples/SerialToSerialBT_SSP00------------
libraries/BluetoothSerial/examples/bt_classic_device_discovery00------------
libraries/BluetoothSerial/examples/bt_remove_paired_devices00------------
libraries/BLE/examples/Server_secure_authorization--00000000--00

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: BLE Issues related to BLE Type: Documentation Issue pertains to Documentation of Arduino ESP32

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants