Package not installing

I am using a custom platform which links to a custom framework-espidf

pio --version
PlatformIO Core, version 5.2.0a3

python --version
Python 3.9.2

pio output:

Tool Manager: Installing git+https://github.com/rpirsc13/esp-idf#v3.2_lwip_with_nat
git version 2.30.1
Cloning into ‘/home/rpi/.platformio/.cache/tmp/pkg-installing-f3207zkw’…

Tool Manager: framework-espidf @ 1.1.0+sha.d41d0e7 has been installed!
Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: Redirecting...
PLATFORM: Espressif 32 (1.8.0+sha.555226e) > WEMOS LOLIN32
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-espidf 1.1.0+sha.d41d0e7
  • tool-esptoolpy 1.20600.0 (2.6.0)
  • toolchain-xtensa32 2.50200.97 (5.2.0)
    FileNotFoundError: [Errno 2] No such file or directory: ‘/home/rpi/.platformio/packages/framework-espidf/components’:

Contents of the framework-espidf is not the same as the github repo. Manually cloning the repository in the framework-espidf fixes the build. Functionality has been working fine in PIO Core 2.6.7.

This happens because the behavior of downloading packages has changed in PIO core 5. If PlatformIO is instructed to download a pacakge (e.g. a library, or a framework packages or whatever), it will look for the manifest file it needs (library.json/library.properties, package.json, …). If it does not find one, it will search subdirectories for actual code files in order to guess the actual root of the package.

Your repo GitHub - rpirsc13/esp-idf at v3.2_lwip_with_nat does not have package.json at the top level, thus this searching behavior occurrs.

Add a pacakge.json with example content

{
  "name": "framework-espidf",
  "version": "3.30200.210325",
  "description": "Espressif IoT Development Framework. Official development framework for ESP32 chip",
  "keywords": [
    "framework",
    "esp32",
    "esp32s2",
    "espressif"
  ],
  "homepage": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32/",
  "license": "Apache-2.0",
  "repository": {
    "type": "git",
    "url": "https://github.com/espressif/esp-idf"
  }
}

to it, remove the old framework-espidf folder and retry.

Also partly related to Library without includeDir unpredictable · Issue #3887 · platformio/platformio-core · GitHub.

1 Like

Thank you.

It would definetly be nice to have a more informative error, other than “package has been installed” :smile: