diff --git a/flake.lock b/flake.lock index e4a6ef9..5a38e42 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1767799921, - "narHash": "sha256-r4GVX+FToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE=", + "lastModified": 1775811116, + "narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d351d0653aeb7877273920cd3e823994e7579b0b", + "rev": "54170c54449ea4d6725efd30d719c5e505f1c10e", "type": "github" }, "original": { 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..7d04e2e 100644 --- a/overlay.nix +++ b/overlay.nix @@ -1,5 +1,5 @@ final: prev: let - esp-idf-full = prev.callPackage ./pkgs/esp-idf { }; + esp-idf-full = prev.callPackage ./pkgs/esp-idf {}; esp-idf-xtensa = esp-idf-full.override { toolsToInclude = [ @@ -19,34 +19,14 @@ final: prev: let "esp-rom-elfs" ]; }; - - mkDeprecatedAlias = arch: name: alias: { - "${name}" = builtins.warn '' - [DEPRECATION WARNING] `${name}` is deprecated and will be removed starting with ESP-IDF 6.0. - Please use `esp-idf-full` or `esp-idf-${arch}` instead. - - More information here : https://github.com/mirrexagon/nixpkgs-esp-dev/issues/91 - '' 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..b5ca6aa 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", + sha256 ? "sha256-YhON/zUFOVTh8UEvujAXsd9IPaaNmSIP+dSZDE5fyqw=", 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 @@ -77,17 +78,19 @@ let idf-component-manager esp-coredump esptool - esp-idf-diag esp-idf-kconfig esp-idf-monitor esp-idf-nvs-partition-gen esp-idf-panic-decoder 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..04fff3c 100644 --- a/pkgs/esp-idf/python-packages.nix +++ b/pkgs/esp-idf/python-packages.nix @@ -13,13 +13,13 @@ with pythonPackages; rec { idf-component-manager = buildPythonPackage rec { pname = "idf-component-manager"; - version = "2.2.2"; + version = "2.4.9"; pyproject = true; src = fetchPypi { inherit version; pname = "idf_component_manager"; - sha256 = "sha256-HKOJIThQ05khSBhDzVjX+cF2hWrBivNZXmQZWBpIGvc="; + sha256 = "sha256-bziEzZ0j1kPC2q8gr/SyDP8AUiABZ0nYY42meA+OLuw="; }; 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.2.0"; pyproject = true; build-system = [ @@ -98,7 +98,7 @@ rec { src = fetchPypi { inherit pname version; - sha256 = "sha256-9ja0VS84c835TPry1cN/VAfx8z33NkPv7lE4ZzELao4="; + sha256 = "sha256-nDVbfWMxzJKXnMcQrlxB9Zgw0eop7CTEZ8YAWgksBtY="; }; doCheck = false; @@ -112,6 +112,9 @@ rec { pyserial reedsolo pyyaml + click + rich + rich-click ]; # Replaces esptool.py import with .esptool.py-wrapped @@ -135,7 +138,7 @@ rec { esp-idf-kconfig = buildPythonPackage rec { pname = "esp-idf-kconfig"; - version = "2.5.0"; + version = "3.7.0"; pyproject = true; build-system = [ @@ -145,7 +148,7 @@ rec { src = fetchPypi { inherit version; pname = "esp_idf_kconfig"; - sha256 = "sha256-G65GbZh1tlOITRJG1bDKfHq247f0/1pzLjyAljHg45I="; + sha256 = "sha256-V8xdiwN0HB1tn7Pq2sXJJVJ3l7YSB82ke25AfhN2/5U="; }; doCheck = false; @@ -157,6 +160,7 @@ rec { # initial dependency check. intelhex rich + pyparsing ]; meta = { @@ -166,13 +170,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 +199,7 @@ rec { esp-idf-size = buildPythonPackage rec { pname = "esp-idf-size"; - version = "1.7.1"; + version = "2.1.0"; pyproject = true; build-system = [ @@ -205,7 +209,7 @@ rec { src = fetchPypi { inherit version; pname = "esp_idf_size"; - sha256 = "sha256-labUYKJukzADWq8eHCXM83FgVJdWIUMgzMqEBNl9zBs="; + sha256 = "sha256-wBBHK9ieQFqjQIFfp8JOu0hScY+dV2tbdJvqhPIcIFE="; }; doCheck = false; @@ -290,7 +294,7 @@ rec { esp-idf-panic-decoder = buildPythonPackage rec { pname = "esp-idf-panic-decoder"; - version = "1.4.1"; + version = "1.4.2"; pyproject = true; build-system = [ @@ -300,7 +304,7 @@ rec { src = fetchPypi { inherit version; pname = "esp_idf_panic_decoder"; - sha256 = "sha256-l0HQFZlWB0PkiK4EkiIotYBkX5hXHCu9v+f0noUcKwM="; + sha256 = "sha256-wjk2lUISeipxw7CDIORQTxKSC2QAW0cjYqM+wkBk9/U="; }; doCheck = false; diff --git a/shells/esp32-idf.nix b/shells/esp-idf-riscv.nix similarity index 56% rename from shells/esp32-idf.nix rename to shells/esp-idf-riscv.nix index 27c8e20..555a612 100644 --- a/shells/esp32-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-esp32-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32 - ]; - } + buildInputs = with pkgs; [ + esp-idf-riscv + ]; +} diff --git a/shells/esp32c2-idf.nix b/shells/esp-idf-xtensa.nix similarity index 56% rename from shells/esp32c2-idf.nix rename to shells/esp-idf-xtensa.nix index 9431dc0..4dbabb5 100644 --- a/shells/esp32c2-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-esp32c2-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32c2 - ]; - } + buildInputs = with pkgs; [ + esp-idf-xtensa + ]; +} diff --git a/shells/esp32c3-idf.nix b/shells/esp32c3-idf.nix deleted file mode 100644 index 5b81e7d..0000000 --- a/shells/esp32c3-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-esp32c3-shell"; - - buildInputs = with pkgs; [ - esp-idf-esp32c3 - ]; - } 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 - ]; - } diff --git a/tests/build-idf-examples.nix b/tests/build-idf-examples.nix index ca4d72e..8a735c6 100644 --- a/tests/build-idf-examples.nix +++ b/tests/build-idf-examples.nix @@ -24,11 +24,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 );