about summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorRobert Schütz <rschuetz17@gmail.com>2019-02-24 13:58:13 +0100
committerGitHub <noreply@github.com>2019-02-24 13:58:13 +0100
commit6e5a66f09f21fba56ec30982000cd722c2b9a428 (patch)
tree2a75b3c11e981a7431f31172797dd61658a57b3d /pkgs/servers
parent50a17aa46fc881431e502a54e284a20f513a83ab (diff)
parent1011da380715563825b801c9bcc2cbe1b7980c2c (diff)
downloadnixlib-6e5a66f09f21fba56ec30982000cd722c2b9a428.tar
nixlib-6e5a66f09f21fba56ec30982000cd722c2b9a428.tar.gz
nixlib-6e5a66f09f21fba56ec30982000cd722c2b9a428.tar.bz2
nixlib-6e5a66f09f21fba56ec30982000cd722c2b9a428.tar.lz
nixlib-6e5a66f09f21fba56ec30982000cd722c2b9a428.tar.xz
nixlib-6e5a66f09f21fba56ec30982000cd722c2b9a428.tar.zst
nixlib-6e5a66f09f21fba56ec30982000cd722c2b9a428.zip
Merge pull request #56225 from dotlambda/esphome-1.11.0
esphome: 1.10.1 -> 1.11.1
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/home-assistant/dont-import-platformio-esptool.patch119
-rw-r--r--pkgs/servers/home-assistant/esphome.nix32
2 files changed, 15 insertions, 136 deletions
diff --git a/pkgs/servers/home-assistant/dont-import-platformio-esptool.patch b/pkgs/servers/home-assistant/dont-import-platformio-esptool.patch
deleted file mode 100644
index 219187644360..000000000000
--- a/pkgs/servers/home-assistant/dont-import-platformio-esptool.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-diff --git a/esphomeyaml/__main__.py b/esphomeyaml/__main__.py
-index 26f42c1..529d2e0 100644
---- a/esphomeyaml/__main__.py
-+++ b/esphomeyaml/__main__.py
-@@ -167,13 +167,10 @@ def compile_program(args, config):
- 
- 
- def upload_using_esptool(config, port):
--    import esptool
--
-     path = os.path.join(CORE.build_path, '.pioenvs', CORE.name, 'firmware.bin')
--    cmd = ['esptool.py', '--before', 'default_reset', '--after', 'hard_reset',
-+    cmd = ['@esptool@/bin/esptool.py', '--before', 'default_reset', '--after', 'hard_reset',
-            '--chip', 'esp8266', '--port', port, 'write_flash', '0x0', path]
--    # pylint: disable=protected-access
--    return run_external_command(esptool._main, *cmd)
-+    return run_external_command(*cmd)
- 
- 
- def upload_program(config, args, host):
-diff --git a/esphomeyaml/platformio_api.py b/esphomeyaml/platformio_api.py
-index df29491..f991701 100644
---- a/esphomeyaml/platformio_api.py
-+++ b/esphomeyaml/platformio_api.py
-@@ -13,12 +13,9 @@ _LOGGER = logging.getLogger(__name__)
- 
- 
- def run_platformio_cli(*args, **kwargs):
--    import platformio.__main__
--
-     os.environ["PLATFORMIO_FORCE_COLOR"] = "true"
--    cmd = ['platformio'] + list(args)
--    return run_external_command(platformio.__main__.main,
--                                *cmd, **kwargs)
-+    cmd = ['@platformio@/bin/platformio'] + list(args)
-+    return run_external_command(*cmd, **kwargs)
- 
- 
- def run_platformio_cli_run(config, verbose, *args, **kwargs):
-diff --git a/esphomeyaml/util.py b/esphomeyaml/util.py
-index eebb4b7..9e9e58f 100644
---- a/esphomeyaml/util.py
-+++ b/esphomeyaml/util.py
-@@ -4,6 +4,7 @@ import io
- import logging
- import re
- import sys
-+import subprocess
- 
- _LOGGER = logging.getLogger(__name__)
- 
-@@ -79,42 +80,25 @@ class RedirectText(object):
-         return True
- 
- 
--def run_external_command(func, *cmd, **kwargs):
--    def mock_exit(return_code):
--        raise SystemExit(return_code)
--
--    orig_argv = sys.argv
--    orig_exit = sys.exit  # mock sys.exit
-+def run_external_command(*cmd, **kwargs):
-     full_cmd = u' '.join(shlex_quote(x) for x in cmd)
-     _LOGGER.info(u"Running:  %s", full_cmd)
- 
--    orig_stdout = sys.stdout
--    sys.stdout = RedirectText(sys.stdout)
--    orig_stderr = sys.stderr
--    sys.stderr = RedirectText(sys.stderr)
--
-     capture_stdout = kwargs.get('capture_stdout', False)
-     if capture_stdout:
--        cap_stdout = sys.stdout = io.BytesIO()
-+        cap_stdout = io.BytesIO()
-+    else:
-+        cap_stdout = sys.stdout
- 
-     try:
--        sys.argv = list(cmd)
--        sys.exit = mock_exit
--        return func() or 0
--    except KeyboardInterrupt:
--        return 1
--    except SystemExit as err:
--        return err.args[0]
-+        completed_process = subprocess.run(cmd,
-+                                           stdout=RedirectText(cap_stdout),
-+                                           stderr=RedirectText(sys.stderr))
-+        return completed_process.returncode
-     except Exception as err:  # pylint: disable=broad-except
-         _LOGGER.error(u"Running command failed: %s", err)
-         _LOGGER.error(u"Please try running %s locally.", full_cmd)
-     finally:
--        sys.argv = orig_argv
--        sys.exit = orig_exit
--
--        sys.stdout = orig_stdout
--        sys.stderr = orig_stderr
--
-         if capture_stdout:
-             # pylint: disable=lost-exception
-             return cap_stdout.getvalue()
-diff --git a/setup.py b/setup.py
-index 78a5378..8ce80de 100755
---- a/setup.py
-+++ b/setup.py
-@@ -23,12 +23,10 @@ DOWNLOAD_URL = '{}/archive/{}.zip'.format(GITHUB_URL, const.__version__)
- 
- REQUIRES = [
-     'voluptuous>=0.11.1',
--    'platformio>=3.5.3',
-     'pyyaml>=3.12',
-     'paho-mqtt>=1.3.1',
-     'colorlog>=3.1.2',
-     'tornado>=5.0.0',
--    'esptool>=2.3.1',
-     'typing>=3.0.0',
-     'protobuf>=3.4',
-     'tzlocal>=1.4',
diff --git a/pkgs/servers/home-assistant/esphome.nix b/pkgs/servers/home-assistant/esphome.nix
index e089c83239b4..2e0b4abc9391 100644
--- a/pkgs/servers/home-assistant/esphome.nix
+++ b/pkgs/servers/home-assistant/esphome.nix
@@ -1,29 +1,27 @@
-{ lib, python3, fetchpatch, substituteAll, platformio, esptool }:
+{ lib, python3, fetchpatch, platformio, esptool, git }:
 
 python3.pkgs.buildPythonApplication rec {
-  pname = "esphomeyaml";
-  version = "1.10.1";
+  pname = "esphome";
+  version = "1.11.1";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "426cd545b4e9505ce5b4f5c63d2d54cb038f93fe3ba9d4d56b6b6431b222485d";
+    sha256 = "1764q4wyl8qlk2514gikv8178c8fwhhvbw64zkd76nb107hxzrk5";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./dont-import-platformio-esptool.patch;
-      inherit platformio esptool;
-    })
-  ];
-
-  postPatch = ''
-     # typing is part of the standard library since Python 3.5
-     substituteInPlace setup.py --replace "'typing>=3.0.0'," ""
-  '';
+  ESPHOME_USE_SUBPROCESS = "";
 
   propagatedBuildInputs = with python3.pkgs; [
     voluptuous pyyaml paho-mqtt colorlog
-    tornado protobuf tzlocal pyserial
+    tornado protobuf tzlocal pyserial ifaddr
+  ];
+
+  makeWrapperArgs = [
+    # platformio is used in esphomeyaml/platformio_api.py
+    # esptool is used in esphomeyaml/__main__.py
+    # git is used in esphomeyaml/writer.py
+    "--prefix PATH : ${lib.makeBinPath [ platformio esptool git ]}"
+    "--set ESPHOME_USE_SUBPROCESS ''"
   ];
 
   checkPhase = ''
@@ -36,7 +34,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Make creating custom firmwares for ESP32/ESP8266 super easy";
-    homepage = https://esphomelib.com/esphomeyaml;
+    homepage = https://esphome.io/;
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };