diff --git a/modules/nixos/homeassistant/services/esphome/default.nix b/modules/nixos/homeassistant/services/esphome/default.nix index 63d9d27..2ea4144 100644 --- a/modules/nixos/homeassistant/services/esphome/default.nix +++ b/modules/nixos/homeassistant/services/esphome/default.nix @@ -9,12 +9,15 @@ with lib; let cfg = config.${namespace}.services.home-assistant; - # ESPHome with littlefs-python and fatfs added to PYTHONPATH so PlatformIO's + # ESPHome with littlefs-python and fatfs-ng added to PYTHONPATH so PlatformIO's # espressif32 platform builder can import them (needed for LittleFS/FAT support). + # fatfs-ng is the correct package: it installs under the 'fatfs' namespace and + # provides create_extended_partition and ESP32 wear-leveling support required by + # pioarduino's platform builder (penv_setup.py specifies "fatfs-ng>=0.1.14"). esphomeWithLittlefs = pkgs.esphome.overridePythonAttrs (oldAttrs: { makeWrapperArgs = (oldAttrs.makeWrapperArgs or [ ]) ++ [ "--prefix PYTHONPATH : ${pkgs.${namespace}.littlefs-python}/${pkgs.python3.sitePackages}" - "--prefix PYTHONPATH : ${pkgs.${namespace}.fatfs}/${pkgs.python3.sitePackages}" + "--prefix PYTHONPATH : ${pkgs.${namespace}.fatfs-ng}/${pkgs.python3.sitePackages}" ]; }); in diff --git a/packages/python/fatfs/default.nix b/packages/python/fatfs-ng/default.nix similarity index 63% rename from packages/python/fatfs/default.nix rename to packages/python/fatfs-ng/default.nix index 56d71bf..bac7fae 100644 --- a/packages/python/fatfs/default.nix +++ b/packages/python/fatfs-ng/default.nix @@ -4,13 +4,14 @@ }: python3Packages.buildPythonPackage rec { - pname = "fatfs"; - version = "0.1.2"; + pname = "fatfs-ng"; + version = "0.1.15"; format = "setuptools"; src = python3Packages.fetchPypi { - inherit pname version; - hash = "sha256-gkx2ebxtJcRitGX68Xf4EAlxHP+b8wAbKpH5xb+lxYk="; + pname = "fatfs_ng"; + inherit version; + hash = "sha256-Uwgr6kzX6e5mHUokWEr0tjDxTK1giWrGmyMbrM91X4o="; }; # wrapper.c is pre-generated in the sdist; Cython is not needed at build time. @@ -27,11 +28,12 @@ python3Packages.buildPythonPackage rec { doCheck = false; + # fatfs-ng installs under the 'fatfs' namespace (ext_package='fatfs') pythonImportsCheck = [ "fatfs" ]; meta = with lib; { - description = "Python bindings for ChaN's FatFS, the generic FAT/exFAT filesystem module"; - homepage = "https://pypi.org/project/fatfs/"; + description = "Enhanced Python wrapper around ChaN's FatFS library with ESP32 wear-leveling support"; + homepage = "https://github.com/Jason2866/pyfatfs"; license = licenses.mit; maintainers = [ ]; };