nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
Marius Bergmann a04bdd8fbe
appdaemon: fix astral dependency (#116777)
appdaemon v4.0.5 pins astral to v1.10.1. The appdaemon package
definition removes this pinning. However, the current nixpkgs version of
astral (v2.x) is incompatible with the v1.x API. I added an override for
the astral package to bring back v1.10.1 into this derivation.
2021-03-20 14:05:41 +01:00

88 lines
2.8 KiB
Nix

{ lib
, python3
, fetchFromGitHub
}:
let
python = python3.override {
packageOverrides = self: super: {
astral = super.astral.overridePythonAttrs (oldAttrs: rec {
version = "1.10.1";
src = oldAttrs.src.override {
inherit version;
sha256 = "1wbvnqffbgh8grxm07cabdpahlnyfq91pyyaav432cahqi1p59nj";
};
});
bcrypt = super.bcrypt.overridePythonAttrs (oldAttrs: rec {
version = "3.1.7";
src = oldAttrs.src.override {
inherit version;
sha256 = "CwBpx1LsFBcsX3ggjxhj161nVab65v527CyA0TvkHkI=";
};
});
yarl = super.yarl.overridePythonAttrs (oldAttrs: rec {
version = "1.4.2";
src = oldAttrs.src.override {
inherit version;
sha256 = "WM2cRp7O1VjNgao/SEspJOiJcEngaIno/yUQQ1t+90s=";
};
});
};
};
in python.pkgs.buildPythonApplication rec {
pname = "appdaemon";
version = "4.0.5";
disabled = python.pythonOlder "3.6";
src = fetchFromGitHub {
owner = "AppDaemon";
repo = pname;
rev = version;
sha256 = "7o6DrTufAC+qK3dDfpkuQMQWuduCZ6Say/knI4Y07QM=";
};
propagatedBuildInputs = with python.pkgs; [
daemonize astral requests websocket_client aiohttp yarl jinja2
aiohttp-jinja2 pyyaml voluptuous feedparser iso8601 bcrypt paho-mqtt setuptools
deepdiff dateutil bcrypt python-socketio pid pytz sockjs pygments
azure-mgmt-compute azure-mgmt-storage azure-mgmt-resource azure-keyvault-secrets azure-storage-blob
];
# no tests implemented
doCheck = false;
postPatch = ''
substituteInPlace requirements.txt \
--replace "pyyaml==5.3" "pyyaml" \
--replace "pid==2.2.5" "pid" \
--replace "Jinja2==2.11.1" "Jinja2" \
--replace "pytz==2019.3" "pytz" \
--replace "aiohttp==3.6.2" "aiohttp>=3.6" \
--replace "iso8601==0.1.12" "iso8601>=0.1" \
--replace "azure==4.0.0" "azure-mgmt-compute
azure-mgmt-storage
azure-mgmt-resource
azure-keyvault-secrets
azure-storage-blob" \
--replace "sockjs==0.10.0" "sockjs" \
--replace "deepdiff==4.3.1" "deepdiff" \
--replace "voluptuous==0.11.7" "voluptuous" \
--replace "python-socketio==4.4.0" "python-socketio" \
--replace "feedparser==5.2.1" "feedparser>=5.2.1" \
--replace "aiohttp_jinja2==1.2.0" "aiohttp_jinja2>=1.2.0" \
--replace "pygments==2.6.1" "pygments>=2.6.1" \
--replace "paho-mqtt==1.5.0" "paho-mqtt>=1.5.0" \
--replace "websocket-client==0.57.0" "websocket-client>=0.57.0"
'';
meta = with lib; {
description = "Sandboxed Python execution environment for writing automation apps for Home Assistant";
homepage = "https://github.com/AppDaemon/appdaemon";
license = licenses.mit;
maintainers = with maintainers; [ peterhoeg dotlambda ];
};
}