summary refs log tree commit diff
diff options
context:
space:
mode:
authorJörg Thalheim <joerg@thalheim.io>2020-04-08 15:54:11 +0100
committerJörg Thalheim <joerg@thalheim.io>2020-04-10 11:17:57 +0100
commit02becde898971983b0382a89409fa94b97021001 (patch)
tree48bbde26753a30489010cf05307e4a612e270593
parent258980146c9ac88f1aad12d782e460f21c61b5cd (diff)
downloadnixpkgs-02becde898971983b0382a89409fa94b97021001.tar
nixpkgs-02becde898971983b0382a89409fa94b97021001.tar.gz
nixpkgs-02becde898971983b0382a89409fa94b97021001.tar.bz2
nixpkgs-02becde898971983b0382a89409fa94b97021001.tar.lz
nixpkgs-02becde898971983b0382a89409fa94b97021001.tar.xz
nixpkgs-02becde898971983b0382a89409fa94b97021001.tar.zst
nixpkgs-02becde898971983b0382a89409fa94b97021001.zip
home-assistant: 0.107.7 -> 0.108.2
-rw-r--r--pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch46
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix19
-rw-r--r--pkgs/servers/home-assistant/default.nix19
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py5
-rw-r--r--pkgs/servers/home-assistant/relax-deps.patch13
6 files changed, 70 insertions, 36 deletions
diff --git a/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch b/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
new file mode 100644
index 00000000000..52d2daf80b0
--- /dev/null
+++ b/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
@@ -0,0 +1,46 @@
+From 80f39643bb4d25f8ffcbd92804844961b303f4d0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Thu, 9 Apr 2020 07:20:46 +0100
+Subject: [PATCH] setup.py: relax dependencies
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
+---
+ setup.py | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index f53af0ee1..ff4227487 100755
+--- a/setup.py
++++ b/setup.py
+@@ -32,10 +32,10 @@ PROJECT_URLS = {
+ PACKAGES = find_packages(exclude=["tests", "tests.*"])
+ 
+ REQUIRES = [
+-    "aiohttp==3.6.1",
++    "aiohttp>=3.6.1",
+     "astral==1.10.1",
+     "async_timeout==3.0.1",
+-    "attrs==19.3.0",
++    "attrs>=19.3.0",
+     "bcrypt==3.1.7",
+     "certifi>=2019.11.28",
+     "ciso8601==2.1.3",
+@@ -47,9 +47,9 @@ REQUIRES = [
+     "pip>=8.0.3",
+     "python-slugify==4.0.0",
+     "pytz>=2019.03",
+-    "pyyaml==5.3.1",
+-    "requests==2.23.0",
+-    "ruamel.yaml==0.15.100",
++    "pyyaml>=5.2",
++    "requests>=2.22",
++    "ruamel.yaml>=0.15.100",
+     "voluptuous==0.11.7",
+     "voluptuous-serialize==2.3.0",
+ ]
+-- 
+2.25.1
+
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index d383bc38109..f959bdf7612 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "0.107.7";
+  version = "0.108.2";
   components = {
     "abode" = ps: with ps; [ ]; # missing inputs: abodepy
     "acer_projector" = ps: with ps; [ pyserial];
@@ -16,7 +16,6 @@
     "aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect
     "alarm_control_panel" = ps: with ps; [ ];
     "alarmdecoder" = ps: with ps; [ alarmdecoder];
-    "alarmdotcom" = ps: with ps; [ ]; # missing inputs: pyalarmdotcom
     "alert" = ps: with ps; [ ];
     "alexa" = ps: with ps; [ aiohttp-cors];
     "almond" = ps: with ps; [ aiohttp-cors]; # missing inputs: pyalmond
@@ -84,6 +83,7 @@
     "bluetooth_tracker" = ps: with ps; [ bt_proximity]; # missing inputs: pybluez
     "bme280" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi
     "bme680" = ps: with ps; [ ]; # missing inputs: bme680 smbus-cffi
+    "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
     "bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected
     "bom" = ps: with ps; [ ]; # missing inputs: bomradarloop
     "braviatv" = ps: with ps; [ bravia-tv getmac];
@@ -156,7 +156,7 @@
     "dialogflow" = ps: with ps; [ aiohttp-cors];
     "digital_ocean" = ps: with ps; [ digital-ocean];
     "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
-    "directv" = ps: with ps; [ ]; # missing inputs: directpy
+    "directv" = ps: with ps; [ ]; # missing inputs: directv
     "discogs" = ps: with ps; [ discogs_client];
     "discord" = ps: with ps; [ discordpy];
     "discovery" = ps: with ps; [ netdisco];
@@ -372,6 +372,7 @@
     "iota" = ps: with ps; [ ]; # missing inputs: pyota
     "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
     "ipma" = ps: with ps; [ ]; # missing inputs: pyipma
+    "ipp" = ps: with ps; [ ]; # missing inputs: pyipp
     "iqvia" = ps: with ps; [ numpy]; # missing inputs: pyiqvia
     "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
     "islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator
@@ -431,7 +432,7 @@
     "london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status
     "loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy
     "lovelace" = ps: with ps; [ ];
-    "luci" = ps: with ps; [ ]; # missing inputs: openwrt-luci-rpc
+    "luci" = ps: with ps; [ openwrt-luci-rpc];
     "luftdaten" = ps: with ps; [ luftdaten];
     "lupusec" = ps: with ps; [ ]; # missing inputs: lupupy
     "lutron" = ps: with ps; [ ]; # missing inputs: pylutron
@@ -470,7 +471,7 @@
     "mikrotik" = ps: with ps; [ ]; # missing inputs: librouteros
     "mill" = ps: with ps; [ ]; # missing inputs: millheater
     "min_max" = ps: with ps; [ ];
-    "minecraft_server" = ps: with ps; [ getmac]; # missing inputs: mcstatus
+    "minecraft_server" = ps: with ps; [ aiodns getmac]; # missing inputs: mcstatus
     "minio" = ps: with ps; [ minio];
     "mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt
     "mjpeg" = ps: with ps; [ ];
@@ -481,7 +482,6 @@
     "mold_indicator" = ps: with ps; [ ];
     "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
     "moon" = ps: with ps; [ ];
-    "mopar" = ps: with ps; [ ]; # missing inputs: motorparts
     "mpchc" = ps: with ps; [ ];
     "mpd" = ps: with ps; [ mpd2];
     "mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
@@ -512,7 +512,9 @@
     "netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
     "netio" = ps: with ps; [ aiohttp-cors]; # missing inputs: pynetio
     "neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
+    "nexia" = ps: with ps; [ ]; # missing inputs: nexia
     "nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
+    "nextcloud" = ps: with ps; [ ]; # missing inputs: nextcloudmonitor
     "nfandroidtv" = ps: with ps; [ ];
     "niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control
     "nilu" = ps: with ps; [ ]; # missing inputs: niluclient
@@ -588,6 +590,7 @@
     "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
     "pocketcasts" = ps: with ps; [ ]; # missing inputs: pocketcasts
     "point" = ps: with ps; [ aiohttp-cors]; # missing inputs: pypoint
+    "powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall
     "prezzibenzina" = ps: with ps; [ ]; # missing inputs: prezzibenzina-py
     "proliphix" = ps: with ps; [ ]; # missing inputs: proliphix
     "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client];
@@ -604,6 +607,7 @@
     "pushover" = ps: with ps; [ pushover-complete];
     "pushsafer" = ps: with ps; [ ];
     "pvoutput" = ps: with ps; [ ];
+    "pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc
     "pyload" = ps: with ps; [ ];
     "python_script" = ps: with ps; [ restrictedpython];
     "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
@@ -660,6 +664,7 @@
     "samsungtv" = ps: with ps; [ ]; # missing inputs: samsungctl[websocket] samsungtvws[websocket]
     "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
     "scene" = ps: with ps; [ ];
+    "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
     "scrape" = ps: with ps; [ beautifulsoup4];
     "script" = ps: with ps; [ ];
     "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
@@ -692,7 +697,7 @@
     "sky_hub" = ps: with ps; [ ];
     "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
     "skybell" = ps: with ps; [ ]; # missing inputs: skybellpy
-    "slack" = ps: with ps; [ ]; # missing inputs: slacker
+    "slack" = ps: with ps; [ ]; # missing inputs: slackclient
     "sleepiq" = ps: with ps; [ ]; # missing inputs: sleepyq
     "slide" = ps: with ps; [ ]; # missing inputs: goslide-api
     "sma" = ps: with ps; [ ]; # missing inputs: pysma
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 877c03cb19e..1cc64c2a0d7 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -67,7 +67,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.107.7";
+  hassVersion = "0.108.2";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -76,7 +76,7 @@ in with py.pkgs; buildPythonApplication rec {
   disabled = pythonOlder "3.5";
 
   patches = [
-    ./relax-deps.patch
+    ./0001-setup.py-relax-dependencies.patch
   ];
 
   inherit availableComponents;
@@ -86,7 +86,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "home-assistant";
     rev = version;
-    sha256 = "1sr7vzsd4hpaix37bb10vbnnqs1v8ll2wb8m713qrvcp3crs6snk";
+    sha256 = "0v4i1ak7pkpycas0mzdmxgc42xgfymwx2b0a2a4h13c4z46pbs2l";
   };
 
   propagatedBuildInputs = [
@@ -99,23 +99,16 @@ in with py.pkgs; buildPythonApplication rec {
   ] ++ componentBuildInputs ++ extraBuildInputs;
 
   checkInputs = [
-    asynctest pytest pytest-aiohttp requests-mock pydispatcher aiohue netdisco
-    hass-nabucasa defusedxml zeroconf
+    asynctest pytest pytest-aiohttp requests-mock hass-nabucasa netdisco pydispatcher
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "aiohttp==3.6.1" "aiohttp" \
-      --replace "attrs==19.2.0" "attrs" \
-      --replace "ruamel.yaml==0.15.100" "ruamel.yaml"
-  '';
-
   checkPhase = ''
     # - components' dependencies are not included, so they cannot be tested
     # - test_merge_id_schema requires pyqwikswitch
+    # - test_loader.py tries to load not-packaged dependencies
     # - unclear why test_merge fails: assert merge_log_err.call_count != 0
     # - 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"
+    py.test --ignore tests/components --ignore tests/test_loader.py -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 \
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 04cef9fa6d7..70d91dc9554 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -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 = "20200318.0";
+  version = "20200407.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15by4wd3lpq1pd0hpx04v827i3xywsvxziqb1qrbsraxh1rvsbhz";
+    sha256 = "0krwn67bkybjb69daik6dki5hm36xs4nbfwqkh0q7ami1xr1f56d";
   };
 
   # no Python tests implemented
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index a5c6e9d0961..1467c3b528c 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -36,7 +36,9 @@ PKG_PREFERENCES = {
     # Use python3Packages.youtube-dl-light instead of python3Packages.youtube-dl
     "youtube-dl": "youtube-dl-light",
     "tensorflow-bin": "tensorflow",
+    "tensorflow-bin_2": "tensorflow",
     "tensorflowWithoutCuda": "tensorflow",
+    "tensorflow-build_2": "tensorflow",
 }
 
 
@@ -79,7 +81,8 @@ def parse_components(version: str = "master"):
 # Recursively get the requirements of a component and its dependencies
 def get_reqs(components, component):
     requirements = set(components[component]["requirements"])
-    for dependency in components[component]["dependencies"]:
+    deps = components[component].get("dependencies", [])
+    for dependency in deps:
         requirements.update(get_reqs(components, dependency))
     return requirements
 
diff --git a/pkgs/servers/home-assistant/relax-deps.patch b/pkgs/servers/home-assistant/relax-deps.patch
deleted file mode 100644
index 5d9716f0683..00000000000
--- a/pkgs/servers/home-assistant/relax-deps.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- 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",