mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-21 20:49:52 +03:00
Merge pull request #82866 from Mic92/home-assistant
home-assistant: 0.106.6 -> 0.107.7
This commit is contained in:
commit
dc0d45999a
30
pkgs/development/python-modules/ciso8601/default.nix
Normal file
30
pkgs/development/python-modules/ciso8601/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pytz
|
||||
, unittest2
|
||||
, isPy27
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ciso8601";
|
||||
version = "2.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "closeio";
|
||||
repo = "ciso8601";
|
||||
rev = "v${version}";
|
||||
sha256 = "0g1aiyc1ayh0rnibyy416m5mmck38ksgdm3jsy0z3rxgmgb24951";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
pytz
|
||||
] ++ lib.optional (isPy27) unittest2;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fast ISO8601 date time parser for Python written in C";
|
||||
homepage = "https://github.com/closeio/ciso8601";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.mic92 ];
|
||||
};
|
||||
}
|
@ -1,14 +1,16 @@
|
||||
{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, acme, aiohttp, snitun, attrs, pytest-aiohttp, warrant, pytest }:
|
||||
{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch
|
||||
, acme, aiohttp, snitun, attrs, pycognito, warrant
|
||||
, pytest-aiohttp, asynctest, pytest }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hass-nabucasa";
|
||||
version = "0.31";
|
||||
version = "0.32.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nabucasa";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0hxdvdj41gq5ryafjhrcgf6y8l33lyf45a1vgwwbk0q29sir9bnr";
|
||||
sha256 = "1hfi5q222kgbgrj5yvr4lbhca49hcs6sc2yhxc4pjxqsc12bv1f1";
|
||||
};
|
||||
|
||||
# upstreamed in https://github.com/NabuCasa/hass-nabucasa/pull/119
|
||||
@ -17,13 +19,13 @@ buildPythonPackage rec {
|
||||
cat setup.py
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [ acme aiohttp snitun attrs warrant ];
|
||||
propagatedBuildInputs = [ acme aiohttp snitun attrs warrant pycognito ];
|
||||
|
||||
checkInputs = [ pytest pytest-aiohttp ];
|
||||
checkInputs = [ pytest pytest-aiohttp asynctest ];
|
||||
|
||||
checkPhase = ''
|
||||
pytest tests/
|
||||
'';
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/NabuCasa/hass-nabucasa";
|
||||
|
46
pkgs/development/python-modules/pycognito/default.nix
Normal file
46
pkgs/development/python-modules/pycognito/default.nix
Normal file
@ -0,0 +1,46 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, cryptography
|
||||
, boto3
|
||||
, envs
|
||||
, python-jose
|
||||
, requests
|
||||
, mock
|
||||
, isPy27
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pycognito";
|
||||
version = "0.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pvizeli";
|
||||
repo = "pycognito";
|
||||
rev = version;
|
||||
sha256 = "01zns522awm5yp5cbk1y7k7px534i5akiivip709i1naph3hvnfk";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace 'python-jose[cryptography]' 'python-jose'
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
boto3
|
||||
envs
|
||||
python-jose
|
||||
requests
|
||||
];
|
||||
|
||||
disabled = isPy27;
|
||||
|
||||
checkInputs = [ mock ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python class to integrate Boto3's Cognito client so it is easy to login users. With SRP support";
|
||||
homepage = "https://GitHub.com/pvizeli/pycognito";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.mic92 ];
|
||||
};
|
||||
}
|
@ -15,11 +15,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyicloud";
|
||||
version = "0.9.4";
|
||||
version = "0.9.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0r171wnq2g5bw7gd59vh6flm0104ix1a6s2vhdrf8s74hipw57si";
|
||||
sha256 = "1c8sdlqcmpajcpf6jfpi6amncibm9c3zrl1860r0vfimps50m34h";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-jose";
|
||||
version = "3.0.1";
|
||||
version = "3.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mpdavis";
|
||||
repo = "python-jose";
|
||||
rev = version;
|
||||
sha256 = "1ahq4m86z504bnlk9z473r7r3dprg5m39900rld797hbczdhqa4f";
|
||||
sha256 = "1gnn0zy03pywj65ammy3sd07knzhjv8n5jhx1ir9bikgra9v0iqh";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
@ -10,12 +10,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zeroconf";
|
||||
version = "0.24.4";
|
||||
version = "0.24.5";
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "f66d38f16026097572939ab78b1f46a97f556bca415491eb0fd094d0b5827dfe";
|
||||
sha256 = "0jpgd0rk91si93857mjrizan5gc42kj1q4fi4160qgk68la88fl9";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ ifaddr ]
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Do not edit!
|
||||
|
||||
{
|
||||
version = "0.106.6";
|
||||
version = "0.107.7";
|
||||
components = {
|
||||
"abode" = ps: with ps; [ ]; # missing inputs: abodepy
|
||||
"acer_projector" = ps: with ps; [ pyserial];
|
||||
@ -55,9 +55,10 @@
|
||||
"aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy
|
||||
"auth" = ps: with ps; [ aiohttp-cors];
|
||||
"automatic" = ps: with ps; [ aiohttp-cors]; # missing inputs: aioautomatic
|
||||
"automation" = ps: with ps; [ aiohttp-cors];
|
||||
"automation" = ps: with ps; [ ];
|
||||
"avea" = ps: with ps; [ ]; # missing inputs: avea
|
||||
"avion" = ps: with ps; [ ]; # missing inputs: avion
|
||||
"avri" = ps: with ps; [ ]; # missing inputs: avri-api
|
||||
"awair" = ps: with ps; [ ]; # missing inputs: python_awair
|
||||
"aws" = ps: with ps; [ ]; # missing inputs: aiobotocore
|
||||
"axis" = ps: with ps; [ ]; # missing inputs: axis
|
||||
@ -187,6 +188,7 @@
|
||||
"ecovacs" = ps: with ps; [ ]; # missing inputs: sucks
|
||||
"eddystone_temperature" = ps: with ps; [ construct]; # missing inputs: beacontools[scan]
|
||||
"edimax" = ps: with ps; [ ]; # missing inputs: pyedimax
|
||||
"edl21" = ps: with ps; [ ]; # missing inputs: pysml
|
||||
"ee_brightbox" = ps: with ps; [ ]; # missing inputs: eebrightbox
|
||||
"efergy" = ps: with ps; [ ];
|
||||
"egardia" = ps: with ps; [ ]; # missing inputs: pythonegardia
|
||||
@ -217,6 +219,7 @@
|
||||
"eufy" = ps: with ps; [ ]; # missing inputs: lakeside
|
||||
"everlights" = ps: with ps; [ ]; # missing inputs: pyeverlights
|
||||
"evohome" = ps: with ps; [ ]; # missing inputs: evohome-async
|
||||
"ezviz" = ps: with ps; [ ]; # missing inputs: pyezviz
|
||||
"facebook" = ps: with ps; [ ];
|
||||
"facebox" = ps: with ps; [ ];
|
||||
"fail2ban" = ps: with ps; [ ];
|
||||
@ -299,6 +302,7 @@
|
||||
"graphite" = ps: with ps; [ ];
|
||||
"greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor
|
||||
"greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality
|
||||
"griddy" = ps: with ps; [ ]; # missing inputs: griddypower
|
||||
"group" = ps: with ps; [ ];
|
||||
"growatt_server" = ps: with ps; [ ]; # missing inputs: growattServer
|
||||
"gstreamer" = ps: with ps; [ ]; # missing inputs: gstreamer-player
|
||||
@ -307,7 +311,7 @@
|
||||
"hangouts" = ps: with ps; [ ]; # missing inputs: hangups
|
||||
"harman_kardon_avr" = ps: with ps; [ ]; # missing inputs: hkavr
|
||||
"harmony" = ps: with ps; [ ]; # missing inputs: aioharmony
|
||||
"hassio" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend
|
||||
"hassio" = ps: with ps; [ aiohttp-cors];
|
||||
"haveibeenpwned" = ps: with ps; [ ];
|
||||
"hddtemp" = ps: with ps; [ ];
|
||||
"hdmi_cec" = ps: with ps; [ ]; # missing inputs: pyCEC
|
||||
@ -318,14 +322,13 @@
|
||||
"hikvisioncam" = ps: with ps; [ ]; # missing inputs: hikvision
|
||||
"hisense_aehw4a1" = ps: with ps; [ ]; # missing inputs: pyaehw4a1
|
||||
"history" = ps: with ps; [ aiohttp-cors sqlalchemy];
|
||||
"history_graph" = ps: with ps; [ aiohttp-cors sqlalchemy];
|
||||
"history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy];
|
||||
"hitron_coda" = ps: with ps; [ ];
|
||||
"hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi
|
||||
"hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
|
||||
"homeassistant" = ps: with ps; [ ];
|
||||
"homekit" = ps: with ps; [ ]; # missing inputs: HAP-python
|
||||
"homekit_controller" = ps: with ps; [ ]; # missing inputs: homekit[IP]
|
||||
"homekit_controller" = ps: with ps; [ ]; # missing inputs: aiohomekit[IP]
|
||||
"homematic" = ps: with ps; [ pyhomematic];
|
||||
"homematicip_cloud" = ps: with ps; [ ]; # missing inputs: homematicip
|
||||
"homeworks" = ps: with ps; [ ]; # missing inputs: pyhomeworks
|
||||
@ -342,6 +345,7 @@
|
||||
"hydrawise" = ps: with ps; [ ]; # missing inputs: hydrawiser
|
||||
"hyperion" = ps: with ps; [ ];
|
||||
"ialarm" = ps: with ps; [ ]; # missing inputs: pyialarm
|
||||
"iammeter" = ps: with ps; [ ]; # missing inputs: iammeter
|
||||
"iaqualink" = ps: with ps; [ ]; # missing inputs: iaqualink
|
||||
"icloud" = ps: with ps; [ pyicloud];
|
||||
"idteck_prox" = ps: with ps; [ ]; # missing inputs: rfk101py
|
||||
@ -452,7 +456,7 @@
|
||||
"melissa" = ps: with ps; [ ]; # missing inputs: py-melissa-climate
|
||||
"meraki" = ps: with ps; [ aiohttp-cors];
|
||||
"message_bird" = ps: with ps; [ ]; # missing inputs: messagebird
|
||||
"met" = ps: with ps; [ ]; # missing inputs: pyMetno
|
||||
"met" = ps: with ps; [ pymetno];
|
||||
"meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance vigilancemeteo
|
||||
"meteoalarm" = ps: with ps; [ ]; # missing inputs: meteoalertapi
|
||||
"metoffice" = ps: with ps; [ ]; # missing inputs: datapoint
|
||||
@ -517,7 +521,7 @@
|
||||
"nmbs" = ps: with ps; [ ]; # missing inputs: pyrail
|
||||
"no_ip" = ps: with ps; [ ];
|
||||
"noaa_tides" = ps: with ps; [ ]; # missing inputs: py_noaa
|
||||
"norway_air" = ps: with ps; [ ]; # missing inputs: pyMetno
|
||||
"norway_air" = ps: with ps; [ pymetno];
|
||||
"notify" = ps: with ps; [ ];
|
||||
"notion" = ps: with ps; [ ]; # missing inputs: aionotion
|
||||
"nsw_fuel_station" = ps: with ps; [ ]; # missing inputs: nsw-fuel-api-client
|
||||
@ -607,6 +611,7 @@
|
||||
"qnap" = ps: with ps; [ ]; # missing inputs: qnapstats
|
||||
"qrcode" = ps: with ps; [ pillow]; # missing inputs: pyzbar
|
||||
"quantum_gateway" = ps: with ps; [ ]; # missing inputs: quantum-gateway
|
||||
"qvr_pro" = ps: with ps; [ ]; # missing inputs: pyqvrpro
|
||||
"qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch
|
||||
"rachio" = ps: with ps; [ aiohttp-cors]; # missing inputs: rachiopy
|
||||
"radarr" = ps: with ps; [ ];
|
||||
@ -652,7 +657,7 @@
|
||||
"safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa]; # missing inputs: home-assistant-frontend
|
||||
"saj" = ps: with ps; [ ]; # missing inputs: pysaj
|
||||
"salt" = ps: with ps; [ ]; # missing inputs: saltbox
|
||||
"samsungtv" = ps: with ps; [ ]; # missing inputs: samsungctl[websocket]
|
||||
"samsungtv" = ps: with ps; [ ]; # missing inputs: samsungctl[websocket] samsungtvws[websocket]
|
||||
"satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
|
||||
"scene" = ps: with ps; [ ];
|
||||
"scrape" = ps: with ps; [ beautifulsoup4];
|
||||
@ -677,7 +682,7 @@
|
||||
"shopping_list" = ps: with ps; [ aiohttp-cors];
|
||||
"sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31
|
||||
"sigfox" = ps: with ps; [ ];
|
||||
"sighthound" = ps: with ps; [ ]; # missing inputs: simplehound
|
||||
"sighthound" = ps: with ps; [ pillow]; # missing inputs: simplehound
|
||||
"signal_messenger" = ps: with ps; [ ]; # missing inputs: pysignalclirestapi
|
||||
"simplepush" = ps: with ps; [ ]; # missing inputs: simplepush
|
||||
"simplisafe" = ps: with ps; [ ]; # missing inputs: simplisafe-python
|
||||
@ -760,6 +765,7 @@
|
||||
"tado" = ps: with ps; [ ]; # missing inputs: python-tado
|
||||
"tahoma" = ps: with ps; [ ]; # missing inputs: tahoma-api
|
||||
"tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
|
||||
"tankerkoenig" = ps: with ps; [ ]; # missing inputs: pytankerkoenig
|
||||
"tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff
|
||||
"tautulli" = ps: with ps; [ ]; # missing inputs: pytautulli
|
||||
"tcp" = ps: with ps; [ ];
|
||||
@ -865,7 +871,6 @@
|
||||
"waze_travel_time" = ps: with ps; [ WazeRouteCalculator];
|
||||
"weather" = ps: with ps; [ ];
|
||||
"webhook" = ps: with ps; [ aiohttp-cors];
|
||||
"weblink" = ps: with ps; [ ];
|
||||
"webostv" = ps: with ps; [ ]; # missing inputs: aiopylgtv
|
||||
"websocket_api" = ps: with ps; [ aiohttp-cors];
|
||||
"wemo" = ps: with ps; [ ]; # missing inputs: pywemo
|
||||
|
@ -67,7 +67,7 @@ let
|
||||
extraBuildInputs = extraPackages py.pkgs;
|
||||
|
||||
# Don't forget to run parse-requirements.py after updating
|
||||
hassVersion = "0.106.6";
|
||||
hassVersion = "0.107.7";
|
||||
|
||||
in with py.pkgs; buildPythonApplication rec {
|
||||
pname = "homeassistant";
|
||||
@ -75,7 +75,9 @@ in with py.pkgs; buildPythonApplication rec {
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
patches = [ ./relax-importlib-metadata-pyaml.patch ];
|
||||
patches = [
|
||||
./relax-deps.patch
|
||||
];
|
||||
|
||||
inherit availableComponents;
|
||||
|
||||
@ -84,7 +86,7 @@ in with py.pkgs; buildPythonApplication rec {
|
||||
owner = "home-assistant";
|
||||
repo = "home-assistant";
|
||||
rev = version;
|
||||
sha256 = "11kv5lmm8nxp7yv3w43mzmgzkafddy0z6wl2878p96iyil1w7qhb";
|
||||
sha256 = "1sr7vzsd4hpaix37bb10vbnnqs1v8ll2wb8m713qrvcp3crs6snk";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -93,12 +95,12 @@ in with py.pkgs; buildPythonApplication rec {
|
||||
pyjwt cryptography pip python-slugify pytz pyyaml requests ruamel_yaml
|
||||
setuptools voluptuous voluptuous-serialize
|
||||
# From http, frontend and recorder components and auth.mfa_modules.totp
|
||||
sqlalchemy aiohttp-cors hass-frontend pyotp pyqrcode
|
||||
sqlalchemy aiohttp-cors hass-frontend pyotp pyqrcode ciso8601
|
||||
] ++ componentBuildInputs ++ extraBuildInputs;
|
||||
|
||||
checkInputs = [
|
||||
asynctest pytest pytest-aiohttp requests-mock pydispatcher aiohue netdisco
|
||||
hass-nabucasa defusedxml
|
||||
hass-nabucasa defusedxml zeroconf
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
@ -112,10 +114,12 @@ in with py.pkgs; buildPythonApplication rec {
|
||||
# - components' dependencies are not included, so they cannot be tested
|
||||
# - test_merge_id_schema requires pyqwikswitch
|
||||
# - unclear why test_merge fails: assert merge_log_err.call_count != 0
|
||||
py.test --ignore tests/components -k "not test_merge_id_schema and not test_merge"
|
||||
# - test_setup_safe_mode_if_no_frontend: requires dependencies for components we have not packaged
|
||||
py.test --ignore tests/components -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge"
|
||||
|
||||
# Some basic components should be tested however
|
||||
py.test \
|
||||
tests/components/{api,config,configurator,demo,discovery,frontend,group,history,history_graph} \
|
||||
tests/components/{api,config,configurator,demo,discovery,frontend,group,history} \
|
||||
tests/components/{homeassistant,http,logger,script,shell_command,system_log,websocket_api}
|
||||
'';
|
||||
|
||||
|
@ -4,11 +4,11 @@ buildPythonPackage rec {
|
||||
# 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
|
||||
pname = "home-assistant-frontend";
|
||||
version = "20200220.5";
|
||||
version = "20200318.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0nc44r5ybq0prsz2yid622i0xr7q0qrc4ymbk69bqg6jrmjpbdl1";
|
||||
sha256 = "15by4wd3lpq1pd0hpx04v827i3xywsvxziqb1qrbsraxh1rvsbhz";
|
||||
};
|
||||
|
||||
# no Python tests implemented
|
||||
|
13
pkgs/servers/home-assistant/relax-deps.patch
Normal file
13
pkgs/servers/home-assistant/relax-deps.patch
Normal file
@ -0,0 +1,13 @@
|
||||
--- a/setup.py 2020-03-18 15:34:35.474693786 +0000
|
||||
+++ b/setup.py 2020-03-18 15:49:07.185801916 +0000
|
||||
@@ -47,8 +47,8 @@
|
||||
"pip>=8.0.3",
|
||||
"python-slugify==4.0.0",
|
||||
"pytz>=2019.03",
|
||||
- "pyyaml==5.3",
|
||||
- "requests==2.23.0",
|
||||
+ "pyyaml>=5.2",
|
||||
+ "requests>=2.22.0",
|
||||
"ruamel.yaml==0.15.100",
|
||||
"voluptuous==0.11.7",
|
||||
"voluptuous-serialize==2.3.0",
|
@ -1,22 +0,0 @@
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 7f9155d9a..f90a0d965 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -38,7 +38,7 @@ REQUIRES = [
|
||||
"attrs==19.3.0",
|
||||
"bcrypt==3.1.7",
|
||||
"certifi>=2019.11.28",
|
||||
- "importlib-metadata==1.5.0",
|
||||
+ "importlib-metadata>=1.3.0",
|
||||
"jinja2>=2.10.3",
|
||||
"PyJWT==1.7.1",
|
||||
# PyJWT has loose dependency. We want the latest one.
|
||||
@@ -46,7 +46,7 @@ REQUIRES = [
|
||||
"pip>=8.0.3",
|
||||
"python-slugify==4.0.0",
|
||||
"pytz>=2019.03",
|
||||
- "pyyaml==5.3",
|
||||
+ "pyyaml>=5.2",
|
||||
"requests==2.22.0",
|
||||
"ruamel.yaml==0.15.100",
|
||||
"voluptuous==0.11.7",
|
@ -509,6 +509,8 @@ in {
|
||||
|
||||
breezy = callPackage ../development/python-modules/breezy { };
|
||||
|
||||
ciso8601 = callPackage ../development/python-modules/ciso8601 { };
|
||||
|
||||
deepdiff = callPackage ../development/python-modules/deepdiff { };
|
||||
|
||||
django-sesame = callPackage ../development/python-modules/django-sesame { };
|
||||
@ -902,6 +904,8 @@ in {
|
||||
mpi = pkgs.openmpi;
|
||||
};
|
||||
|
||||
pycognito = callPackage ../development/python-modules/pycognito { };
|
||||
|
||||
python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
|
||||
|
||||
msal = callPackage ../development/python-modules/msal { };
|
||||
|
Loading…
Reference in New Issue
Block a user