diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index e46a97b6fa9..fe36bb524c7 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -90,7 +90,7 @@ "blueprint" = ps: with ps; [ ]; "bluesound" = ps: with ps; [ xmltodict ]; "bluetooth_le_tracker" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL] - "bluetooth_tracker" = ps: with ps; [ bt_proximity ]; # missing inputs: pybluez + "bluetooth_tracker" = ps: with ps; [ bt_proximity pybluez ]; "bme280" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense "bme680" = ps: with ps; [ bme680 smbus-cffi ]; "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280 diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py index eeb117a984e..b6ff5662f9e 100755 --- a/pkgs/servers/home-assistant/parse-requirements.py +++ b/pkgs/servers/home-assistant/parse-requirements.py @@ -124,7 +124,10 @@ def name_to_attr_path(req: str, packages: Dict[str, Dict[str, str]]) -> Optional for name in names: # treat "-" and "_" equally name = re.sub("[-_]", "[-_]", name) - pattern = re.compile("^python\\d\\.\\d-{}-\\d".format(name), re.I) + # python(minor).(major)-(pname)-(version or unstable-date) + # we need the version qualifier, or we'll have multiple matches + # (e.g. pyserial and pyserial-asyncio when looking for pyserial) + pattern = re.compile("^python\\d\\.\\d-{}-(?:\\d|unstable-.*)".format(name), re.I) for attr_path, package in packages.items(): if pattern.match(package["name"]): attr_paths.add(attr_path)