From 6084130baa042b5da2a4bea793ca5b84adf58a6e Mon Sep 17 00:00:00 2001 From: dvdvgt <40773635+dvdvgt@users.noreply.github.com> Date: Thu, 30 Apr 2026 12:08:15 +0200 Subject: [PATCH 1/5] update to idf v6.0.1 Co-authored-by: HTunne --- flake.nix | 18 +------- overlay.nix | 20 ++------ pkgs/esp-idf/default.nix | 11 ++++- pkgs/esp-idf/python-packages.nix | 46 +++++++++---------- shells/{esp32c2-idf.nix => esp-idf-riscv.nix} | 16 +++---- .../{esp32c3-idf.nix => esp-idf-xtensa.nix} | 16 +++---- shells/esp32c6-idf.nix | 23 ---------- shells/esp32h2-idf.nix | 23 ---------- shells/esp32p4-idf.nix | 23 ---------- shells/esp32s2-idf.nix | 23 ---------- shells/esp32s3-idf.nix | 23 ---------- 11 files changed, 49 insertions(+), 193 deletions(-) rename shells/{esp32c2-idf.nix => esp-idf-riscv.nix} (56%) rename shells/{esp32c3-idf.nix => esp-idf-xtensa.nix} (56%) delete mode 100644 shells/esp32c6-idf.nix delete mode 100644 shells/esp32h2-idf.nix delete mode 100644 shells/esp32p4-idf.nix delete mode 100644 shells/esp32s2-idf.nix delete mode 100644 shells/esp32s3-idf.nix diff --git a/flake.nix b/flake.nix index 23499ef..73f8252 100644 --- a/flake.nix +++ b/flake.nix @@ -32,14 +32,6 @@ esp-idf-full esp-idf-riscv esp-idf-xtensa - esp-idf-esp32 - esp-idf-esp32c2 - esp-idf-esp32c3 - esp-idf-esp32s2 - esp-idf-esp32s3 - esp-idf-esp32c6 - esp-idf-esp32h2 - esp-idf-esp32p4 gcc-xtensa-lx106-elf-bin # esp8266-rtos-sdk # Broken esp8266-nonos-sdk @@ -49,14 +41,8 @@ devShells = rec { default = esp-idf-full; esp-idf-full = import ./shells/esp-idf-full.nix { inherit pkgs; }; - esp32-idf = import ./shells/esp32-idf.nix { inherit pkgs; }; - esp32c2-idf = import ./shells/esp32c2-idf.nix { inherit pkgs; }; - esp32c3-idf = import ./shells/esp32c3-idf.nix { inherit pkgs; }; - esp32s2-idf = import ./shells/esp32s2-idf.nix { inherit pkgs; }; - esp32s3-idf = import ./shells/esp32s3-idf.nix { inherit pkgs; }; - esp32c6-idf = import ./shells/esp32c6-idf.nix { inherit pkgs; }; - esp32h2-idf = import ./shells/esp32h2-idf.nix { inherit pkgs; }; - esp32p4-idf = import ./shells/esp32p4-idf.nix { inherit pkgs; }; + esp-idf-riscv = import ./shells/esp-idf-riscv.nix { inherit pkgs; }; + esp-idf-xtensa = import ./shells/esp-idf-xtensa.nix { inherit pkgs; }; # esp8266-rtos-sdk = import ./shells/esp8266-rtos-sdk.nix { inherit pkgs; }; # Broken esp8266-nonos-sdk = import ./shells/esp8266-nonos-sdk.nix { inherit pkgs; }; }; diff --git a/overlay.nix b/overlay.nix index 740d12c..8c3e3c4 100644 --- a/overlay.nix +++ b/overlay.nix @@ -29,24 +29,14 @@ final: prev: let '' alias; }; - deprecatedAlias = builtins.foldl' (acc: pair: acc // (mkDeprecatedAlias pair.arch pair.name pair.alias)) {} [ - { name = "esp-idf-esp32"; alias = esp-idf-xtensa; arch = "xtensa"; } - { name = "esp-idf-esp32s2"; alias = esp-idf-xtensa; arch = "xtensa"; } - { name = "esp-idf-esp32s3"; alias = esp-idf-xtensa; arch = "xtensa"; } - { name = "esp-idf-esp32c2"; alias = esp-idf-riscv; arch = "riscv"; } - { name = "esp-idf-esp32c3"; alias = esp-idf-riscv; arch = "riscv"; } - { name = "esp-idf-esp32c6"; alias = esp-idf-riscv; arch = "riscv"; } - { name = "esp-idf-esp32h2"; alias = esp-idf-riscv; arch = "riscv"; } - { name = "esp-idf-esp32p4"; alias = esp-idf-riscv; arch = "riscv"; } - ]; -in deprecatedAlias // { +in { inherit esp-idf-full esp-idf-xtensa esp-idf-riscv; # ESP8266 - gcc-xtensa-lx106-elf-bin = prev.callPackage ./pkgs/esp8266/gcc-xtensa-lx106-elf-bin.nix { }; - esp8266-rtos-sdk = prev.callPackage ./pkgs/esp8266/esp8266-rtos-sdk/esp8266-rtos-sdk.nix { }; - esp8266-nonos-sdk = prev.callPackage ./pkgs/esp8266/esp8266-nonos-sdk/esp8266-nonos-sdk.nix { }; + gcc-xtensa-lx106-elf-bin = prev.callPackage ./pkgs/esp8266/gcc-xtensa-lx106-elf-bin.nix {}; + esp8266-rtos-sdk = prev.callPackage ./pkgs/esp8266/esp8266-rtos-sdk/esp8266-rtos-sdk.nix {}; + esp8266-nonos-sdk = prev.callPackage ./pkgs/esp8266/esp8266-nonos-sdk/esp8266-nonos-sdk.nix {}; # QEMU - qemu-esp32 = prev.callPackage ./pkgs/qemu-esp32 { }; + qemu-esp32 = prev.callPackage ./pkgs/qemu-esp32 {}; } diff --git a/pkgs/esp-idf/default.nix b/pkgs/esp-idf/default.nix index 8856d17..7a25314 100644 --- a/pkgs/esp-idf/default.nix +++ b/pkgs/esp-idf/default.nix @@ -1,8 +1,8 @@ { owner ? "espressif", repo ? "esp-idf", - rev ? "v5.5.2", - sha256 ? "sha256-xYlj8uG/nxeMMNdAY8AbBiA7RYuEOOxoDyb+wVK8QWc=", + rev ? "v6.0.1", + sha256 ? "sha256-4KJa686qc+u7XkF/GS2o53l1SpwP2EmdqAn/qmlL1yU=", toolsToInclude ? [ "xtensa-esp-elf-gdb" "riscv32-esp-elf-gdb" @@ -69,6 +69,7 @@ let # This list is from `tools/requirements/requirements.core.txt` in the # ESP-IDF checkout. setuptools + packaging click pyserial cryptography @@ -85,9 +86,15 @@ let esp-idf-size tree-sitter tree-sitter-grammars.tree-sitter-c + esp-idf-diag pyclang psutil + construct rich + psutil + + tree-sitter + tree-sitter-grammars.tree-sitter-c argcomplete freertos_gdb diff --git a/pkgs/esp-idf/python-packages.nix b/pkgs/esp-idf/python-packages.nix index 2f03d4f..34dc0bc 100644 --- a/pkgs/esp-idf/python-packages.nix +++ b/pkgs/esp-idf/python-packages.nix @@ -2,8 +2,8 @@ # https://dl.espressif.com/dl/esp-idf/espidf.constraints.v5.5.txt # on 2025-07-18. # -# Versions found by running this in a fresh venv: -# pip install -r esp-idf/tools/requirements/requirements.core.txt --constraint=espidf.constraints.v5.5.txt --dry-run +# Versions found by running this script: +# ./pkgs/esp-idf/update-python-packages.sh v6.0.1 { fetchPypi, fetchurl, @@ -13,13 +13,13 @@ with pythonPackages; rec { idf-component-manager = buildPythonPackage rec { pname = "idf-component-manager"; - version = "2.2.2"; + version = "3.0.2"; pyproject = true; src = fetchPypi { inherit version; pname = "idf_component_manager"; - sha256 = "sha256-HKOJIThQ05khSBhDzVjX+cF2hWrBivNZXmQZWBpIGvc="; + sha256 = "sha256-GZ1MJbJNdCwtuzCYREsorKacEzzUkpDIXeC+AzkWbJQ="; }; build-system = [ @@ -36,11 +36,11 @@ rec { pydantic pydantic-core - pydantic-core pydantic-settings pyparsing packaging + psutil pyyaml ruamel-yaml requests @@ -61,13 +61,13 @@ rec { esp-coredump = buildPythonPackage rec { pname = "esp-coredump"; - version = "1.13.1"; + version = "1.16.0"; pyproject = true; src = fetchPypi { inherit version; pname = "esp_coredump"; - sha256 = "sha256-rz0HbQ4DHB7vClZICYW/Q13N+48MWqEpnup0TyYFzIk="; + sha256 = "sha256-1Jog+q8+sXh4/7NRtYHrfjLUeTPU0KFIkAxck2HoNUs="; }; build-system = [ @@ -89,7 +89,7 @@ rec { esptool = buildPythonPackage rec { pname = "esptool"; - version = "4.9.0"; + version = "5.3.dev2"; pyproject = true; build-system = [ @@ -98,20 +98,20 @@ rec { src = fetchPypi { inherit pname version; - sha256 = "sha256-9ja0VS84c835TPry1cN/VAfx8z33NkPv7lE4ZzELao4="; + sha256 = "sha256-EExxdDegGiSJk6qf0bYUUVkelWN/iMmhVe/or0t6XZc="; }; doCheck = false; propagatedBuildInputs = [ intelhex - argcomplete bitstring cryptography - ecdsa pyserial reedsolo pyyaml + rich-click + click ]; # Replaces esptool.py import with .esptool.py-wrapped @@ -135,7 +135,7 @@ rec { esp-idf-kconfig = buildPythonPackage rec { pname = "esp-idf-kconfig"; - version = "2.5.0"; + version = "3.8.1"; pyproject = true; build-system = [ @@ -145,18 +145,14 @@ rec { src = fetchPypi { inherit version; pname = "esp_idf_kconfig"; - sha256 = "sha256-G65GbZh1tlOITRJG1bDKfHq247f0/1pzLjyAljHg45I="; + sha256 = "sha256-Ska7+/apSvI0dcsYpbomjppD9rnZ7Oj0LLGfs+mz+o8="; }; doCheck = false; propagatedBuildInputs = [ - kconfiglib - - # These packages aren't declared as dependencies but will fail idf.py's - # initial dependency check. - intelhex rich + pyparsing ]; meta = { @@ -166,13 +162,13 @@ rec { esp-idf-monitor = buildPythonPackage rec { pname = "esp-idf-monitor"; - version = "1.7.0"; + version = "1.9.0"; pyproject = true; src = fetchPypi { inherit version; pname = "esp_idf_monitor"; - sha256 = "sha256-lU5ec8f7d3R+PzBkfiCVbYbnD7ZO1rOJC3TA5ulKGdk="; + sha256 = "sha256-DDjaDD04PUtjBYY7jfjqbgkwOtWm1bqSznGzHxz3AM4="; }; build-system = [ @@ -195,7 +191,7 @@ rec { esp-idf-size = buildPythonPackage rec { pname = "esp-idf-size"; - version = "1.7.1"; + version = "2.2.0"; pyproject = true; build-system = [ @@ -205,7 +201,7 @@ rec { src = fetchPypi { inherit version; pname = "esp_idf_size"; - sha256 = "sha256-labUYKJukzADWq8eHCXM83FgVJdWIUMgzMqEBNl9zBs="; + sha256 = "sha256-Sxl+j9Ece8Y/TfF51gs2IrQR9epNuTORG4nNpa433d8="; }; doCheck = false; @@ -290,7 +286,7 @@ rec { esp-idf-panic-decoder = buildPythonPackage rec { pname = "esp-idf-panic-decoder"; - version = "1.4.1"; + version = "1.5.0"; pyproject = true; build-system = [ @@ -300,13 +296,14 @@ rec { src = fetchPypi { inherit version; pname = "esp_idf_panic_decoder"; - sha256 = "sha256-l0HQFZlWB0PkiK4EkiIotYBkX5hXHCu9v+f0noUcKwM="; + sha256 = "sha256-ewk/ehul/f135CqWBIe1pDP2Dc2r84zJgXbykfw6iPs="; }; doCheck = false; propagatedBuildInputs = [ pyelftools + pyparsing ]; meta = { @@ -332,7 +329,6 @@ rec { propagatedBuildInputs = [ pyyaml - click rich ]; diff --git a/shells/esp32c2-idf.nix b/shells/esp-idf-riscv.nix similarity index 56% rename from shells/esp32c2-idf.nix rename to shells/esp-idf-riscv.nix index 9431dc0..555a612 100644 --- a/shells/esp32c2-idf.nix +++ b/shells/esp-idf-riscv.nix @@ -10,14 +10,10 @@ }, }: -builtins.warn - "[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead." +pkgs.mkShell { + name = "esp-idf-riscv-shell"; - pkgs.mkShell - { - name = "esp-idf-esp32c2-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32c2 - ]; - } + buildInputs = with pkgs; [ + esp-idf-riscv + ]; +} diff --git a/shells/esp32c3-idf.nix b/shells/esp-idf-xtensa.nix similarity index 56% rename from shells/esp32c3-idf.nix rename to shells/esp-idf-xtensa.nix index 5b81e7d..4dbabb5 100644 --- a/shells/esp32c3-idf.nix +++ b/shells/esp-idf-xtensa.nix @@ -10,14 +10,10 @@ }, }: -builtins.warn - "[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead." +pkgs.mkShell { + name = "esp-idf-xtensa-shell"; - pkgs.mkShell - { - name = "esp-idf-esp32c3-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32c3 - ]; - } + buildInputs = with pkgs; [ + esp-idf-xtensa + ]; +} diff --git a/shells/esp32c6-idf.nix b/shells/esp32c6-idf.nix deleted file mode 100644 index 779450b..0000000 --- a/shells/esp32c6-idf.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - pkgs ? import { - overlays = [ (import ../overlay.nix) ]; - - # The Python library ecdsa is marked as insecure, but we need it for esptool. - # See https://github.com/mirrexagon/nixpkgs-esp-dev/issues/109 - config.permittedInsecurePackages = [ - "python3.13-ecdsa-0.19.1" - ]; - }, -}: - -builtins.warn - "[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead." - - pkgs.mkShell - { - name = "esp-idf-esp32c6-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32c6 - ]; - } diff --git a/shells/esp32h2-idf.nix b/shells/esp32h2-idf.nix deleted file mode 100644 index 87462e0..0000000 --- a/shells/esp32h2-idf.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - pkgs ? import { - overlays = [ (import ../overlay.nix) ]; - - # The Python library ecdsa is marked as insecure, but we need it for esptool. - # See https://github.com/mirrexagon/nixpkgs-esp-dev/issues/109 - config.permittedInsecurePackages = [ - "python3.13-ecdsa-0.19.1" - ]; - }, -}: - -builtins.warn - "[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead." - - pkgs.mkShell - { - name = "esp-idf-esp32h2-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32h2 - ]; - } diff --git a/shells/esp32p4-idf.nix b/shells/esp32p4-idf.nix deleted file mode 100644 index 10018ea..0000000 --- a/shells/esp32p4-idf.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - pkgs ? import { - overlays = [ (import ../overlay.nix) ]; - - # The Python library ecdsa is marked as insecure, but we need it for esptool. - # See https://github.com/mirrexagon/nixpkgs-esp-dev/issues/109 - config.permittedInsecurePackages = [ - "python3.13-ecdsa-0.19.1" - ]; - }, -}: - -builtins.warn - "[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead." - - pkgs.mkShell - { - name = "esp-idf-esp32p4-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32p4 - ]; - } diff --git a/shells/esp32s2-idf.nix b/shells/esp32s2-idf.nix deleted file mode 100644 index 52229b2..0000000 --- a/shells/esp32s2-idf.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - pkgs ? import { - overlays = [ (import ../overlay.nix) ]; - - # The Python library ecdsa is marked as insecure, but we need it for esptool. - # See https://github.com/mirrexagon/nixpkgs-esp-dev/issues/109 - config.permittedInsecurePackages = [ - "python3.13-ecdsa-0.19.1" - ]; - }, -}: - -builtins.warn - "[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead." - - pkgs.mkShell - { - name = "esp-idf-esp32s2-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32s2 - ]; - } diff --git a/shells/esp32s3-idf.nix b/shells/esp32s3-idf.nix deleted file mode 100644 index 685d131..0000000 --- a/shells/esp32s3-idf.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - pkgs ? import { - overlays = [ (import ../overlay.nix) ]; - - # The Python library ecdsa is marked as insecure, but we need it for esptool. - # See https://github.com/mirrexagon/nixpkgs-esp-dev/issues/109 - config.permittedInsecurePackages = [ - "python3.13-ecdsa-0.19.1" - ]; - }, -}: - -builtins.warn - "[DEPRECATION WARNING] Chip specific shell will be removed starting ESP-IDF 6.0. Use esp-idf-full instead." - - pkgs.mkShell - { - name = "esp-idf-esp32s3-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32s3 - ]; - } From 3031cfc7fb42c3fbd3c445b61bc3d5abacb4898c Mon Sep 17 00:00:00 2001 From: dvdvgt <40773635+dvdvgt@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:02:52 +0200 Subject: [PATCH 2/5] nix flake update --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index e4a6ef9..d568200 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1767799921, - "narHash": "sha256-r4GVX+FToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE=", + "lastModified": 1777428379, + "narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d351d0653aeb7877273920cd3e823994e7579b0b", + "rev": "755f5aa91337890c432639c60b6064bb7fe67769", "type": "github" }, "original": { From ba7ac607ef5697bdec6fa73ddd313a1562b4a356 Mon Sep 17 00:00:00 2001 From: dvdvgt <40773635+dvdvgt@users.noreply.github.com> Date: Thu, 30 Apr 2026 12:48:58 +0200 Subject: [PATCH 3/5] export esp-idf version --- pkgs/esp-idf/setup-hook.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/esp-idf/setup-hook.sh b/pkgs/esp-idf/setup-hook.sh index 2c17272..b6dd1e6 100755 --- a/pkgs/esp-idf/setup-hook.sh +++ b/pkgs/esp-idf/setup-hook.sh @@ -7,6 +7,7 @@ addIdfEnvVars() { export IDF_TOOLS_PATH="$IDF_PATH/tools" export IDF_PYTHON_CHECK_CONSTRAINTS=no export IDF_PYTHON_ENV_PATH="$(readlink $IDF_PATH/python-env)" + export ESP_IDF_VERSION="$(cat $1/version.txt | sed 's/^v//')" addToSearchPath PATH "$IDF_TOOLS_PATH" # Extra paths from `export.sh` in the ESP-IDF repo. From b55389cc2bc528067e437d2f407e8f7b608bd95e Mon Sep 17 00:00:00 2001 From: dvdvgt <40773635+dvdvgt@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:55:43 +0200 Subject: [PATCH 4/5] remove unsupported targets in favor of esp-idf-full --- README.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/README.md b/README.md index 21cbdc9..bdf0983 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,6 @@ The list of available shells (to go after the `#` in the command) are: - `esp-idf-full`: Includes toolchains for _all_ supported ESP32 chips (no ESP8266). - `esp32-idf`: Includes toolchain for the ESP32. -- `esp32c2-idf`: Includes toolchain for the ESP32-C2. -- `esp32c3-idf`: Includes toolchain for the ESP32-C3. -- `esp32s2-idf`: Includes toolchain for the ESP32-S2. -- `esp32s3-idf`: Includes toolchain for the ESP32-S3. -- `esp32c6-idf`: Includes toolchain for the ESP32-C6. -- `esp32h2-idf`: Includes toolchain for the ESP32-H2. -- `esp32p4-idf`: Includes toolchain for the ESP32-P4. - `esp8266-rtos-sdk`: Includes RTOS SDK toolchain for ESP8266 and esptool. - `esp8266-nonos-sdk`: Includes NONOS SDK toolchain for ESP8266 and esptool. @@ -38,13 +31,6 @@ If you're not using Nix 2.4+ or prefer not to need to enable flakes, you can clo - `nix-shell shells/esp32-idf-full.nix` - `nix-shell shells/esp32-idf.nix` -- `nix-shell shells/esp32c2-idf.nix` -- `nix-shell shells/esp32c3-idf.nix` -- `nix-shell shells/esp32s2-idf.nix` -- `nix-shell shells/esp32s3-idf.nix` -- `nix-shell shells/esp32c6-idf.nix` -- `nix-shell shells/esp32h2-idf.nix` -- `nix-shell shells/esp32p4-idf.nix` - `nix-shell shells/esp8266-rtos-sdk.nix` - `nix-shell shells/esp8266-nonos-sdk.nix` From f9b1e211262a4cc9c1a265b227def56ef01c2d56 Mon Sep 17 00:00:00 2001 From: dvdvgt <40773635+dvdvgt@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:56:08 +0200 Subject: [PATCH 5/5] remove unsupported/deprecated targets from examples and tests --- pkgs/esp-idf/default.nix | 10 ---------- tests/build-idf-examples.nix | 12 ------------ 2 files changed, 22 deletions(-) diff --git a/pkgs/esp-idf/default.nix b/pkgs/esp-idf/default.nix index 7a25314..f13abaf 100644 --- a/pkgs/esp-idf/default.nix +++ b/pkgs/esp-idf/default.nix @@ -207,16 +207,6 @@ EOF buildExample = callPackage ./build-example.nix { inherit esp-idf; }; targets = [ "esp32" - "esp32c2" - "esp32c3" - "esp32s2" - "esp32s3" - "esp32c5" - "esp32c6" - "esp32h2" - "esp32p4" - "esp32c61" - "esp32h21" ]; in esp-idf // { diff --git a/tests/build-idf-examples.nix b/tests/build-idf-examples.nix index ca4d72e..bd79de3 100644 --- a/tests/build-idf-examples.nix +++ b/tests/build-idf-examples.nix @@ -4,16 +4,6 @@ let buildsNameList = pkgs.lib.attrsets.cartesianProduct { target = [ "esp32" - "esp32s2" - "esp32s3" - "esp32c2" - "esp32c3" - "esp32c5" - "esp32c6" - "esp32h2" - "esp32p4" - "esp32c61" - "esp32h21" ]; example = [ [ "get-started" "hello_world" ] ]; }; @@ -24,11 +14,9 @@ let let # Build each of these with both esp-idf-full and the appropriate esp-idf-esp32xx. buildFull = pkgs.lib.attrByPath spec.example null pkgs.esp-idf-full.examples.${spec.target}; - buildSpecific = pkgs.lib.attrByPath spec.example null (pkgs."esp-idf-${spec.target}".examples.${spec.target} or pkgs.esp-idf-full.examples.${spec.target}); in [ (pkgs.lib.attrsets.nameValuePair buildFull.name buildFull) - (pkgs.lib.attrsets.nameValuePair buildSpecific.name buildSpecific) ] ) buildsNameList );