Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-02-04 06:16:18 +00:00 committed by GitHub
commit cab9da5eb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 256 additions and 115 deletions

View File

@ -37,10 +37,12 @@ in
boot.kernelPackages = mkOption { boot.kernelPackages = mkOption {
default = pkgs.linuxPackages; default = pkgs.linuxPackages;
type = types.unspecified // { merge = mergeEqualOption; }; type = types.unspecified // { merge = mergeEqualOption; };
apply = kernelPackages: pkgs.linuxPackagesFor (kernelPackages.kernel.override { apply = kernelPackages: kernelPackages.extend (self: super: {
kernel = super.kernel.override {
inherit randstructSeed; inherit randstructSeed;
kernelPatches = kernelPackages.kernel.kernelPatches ++ kernelPatches; kernelPatches = super.kernel.kernelPatches ++ kernelPatches;
features = lib.recursiveUpdate kernelPackages.kernel.features features; features = lib.recursiveUpdate super.kernel.features features;
};
}); });
# We don't want to evaluate all of linuxPackages for the manual # We don't want to evaluate all of linuxPackages for the manual
# - some of it might not even evaluate correctly. # - some of it might not even evaluate correctly.

View File

@ -17,13 +17,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "musikcube"; pname = "musikcube";
version = "0.96.4"; version = "0.96.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "clangen"; owner = "clangen";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-DYLLnmRHEK2nJUbJfJUDcA8qHZq+qZpHS5ei8qUGmFA="; sha256 = "sha256-GxMQPP8i/NWvduf10f+xVyuG666pChj9RsiF4jfygyY=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -14,16 +14,16 @@ let
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "ncspot"; pname = "ncspot";
version = "0.3.0"; version = "0.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hrkfdn"; owner = "hrkfdn";
repo = "ncspot"; repo = "ncspot";
rev = "v${version}"; rev = "v${version}";
sha256 = "1dfq6ickx24cq8zhhm0a8x5ycd0iygw065qd2blcgl0fim350zw9"; sha256 = "sha256-4V0LG9mDvezeLHHTAmfAXdssOAOlZs30b8IejKEKN4g=";
}; };
cargoSha256 = "0z4af575rx6ggjxsw1q18kwsb4cvyy1kzfkp32v9n74krmy0fk8p"; cargoSha256 = "sha256-POvIkoxLAXVBTsB37aAEUKhk6DRF9IfvfTcrP5PLFEQ=";
cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ]; cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];

View File

@ -2,14 +2,14 @@
buildGoPackage rec { buildGoPackage rec {
pname = "mob"; pname = "mob";
version = "1.1.0"; version = "1.2.0";
goPackagePath = "github.com/remotemobprogramming/mob"; goPackagePath = "github.com/remotemobprogramming/mob";
src = fetchFromGitHub { src = fetchFromGitHub {
rev = "v${version}"; rev = "v${version}";
owner = "remotemobprogramming"; owner = "remotemobprogramming";
repo = pname; repo = pname;
sha256 = "sha256-C63tGMd+kGQc99k7L8SKlijlEBaBCiksAghsg6WC8Bw="; sha256 = "sha256-hBzSf3UUW2FUp1jG1sPt7vN1iDybdMox/h6xHVrM7DY=";
}; };
meta = with lib; { meta = with lib; {

View File

@ -7,23 +7,23 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
version = "0.2.2"; version = "0.2.3";
pname = "reddsaver"; pname = "reddsaver";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "manojkarthick"; owner = "manojkarthick";
repo = "reddsaver"; repo = "reddsaver";
rev = "v${version}"; rev = "v${version}";
sha256 = "0802jz503jhyz5q6mg1fj2bvkl4nggvs8y03zddd298ymplx5dbx"; sha256 = "sha256-K6SyfYx8VG0t6yogHwd80AxQuj3TXofHLEqZcDsRs1s=";
}; };
cargoSha256 = "0z8q187331j3rxj8hzym25pwrikxbd0r829v29y8w6v5n0hb47fs"; cargoSha256 = "sha256-VDr7fcE13Wy7KoGG3U1GSbWqF5Oad4EobgzOL7dtJDo=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] buildInputs = [ openssl ]
++ lib.optional stdenv.isDarwin Security; ++ lib.optional stdenv.isDarwin Security;
# package does not contain tests as of v0.2.2 # package does not contain tests as of v0.2.3
docCheck = false; docCheck = false;
meta = with lib; { meta = with lib; {

View File

@ -19,16 +19,16 @@ let
in in
buildGoModule rec { buildGoModule rec {
pname = "argo"; pname = "argo";
version = "2.12.6"; version = "2.12.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo"; repo = "argo";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-28vePb/2CsDLNFYMqtsoptAaOgh4YdPSHzGTO+HLGLs="; sha256 = "sha256-bMbfFAI4oGZc7FOlU8LczbjAq1cYmJg5WTXkQKS9vgo=";
}; };
vendorSha256 = "sha256-CcSR2TZldeAbBE0yTR+4oa8mDCIx33pu9h8NE1LkRFQ="; vendorSha256 = "sha256-4XPMixVNj6PUKobNLwpsOBT7Zs/7pkhDtQacLIB5EfE=";
doCheck = false; doCheck = false;

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "rclone"; pname = "rclone";
version = "1.53.4"; version = "1.54.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1w6dsf8hw0wap4090ixl01p64yn53xidfdbpy6rc3xaifypj185d"; sha256 = "sha256-A0c5bHP5W/NTwAh1ifGaw4AG37qYXK9P/Fjk68gkUNk=";
}; };
vendorSha256 = "1l4iz31k1pylvf0zrp4nhxna70s1ma4981x6q1s3dhszjxil5c88"; vendorSha256 = "sha256-Cpn/dUD9E2BzUlAISC+IDCW59OkEKZTpqdlvF/clV+M=";
subPackages = [ "." ]; subPackages = [ "." ];

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "conmon"; pname = "conmon";
version = "2.0.25"; version = "2.0.26";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containers"; owner = "containers";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-u22irZ9AC1W2AVJ1OD1gLzTH4NOgRkZekZ78rNKXnps="; sha256 = "sha256-q2lh02iZ7FDBPjtoKY5p3c6Vcn9Ey8DCMn/Oe7/74ug=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "protolock"; pname = "protolock";
version = "0.15.0"; version = "0.15.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nilslice"; owner = "nilslice";
repo = "protolock"; repo = "protolock";
rev = "v${version}"; rev = "v${version}";
sha256 = "0qg26vcqdhgy91p6wiv16dq73ay0fymran3d8ylca9264zwi2vxw"; sha256 = "sha256-rnsHVJHFE/8JIOfMWqGBfIbIuOFyHtT54Vu/DaRY9js=";
}; };
vendorSha256 = "0ap1iwcapvvvmwgdc4zbsp8mglrhbswkdgm4dw8baw8qk0nlci6y"; vendorSha256 = "sha256-3kRGLZgYcbUQb6S+NrleMNNX0dXrE9Yer3vvqxiP4So=";
doCheck = false; doCheck = false;

View File

@ -0,0 +1,34 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchPypi
, async_generator
, paho-mqtt
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "asyncio_mqtt";
version = "0.8.0";
src = fetchPypi {
inherit pname version;
sha256 = "0hwfgww1ywhjvkpnvafbk2hxlqkrngfdz0sx5amzw68srzazvl6g";
};
propagatedBuildInputs = [
paho-mqtt
] ++ lib.optional (pythonOlder "3.7") async_generator;
doCheck = false; # no tests
pythonImportsCheck = [ "asyncio_mqtt" ];
meta = with lib; {
description = "Idomatic asyncio wrapper around paho-mqtt";
homepage = "https://github.com/sbtinstruments/asyncio-mqtt";
license = licenses.bsd3;
changelog = "https://github.com/sbtinstruments/asyncio-mqtt/blob/master/CHANGELOG.md";
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -1,9 +1,11 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, nose , setuptools-scm
, can , can
, canmatrix }: , canmatrix
, pytestCheckHook
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "canopen"; pname = "canopen";
@ -14,17 +16,23 @@ buildPythonPackage rec {
sha256 = "15d49f1f71e9989dde6e3b75fb8445c76bd223064dfc0ac629fe9ecb0e21fba9"; sha256 = "15d49f1f71e9989dde6e3b75fb8445c76bd223064dfc0ac629fe9ecb0e21fba9";
}; };
propagatedBuildInputs = nativeBuildInputs = [
[ can setuptools-scm
];
propagatedBuildInputs = [
can
canmatrix canmatrix
]; ];
checkInputs = [ nose ]; checkInputs = [
pytestCheckHook
];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/christiansandberg/canopen/"; homepage = "https://github.com/christiansandberg/canopen/";
description = "CANopen stack implementation"; description = "CANopen stack implementation";
license = licenses.lgpl3; license = licenses.mit;
maintainers = with maintainers; [ sorki ]; maintainers = with maintainers; [ sorki ];
}; };
} }

View File

@ -1,18 +1,31 @@
{ lib, buildPythonPackage, fetchFromGitHub, pymeeus, pytz }: { lib
, buildPythonPackage
, fetchFromGitHub
, pymeeus
, pytz
, pytestCheckHook
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "convertdate"; pname = "convertdate";
version = "2.2.1"; version = "2.3.0";
# Tests are not available in the PyPI tarball so use GitHub instead. # Tests are not available in the PyPI tarball so use GitHub instead.
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "fitnr"; owner = "fitnr";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1xgi7x9b9kxm0q51bqnmwdm5lp8vwhx5yk4d1b23r37spz9dbhw5"; sha256 = "17j188zlp46zmq8qyy4z4f9v25l3zibkwzj8wp4fxqgimjnfj2nr";
}; };
propagatedBuildInputs = [ pymeeus pytz ]; propagatedBuildInputs = [
pymeeus
pytz
];
checkInputs = [
pytestCheckHook
];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/fitnr/convertdate"; homepage = "https://github.com/fitnr/convertdate";

View File

@ -0,0 +1,24 @@
{ lib
, buildPythonPackage
, fetchPypi
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "hijri-converter";
version = "2.1.1";
src = fetchPypi {
inherit pname version;
sha256 = "08gv6ypn2zd0i8yrv24m448xkic492qrgxj349slp1achhg9p7ln";
};
checkInputs = [ pytestCheckHook ];
meta = with lib; {
description = "Accurate Hijri-Gregorian date converter based on the Umm al-Qura calendar";
homepage = "https://github.com/dralshehri/hijri-converter";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -3,25 +3,46 @@
, fetchPypi , fetchPypi
, convertdate , convertdate
, dateutil , dateutil
, hijri-converter
, korean-lunar-calendar , korean-lunar-calendar
, six , six
, python
, flake8
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "holidays"; pname = "holidays";
version = "0.10.3"; version = "0.10.5.2";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "839281f2b1ae7ac576da7951472482f6e714818296853107ea861fa60f5013cc"; sha256 = "0g4hqbb94cwxlcwsjzrzxzlann1ks2r4mgnfzqz74a2rg1nih5zd";
}; };
postPatch = ''
# ignore too long line issues
# https://github.com/dr-prodigy/python-holidays/issues/423
substituteInPlace tests.py \
--replace "flake8.get_style_guide(ignore=[" "flake8.get_style_guide(ignore=['E501', "
'';
propagatedBuildInputs = [ propagatedBuildInputs = [
convertdate convertdate
dateutil dateutil
hijri-converter
korean-lunar-calendar korean-lunar-calendar
six six
]; ];
checkInputs = [
flake8
];
checkPhase = ''
${python.interpreter} -m unittest
'';
pythonImportsCheck = [ "holidays" ]; pythonImportsCheck = [ "holidays" ];
meta = with lib; { meta = with lib; {

View File

@ -2,14 +2,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "plexauth"; pname = "plexauth";
version = "0.0.5"; version = "0.0.6";
disabled = isPy27; disabled = isPy27;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jjlawren"; owner = "jjlawren";
repo = "python-plexauth"; repo = "python-plexauth";
rev = "v${version}"; rev = "v${version}";
sha256 = "1wbrn22iywl4ccz64r3w3f17k0r7vi2cqkqd2mrdkx5xqhscn9hz"; sha256 = "1wy6syz3cgfw28zvigh2br4jabg8rzpi5l0bhfb6vjjc7aam13ag";
}; };
propagatedBuildInputs = [ aiohttp ]; propagatedBuildInputs = [ aiohttp ];

View File

@ -1,12 +1,12 @@
{ lib, buildPythonPackage, fetchFromGitHub { lib
, buildPythonPackage
, fetchFromGitHub
, betamax , betamax
, betamax-serializers , betamax-serializers
, betamax-matchers , betamax-matchers
, mock , mock
, six
, pytestrunner
, prawcore , prawcore
, pytest , pytestCheckHook
, requests-toolbelt , requests-toolbelt
, update_checker , update_checker
, websocket_client , websocket_client
@ -14,19 +14,15 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "praw"; pname = "praw";
version = "7.1.0"; version = "7.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "praw-dev"; owner = "praw-dev";
repo = "praw"; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "07wyn2pa80ps55kk66rvf4daqyn3y5lzxhx6qh1lpn3p2bacbw9h"; sha256 = "sha256-aEx0swjfyBrSu1fgIiAwdwWmk9v5o7sbT5HTVp7L3R4=";
}; };
nativeBuildInputs = [
pytestrunner
];
propagatedBuildInputs = [ propagatedBuildInputs = [
mock mock
prawcore prawcore
@ -38,16 +34,16 @@ buildPythonPackage rec {
betamax betamax
betamax-serializers betamax-serializers
betamax-matchers betamax-matchers
mock pytestCheckHook
pytest
requests-toolbelt requests-toolbelt
six
]; ];
pythonImportsCheck = [ "praw" ];
meta = with lib; { meta = with lib; {
description = "Python Reddit API wrapper"; description = "Python Reddit API wrapper";
homepage = "https://praw.readthedocs.org/"; homepage = "https://praw.readthedocs.org/";
license = licenses.bsd2; license = licenses.bsd2;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ fab ];
}; };
} }

View File

@ -0,0 +1,33 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, asyncio-mqtt
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "python-openzwave-mqtt";
version = "1.4.0";
src = fetchFromGitHub {
owner = "cgarwood";
repo = pname;
rev = "v${version}";
sha256 = "0zqx00dacs59y4gjr4swrn46c7hrp8a1167bcl270333284m8mqm";
};
propagatedBuildInputs = [
asyncio-mqtt
];
checkInputs = [
pytestCheckHook
];
meta = with lib; {
description = "Python wrapper for OpenZWave's MQTT daemon";
homepage = "https://github.com/cgarwood/python-openzwave-mqtt";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -2,7 +2,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-tado"; pname = "python-tado";
version = "0.9.0"; version = "0.11.0";
disabled = pythonOlder "3.5"; disabled = pythonOlder "3.5";
@ -10,7 +10,7 @@ buildPythonPackage rec {
owner = "wmalgadey"; owner = "wmalgadey";
repo = "PyTado"; repo = "PyTado";
rev = version; rev = version;
sha256 = "0cr5sxdvjgdrrlhl32rs8pwyay8liyi6prm37y66dn00b41cb5l3"; sha256 = "0fw4f9gqnhxwpxyb34qi8bl5pmzz13h4x3mdk903hhjyccanqncr";
}; };
propagatedBuildInputs = [ requests ]; propagatedBuildInputs = [ requests ];

View File

@ -29,11 +29,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "sentry-sdk"; pname = "sentry-sdk";
version = "0.19.4"; version = "0.19.5";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1052f0ed084e532f66cb3e4ba617960d820152aee8b93fc6c05bd53861768c1c"; sha256 = "0grba3rpgg20sqhrh8mxcjwmwgbwrybrxymavh7xsad59570jykk";
}; };
checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond

View File

@ -7,11 +7,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "volkszaehler"; pname = "volkszaehler";
version = "0.2.0"; version = "0.2.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "087gw1k3f81lm859r0j65cjia8c2dcy4cx8c7s3mb5msb1csdh0x"; sha256 = "13zhxq08wn5y9yn6xbazfl0gxxysmirwpc26wcnr6jk2va1kpc4l";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -2,15 +2,15 @@
buildGoModule rec { buildGoModule rec {
pname = "ginkgo"; pname = "ginkgo";
version = "1.14.2"; version = "1.15.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "onsi"; owner = "onsi";
repo = "ginkgo"; repo = "ginkgo";
rev = "v${version}"; rev = "v${version}";
sha256 = "1pvslbfrpzc8n99x33gyvk9aaz6lvdyyg6cj3axjzkyjxmh6d5kc"; sha256 = "sha256-NvScoKnLr0herVrjEnij45yN0MxC/MoRJJHcy59rOuA=";
}; };
vendorSha256 = "072amyw1ir18v9vk268j2y7dhw3lfwvxzvzsdqhnp50rxsa911bx"; vendorSha256 = "sha256-xBa2n2BV+aXPCZ3G+rFIqHtjcXfs1rDjKbmRzjaDSb8=";
doCheck = false; doCheck = false;
meta = with lib; { meta = with lib; {

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "editorconfig-checker"; pname = "editorconfig-checker";
version = "2.3.1"; version = "2.3.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "editorconfig-checker"; owner = "editorconfig-checker";
repo = "editorconfig-checker"; repo = "editorconfig-checker";
rev = version; rev = version;
sha256 = "0c7mainlwn3pd9q6i1f82m5znv8m6fs15zq7nrbm04fy554h0pzz"; sha256 = "sha256-u3gTzsAoV4fgQjsnONIIGFE/Y02bKbCTg30O9FTI2/w=";
}; };
vendorSha256 = "1z4j8vm9mnhjhhmhlj0ycs8b1wpm7lhsfqjnk7w8gfapvj3yfk6h"; vendorSha256 = "sha256-0Eznh9xXuYf4mVZipyE99fKwkGYeSAorhBLamupGkvw=";
doCheck = false; doCheck = false;

View File

@ -2,7 +2,7 @@
# Do not edit! # Do not edit!
{ {
version = "2021.1.5"; version = "2021.2.0";
components = { components = {
"abode" = ps: with ps; [ abodepy ]; "abode" = ps: with ps; [ abodepy ];
"accuweather" = ps: with ps; [ accuweather ]; "accuweather" = ps: with ps; [ accuweather ];
@ -16,6 +16,7 @@
"agent_dvr" = ps: with ps; [ agent-py ]; "agent_dvr" = ps: with ps; [ agent-py ];
"air_quality" = ps: with ps; [ ]; "air_quality" = ps: with ps; [ ];
"airly" = ps: with ps; [ airly ]; "airly" = ps: with ps; [ airly ];
"airnow" = ps: with ps; [ ]; # missing inputs: pyairnow
"airvisual" = ps: with ps; [ pyairvisual ]; "airvisual" = ps: with ps; [ pyairvisual ];
"aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect "aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect
"alarm_control_panel" = ps: with ps; [ ]; "alarm_control_panel" = ps: with ps; [ ];
@ -107,7 +108,7 @@
"calendar" = ps: with ps; [ aiohttp-cors ]; "calendar" = ps: with ps; [ aiohttp-cors ];
"camera" = ps: with ps; [ aiohttp-cors ]; "camera" = ps: with ps; [ aiohttp-cors ];
"canary" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: py-canary "canary" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: py-canary
"cast" = ps: with ps; [ aiohttp-cors hass-nabucasa mutagen plexapi plexauth plexwebsocket PyChromecast pysonos zeroconf ]; "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa mutagen plexapi plexauth plexwebsocket PyChromecast zeroconf ];
"cert_expiry" = ps: with ps; [ ]; "cert_expiry" = ps: with ps; [ ];
"channels" = ps: with ps; [ ]; # missing inputs: pychannels "channels" = ps: with ps; [ ]; # missing inputs: pychannels
"circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook "circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook
@ -153,7 +154,7 @@
"deconz" = ps: with ps; [ ]; # missing inputs: pydeconz "deconz" = ps: with ps; [ ]; # missing inputs: pydeconz
"decora" = ps: with ps; [ bluepy ]; # missing inputs: decora "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
"decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
"default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco pillow sqlalchemy zeroconf ]; "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ];
"delijn" = ps: with ps; [ ]; # missing inputs: pydelijn "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn
"deluge" = ps: with ps; [ deluge-client ]; "deluge" = ps: with ps; [ deluge-client ];
"demo" = ps: with ps; [ aiohttp-cors ]; "demo" = ps: with ps; [ aiohttp-cors ];
@ -166,6 +167,7 @@
"device_tracker" = ps: with ps; [ ]; "device_tracker" = ps: with ps; [ ];
"devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api zeroconf ]; "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api zeroconf ];
"dexcom" = ps: with ps; [ pydexcom ]; "dexcom" = ps: with ps; [ pydexcom ];
"dhcp" = ps: with ps; [ scapy ];
"dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT "dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT
"dialogflow" = ps: with ps; [ aiohttp-cors ]; "dialogflow" = ps: with ps; [ aiohttp-cors ];
"digital_ocean" = ps: with ps; [ digital-ocean ]; "digital_ocean" = ps: with ps; [ digital-ocean ];
@ -242,7 +244,7 @@
"familyhub" = ps: with ps; [ ]; # missing inputs: python-family-hub-local "familyhub" = ps: with ps; [ ]; # missing inputs: python-family-hub-local
"fan" = ps: with ps; [ ]; "fan" = ps: with ps; [ ];
"fastdotcom" = ps: with ps; [ ]; # missing inputs: fastdotcom "fastdotcom" = ps: with ps; [ ]; # missing inputs: fastdotcom
"feedreader" = ps: with ps; [ ]; # missing inputs: feedparser-homeassistant "feedreader" = ps: with ps; [ feedparser ];
"ffmpeg" = ps: with ps; [ ha-ffmpeg ]; "ffmpeg" = ps: with ps; [ ha-ffmpeg ];
"ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ]; "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
"ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ]; "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
@ -364,6 +366,7 @@
"huawei_lte" = ps: with ps; [ getmac stringcase url-normalize ]; # missing inputs: huawei-lte-api "huawei_lte" = ps: with ps; [ getmac stringcase url-normalize ]; # missing inputs: huawei-lte-api
"huawei_router" = ps: with ps; [ ]; "huawei_router" = ps: with ps; [ ];
"hue" = ps: with ps; [ aiohue ]; "hue" = ps: with ps; [ aiohue ];
"huisbaasje" = ps: with ps; [ ]; # missing inputs: huisbaasje-client
"humidifier" = ps: with ps; [ ]; "humidifier" = ps: with ps; [ ];
"hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi "hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi
"hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti "hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti
@ -460,7 +463,7 @@
"luftdaten" = ps: with ps; [ luftdaten ]; "luftdaten" = ps: with ps; [ luftdaten ];
"lupusec" = ps: with ps; [ ]; # missing inputs: lupupy "lupusec" = ps: with ps; [ ]; # missing inputs: lupupy
"lutron" = ps: with ps; [ pylutron ]; "lutron" = ps: with ps; [ pylutron ];
"lutron_caseta" = ps: with ps; [ ]; # missing inputs: pylutron-caseta "lutron_caseta" = ps: with ps; [ ]; # missing inputs: aiolip pylutron-caseta
"lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12 "lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12
"lyft" = ps: with ps; [ ]; # missing inputs: lyft_rides "lyft" = ps: with ps; [ ]; # missing inputs: lyft_rides
"magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed "magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed
@ -573,6 +576,7 @@
"ombi" = ps: with ps; [ ]; # missing inputs: pyombi "ombi" = ps: with ps; [ ]; # missing inputs: pyombi
"omnilogic" = ps: with ps; [ ]; # missing inputs: omnilogic "omnilogic" = ps: with ps; [ ]; # missing inputs: omnilogic
"onboarding" = ps: with ps; [ aiohttp-cors pillow ]; "onboarding" = ps: with ps; [ aiohttp-cors pillow ];
"ondilo_ico" = ps: with ps; [ aiohttp-cors ]; # missing inputs: ondilo
"onewire" = ps: with ps; [ ]; # missing inputs: pi1wire pyownet "onewire" = ps: with ps; [ ]; # missing inputs: pi1wire pyownet
"onkyo" = ps: with ps; [ onkyo-eiscp ]; "onkyo" = ps: with ps; [ onkyo-eiscp ];
"onvif" = ps: with ps; [ ha-ffmpeg zeep ]; # missing inputs: WSDiscovery onvif-zeep-async "onvif" = ps: with ps; [ ha-ffmpeg zeep ]; # missing inputs: WSDiscovery onvif-zeep-async
@ -599,7 +603,7 @@
"otp" = ps: with ps; [ pyotp ]; "otp" = ps: with ps; [ pyotp ];
"ovo_energy" = ps: with ps; [ ]; # missing inputs: ovoenergy "ovo_energy" = ps: with ps; [ ]; # missing inputs: ovoenergy
"owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt ]; "owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt ];
"ozw" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: python-openzwave-mqtt[mqtt-client] "ozw" = ps: with ps; [ aiohttp-cors homeassistant-pyozw paho-mqtt pydispatcher python-openzwave-mqtt ];
"panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta "panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta
"panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera "panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera
"pandora" = ps: with ps; [ pexpect ]; "pandora" = ps: with ps; [ pexpect ];
@ -620,7 +624,7 @@
"pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2 "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2
"plaato" = ps: with ps; [ aiohttp-cors ]; "plaato" = ps: with ps; [ aiohttp-cors ];
"plant" = ps: with ps; [ sqlalchemy ]; "plant" = ps: with ps; [ sqlalchemy ];
"plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ]; "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket ];
"plugwise" = ps: with ps; [ plugwise ]; "plugwise" = ps: with ps; [ plugwise ];
"plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
"pocketcasts" = ps: with ps; [ ]; # missing inputs: pycketcasts "pocketcasts" = ps: with ps; [ ]; # missing inputs: pycketcasts
@ -636,7 +640,6 @@
"proxmoxve" = ps: with ps; [ ]; # missing inputs: proxmoxer "proxmoxve" = ps: with ps; [ ]; # missing inputs: proxmoxer
"proxy" = ps: with ps; [ pillow ]; "proxy" = ps: with ps; [ pillow ];
"ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen "ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen
"ptvsd" = ps: with ps; [ ]; # missing inputs: ptvsd
"pulseaudio_loopback" = ps: with ps; [ pulsectl ]; "pulseaudio_loopback" = ps: with ps; [ pulsectl ];
"push" = ps: with ps; [ aiohttp-cors ]; "push" = ps: with ps; [ aiohttp-cors ];
"pushbullet" = ps: with ps; [ pushbullet ]; "pushbullet" = ps: with ps; [ pushbullet ];
@ -764,7 +767,7 @@
"somfy_mylink" = ps: with ps; [ ]; # missing inputs: somfy-mylink-synergy "somfy_mylink" = ps: with ps; [ ]; # missing inputs: somfy-mylink-synergy
"sonarr" = ps: with ps; [ ]; # missing inputs: sonarr "sonarr" = ps: with ps; [ ]; # missing inputs: sonarr
"songpal" = ps: with ps; [ ]; # missing inputs: python-songpal "songpal" = ps: with ps; [ ]; # missing inputs: python-songpal
"sonos" = ps: with ps; [ pysonos ]; "sonos" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
"sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp
"soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf ]; "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf ];
"spaceapi" = ps: with ps; [ aiohttp-cors ]; "spaceapi" = ps: with ps; [ aiohttp-cors ];
@ -970,6 +973,7 @@
"zodiac" = ps: with ps; [ ]; "zodiac" = ps: with ps; [ ];
"zone" = ps: with ps; [ ]; "zone" = ps: with ps; [ ];
"zoneminder" = ps: with ps; [ zm-py ]; "zoneminder" = ps: with ps; [ zm-py ];
"zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ]; "zwave" = ps: with ps; [ aiohttp-cors homeassistant-pyozw paho-mqtt pydispatcher python-openzwave-mqtt ];
"zwave_js" = ps: with ps; [ aiohttp-cors ]; # missing inputs: zwave-js-server-python
}; };
} }

View File

@ -57,7 +57,7 @@ let
extraBuildInputs = extraPackages py.pkgs; extraBuildInputs = extraPackages py.pkgs;
# Don't forget to run parse-requirements.py after updating # Don't forget to run parse-requirements.py after updating
hassVersion = "2021.1.5"; hassVersion = "2021.2.0";
in with py.pkgs; buildPythonApplication rec { in with py.pkgs; buildPythonApplication rec {
pname = "homeassistant"; pname = "homeassistant";
@ -76,7 +76,7 @@ in with py.pkgs; buildPythonApplication rec {
owner = "home-assistant"; owner = "home-assistant";
repo = "core"; repo = "core";
rev = version; rev = version;
sha256 = "sha256-xi5rHZlhwgEHll3TFlRu7D963tdcQNMmWcoXVjEFLXo="; sha256 = "116aq683wy7sxdbxr43li90irpfbsz0dv8w0r1fghcjpwlj7ihwa";
}; };
# leave this in, so users don't have to constantly update their downstream patch handling # leave this in, so users don't have to constantly update their downstream patch handling
@ -84,12 +84,13 @@ in with py.pkgs; buildPythonApplication rec {
postPatch = '' postPatch = ''
substituteInPlace setup.py \ substituteInPlace setup.py \
--replace "aiohttp==3.7.1" "aiohttp>=3.6.3" \
--replace "attrs==19.3.0" "attrs>=19.3.0" \ --replace "attrs==19.3.0" "attrs>=19.3.0" \
--replace "bcrypt==3.1.7" "bcrypt>=3.1.7" \ --replace "bcrypt==3.1.7" "bcrypt>=3.1.7" \
--replace "cryptography==3.2" "cryptography" \ --replace "cryptography==3.2" "cryptography" \
--replace "pip>=8.0.3,<20.3" "pip" \ --replace "pip>=8.0.3,<20.3" "pip" \
--replace "requests==2.25.0" "requests>=2.24.0" \ --replace "pytz>=2020.5" "pytz>=2020.4" \
--replace "pyyaml==5.4.1" "pyyaml" \
--replace "requests==2.25.1" "requests>=2.25.0" \
--replace "ruamel.yaml==0.15.100" "ruamel.yaml>=0.15.100" --replace "ruamel.yaml==0.15.100" "ruamel.yaml>=0.15.100"
substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"' substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
''; '';
@ -99,10 +100,10 @@ in with py.pkgs; buildPythonApplication rec {
aiohttp astral async-timeout attrs bcrypt certifi ciso8601 httpx jinja2 aiohttp astral async-timeout attrs bcrypt certifi ciso8601 httpx jinja2
pyjwt cryptography pip python-slugify pytz pyyaml requests ruamel_yaml pyjwt cryptography pip python-slugify pytz pyyaml requests ruamel_yaml
setuptools voluptuous voluptuous-serialize yarl setuptools voluptuous voluptuous-serialize yarl
# From default_config. frontend, http, image, mobile_app and recorder components as well as # From default_config. dhcp, frontend, http, image, mobile_app and
# the auth.mfa_modules.totp module # recorder components as well as the auth.mfa_modules.totp module
aiohttp-cors defusedxml distro emoji hass-frontend pynacl pillow pyotp aiohttp-cors aiohue defusedxml distro emoji hass-frontend pynacl pillow pyotp
pyqrcode sqlalchemy pyqrcode scapy sqlalchemy python-openzwave-mqtt
] ++ componentBuildInputs ++ extraBuildInputs; ] ++ componentBuildInputs ++ extraBuildInputs;
# upstream only tests on Linux, so do we. # upstream only tests on Linux, so do we.
@ -114,13 +115,16 @@ in with py.pkgs; buildPythonApplication rec {
# We cannot test all components, since they'd introduce lots of dependencies, some of which are unpackaged, # We cannot test all components, since they'd introduce lots of dependencies, some of which are unpackaged,
# but we should test very common stuff, like what's in `default_config`. # but we should test very common stuff, like what's in `default_config`.
# https://github.com/home-assistant/core/commits/dev/homeassistant/components/default_config/manifest.json
componentTests = [ componentTests = [
"api" "api"
"automation" "automation"
"config" "config"
"configurator" "configurator"
"counter"
"default_config" "default_config"
"demo" "demo"
"dhcp"
"discovery" "discovery"
"frontend" "frontend"
"group" "group"
@ -145,6 +149,8 @@ in with py.pkgs; buildPythonApplication rec {
"system_health" "system_health"
"system_log" "system_log"
"tag" "tag"
"timer"
"webhook"
"websocket_api" "websocket_api"
"zeroconf" "zeroconf"
"zone" "zone"
@ -156,31 +162,25 @@ in with py.pkgs; buildPythonApplication rec {
"--ignore tests/components" "--ignore tests/components"
# prone to race conditions due to parallel file access # prone to race conditions due to parallel file access
"--ignore tests/test_config.py" "--ignore tests/test_config.py"
# tries to import unpackaged dependencies
"--ignore tests/test_loader.py"
# pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0 # pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
"--ignore tests/auth/mfa_modules/test_notify.py" "--ignore tests/auth/mfa_modules/test_notify.py"
"tests" "tests"
] ++ map (component: "tests/components/" + component) componentTests; ] ++ map (component: "tests/components/" + component) componentTests;
disabledTests = [ disabledTests = [
# AssertionError: merge_log_err.call_count != 0
"test_merge"
# ModuleNotFoundError: No module named 'pyqwikswitch'
"test_merge_id_schema"
# AssertionError: assert 'unknown' == 'not_home' # AssertionError: assert 'unknown' == 'not_home'
"test_device_tracker_not_home" "test_device_tracker_not_home"
# Racy https://github.com/home-assistant/core/issues/41425
"test_cached_event_message"
# ValueError: count must be a positive integer (got 0)
"test_media_view"
# AssertionError: len(events) == 1
"test_error_posted_as_event"
# keyring.errors.NoKeyringError: No recommended backend was available. # keyring.errors.NoKeyringError: No recommended backend was available.
"test_secrets_from_unrelated_fails" "test_secrets_from_unrelated_fails"
"test_secrets_credstash" "test_secrets_credstash"
# AssertionError: Expected 'start' to have been called once. Called 0 times.
"test_setup_and_stop"
# AssertionError: assert {} == {'test': <ANY...ckage': <ANY>}
"test_get_custom_components_internal"
# assert 0 == 1 where 0 = len([])
"test_error_posted_as_event"
# RuntimeError: Event loop is closed # RuntimeError: Event loop is closed
"test_remove_older_logs" "test_info_endpoint_register_callback_timeout"
]; ];
preCheck = '' preCheck = ''

View File

@ -4,11 +4,11 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here # the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend"; pname = "home-assistant-frontend";
version = "20201229.1"; version = "20210127.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-3JMWugAiVDq/NBgX8ft2Bchim2g493jy7wZvvXrX+Ws="; sha256 = "sha256-N+n1DI1oZ/j+GydH+Du21zTNA6leW4YBri7cAMvAac4=";
}; };
# there is nothing to strip in this package # there is nothing to strip in this package

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "resvg"; pname = "resvg";
version = "0.12.0"; version = "0.13.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "RazrFalcon"; owner = "RazrFalcon";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0iqlg0wmx9y81ncbw4ihd6pr7ddpfsvk35zmhzsq4plwzbxgp0w1"; sha256 = "sha256-Jo+dx4+3GpEwOoE8HH0YahBmPvT9Oy2qXMvCJ/NZhF0=";
}; };
cargoSha256 = "0jgczhvm5rsv4vwd5wx6gshy6322im4c3wi79klk249czr6vlwsg"; cargoSha256 = "sha256-8Es9NZYsC/9PZ6ytWZTAH42U3vxZtJERPSsno1s4TEc=";
doCheck = false; doCheck = false;

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "lokalise2-cli"; pname = "lokalise2-cli";
version = "2.6.2"; version = "2.6.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lokalise"; owner = "lokalise";
repo = "lokalise-cli-2-go"; repo = "lokalise-cli-2-go";
rev = "v${version}"; rev = "v${version}";
sha256 = "1iizyr6bv17dpv05whcx34498wbrs0q3gn8s50srvdqrdk9hs4gj"; sha256 = "sha256-3kDaaPDRbhJyp/CblTKhB0dUeOjroCs3WkjEXL87Od4=";
}; };
vendorSha256 = "17nykcx47h1q55msh43mmf092y5cigarz5486yp6sqp79p6lbjk3"; vendorSha256 = "sha256-iWYlbGeLp/SiF8/OyWGIHJQB1RJjma9/EDc3zOsjNG8=";
doCheck = false; doCheck = false;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "rcon"; pname = "rcon";
version = "0.5"; version = "0.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "n0la"; owner = "n0la";
repo = "rcon"; repo = "rcon";
rev = version; rev = version;
sha256 = "1jsnmsm2qkiv8dan1yncx0qp6zfkcbyvf81c7xwpv6r499ijw1nb"; sha256 = "sha256-bHm6JeWmpg42VZQXikHl+BMx9zimRLBQWemTqOxyLhw=";
}; };
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ];

View File

@ -2,15 +2,15 @@
buildGoModule rec { buildGoModule rec {
pname = "shipyard"; pname = "shipyard";
version = "0.1.17"; version = "0.1.18";
src = fetchFromGitHub { src = fetchFromGitHub {
rev = "v${version}"; rev = "v${version}";
owner = "shipyard-run"; owner = "shipyard-run";
repo = pname; repo = pname;
sha256 = "13cp7qpxchnyxdm26xwdcp557nj16f4h8vlj0p4h79z5g7pcklln"; sha256 = "sha256-ZrzW1sx0wCuaICONS3SR0VsqDj2ZUM53LaB5Wj1s9uc=";
}; };
vendorSha256 = "0gib9s09lz91wawbms9zq4wc5k6bdxfzpxm8q92h0bsjw1bj1hzs"; vendorSha256 = "sha256-eeR316CKlAqWxlYcPZVlP260NR7WHfmCVE3PywMay/w=";
buildFlagsArray = [ buildFlagsArray = [
"-ldflags=-s -w -X main.version=${version}" "-ldflags=-s -w -X main.version=${version}"

View File

@ -19105,10 +19105,10 @@ in
for a specific kernel. This function can then be called for for a specific kernel. This function can then be called for
whatever kernel you're using. */ whatever kernel you're using. */
linuxPackagesFor = kernel: lib.makeExtensible (self: with self; { linuxPackagesFor = kernel_: lib.makeExtensible (self: with self; {
callPackage = newScope self; callPackage = newScope self;
inherit kernel; kernel = kernel_;
inherit (kernel) stdenv; # in particular, use the same compiler by default inherit (kernel) stdenv; # in particular, use the same compiler by default
# to help determine module compatibility # to help determine module compatibility

View File

@ -484,6 +484,8 @@ in {
asyncio-dgram = callPackage ../development/python-modules/asyncio-dgram { }; asyncio-dgram = callPackage ../development/python-modules/asyncio-dgram { };
asyncio-mqtt = callPackage ../development/python-modules/asyncio_mqtt { };
asyncio-throttle = callPackage ../development/python-modules/asyncio-throttle { }; asyncio-throttle = callPackage ../development/python-modules/asyncio-throttle { };
asyncpg = callPackage ../development/python-modules/asyncpg { }; asyncpg = callPackage ../development/python-modules/asyncpg { };
@ -2926,6 +2928,8 @@ in {
hieroglyph = callPackage ../development/python-modules/hieroglyph { }; hieroglyph = callPackage ../development/python-modules/hieroglyph { };
hijri-converter = callPackage ../development/python-modules/hijri-converter { };
hiredis = callPackage ../development/python-modules/hiredis { }; hiredis = callPackage ../development/python-modules/hiredis { };
hiro = callPackage ../development/python-modules/hiro { }; hiro = callPackage ../development/python-modules/hiro { };
@ -4896,6 +4900,8 @@ in {
python-openems = callPackage ../development/python-modules/python-openems { }; python-openems = callPackage ../development/python-modules/python-openems { };
python-openzwave-mqtt = callPackage ../development/python-modules/python-openzwave-mqtt { };
python-tado = callPackage ../development/python-modules/python-tado { }; python-tado = callPackage ../development/python-modules/python-tado { };
pkutils = callPackage ../development/python-modules/pkutils { }; pkutils = callPackage ../development/python-modules/pkutils { };