From 891e4ff673454031f11fc4d0037ae65daeaa8522 Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Sun, 9 Dec 2018 16:18:34 +0100 Subject: [PATCH 01/49] glu: don't use valgrind on darwin (cherry picked from commit e32d1eaef16020ec22e3b0cd3be9261d5cf8bc89) --- pkgs/development/libraries/mesa/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index faf1261da4a5..ede4dd889e58 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -146,10 +146,10 @@ let self = stdenv.mkDerivation { glproto dri2proto dri3proto presentproto libX11 libXext libxcb libXt libXfixes libxshmfence libXrandr libffi libvdpau libelf libXvMC - libpthreadstubs openssl/*or another sha1 provider*/ - valgrind-light python2 python2.pkgs.Mako + libpthreadstubs openssl /*or another sha1 provider*/ + python2 python2.pkgs.Mako ] ++ lib.optionals (elem "wayland" eglPlatforms) [ wayland wayland-protocols ] - ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ]; + ++ lib.optionals stdenv.isLinux [ valgrind-light libomxil-bellagio libva-minimal ]; enableParallelBuilding = true; doCheck = false; From 22fe087da80f27db7b97aebfcb9bf430beea3a2f Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 10 Dec 2018 17:25:35 -0600 Subject: [PATCH 02/49] simavr: work on macOS --- pkgs/development/tools/simavr/default.nix | 29 ++++++++++++----------- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/pkgs/development/tools/simavr/default.nix b/pkgs/development/tools/simavr/default.nix index e28aad40ef47..f2bbbef71896 100644 --- a/pkgs/development/tools/simavr/default.nix +++ b/pkgs/development/tools/simavr/default.nix @@ -1,6 +1,7 @@ { stdenv, fetchFromGitHub, libelf, which, git, pkgconfig, freeglut , avrbinutils, avrgcc, avrlibc -, libGLU_combined }: +, libGLU_combined +, GLUT }: stdenv.mkDerivation rec { name = "simavr-${version}"; @@ -13,29 +14,29 @@ stdenv.mkDerivation rec { sha256 = "0b2lh6l2niv80dmbm9xkamvnivkbmqw6v97sy29afalrwfxylxla"; }; - # ld: cannot find -lsimavr - enableParallelBuilding = false; - - buildFlags = "AVR_ROOT=${avrlibc}/avr SIMAVR_VERSION=${version}"; - installFlags = buildFlags + " DESTDIR=$(out)"; + makeFlags = [ + "DESTDIR=$(out)" + "PREFIX=" + "AVR_ROOT=${avrlibc}/avr" + "SIMAVR_VERSION=${version}" + "AVR=avr-" + ]; + nativeBuildInputs = [ which pkgconfig avrgcc ]; + buildInputs = [ libelf freeglut libGLU_combined ] + ++ stdenv.lib.optional stdenv.isDarwin GLUT; # Hack to avoid TMPDIR in RPATHs. preFixup = ''rm -rf "$(pwd)" && mkdir "$(pwd)" ''; - postFixup = '' - target="$out/bin/simavr" - patchelf --set-rpath "$(patchelf --print-rpath "$target"):$out/lib" "$target" - ''; - - nativeBuildInputs = [ which git pkgconfig avrgcc avrbinutils ]; - buildInputs = [ libelf freeglut libGLU_combined ]; + doCheck = true; + checkTarget = "-C tests run_tests"; meta = with stdenv.lib; { description = "A lean and mean Atmel AVR simulator"; homepage = https://github.com/buserror/simavr; license = licenses.gpl3; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = with maintainers; [ goodrone ]; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ee3e96637567..0172cd82699f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12365,6 +12365,7 @@ in avrgcc = pkgsCross.avr.buildPackages.gcc; avrbinutils = pkgsCross.avr.buildPackages.binutils; avrlibc = pkgsCross.avr.libcCross; + inherit (darwin.apple_sdk.frameworks) GLUT; }; simgear = callPackage ../development/libraries/simgear { openscenegraph = openscenegraph_3_4; }; From 33e7d721b6400aefacf1e138380836accc376229 Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Sun, 31 Mar 2019 11:59:16 +0200 Subject: [PATCH 03/49] gnutls: remove 3.5.10 Nix packages are expected to honor NIX_SSL_CERT_FILE and this removes the dependency on the framework while bootstrapping the stdenv. (+ nitpick changes from vcunat) The patch is based on https://gitlab.com/gnutls/gnutls/commit/c0eb46d3463cd21b3f822ac377ff37f067f66b8d --- pkgs/development/libraries/gnutls/3.5.10.nix | 10 -- pkgs/development/libraries/gnutls/3.6.nix | 22 --- .../gnutls/{generic.nix => default.nix} | 51 ++++--- .../gnutls/no-security-framework.patch | 126 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 10 +- 5 files changed, 164 insertions(+), 55 deletions(-) delete mode 100644 pkgs/development/libraries/gnutls/3.5.10.nix delete mode 100644 pkgs/development/libraries/gnutls/3.6.nix rename pkgs/development/libraries/gnutls/{generic.nix => default.nix} (62%) create mode 100644 pkgs/development/libraries/gnutls/no-security-framework.patch diff --git a/pkgs/development/libraries/gnutls/3.5.10.nix b/pkgs/development/libraries/gnutls/3.5.10.nix deleted file mode 100644 index a44e2b04ed71..000000000000 --- a/pkgs/development/libraries/gnutls/3.5.10.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ callPackage, fetchurl, libunistring, ... } @ args: - -callPackage ./generic.nix (args // rec { - version = "3.5.10"; - - src = fetchurl { - url = "mirror://gnupg/gnutls/v3.5/gnutls-${version}.tar.xz"; - sha256 = "17apwvdkkazh5w8z8mbanpj2yj8s2002qwy46wz4v3akpa33wi5g"; - }; -}) diff --git a/pkgs/development/libraries/gnutls/3.6.nix b/pkgs/development/libraries/gnutls/3.6.nix deleted file mode 100644 index b05624ee0b28..000000000000 --- a/pkgs/development/libraries/gnutls/3.6.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ callPackage, fetchurl, ... } @ args: - -callPackage ./generic.nix (args // rec { - version = "3.6.7"; - - src = fetchurl { - url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz"; - sha256 = "1ql8l6l5bxks2pgpwb1602zc0j6ivhpy27hdfc49h8xgbanhjd2v"; - }; - - # Skip some tests: - # - pkgconfig: building against the result won't work before installing (3.5.11) - # - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular) - # - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11) - # - psk-file: no idea; it broke between 3.6.3 and 3.6.4 - # Change p11-kit test to use pkg-config to find p11-kit - postPatch = '' - sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh - sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c - sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh - ''; -}) diff --git a/pkgs/development/libraries/gnutls/generic.nix b/pkgs/development/libraries/gnutls/default.nix similarity index 62% rename from pkgs/development/libraries/gnutls/generic.nix rename to pkgs/development/libraries/gnutls/default.nix index 086c0560cc44..b0ddbbee30c5 100644 --- a/pkgs/development/libraries/gnutls/generic.nix +++ b/pkgs/development/libraries/gnutls/default.nix @@ -1,33 +1,51 @@ -{ config, lib, stdenv, zlib, lzo, libtasn1, nettle, pkgconfig, lzip -, perl, gmp, autogen, libidn, p11-kit, libiconv +{ config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkgconfig, lzip +, perl, gmp, autoconf, autogen, automake, libidn, p11-kit, libiconv +, unbound, dns-root-data, gettext , guileBindings ? config.gnutls.guile or false, guile , tpmSupport ? false, trousers, which, nettools, libunistring -, unbound, dns-root-data, gettext - -# Version dependent args -, version, src, patches ? [], postPatch ? "", nativeBuildInputs ? [] -, buildInputs ? [] -, ...}: +, withSecurity ? false, Security # darwin Security.framework +}: assert guileBindings -> guile != null; let + version = "3.6.7"; + # XXX: Gnulib's `test-select' fails on FreeBSD: # http://hydra.nixos.org/build/2962084/nixlog/1/raw . doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin && lib.versionAtLeast version "3.4" && stdenv.buildPlatform == stdenv.hostPlatform; + + inherit (stdenv.hostPlatform) isDarwin; in + stdenv.mkDerivation { name = "gnutls-${version}"; + inherit version; - inherit src patches; + src = fetchurl { + url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz"; + sha256 = "1ql8l6l5bxks2pgpwb1602zc0j6ivhpy27hdfc49h8xgbanhjd2v"; + }; outputs = [ "bin" "dev" "out" "man" "devdoc" ]; outputInfo = "devdoc"; + # Disable native add_system_trust. + patches = lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch; + + # Skip some tests: + # - pkgconfig: building against the result won't work before installing (3.5.11) + # - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular) + # - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11) + # - psk-file: no idea; it broke between 3.6.3 and 3.6.4 + # Change p11-kit test to use pkg-config to find p11-kit postPatch = lib.optionalString (lib.versionAtLeast version "3.4") '' - sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' \ - -i tests/cert-tests/name-constraints - '' + postPatch; + sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' -i tests/cert-tests/name-constraints + '' + lib.optionalString (lib.versionAtLeast version "3.6") '' + sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh + sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c + sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh + ''; preConfigure = "patchShebangs ."; configureFlags = @@ -42,11 +60,12 @@ stdenv.mkDerivation { enableParallelBuilding = true; buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp autogen libunistring unbound gettext libiconv ] + ++ lib.optional (isDarwin && withSecurity) Security ++ lib.optional (tpmSupport && stdenv.isLinux) trousers - ++ lib.optional guileBindings guile - ++ buildInputs; + ++ lib.optional guileBindings guile; - nativeBuildInputs = [ perl pkgconfig ] ++ nativeBuildInputs + nativeBuildInputs = [ perl pkgconfig ] + ++ lib.optionals (isDarwin && !withSecurity) [ autoconf automake ] ++ lib.optionals doCheck [ which nettools ]; propagatedBuildInputs = [ nettle ]; @@ -54,7 +73,7 @@ stdenv.mkDerivation { inherit doCheck; # Fixup broken libtool and pkgconfig files - preFixup = lib.optionalString (!stdenv.isDarwin) '' + preFixup = lib.optionalString (!isDarwin) '' sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \ -e 's,-lz,-L${zlib.out}/lib -lz,' \ -e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \ diff --git a/pkgs/development/libraries/gnutls/no-security-framework.patch b/pkgs/development/libraries/gnutls/no-security-framework.patch new file mode 100644 index 000000000000..7f5808e50535 --- /dev/null +++ b/pkgs/development/libraries/gnutls/no-security-framework.patch @@ -0,0 +1,126 @@ +commit 9bcdde1ab9cdff6a4471f9a926dd488ab70c7247 +Author: Daiderd Jordan +Date: Mon Apr 22 16:38:27 2019 +0200 + + Revert "gnutls_x509_trust_list_add_system_trust: Add macOS keychain support" + + This reverts commit c0eb46d3463cd21b3f822ac377ff37f067f66b8d. + +diff --git a/configure.ac b/configure.ac +index 8ad597bfd..8d14f26cd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -781,7 +781,7 @@ dnl auto detect https://lists.gnu.org/archive/html/help-gnutls/2012-05/msg00004. + AC_ARG_WITH([default-trust-store-file], + [AS_HELP_STRING([--with-default-trust-store-file=FILE], + [use the given file default trust store])], with_default_trust_store_file="$withval", +- [if test "$build" = "$host" && test x$with_default_trust_store_pkcs11 = x && test x$with_default_trust_store_dir = x && test x$have_macosx = x;then ++ [if test "$build" = "$host" && test x$with_default_trust_store_pkcs11 = x && test x$with_default_trust_store_dir = x;then + for i in \ + /etc/ssl/ca-bundle.pem \ + /etc/ssl/certs/ca-certificates.crt \ +diff --git a/lib/Makefile.am b/lib/Makefile.am +index fe9cf63a2..745695f7e 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -203,10 +203,6 @@ if WINDOWS + thirdparty_libadd += -lcrypt32 + endif + +-if MACOSX +-libgnutls_la_LDFLAGS += -framework Security -framework CoreFoundation +-endif +- + libgnutls_la_LIBADD += $(thirdparty_libadd) + + # C++ library +diff --git a/lib/system/certs.c b/lib/system/certs.c +index 611c645e0..912b0aa5e 100644 +--- a/lib/system/certs.c ++++ b/lib/system/certs.c +@@ -44,12 +44,6 @@ + # endif + #endif + +-#ifdef __APPLE__ +-# include +-# include +-# include +-#endif +- + /* System specific function wrappers for certificate stores. + */ + +@@ -276,72 +270,6 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags, + + return r; + } +-#elif defined(__APPLE__) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 +-static +-int osstatus_error(status) +-{ +- CFStringRef err_str = SecCopyErrorMessageString(status, NULL); +- _gnutls_debug_log("Error loading system root certificates: %s\n", +- CFStringGetCStringPtr(err_str, kCFStringEncodingUTF8)); +- CFRelease(err_str); +- return GNUTLS_E_FILE_ERROR; +-} +- +-static +-int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags, +- unsigned int tl_vflags) +-{ +- int r=0; +- +- SecTrustSettingsDomain domain[] = { kSecTrustSettingsDomainUser, +- kSecTrustSettingsDomainAdmin, +- kSecTrustSettingsDomainSystem }; +- for (size_t d=0; d 0) +- r++; +- CFRelease(der); +- } +- CFRelease(certs); +- } +- +-#ifdef DEFAULT_BLACKLIST_FILE +- ret = gnutls_x509_trust_list_remove_trust_file(list, DEFAULT_BLACKLIST_FILE, GNUTLS_X509_FMT_PEM); +- if (ret < 0) { +- _gnutls_debug_log("Could not load blacklist file '%s'\n", DEFAULT_BLACKLIST_FILE); +- } +-#endif +- +- return r; +-} + #else + + #define add_system_trust(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1a9a1c54b3a5..14f8a1a0362c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10402,13 +10402,9 @@ in then callPackage ../development/libraries/gnu-efi { } else null; - gnutls = callPackage - (if stdenv.isDarwin - # Avoid > 3.5.10 due to frameworks for now; see discussion on: - # https://github.com/NixOS/nixpkgs/commit/d6454e6a1 - then ../development/libraries/gnutls/3.5.10.nix - else ../development/libraries/gnutls/3.6.nix) - { }; + gnutls = callPackage ../development/libraries/gnutls/default.nix { + inherit (darwin.apple_sdk.frameworks) Security; + }; gnutls-kdh = callPackage ../development/libraries/gnutls-kdh/3.5.nix { gperf = gperf_3_0; From 39c2b6452c02ac7d3b187fc18255ad1a7d1e9e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 22 Apr 2019 10:49:11 +0200 Subject: [PATCH 04/49] gnutls: respect NIX_SSL_CERT_FILE, same as our openssl The patch should work fine, regardless of the Darwin patch being applied. --- pkgs/development/libraries/gnutls/default.nix | 5 +++-- .../libraries/gnutls/nix-ssl-cert-file.patch | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix index b0ddbbee30c5..8a92390ca302 100644 --- a/pkgs/development/libraries/gnutls/default.nix +++ b/pkgs/development/libraries/gnutls/default.nix @@ -30,8 +30,9 @@ stdenv.mkDerivation { outputs = [ "bin" "dev" "out" "man" "devdoc" ]; outputInfo = "devdoc"; - # Disable native add_system_trust. - patches = lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch; + patches = [ ./nix-ssl-cert-file.patch ] + # Disable native add_system_trust. + ++ lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch; # Skip some tests: # - pkgconfig: building against the result won't work before installing (3.5.11) diff --git a/pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch b/pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch new file mode 100644 index 000000000000..90d1e85ee8c0 --- /dev/null +++ b/pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch @@ -0,0 +1,19 @@ +allow overriding system trust store location via $NIX_SSL_CERT_FILE + +diff --git a/lib/system/certs.c b/lib/system/certs.c +index 611c645..6ef6edb 100644 +--- a/lib/system/certs.c ++++ b/lib/system/certs.c +@@ -369,6 +369,11 @@ gnutls_x509_trust_list_add_system_trust(gnutls_x509_trust_list_t list, + unsigned int tl_flags, + unsigned int tl_vflags) + { +- return add_system_trust(list, tl_flags|GNUTLS_TL_NO_DUPLICATES, tl_vflags); ++ tl_flags = tl_flags|GNUTLS_TL_NO_DUPLICATES; ++ const char *file = secure_getenv("NIX_SSL_CERT_FILE"); ++ return file ++ ? gnutls_x509_trust_list_add_trust_file( ++ list, file, NULL/*CRL*/, GNUTLS_X509_FMT_PEM, tl_flags, tl_vflags) ++ : add_system_trust(list, tl_flags, tl_vflags); + } + From bb4fef149914f26ccc65b9b39e584959a05bfc76 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 28 Apr 2019 12:30:52 +0000 Subject: [PATCH 05/49] ruby: use stdenv derivation for patching RubyGems Rather than rolling our own. This means that we can use all of the extra functionality stdenv gives us, like being able to provide a list of patches rather than just one. --- .../development/interpreters/ruby/default.nix | 31 +++++-------------- .../interpreters/ruby/rubygems-src.nix | 8 ----- .../interpreters/ruby/rubygems.nix | 31 +++++++++++++++++++ 3 files changed, 38 insertions(+), 32 deletions(-) delete mode 100644 pkgs/development/interpreters/ruby/rubygems-src.nix create mode 100644 pkgs/development/interpreters/ruby/rubygems.nix diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index ed2bf99d197c..36bd8336269b 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -11,14 +11,7 @@ let opString = lib.optionalString; patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; config = import ./config.nix { inherit fetchFromSavannah; }; - rubygemsSrc = import ./rubygems-src.nix { inherit fetchurl; }; - rubygemsPatch = fetchpatch { - url = "https://github.com/zimbatm/rubygems/compare/v2.6.6...v2.6.6-nix.patch"; - sha256 = "0297rdb1m6v75q8665ry9id1s74p9305dv32l95ssf198liaihhd"; - }; - unpackdir = obj: - lib.removeSuffix ".tgz" - (lib.removeSuffix ".tar.gz" obj.name); + rubygems = import ./rubygems.nix { inherit stdenv lib fetchurl fetchpatch; }; # Contains the ruby version heuristics rubyVersion = import ./ruby-version.nix { inherit lib; }; @@ -49,8 +42,10 @@ let , buildEnv, bundler, bundix , libiconv, libobjc, libunwind, Foundation }: - let rubySrc = - if useRailsExpress then fetchFromGitHub { + stdenv.mkDerivation rec { + name = "ruby-${version}"; + + src = if useRailsExpress then fetchFromGitHub { owner = "ruby"; repo = "ruby"; rev = tag; @@ -59,16 +54,6 @@ let url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz"; sha256 = sha256.src; }; - in - stdenv.mkDerivation rec { - name = "ruby-${version}"; - - srcs = [ rubySrc rubygemsSrc ]; - sourceRoot = - if useRailsExpress then - rubySrc.name - else - unpackdir rubySrc; # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. NROFF = if docSupport then "${groff}/bin/nroff" else null; @@ -100,10 +85,7 @@ let })."${ver.majMinTiny}"; postUnpack = '' - cp -r ${unpackdir rubygemsSrc} ${sourceRoot}/rubygems - pushd ${sourceRoot}/rubygems - patch -p1 < ${rubygemsPatch} - popd + cp -r ${rubygems} $sourceRoot/rubygems ''; postPatch = if atLeast25 then '' @@ -146,6 +128,7 @@ let postInstall = '' # Update rubygems pushd rubygems + chmod +w bundler/bundler.gemspec ${buildRuby} setup.rb --destdir $GEM_HOME popd diff --git a/pkgs/development/interpreters/ruby/rubygems-src.nix b/pkgs/development/interpreters/ruby/rubygems-src.nix deleted file mode 100644 index 4e5793f11139..000000000000 --- a/pkgs/development/interpreters/ruby/rubygems-src.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ fetchurl -, version ? "2.7.7" -, sha256 ? "1jsmmd31j8j066b83lin4bbqz19jhrirarzb41f3sjhfdjiwkcjc" -}: -fetchurl { - url = "https://rubygems.org/rubygems/rubygems-${version}.tgz"; - sha256 = sha256; -} diff --git a/pkgs/development/interpreters/ruby/rubygems.nix b/pkgs/development/interpreters/ruby/rubygems.nix new file mode 100644 index 000000000000..6b9eff718c79 --- /dev/null +++ b/pkgs/development/interpreters/ruby/rubygems.nix @@ -0,0 +1,31 @@ +{ stdenv, lib, fetchurl, fetchpatch }: + +stdenv.mkDerivation rec { + name = "rubygems"; + version = "2.7.7"; + + src = fetchurl { + url = "https://rubygems.org/rubygems/rubygems-${version}.tgz"; + sha256 = "1jsmmd31j8j066b83lin4bbqz19jhrirarzb41f3sjhfdjiwkcjc"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/zimbatm/rubygems/compare/v2.6.6...v2.6.6-nix.patch"; + sha256 = "0297rdb1m6v75q8665ry9id1s74p9305dv32l95ssf198liaihhd"; + }) + ]; + + installPhase = '' + runHook preInstall + cp -r . $out + runHook postInstall + ''; + + meta = with lib; { + description = "Package management framework for Ruby"; + homepage = https://rubygems.org/; + license = with licenses; [ mit /* or */ ruby ]; + maintainers = with maintainers; [ qyliss zimbatm ]; + }; +} From 0ffedefb15d3eacbdef3619bd833a78d6d01588f Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 28 Apr 2019 16:36:16 +0000 Subject: [PATCH 06/49] ruby: rubygems 2.7.7 -> 3.0.3 I think it makes more sense to keep the patches in-tree than on zimbatm's RubyGems fork. --- .../development/interpreters/ruby/default.nix | 2 +- .../rubygems/0001-add-post-extract-hook.patch | 34 +++++++++++++++++++ .../0002-binaries-with-env-shebang.patch | 28 +++++++++++++++ .../0003-gem-install-default-to-user.patch | 26 ++++++++++++++ .../{rubygems.nix => rubygems/default.nix} | 11 +++--- 5 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch create mode 100644 pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch create mode 100644 pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch rename pkgs/development/interpreters/ruby/{rubygems.nix => rubygems/default.nix} (65%) diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index 36bd8336269b..6f333e13c2b2 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -11,7 +11,7 @@ let opString = lib.optionalString; patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; config = import ./config.nix { inherit fetchFromSavannah; }; - rubygems = import ./rubygems.nix { inherit stdenv lib fetchurl fetchpatch; }; + rubygems = import ./rubygems { inherit stdenv lib fetchurl fetchpatch; }; # Contains the ruby version heuristics rubyVersion = import ./ruby-version.nix { inherit lib; }; diff --git a/pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch b/pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch new file mode 100644 index 000000000000..84d1d52409e5 --- /dev/null +++ b/pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch @@ -0,0 +1,34 @@ +From a6485cfcdf51ff8be452980f93cebfea97f34dec Mon Sep 17 00:00:00 2001 +From: zimbatm +Date: Wed, 21 Sep 2016 09:32:34 +0100 +Subject: [PATCH 1/3] add post-extract hook + +Allows nix to execute scripts just after the gem extraction +--- + lib/rubygems/installer.rb | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb +index d26b1e88..bf18fb7f 100644 +--- a/lib/rubygems/installer.rb ++++ b/lib/rubygems/installer.rb +@@ -848,7 +848,15 @@ TEXT + # Ensures that files can't be installed outside the gem directory. + + def extract_files +- @package.extract_files gem_dir ++ ret = @package.extract_files gem_dir ++ if ENV['NIX_POST_EXTRACT_FILES_HOOK'] ++ puts ++ puts "running NIX_POST_EXTRACT_FILES_HOOK #{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{gem_dir}" ++ system(ENV['NIX_POST_EXTRACT_FILES_HOOK'], gem_dir.to_s) ++ puts "running NIX_POST_EXTRACT_FILES_HOOK done" ++ puts ++ end ++ ret + end + + ## +-- +2.21.0 + diff --git a/pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch b/pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch new file mode 100644 index 000000000000..d6eba67e1065 --- /dev/null +++ b/pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch @@ -0,0 +1,28 @@ +From 2e1328bcdddd35e557eabdff83ac07f3591dc693 Mon Sep 17 00:00:00 2001 +From: zimbatm +Date: Wed, 21 Sep 2016 19:37:05 +0100 +Subject: [PATCH 2/3] binaries with env shebang + +By default, don't point to the absolute ruby derivation path. As a user +installing a gem in the home, it would freeze the selected ruby version +to the currently-installed ruby derivation. +--- + lib/rubygems/dependency_installer.rb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb +index 34620860..00ab31d9 100644 +--- a/lib/rubygems/dependency_installer.rb ++++ b/lib/rubygems/dependency_installer.rb +@@ -18,7 +18,7 @@ class Gem::DependencyInstaller + extend Gem::Deprecate + + DEFAULT_OPTIONS = { # :nodoc: +- :env_shebang => false, ++ :env_shebang => true, + :document => %w[ri], + :domain => :both, # HACK dup + :force => false, +-- +2.21.0 + diff --git a/pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch b/pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch new file mode 100644 index 000000000000..138d432c8203 --- /dev/null +++ b/pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch @@ -0,0 +1,26 @@ +From d69249d0ff210316121b44d971ddd2439b1bc393 Mon Sep 17 00:00:00 2001 +From: zimbatm +Date: Wed, 21 Sep 2016 09:40:39 +0100 +Subject: [PATCH 3/3] gem install default to user + +Default to not installing gems to the read-only system derivation. +--- + lib/rubygems/path_support.rb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/rubygems/path_support.rb b/lib/rubygems/path_support.rb +index ed680d65..749b9ea6 100644 +--- a/lib/rubygems/path_support.rb ++++ b/lib/rubygems/path_support.rb +@@ -23,7 +23,7 @@ class Gem::PathSupport + # hashtable, or defaults to ENV, the system environment. + # + def initialize(env) +- @home = env["GEM_HOME"] || Gem.default_dir ++ @home = env["GEM_HOME"] || Gem.user_dir + + if File::ALT_SEPARATOR + @home = @home.gsub(File::ALT_SEPARATOR, File::SEPARATOR) +-- +2.21.0 + diff --git a/pkgs/development/interpreters/ruby/rubygems.nix b/pkgs/development/interpreters/ruby/rubygems/default.nix similarity index 65% rename from pkgs/development/interpreters/ruby/rubygems.nix rename to pkgs/development/interpreters/ruby/rubygems/default.nix index 6b9eff718c79..db28cbe28fae 100644 --- a/pkgs/development/interpreters/ruby/rubygems.nix +++ b/pkgs/development/interpreters/ruby/rubygems/default.nix @@ -2,18 +2,17 @@ stdenv.mkDerivation rec { name = "rubygems"; - version = "2.7.7"; + version = "3.0.3"; src = fetchurl { url = "https://rubygems.org/rubygems/rubygems-${version}.tgz"; - sha256 = "1jsmmd31j8j066b83lin4bbqz19jhrirarzb41f3sjhfdjiwkcjc"; + sha256 = "0b6b9ads8522804xv8b8498gqwsv4qawv13f81kyc7g966y7lfmy"; }; patches = [ - (fetchpatch { - url = "https://github.com/zimbatm/rubygems/compare/v2.6.6...v2.6.6-nix.patch"; - sha256 = "0297rdb1m6v75q8665ry9id1s74p9305dv32l95ssf198liaihhd"; - }) + ./0001-add-post-extract-hook.patch + ./0002-binaries-with-env-shebang.patch + ./0003-gem-install-default-to-user.patch ]; installPhase = '' From 013ddbebb1dd25368b30849547baf79fbe2cd15e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Fri, 26 Apr 2019 15:53:13 +0200 Subject: [PATCH 07/49] =?UTF-8?q?docbook-xsl-nons:=201.79.1=20=E2=86=92=20?= =?UTF-8?q?1.79.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nothing much changed other than adding the suffix -nons to Docbook 4 styles, making the Docbook 5 the variant without suffix: https://github.com/docbook/xslt10-stylesheets/releases/tag/release%2F1.79.2 I have decided to make docbook_xsl an alias of docbook-xsl-nons for now, to avoid confusion. I also updated patch link that was broken to a newer version of the patch and started sharing it between the two packages. --- .../docbook-xsl/catalog-legacy-uris.patch | 10 ++ .../stylesheets/xslt/docbook-xsl/default.nix | 101 ++++++++++-------- .../docbook-xsl/docbook-xsl-ns-infinite.patch | 30 ------ pkgs/top-level/all-packages.nix | 8 +- 4 files changed, 72 insertions(+), 77 deletions(-) create mode 100644 pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch delete mode 100644 pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch diff --git a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch new file mode 100644 index 000000000000..72922eee96c4 --- /dev/null +++ b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch @@ -0,0 +1,10 @@ +--- a/catalog.xml ++++ b/catalog.xml +@@ -5,4 +5,7 @@ + + + ++ ++ ++ + diff --git a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix index ef7b1f93d74e..5297d5dbd5dc 100644 --- a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix +++ b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix @@ -1,66 +1,77 @@ -{ lib, stdenv, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }: +{ lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }: let - common = { pname, sha256, patches ? [] }: let self = stdenv.mkDerivation rec { - name = "${pname}-1.79.1"; + common = { pname, sha256, suffix ? "" }: let + legacySuffix = if suffix == "-nons" then "" else "-ns"; + self = stdenv.mkDerivation rec { + inherit pname; + version = "1.79.2"; - src = fetchurl { - url = "mirror://sourceforge/docbook/${name}.tar.bz2"; - inherit sha256; - }; + src = fetchurl { + url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${version}/docbook-xsl${suffix}-${version}.tar.bz2"; + inherit sha256; + }; - inherit patches; + patches = [ + # Prevent a potential stack overflow + # https://github.com/docbook/xslt10-stylesheets/pull/37 + (fetchpatch { + url = https://src.fedoraproject.org/rpms/docbook-style-xsl/raw/e3ae7a97ed1d185594dd35954e1a02196afb205a/f/docbook-style-xsl-non-recursive-string-subst.patch; + sha256 = "0lrjjg5kpwwmbhkxzz6i5zmimb6lsvrrdhzc2qgjmb3r6jnsmii3"; + stripLen = "1"; + }) - propagatedBuildInputs = [ findXMLCatalogs ]; + # Add legacy sourceforge.net URIs to the catalog + (substituteAll { + src = ./catalog-legacy-uris.patch; + inherit legacySuffix suffix version; + }) + ]; - dontBuild = true; + propagatedBuildInputs = [ findXMLCatalogs ]; - installPhase = '' - dst=$out/share/xml/${pname} - mkdir -p $dst - rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh svn* tools log Makefile tests extensions webhelp - mv * $dst/ + dontBuild = true; - # Backwards compatibility. Will remove eventually. - mkdir -p $out/xml/xsl - ln -s $dst $out/xml/xsl/docbook - ''; + installPhase = '' + dst=$out/share/xml/${pname} + mkdir -p $dst + rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp + mv * $dst/ - passthru.dbtoepub = writeScriptBin "dbtoepub" - '' - #!${bash}/bin/bash - exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@" + # Backwards compatibility. Will remove eventually. + mkdir -p $out/xml/xsl + ln -s $dst $out/xml/xsl/docbook + + # More backwards compatibility + ln -s $dst $out/share/xml/docbook-xsl${legacySuffix} ''; - meta = { - homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets; - description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats"; - maintainers = [ lib.maintainers.eelco ]; - platforms = lib.platforms.all; + passthru.dbtoepub = writeScriptBin "dbtoepub" + '' + #!${bash}/bin/bash + exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@" + ''; + + meta = { + homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets; + description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats"; + maintainers = [ lib.maintainers.eelco ]; + platforms = lib.platforms.all; + }; }; - }; in self; + in self; in { - docbook_xsl = common { - pname = "docbook-xsl"; - sha256 = "0s59lihif2fr7rznckxr2kfyrvkirv76r1zvidp9b5mj28p4apvj"; - - patches = [(fetchpatch { - name = "potential-infinite-template-recursion.patch"; - url = "https://src.fedoraproject.org/cgit/rpms/docbook-style-xsl.git/" - + "plain/docbook-style-xsl-non-recursive-string-subst.patch?id=bf9e5d16fd"; - sha256 = "1pfb468bsj3j879ip0950waih0r1s6rzfbm2p70glbz0g3903p7h"; - stripLen = "1"; - })]; - + docbook-xsl-nons = common { + pname = "docbook-xsl-nons"; + suffix = "-nons"; + sha256 = "00i1hdyxim8jymv2dz68ix3wbs5w6isxm8ijb03qk3vs1g59x2zf"; }; - docbook_xsl_ns = common { + docbook-xsl-ns = common { pname = "docbook-xsl-ns"; - sha256 = "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin"; - - patches = [ ./docbook-xsl-ns-infinite.patch ]; + sha256 = "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i"; }; } diff --git a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch deleted file mode 100644 index 5729f9b43c80..000000000000 --- a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch +++ /dev/null @@ -1,30 +0,0 @@ -Description: Remove infinite recursion -Attribute: docbook5_xsl -Version: 1.79.1 -URL: https://github.com/NixOS/nixpkgs/issues/39090 -diff -ru a/lib/lib.xsl b/lib/lib.xsl ---- a/lib/lib.xsl 2015-12-26 15:15:37.000000000 -0800 -+++ b/lib/lib.xsl 2018-03-22 11:52:45.311949264 -0700 -@@ -11,8 +11,10 @@ - - ******************************************************************** --> - -+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" -+ xmlns:d="http://docbook.org/ns/docbook" -+ xmlns:str="http://exslt.org/strings" -+ version="1.0"> - - - -@@ -58,6 +61,9 @@ - - - -+ -+ -+ - - - diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c39fafb320e7..9e8e804a866c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15915,8 +15915,12 @@ in docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { }; inherit (callPackages ../data/sgml+xml/stylesheets/xslt/docbook-xsl { }) - docbook_xsl - docbook_xsl_ns; + docbook-xsl-nons + docbook-xsl-ns; + + # TODO: move this to aliases + docbook_xsl = docbook-xsl-nons; + docbook_xsl_ns = docbook-xsl-ns; documentation-highlighter = callPackage ../misc/documentation-highlighter { }; From e2e3f6b6a606a26e9bcb2e90b1abd61ef27797a7 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Mon, 16 Oct 2017 01:33:02 +0200 Subject: [PATCH 08/49] shadow: rely on propagated findXMLCatalogs hook shadow uses a copy of m4 from gtk-doc so we need to apply the same fix as in 407db7b0196417296677f2a4ef929bb092ec382b. Also patch it to use the correct DocBook version. --- pkgs/os-specific/linux/shadow/default.nix | 18 ++++++----- .../respect-xml-catalog-files-var.patch | 30 +++++++++++++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix index 8c778e72b704..6b808f0d6a63 100644 --- a/pkgs/os-specific/linux/shadow/default.nix +++ b/pkgs/os-specific/linux/shadow/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt, libxml2 -, docbook_xml_dtd_412, docbook_xsl, gnome-doc-utils, flex, bison +, docbook_xml_dtd_45, docbook_xsl, gnome-doc-utils, flex, bison , pam ? null, glibcCross ? null }: @@ -30,12 +30,21 @@ stdenv.mkDerivation rec { buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam; nativeBuildInputs = [autoreconfHook libxslt libxml2 - docbook_xml_dtd_412 docbook_xsl gnome-doc-utils flex bison + docbook_xml_dtd_45 docbook_xsl gnome-doc-utils flex bison ]; patches = [ ./keep-path.patch + # Obtain XML resources from XML catalog (patch adapted from gtk-doc) + ./respect-xml-catalog-files-var.patch dots_in_usernames + + # Check for correct DocBook version during configure + # https://github.com/shadow-maint/shadow/pull/162 + (fetchpatch { + url = "https://github.com/shadow-maint/shadow/commit/47797ca6654f79e3de854a6c69db2bdb0516db08.patch"; + sha256 = "1zn8f6fd26gj5sh60099xqc7mjwgbbkkic5xfigvxa4b90vm8fd7"; + }) ]; # The nix daemon often forbids even creating set[ug]id files. @@ -52,11 +61,6 @@ stdenv.mkDerivation rec { preConfigure = '' export ac_cv_func_setpgrp_void=yes export shadow_cv_logdir=/var/log - ( - head -n -1 "${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml" - tail -n +3 "${docbook_xsl}/share/xml/docbook-xsl/catalog.xml" - ) > xmlcatalog - configureFlags="$configureFlags --with-xml-catalog=$PWD/xmlcatalog "; ''; configureFlags = [ diff --git a/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch b/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch new file mode 100644 index 000000000000..7d922eae71fc --- /dev/null +++ b/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch @@ -0,0 +1,30 @@ +diff --git a/acinclude.m4 b/acinclude.m4 +index dd01f165..e23160ee 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -46,9 +46,21 @@ AC_DEFUN([JH_CHECK_XML_CATALOG], + ifelse([$3],,,[$3 + ])dnl + else +- AC_MSG_RESULT([not found]) +- ifelse([$4],, +- [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])], +- [$4]) ++ jh_check_xml_catalog_saved_ifs="$IFS" ++ IFS=' ' ++ for f in $XML_CATALOG_FILES; do ++ if [[ -f "$f" ]] && \ ++ AC_RUN_LOG([$XMLCATALOG --noout "$f" "$1" >&2]); then ++ jh_found_xmlcatalog=true ++ AC_MSG_RESULT([found]) ++ ifelse([$3],,,[$3]) ++ break ++ fi ++ done ++ IFS="$jh_check_xml_catalog_saved_ifs" ++ if ! $jh_found_xmlcatalog; then ++ AC_MSG_RESULT([not found]) ++ ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4]) ++ fi + fi + ]) From 86c0ca9cc24d469fd32f152eac9c208e64345b10 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 30 Apr 2019 18:17:22 -0400 Subject: [PATCH 09/49] vala_0_36: 0.36.18 -> 0.36.19 https://gitlab.gnome.org/GNOME/vala/raw/0.36/NEWS --- pkgs/development/compilers/vala/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index dfd40c92ecfa..a8c74f256ffb 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -102,9 +102,9 @@ let in rec { vala_0_36 = generic { - major = "0.36"; - minor = "18"; - sha256 = "0csb9skgy663y05kl813dsarzjbfcdsmx5fvz13p8gas3hycciq9"; + major = "0.36"; + minor = "19"; + sha256 = "05si2f4zjvq0q3wqfh1wxdq20jy1xqxq2skqh8vfh2jyp355lwar"; }; vala_0_38 = generic { From 40dd4f5f9e7503d52aabbaff9b5dbe6960e8b50d Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 30 Apr 2019 18:19:54 -0400 Subject: [PATCH 10/49] vala_0_40: 0.40.14 -> 0.40.15 https://gitlab.gnome.org/GNOME/vala/raw/0.40/NEWS --- pkgs/development/compilers/vala/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index a8c74f256ffb..4d0e07117cfe 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -115,9 +115,9 @@ in rec { }; vala_0_40 = generic { - major = "0.40"; - minor = "14"; - sha256 = "0llid9b9cgjcrcclc0pw2skkssb7br7b2clq9cql3p14dl94gki0"; + major = "0.40"; + minor = "15"; + sha256 = "0mfayli159yyw6abjf6sgq41j54mr3nspg25b1kxhypcz0scjm19"; }; vala_0_42 = generic { From aaae86344675b3b5ae1a702e8125b8bbb5a3e9ae Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 30 Apr 2019 18:47:21 -0700 Subject: [PATCH 11/49] help2man: 1.47.9 -> 1.47.10 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/help2man/versions --- pkgs/development/tools/misc/help2man/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix index f544f48e57c2..264f2aec44d4 100644 --- a/pkgs/development/tools/misc/help2man/default.nix +++ b/pkgs/development/tools/misc/help2man/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, perlPackages, gettext }: stdenv.mkDerivation rec { - name = "help2man-1.47.9"; + name = "help2man-1.47.10"; src = fetchurl { url = "mirror://gnu/help2man/${name}.tar.xz"; - sha256 = "1li3b6vifhysc2ckx0d7krwrqb8bk0kzn3k18ff1963hjc1qp7nz"; + sha256 = "1yywli520246aba12vpgj7bhr1r13swad3xm49a0cygqcgywnwgk"; }; nativeBuildInputs = [ gettext perlPackages.LocaleGettext ]; From fc508b7869ddfe4964e8f693640bbd8f64cf53f9 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 30 Apr 2019 18:21:12 -0400 Subject: [PATCH 12/49] vala_0_42: 0.42.6 -> 0.42.7 https://gitlab.gnome.org/GNOME/vala/raw/0.42/NEWS --- pkgs/development/compilers/vala/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index 4d0e07117cfe..110d60f300f7 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -121,9 +121,9 @@ in rec { }; vala_0_42 = generic { - major = "0.42"; - minor = "6"; - sha256 = "14024gvs23q323fmd62hqd8jiypaxbjjvamyd782ixbhxmpz8x1p"; + major = "0.42"; + minor = "7"; + sha256 = "029ksbsdpl581wzy570kj4kkw8b4bizgh494c051zsvkwck55p83"; }; vala_0_44 = generic { From d7e35ec3418f24a000f8595e613a48cef1591b57 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 30 Apr 2019 18:23:16 -0400 Subject: [PATCH 13/49] vala_0_44: 0.44.1 -> 0.44.3 https://gitlab.gnome.org/GNOME/vala/raw/0.44/NEWS --- pkgs/development/compilers/vala/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index 110d60f300f7..81fa8d23f488 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -127,9 +127,9 @@ in rec { }; vala_0_44 = generic { - major = "0.44"; - minor = "1"; - sha256 = "1qiglkgymws6a3m8xz1v8b3na165ywx2dbipp3bdg134bi0w3a4n"; + major = "0.44"; + minor = "3"; + sha256 = "1sgas7z6y9r2mf4pxry3fx2awdnzn3vlg2sxd3hqpy2a90ib8lw5"; }; vala = vala_0_44; From 2148e70a8bc2309da2c538767a7b1b2685b45411 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 30 Apr 2019 18:34:09 -0400 Subject: [PATCH 14/49] vala: no vertical align --- pkgs/development/compilers/vala/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index 81fa8d23f488..cdbdcda91878 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -108,9 +108,9 @@ in rec { }; vala_0_38 = generic { - major = "0.38"; - minor = "10"; - sha256 = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw"; + major = "0.38"; + minor = "10"; + sha256 = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw"; extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool; }; From cbb80342f79aadd04dc672541bb29f61889a1145 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Thu, 25 Apr 2019 20:15:59 +0200 Subject: [PATCH 15/49] vala: Prepare for updateScript It doesn't have to be that complicated with the major and minor versions being split. We have library functions that handle it fine. passthru.upateScript can be enabled once #59372 is merged --- pkgs/development/compilers/vala/default.nix | 45 +++++++++++---------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index cdbdcda91878..5fb376ef66ec 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -4,14 +4,12 @@ let generic = lib.makeOverridable ({ - major, minor, sha256, + version, sha256, extraNativeBuildInputs ? [], extraBuildInputs ? [], withGraphviz ? false }: let - atLeast = lib.versionAtLeast "${major}.${minor}"; - # Patches from the openembedded-core project to build vala without graphviz # support. We need to apply an additional patch to allow building when the # header file isn't available at all, but that patch (./gvc-compat.patch) @@ -45,21 +43,21 @@ let # 0.42.4: https://github.com/openembedded/openembedded-core/raw/f2b4f9ec6f44dced7f88df849cca68961419eeb8/meta/recipes-devtools/vala/vala/disable-graphviz.patch "0.44" = ./disable-graphviz-0.44.1.patch; - }.${major} or (throw "no graphviz patch for this version of vala"); + }.${lib.versions.majorMinor version} or (throw "no graphviz patch for this version of vala"); - disableGraphviz = atLeast "0.38" && !withGraphviz; + disableGraphviz = lib.versionAtLeast version "0.38" && !withGraphviz; in stdenv.mkDerivation rec { - name = "vala-${version}"; - version = "${major}.${minor}"; + pname = "vala"; + inherit version; setupHook = substituteAll { src = ./setup-hook.sh; - apiVersion = major; + apiVersion = lib.versions.majorMinor version; }; src = fetchurl { - url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz"; + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; inherit sha256; }; @@ -78,19 +76,27 @@ let nativeBuildInputs = [ pkgconfig flex bison libxslt - ] ++ lib.optional (stdenv.isDarwin && (atLeast "0.38")) expat + ] ++ lib.optional (stdenv.isDarwin && (lib.versionAtLeast version "0.38")) expat ++ lib.optional disableGraphviz autoreconfHook # if we changed our ./configure script, need to reconfigure ++ extraNativeBuildInputs; buildInputs = [ glib libiconv libintl - ] ++ lib.optional (atLeast "0.38" && withGraphviz) graphviz + ] ++ lib.optional (lib.versionAtLeast version "0.38" && withGraphviz) graphviz ++ extraBuildInputs; enableParallelBuilding = true; doCheck = false; # fails, requires dbus daemon + # Wait for PR #59372 + #passthru = { + # updateScript = gnome3.updateScript { + # attrPath = "${pname}_${lib.versions.major version}_${lib.versions.minor version}"; + # packageName = pname; + # }; + #}; + meta = with stdenv.lib; { description = "Compiler for GObject type system"; homepage = https://wiki.gnome.org/Projects/Vala; @@ -102,33 +108,28 @@ let in rec { vala_0_36 = generic { - major = "0.36"; - minor = "19"; + version = "0.36.19"; sha256 = "05si2f4zjvq0q3wqfh1wxdq20jy1xqxq2skqh8vfh2jyp355lwar"; }; vala_0_38 = generic { - major = "0.38"; - minor = "10"; - sha256 = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw"; + version = "0.38.10"; + sha256 = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw"; extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool; }; vala_0_40 = generic { - major = "0.40"; - minor = "15"; + version = "0.40.15"; sha256 = "0mfayli159yyw6abjf6sgq41j54mr3nspg25b1kxhypcz0scjm19"; }; vala_0_42 = generic { - major = "0.42"; - minor = "7"; + version = "0.42.7"; sha256 = "029ksbsdpl581wzy570kj4kkw8b4bizgh494c051zsvkwck55p83"; }; vala_0_44 = generic { - major = "0.44"; - minor = "3"; + version = "0.44.3"; sha256 = "1sgas7z6y9r2mf4pxry3fx2awdnzn3vlg2sxd3hqpy2a90ib8lw5"; }; From 02e9697471c61e895e60fc738c73b5162278b83f Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Tue, 30 Apr 2019 22:50:21 -0400 Subject: [PATCH 16/49] binutils: add gettext dependency Needed on libc without gettext bundled. Fixes #11420 --- pkgs/development/tools/misc/binutils/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix index 4e2f26fd691b..89fc72cbba26 100644 --- a/pkgs/development/tools/misc/binutils/default.nix +++ b/pkgs/development/tools/misc/binutils/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, buildPackages -, fetchurl, zlib, autoreconfHook +, fetchurl, zlib, autoreconfHook, gettext # Enabling all targets increases output size to a multiple. , withAllTargets ? false, libbfd, libopcodes , enableShared ? true @@ -70,7 +70,7 @@ stdenv.mkDerivation rec { ] ++ lib.optionals stdenv.targetPlatform.isiOS [ autoreconfHook ]; - buildInputs = [ zlib ]; + buildInputs = [ zlib gettext ]; inherit noSysDirs; From acc954fa69c1891276d345bc1c225bda4ac5e1f9 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Wed, 1 May 2019 00:29:16 -0700 Subject: [PATCH 17/49] libqmi: 1.22.2 -> 1.22.4 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libqmi/versions --- pkgs/development/libraries/libqmi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix index 083b5c8bc851..8a2390483908 100644 --- a/pkgs/development/libraries/libqmi/default.nix +++ b/pkgs/development/libraries/libqmi/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libqmi"; - version = "1.22.2"; + version = "1.22.4"; src = fetchurl { url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz"; - sha256 = "09w20dsgr16bgbqw5ds7r6j2s6ihwyalh9zpbjhcn7cvm0afbwgi"; + sha256 = "1wgrrb9vb3myl8xgck8ik86876ycbg8crylybs3ssi21vrxqwnsc"; }; outputs = [ "out" "dev" "devdoc" ]; From 6edac7fbcd66961a11654670c5e339cdb221b852 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 30 Apr 2019 23:15:59 -0700 Subject: [PATCH 18/49] libdrm: 2.4.97 -> 2.4.98 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libdrm/versions --- pkgs/development/libraries/libdrm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix index a8daf5754165..7415aa754e7d 100644 --- a/pkgs/development/libraries/libdrm/default.nix +++ b/pkgs/development/libraries/libdrm/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, valgrind-light }: stdenv.mkDerivation rec { - name = "libdrm-2.4.97"; + name = "libdrm-2.4.98"; src = fetchurl { url = "https://dri.freedesktop.org/libdrm/${name}.tar.bz2"; - sha256 = "08yimlp6jir1rs5ajgdx74xa5qdzcqahpdzdk0rmkmhh7vdcrl3p"; + sha256 = "150qdzsm2nx6dfacc75rx53anzsc6m31nhxidf5xxax3mk6fvq4b"; }; outputs = [ "out" "dev" "bin" ]; From ca316545b4aaa91648dff0f78234abf77e25d0fc Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 30 Apr 2019 05:05:56 -0700 Subject: [PATCH 19/49] c-blosc: 1.16.2 -> 1.16.3 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/c-blosc/versions --- pkgs/development/libraries/c-blosc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/c-blosc/default.nix b/pkgs/development/libraries/c-blosc/default.nix index 4c28ca9f2c71..3603667fbf21 100644 --- a/pkgs/development/libraries/c-blosc/default.nix +++ b/pkgs/development/libraries/c-blosc/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "c-blosc-${version}"; - version = "1.16.2"; + version = "1.16.3"; src = fetchFromGitHub { owner = "Blosc"; repo = "c-blosc"; rev = "v${version}"; - sha256 = "19wb699rb5bn6h9qhw1m18m2w77lws7r50vxpgrvggnl27mvm3xc"; + sha256 = "1c58wkf34rp5wh9qp09zdk7zcfn037sk56p4xq1g0vapbnglv603"; }; buildInputs = [ cmake ]; From 458d4c56089f040c2275238589d14e031ecd54af Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 29 Apr 2019 22:15:56 -0700 Subject: [PATCH 20/49] at-spi2-core: 2.32.0 -> 2.32.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/at-spi2-core/versions --- pkgs/development/libraries/at-spi2-core/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix index 0fc50f2c641f..e5d5313eeb10 100644 --- a/pkgs/development/libraries/at-spi2-core/default.nix +++ b/pkgs/development/libraries/at-spi2-core/default.nix @@ -19,11 +19,11 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "at-spi2-core"; - version = "2.32.0"; + version = "2.32.1"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; - sha256 = "083j1v7kdjrpjsv1b9dl3d8xqj39jyp4cfn8i9gbbm7q2g93b923"; + sha256 = "0lqd7gsl471v6538iighkvb21gjglcb9pklvas32rjpsxcvsjaiw"; }; outputs = [ "out" "dev" ]; From d5b3b356de63e676b623aa2a49884a580d0ba507 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 30 Apr 2019 13:40:14 -0700 Subject: [PATCH 21/49] fluidsynth: 2.0.4 -> 2.0.5 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/fluidsynth/versions --- pkgs/applications/audio/fluidsynth/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix index 195431898a6d..5ea4a6d9f31e 100644 --- a/pkgs/applications/audio/fluidsynth/default.nix +++ b/pkgs/applications/audio/fluidsynth/default.nix @@ -11,8 +11,8 @@ let sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"; }; "2" = { - fluidsynthVersion = "2.0.4"; - sha256 = "1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0"; + fluidsynthVersion = "2.0.5"; + sha256 = "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"; }; }; in From e1b3aacd8db1306e9ce63d86942495d32ac83221 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 30 Apr 2019 23:57:20 -0700 Subject: [PATCH 22/49] libmbim: 1.18.0 -> 1.18.2 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libmbim/versions --- pkgs/development/libraries/libmbim/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix index 021cfbb1bb48..406b88ea8c1b 100644 --- a/pkgs/development/libraries/libmbim/default.nix +++ b/pkgs/development/libraries/libmbim/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libmbim"; - version = "1.18.0"; + version = "1.18.2"; src = fetchurl { url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz"; - sha256 = "10mjjy860aakfd3h1yaj9l1jw816amrpwmyqlx37j21xv0l03x3c"; + sha256 = "0s4jsfsydp2vykv7lnimalp9i680aas1qcx7zdpjiic64b5g48vp"; }; outputs = [ "out" "dev" "man" ]; From 58d0134da072548eb66d9313ad629e4dffddfd9d Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Thu, 2 May 2019 10:05:42 +0000 Subject: [PATCH 23/49] linux: set CONFIG_DRM_VMWGFX_FBCON y Fixes https://github.com/NixOS/nixpkgs/issues/58070, and brings NixOS into line with Ubuntu/Fedora/Arch/etc. Tested that all kernels in Nixpkgs that build before this change build after it. --- pkgs/os-specific/linux/kernel/common-config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 5711e019f95b..2f091b95cfca 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -184,6 +184,7 @@ let VGA_SWITCHEROO = yes; # Hybrid graphics support DRM_GMA600 = yes; DRM_GMA3600 = yes; + DRM_VMWGFX_FBCON = yes; # necessary for amdgpu polaris support DRM_AMD_POWERPLAY = whenBetween "4.5" "4.9" yes; # (experimental) amdgpu support for verde and newer chipsets From 68113d72585d1282b936bfe231d974bfe94d6525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 25 Apr 2019 13:07:03 +0200 Subject: [PATCH 24/49] python.pkgs.python-slugify: 2.0.1 -> 3.0.2 --- .../python-modules/python-slugify/default.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix index 39950b97f6c7..699d370af757 100644 --- a/pkgs/development/python-modules/python-slugify/default.nix +++ b/pkgs/development/python-modules/python-slugify/default.nix @@ -1,17 +1,19 @@ -{ stdenv, fetchPypi, buildPythonPackage, unidecode, regex, isPy3k }: +{ stdenv, fetchPypi, buildPythonPackage, python, text-unidecode }: buildPythonPackage rec { pname = "python-slugify"; - version = "2.0.1"; + version = "3.0.2"; src = fetchPypi { inherit pname version; - sha256 = "d3e034397236020498e677a35e5c05dcc6ba1624b608b9ef7e5fe3090ccbd5a8"; + sha256 = "57163ffb345c7e26063435a27add1feae67fa821f1ef4b2f292c25847575d758"; }; - doCheck = !isPy3k; - # (only) on python3 unittest loader (loadTestsFromModule) fails - propagatedBuildInputs = [ unidecode regex ]; + propagatedBuildInputs = [ text-unidecode ]; + + checkPhase = '' + ${python.interpreter} test.py + ''; meta = with stdenv.lib; { homepage = https://github.com/un33k/python-slugify; From cf65abe85a65f351fdb95e8da93d4118f7959728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 26 Apr 2019 09:05:39 +0200 Subject: [PATCH 25/49] transifex-client: fix build --- pkgs/tools/text/transifex-client/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/text/transifex-client/default.nix b/pkgs/tools/text/transifex-client/default.nix index c765a801348a..9a11b5fba57a 100644 --- a/pkgs/tools/text/transifex-client/default.nix +++ b/pkgs/tools/text/transifex-client/default.nix @@ -17,7 +17,7 @@ buildPythonApplication rec { prePatch = '' substituteInPlace requirements.txt --replace "urllib3<1.24" "urllib3<2.0" \ --replace "six==1.11.0" "six<2.0.0" \ - --replace "python-slugify==1.2.6" "python-slugify<3.0.0" + --replace "python-slugify==1.2.6" "python-slugify<4.0.0" ''; # Requires external resources From d050b87c4654557a16f0b233970c7ba82ba63547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 25 Apr 2019 13:16:59 +0200 Subject: [PATCH 26/49] python.pkgs.pytz: 2018.9 -> 2019.1 --- pkgs/development/python-modules/pytz/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pytz/default.nix b/pkgs/development/python-modules/pytz/default.nix index 0de3e989c24b..534bb1618bc4 100644 --- a/pkgs/development/python-modules/pytz/default.nix +++ b/pkgs/development/python-modules/pytz/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "pytz"; - version = "2018.9"; + version = "2019.1"; src = fetchPypi { inherit pname version; - sha256 = "d5f05e487007e29e03409f9398d074e158d920d36eb82eaf66fb1136b0c5374c"; + sha256 = "d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141"; }; checkPhase = '' From 342877b4438c821518a0f4562ee3c51ef059b9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 25 Apr 2019 17:28:56 +0200 Subject: [PATCH 27/49] python.pkgs.pytzdata: 2018.9 -> 2019.1 --- pkgs/development/python-modules/pytzdata/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pytzdata/default.nix b/pkgs/development/python-modules/pytzdata/default.nix index 9fb057800db3..6fa4eb6387d0 100644 --- a/pkgs/development/python-modules/pytzdata/default.nix +++ b/pkgs/development/python-modules/pytzdata/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "pytzdata"; - version = "2018.9"; + version = "2019.1"; src = fetchPypi { inherit pname version; - sha256 = "dddaaf4f1717820a6fdcac94057e03c1a15b3829a44d9eaf19988917977db408"; + sha256 = "f0469062f799c66480fcc7eae69a8270dc83f0e6522c0e70db882d6bd708d378"; }; # No tests From ef556c73fb3f01b136c980e52f9be72c8fff0741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 3 May 2019 13:38:03 +0200 Subject: [PATCH 28/49] python3.pkgs.PyChromecast: 3.2.0 -> 3.2.1 --- pkgs/development/python-modules/pychromecast/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix index 7d0f7da5d96c..ff4059d862ee 100644 --- a/pkgs/development/python-modules/pychromecast/default.nix +++ b/pkgs/development/python-modules/pychromecast/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "PyChromecast"; - version = "3.2.0"; + version = "3.2.1"; src = fetchPypi { inherit pname version; - sha256 = "0jksh7rb4880kni8iw3hb5q9dm5gi40zmx4r2fwydnpfhadhq5af"; + sha256 = "e1e71e30581e1021b6bdd50a80cfcdcfa86d9082171fdd719c5ca6a77b8a9699"; }; disabled = !isPy3k; From 3c4ec19cb6d86962dabb73f3a260db88fdecc7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 25 Apr 2019 12:50:33 +0200 Subject: [PATCH 29/49] home-assistant: make parse-requirements.py use manifest.json The way dependencies and requirements are specified was changed upstream in https://github.com/home-assistant/home-assistant/pull/22699. --- .../home-assistant/parse-requirements.py | 55 +++++++++---------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py index e61d616d6a71..a2cf2d0386a2 100755 --- a/pkgs/servers/home-assistant/parse-requirements.py +++ b/pkgs/servers/home-assistant/parse-requirements.py @@ -1,28 +1,30 @@ #! /usr/bin/env nix-shell -#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ aiohttp astral async-timeout attrs certifi jinja2 pyjwt cryptography pip pytz pyyaml requests ruamel_yaml voluptuous python-slugify ])" +#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ attrs ]) # # This script downloads Home Assistant's source tarball. -# Inside the homeassistant/components directory, each component has an associated .py file, -# specifying required packages and other components it depends on: +# Inside the homeassistant/components directory, each integration has an associated manifest.json, +# specifying required packages and other integrations it depends on: # -# REQUIREMENTS = [ 'package==1.2.3' ] -# DEPENDENCIES = [ 'component' ] +# { +# "requirements": [ "package==1.2.3" ], +# "dependencies": [ "component" ] +# } # -# By parsing the files, a dictionary mapping component to requirements and dependencies is created. +# By parsing the files, a dictionary mapping integrations to requirements and dependencies is created. # For all of these requirements and the dependencies' requirements, -# Nixpkgs' python3Packages are searched for appropriate names. -# Then, a Nix attribute set mapping component name to dependencies is created. +# nixpkgs' python3Packages are searched for appropriate names. +# Then, a Nix attribute set mapping integration name to dependencies is created. -from urllib.request import urlopen -import tempfile from io import BytesIO -import tarfile -import importlib -import subprocess -import os -import sys import json +import pathlib +import os import re +import subprocess +import sys +import tempfile +import tarfile +from urllib.request import urlopen COMPONENT_PREFIX = 'homeassistant.components' PKG_SET = 'python3Packages' @@ -43,22 +45,17 @@ def get_version(): def parse_components(version='master'): components = {} with tempfile.TemporaryDirectory() as tmp: - with urlopen('https://github.com/home-assistant/home-assistant/archive/{}.tar.gz'.format(version)) as response: + with urlopen(f'https://github.com/home-assistant/home-assistant/archive/{version}.tar.gz') as response: tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp) # Use part of a script from the Home Assistant codebase - sys.path.append(tmp + '/home-assistant-{}'.format(version)) - from script.gen_requirements_all import explore_module - for package in explore_module(COMPONENT_PREFIX, True): - # Remove 'homeassistant.components.' prefix - component = package[len(COMPONENT_PREFIX + '.'):] - try: - module = importlib.import_module(package) - components[component] = {} - components[component]['requirements'] = getattr(module, 'REQUIREMENTS', []) - components[component]['dependencies'] = getattr(module, 'DEPENDENCIES', []) - # If there is an ImportError, the imported file is not the main file of the component - except ImportError: - continue + sys.path.append(os.path.join(tmp, f'home-assistant-{version}')) + from script.hassfest.model import Integration + integrations = Integration.load_dir(pathlib.Path( + os.path.join(tmp, f'home-assistant-{version}', 'homeassistant/components') + )) + for domain in sorted(integrations): + integration = integrations[domain] + components[domain] = integration.manifest return components # Recursively get the requirements of a component and its dependencies From 3b481dfdf9e258b0354885c971a7d2edffd39292 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Fri, 3 May 2019 15:28:22 -0400 Subject: [PATCH 30/49] vala_0_44: fix graphviz patch --- pkgs/development/compilers/vala/default.nix | 2 +- ....1.patch => disable-graphviz-0.44.3.patch} | 56 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) rename pkgs/development/compilers/vala/{disable-graphviz-0.44.1.patch => disable-graphviz-0.44.3.patch} (96%) diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index 5fb376ef66ec..65a3f19102e0 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/pkgs/development/compilers/vala/default.nix @@ -41,7 +41,7 @@ let # We've reverted the addition of the "--disable-valadoc" option # and then applied the following patch. # 0.42.4: https://github.com/openembedded/openembedded-core/raw/f2b4f9ec6f44dced7f88df849cca68961419eeb8/meta/recipes-devtools/vala/vala/disable-graphviz.patch - "0.44" = ./disable-graphviz-0.44.1.patch; + "0.44" = ./disable-graphviz-0.44.3.patch; }.${lib.versions.majorMinor version} or (throw "no graphviz patch for this version of vala"); diff --git a/pkgs/development/compilers/vala/disable-graphviz-0.44.1.patch b/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch similarity index 96% rename from pkgs/development/compilers/vala/disable-graphviz-0.44.1.patch rename to pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch index 2752aa1e2050..fc971c26492b 100644 --- a/pkgs/development/compilers/vala/disable-graphviz-0.44.1.patch +++ b/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch @@ -19,17 +19,17 @@ index f70234759..b3d6c3833 100644 - --enable-valadoc \ - --enable-unversioned \ - $(NULL) - + if ENABLE_UNVERSIONED aclocaldir = $(datadir)/aclocal diff --git a/configure.ac b/configure.ac -index 16ebd1f81..cf23db4b8 100644 +index 504db13aa..622397747 100644 --- a/configure.ac +++ b/configure.ac -@@ -156,10 +156,11 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED) - AC_SUBST(GMODULE_CFLAGS) +@@ -157,10 +157,11 @@ AC_SUBST(GMODULE_CFLAGS) AC_SUBST(GMODULE_LIBS) - + + AC_ARG_WITH(cgraph, AS_HELP_STRING([--with-cgraph], [Required flag for cross-compilation to define capability of graphviz]), [], with_cgraph=check) -AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes) -if test x$enable_valadoc = xyes; then +AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes) @@ -40,14 +40,14 @@ index 16ebd1f81..cf23db4b8 100644 cgraph_tmp_LIBADD="$LIBADD" cgraph_tmp_CFLAGS="$CFLAGS" LIBADD="$LIBADD $LIBGVC_LIBS" -@@ -186,8 +187,8 @@ if test x$enable_valadoc = xyes; then +@@ -198,8 +199,8 @@ if test x$enable_valadoc = xyes; then LIBADD="$cgraph_tmp_LIBADD" CFLAGS="$cgraph_tmp_CFLAGS" fi +AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes) AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes") -AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes) - + AC_PATH_PROG([XSLTPROC], [xsltproc], :) AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :) diff --git a/doc/Makefile.am b/doc/Makefile.am @@ -55,14 +55,14 @@ index d2684a0e0..b343c7c10 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -6,16 +6,11 @@ SUBDIRS = \ - + dist_man_MANS = \ valac.1 \ + valadoc.1 \ vala-gen-introspect.1 \ vapigen.1 \ $(NULL) - + -if ENABLE_VALADOC -dist_man_MANS += \ - valadoc.1 \ @@ -74,7 +74,7 @@ index d2684a0e0..b343c7c10 100644 valadoc.h2m \ @@ -24,11 +19,7 @@ EXTRA_DIST = \ $(NULL) - + if HAVE_HELP2MAN -if ENABLE_VALADOC manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1 @@ -83,7 +83,7 @@ index d2684a0e0..b343c7c10 100644 -endif @rm $^ $(MAKE) $(AM_MAKEFLAGS) $^ - + @@ -37,13 +28,11 @@ valac.1: --include $(srcdir)/valac.h2m \ --libtool --no-info \ @@ -108,18 +108,18 @@ index d2684a0e0..b343c7c10 100644 cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1 cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1 endif - - + + -if ENABLE_VALADOC COMMON_VALADOCFLAGS = \ --force \ --verbose \ @@ -150,7 +136,6 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen @touch $@ - + internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc -endif - + clean-local: rm -rf $(builddir)/internal-apis diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am @@ -147,7 +147,7 @@ index 7456fb836..107338e91 100644 html/htmlmarkupwriter.vala \ html/htmlrenderer.vala \ $(NULL) - + +if ENABLE_GRAPHVIZ +libvaladoc_la_VALASOURCES += \ + charts/chart.vala \ @@ -177,23 +177,23 @@ index 7456fb836..107338e91 100644 $(filter %.vala %.c,$^) touch $@ @@ -207,6 +214,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc - + valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc cp $< $@ +if !ENABLE_GRAPHVIZ + sed -i "s/libgvc //g" $@ +endif - + vapidir = $(datadir)/vala/vapi dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi @@ -214,6 +224,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps - + valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps cp $< $@ +if !ENABLE_GRAPHVIZ + sed -i "s/libgvc//g" $@ +endif - + EXTRA_DIST = \ $(libvaladoc_la_VALASOURCES) \ diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala @@ -211,20 +211,20 @@ index 46578c28f..f6ce7097c 100644 +#endif protected ErrorReporter reporter; protected string package_list_link = "../index.html"; - + @@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { this.linker = new LinkHelper (); - + _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver); +#if HAVE_GRAPHVIZ this.image_factory = new SimpleChartFactory (settings, linker); +#endif } - - + + @@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { } - + protected void write_image_block (Api.Node element) { +#if HAVE_GRAPHVIZ if (element is Class || element is Interface || element is Struct) { @@ -236,7 +236,7 @@ index 46578c28f..f6ce7097c 100644 } +#endif } - + public void write_namespace_content (Namespace node, Api.Node? parent) { diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala index 5aa4afdea..e79b0b8f5 100644 @@ -245,7 +245,7 @@ index 5aa4afdea..e79b0b8f5 100644 @@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter { } } - + +#if HAVE_GRAPHVIZ public unowned MarkupWriter add_usemap (Charts.Chart chart) { string? buf = (string?) chart.write_buffer ("cmapx"); @@ -256,6 +256,6 @@ index 5aa4afdea..e79b0b8f5 100644 +#else + public unowned MarkupWriter add_usemap (void* chart) { +#endif - + return this; } From 6f7e06bd5a022d49972a92e7d317420fddd41a88 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 4 May 2019 05:47:04 +0200 Subject: [PATCH 31/49] networkmanager: Stop using libredirect for building docs Our gobject-introspection patches make the shared library paths absolute in the GIR files. When building docs, the library is not yet installed, though, so we need to replace the absolute path with a local one during build. Previously we used LD_PRELOAD to load libredirect and rewrite the installed paths to ones in the build directory. That was unnecessary complicated and many people spent whole night trying to figure out why it breaks some programs. Using a symlink from the installed location to the build directory fixes the issue as well, while having much less moving parts, thus being easier to grasp. The symlink will be overridden during installation. --- .../networking/network-manager/default.nix | 18 ++++++++---------- .../network-manager/fix-docs-build.patch | 11 ----------- 2 files changed, 8 insertions(+), 21 deletions(-) delete mode 100644 pkgs/tools/networking/network-manager/fix-docs-build.patch diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix index c4a34dc6a909..e0cfac569358 100644 --- a/pkgs/tools/networking/network-manager/default.nix +++ b/pkgs/tools/networking/network-manager/default.nix @@ -58,13 +58,6 @@ in stdenv.mkDerivation rec { # Meson does not support using different directories during build and # for installation like Autotools did with flags passed to make install. ./fix-install-paths.patch - - # Our gobject-introspection patches make the shared library paths absolute - # in the GIR files. When building docs, the library is not yet installed, - # though, so we need to replace the absolute path with a local one during build. - # We are replacing the variables in postPatch since substituteAll does not support - # placeholders. - ./fix-docs-build.patch ]; buildInputs = [ @@ -87,10 +80,15 @@ in stdenv.mkDerivation rec { postPatch = '' patchShebangs ./tools patchShebangs libnm/generate-setting-docs.py + ''; - substituteInPlace libnm/meson.build \ - --subst-var-by DOCS_LD_PRELOAD "${libredirect}/lib/libredirect.so" \ - --subst-var-by DOCS_NIX_REDIRECTS "${placeholder "out"}/lib/libnm.so.0=$PWD/build/libnm/libnm.so.0" + preBuild = '' + # Our gobject-introspection patches make the shared library paths absolute + # in the GIR files. When building docs, the library is not yet installed, + # though, so we need to replace the absolute path with a local one during build. + # We are using a symlink that will be overridden during installation. + mkdir -p ${placeholder "out"}/lib + ln -s $PWD/libnm/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0 ''; postInstall = '' diff --git a/pkgs/tools/networking/network-manager/fix-docs-build.patch b/pkgs/tools/networking/network-manager/fix-docs-build.patch deleted file mode 100644 index 45e18c42fbe1..000000000000 --- a/pkgs/tools/networking/network-manager/fix-docs-build.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/libnm/meson.build -+++ b/libnm/meson.build -@@ -262,6 +262,8 @@ - 'env', '-i', - 'GI_TYPELIB_PATH=' + gi_typelib_path, - 'LD_LIBRARY_PATH=' + ld_library_path, -+ 'LD_PRELOAD=' + '@DOCS_LD_PRELOAD@', -+ 'NIX_REDIRECTS=' + '@DOCS_NIX_REDIRECTS@', - ] - - name = 'nm-property-docs.xml' From a0c6efb9fd23b8e9b44a123252afc863b88eb8d7 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 4 May 2019 05:53:18 +0200 Subject: [PATCH 32/49] libredirect: remove dlopen support While it might be useful in some cases, there are too many caveats to be worth it. When libredirect intercepts dlopen call and calls the original function, the dynamic loader will use libredirect.so's DT_RUNPATH entry instead of the one from the ELF file the dlopen call originated from. That means that when program tries to dlopen a library that it expects to find on its RPATH, the call will fail. This broke Sublime Text for just that reason. --- pkgs/build-support/libredirect/libredirect.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/pkgs/build-support/libredirect/libredirect.c b/pkgs/build-support/libredirect/libredirect.c index dcf3a2016bc2..655399af58f5 100644 --- a/pkgs/build-support/libredirect/libredirect.c +++ b/pkgs/build-support/libredirect/libredirect.c @@ -166,10 +166,3 @@ int execv(const char *path, char *const argv[]) char buf[PATH_MAX]; return execv_real(rewrite(path, buf), argv); } - -void *dlopen(const char *filename, int flag) -{ - void * (*__dlopen_real) (const char *, int) = dlsym(RTLD_NEXT, "dlopen"); - char buf[PATH_MAX]; - return __dlopen_real(rewrite(filename, buf), flag); -} From 4d607a5ac9442323ff9dc96990b261f11e4fff54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 25 Apr 2019 12:52:07 +0200 Subject: [PATCH 33/49] home-assistant: 0.91.4 -> 0.92.2 https://www.home-assistant.io/blog/2019/04/24/release-92/ --- .../home-assistant/component-packages.nix | 1566 ++--------------- pkgs/servers/home-assistant/default.nix | 44 +- pkgs/servers/home-assistant/frontend.nix | 4 +- 3 files changed, 144 insertions(+), 1470 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 48fa3793d9a2..12240320979c 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,2144 +2,826 @@ # Do not edit! { - version = "0.91.4"; + version = "0.92.2"; components = { "abode" = ps: with ps; [ ]; - "abode.alarm_control_panel" = ps: with ps; [ ]; - "abode.binary_sensor" = ps: with ps; [ ]; - "abode.camera" = ps: with ps; [ ]; - "abode.cover" = ps: with ps; [ ]; - "abode.light" = ps: with ps; [ ]; - "abode.lock" = ps: with ps; [ ]; - "abode.sensor" = ps: with ps; [ ]; - "abode.switch" = ps: with ps; [ ]; - "acer_projector" = ps: with ps; [ ]; - "acer_projector.switch" = ps: with ps; [ pyserial ]; + "acer_projector" = ps: with ps; [ pyserial ]; "actiontec" = ps: with ps; [ ]; - "actiontec.device_tracker" = ps: with ps; [ ]; "ads" = ps: with ps; [ ]; - "ads.binary_sensor" = ps: with ps; [ ]; - "ads.light" = ps: with ps; [ ]; - "ads.sensor" = ps: with ps; [ ]; - "ads.switch" = ps: with ps; [ ]; "aftership" = ps: with ps; [ ]; - "aftership.sensor" = ps: with ps; [ ]; "air_quality" = ps: with ps; [ ]; - "airvisual" = ps: with ps; [ ]; - "airvisual.sensor" = ps: with ps; [ pyairvisual ]; + "airvisual" = ps: with ps; [ pyairvisual ]; "aladdin_connect" = ps: with ps; [ ]; - "aladdin_connect.cover" = ps: with ps; [ ]; "alarm_control_panel" = ps: with ps; [ ]; "alarmdecoder" = ps: with ps; [ ]; - "alarmdecoder.alarm_control_panel" = ps: with ps; [ ]; - "alarmdecoder.binary_sensor" = ps: with ps; [ ]; - "alarmdecoder.sensor" = ps: with ps; [ ]; "alarmdotcom" = ps: with ps; [ ]; - "alarmdotcom.alarm_control_panel" = ps: with ps; [ ]; "alert" = ps: with ps; [ ]; "alexa" = ps: with ps; [ aiohttp-cors ]; - "alexa.auth" = ps: with ps; [ ]; - "alexa.const" = ps: with ps; [ ]; - "alexa.flash_briefings" = ps: with ps; [ ]; - "alexa.intent" = ps: with ps; [ ]; - "alexa.smart_home" = ps: with ps; [ ]; "alpha_vantage" = ps: with ps; [ ]; - "alpha_vantage.sensor" = ps: with ps; [ ]; - "amazon_polly" = ps: with ps; [ ]; - "amazon_polly.tts" = ps: with ps; [ boto3 ]; + "amazon_polly" = ps: with ps; [ boto3 ]; "ambient_station" = ps: with ps; [ ]; - "ambient_station.binary_sensor" = ps: with ps; [ ]; - "ambient_station.config_flow" = ps: with ps; [ ]; - "ambient_station.const" = ps: with ps; [ ]; - "ambient_station.sensor" = ps: with ps; [ ]; "amcrest" = ps: with ps; [ ha-ffmpeg ]; - "amcrest.camera" = ps: with ps; [ ha-ffmpeg ]; - "amcrest.sensor" = ps: with ps; [ ha-ffmpeg ]; - "amcrest.switch" = ps: with ps; [ ha-ffmpeg ]; + "ampio" = ps: with ps; [ ]; "android_ip_webcam" = ps: with ps; [ ]; - "android_ip_webcam.binary_sensor" = ps: with ps; [ ]; - "android_ip_webcam.sensor" = ps: with ps; [ ]; - "android_ip_webcam.switch" = ps: with ps; [ ]; "androidtv" = ps: with ps; [ ]; - "androidtv.media_player" = ps: with ps; [ ]; "anel_pwrctrl" = ps: with ps; [ ]; - "anel_pwrctrl.switch" = ps: with ps; [ ]; "anthemav" = ps: with ps; [ ]; - "anthemav.media_player" = ps: with ps; [ ]; "apcupsd" = ps: with ps; [ ]; - "apcupsd.binary_sensor" = ps: with ps; [ ]; - "apcupsd.sensor" = ps: with ps; [ ]; "api" = ps: with ps; [ aiohttp-cors ]; - "api_streams" = ps: with ps; [ ]; "apns" = ps: with ps; [ ]; - "apns.notify" = ps: with ps; [ ]; "apple_tv" = ps: with ps; [ pyatv ]; - "apple_tv.media_player" = ps: with ps; [ pyatv ]; - "apple_tv.remote" = ps: with ps; [ pyatv ]; "aqualogic" = ps: with ps; [ ]; - "aqualogic.sensor" = ps: with ps; [ ]; - "aqualogic.switch" = ps: with ps; [ ]; "aquostv" = ps: with ps; [ ]; - "aquostv.media_player" = ps: with ps; [ ]; "arduino" = ps: with ps; [ ]; - "arduino.sensor" = ps: with ps; [ ]; - "arduino.switch" = ps: with ps; [ ]; "arest" = ps: with ps; [ ]; - "arest.binary_sensor" = ps: with ps; [ ]; - "arest.sensor" = ps: with ps; [ ]; - "arest.switch" = ps: with ps; [ ]; - "arlo" = ps: with ps; [ ]; - "arlo.alarm_control_panel" = ps: with ps; [ ]; - "arlo.camera" = ps: with ps; [ ha-ffmpeg ]; - "arlo.sensor" = ps: with ps; [ ]; - "aruba" = ps: with ps; [ ]; - "aruba.device_tracker" = ps: with ps; [ pexpect ]; - "arwn" = ps: with ps; [ ]; - "arwn.sensor" = ps: with ps; [ paho-mqtt ]; + "arlo" = ps: with ps; [ ha-ffmpeg ]; + "aruba" = ps: with ps; [ pexpect ]; + "arwn" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; "asterisk_cdr" = ps: with ps; [ ]; - "asterisk_cdr.mailbox" = ps: with ps; [ ]; "asterisk_mbox" = ps: with ps; [ ]; - "asterisk_mbox.mailbox" = ps: with ps; [ ]; "asuswrt" = ps: with ps; [ ]; - "asuswrt.device_tracker" = ps: with ps; [ ]; - "asuswrt.sensor" = ps: with ps; [ ]; "august" = ps: with ps; [ ]; - "august.binary_sensor" = ps: with ps; [ ]; - "august.camera" = ps: with ps; [ ]; - "august.lock" = ps: with ps; [ ]; "aurora" = ps: with ps; [ ]; - "aurora.binary_sensor" = ps: with ps; [ ]; "auth" = ps: with ps; [ aiohttp-cors ]; - "auth.indieauth" = ps: with ps; [ ]; - "auth.login_flow" = ps: with ps; [ ]; - "auth.mfa_setup_flow" = ps: with ps; [ ]; - "automatic" = ps: with ps; [ ]; - "automatic.device_tracker" = ps: with ps; [ aiohttp-cors ]; - "automation" = ps: with ps; [ ]; - "automation.event" = ps: with ps; [ ]; - "automation.geo_location" = ps: with ps; [ ]; - "automation.homeassistant" = ps: with ps; [ ]; - "automation.litejet" = ps: with ps; [ ]; - "automation.mqtt" = ps: with ps; [ paho-mqtt ]; - "automation.numeric_state" = ps: with ps; [ ]; - "automation.state" = ps: with ps; [ ]; - "automation.sun" = ps: with ps; [ ]; - "automation.template" = ps: with ps; [ ]; - "automation.time" = ps: with ps; [ ]; - "automation.time_pattern" = ps: with ps; [ ]; - "automation.webhook" = ps: with ps; [ aiohttp-cors ]; - "automation.zone" = ps: with ps; [ ]; + "automatic" = ps: with ps; [ aiohttp-cors ]; + "automation" = ps: with ps; [ aiohttp-cors ]; "avion" = ps: with ps; [ ]; - "avion.light" = ps: with ps; [ ]; "awair" = ps: with ps; [ ]; - "awair.sensor" = ps: with ps; [ ]; "aws" = ps: with ps; [ ]; - "aws.config_flow" = ps: with ps; [ ]; - "aws.const" = ps: with ps; [ ]; - "aws.notify" = ps: with ps; [ ]; - "aws_lambda" = ps: with ps; [ ]; - "aws_lambda.notify" = ps: with ps; [ boto3 ]; - "aws_sns" = ps: with ps; [ ]; - "aws_sns.notify" = ps: with ps; [ boto3 ]; - "aws_sqs" = ps: with ps; [ ]; - "aws_sqs.notify" = ps: with ps; [ boto3 ]; "axis" = ps: with ps; [ ]; - "axis.binary_sensor" = ps: with ps; [ ]; - "axis.camera" = ps: with ps; [ ]; - "axis.config_flow" = ps: with ps; [ ]; - "axis.const" = ps: with ps; [ ]; - "axis.device" = ps: with ps; [ ]; - "axis.errors" = ps: with ps; [ ]; "baidu" = ps: with ps; [ ]; - "baidu.tts" = ps: with ps; [ ]; "bayesian" = ps: with ps; [ ]; - "bayesian.binary_sensor" = ps: with ps; [ ]; "bbb_gpio" = ps: with ps; [ ]; - "bbb_gpio.binary_sensor" = ps: with ps; [ ]; - "bbb_gpio.switch" = ps: with ps; [ ]; "bbox" = ps: with ps; [ ]; - "bbox.device_tracker" = ps: with ps; [ ]; - "bbox.sensor" = ps: with ps; [ ]; "bh1750" = ps: with ps; [ ]; - "bh1750.sensor" = ps: with ps; [ ]; "binary_sensor" = ps: with ps; [ ]; "bitcoin" = ps: with ps; [ ]; - "bitcoin.sensor" = ps: with ps; [ ]; "blackbird" = ps: with ps; [ ]; - "blackbird.media_player" = ps: with ps; [ ]; "blink" = ps: with ps; [ ]; - "blink.alarm_control_panel" = ps: with ps; [ ]; - "blink.binary_sensor" = ps: with ps; [ ]; - "blink.camera" = ps: with ps; [ ]; - "blink.sensor" = ps: with ps; [ ]; - "blinksticklight" = ps: with ps; [ ]; - "blinksticklight.light" = ps: with ps; [ BlinkStick ]; + "blinksticklight" = ps: with ps; [ BlinkStick ]; "blinkt" = ps: with ps; [ ]; - "blinkt.light" = ps: with ps; [ ]; "blockchain" = ps: with ps; [ ]; - "blockchain.sensor" = ps: with ps; [ ]; "bloomsky" = ps: with ps; [ ]; - "bloomsky.binary_sensor" = ps: with ps; [ ]; - "bloomsky.camera" = ps: with ps; [ ]; - "bloomsky.sensor" = ps: with ps; [ ]; - "bluesound" = ps: with ps; [ ]; - "bluesound.media_player" = ps: with ps; [ xmltodict ]; + "bluesound" = ps: with ps; [ xmltodict ]; "bluetooth_le_tracker" = ps: with ps; [ ]; - "bluetooth_le_tracker.device_tracker" = ps: with ps; [ ]; - "bluetooth_tracker" = ps: with ps; [ ]; - "bluetooth_tracker.device_tracker" = ps: with ps; [ bt_proximity ]; + "bluetooth_tracker" = ps: with ps; [ bt_proximity ]; "bme280" = ps: with ps; [ ]; - "bme280.sensor" = ps: with ps; [ ]; "bme680" = ps: with ps; [ ]; - "bme680.sensor" = ps: with ps; [ ]; "bmw_connected_drive" = ps: with ps; [ ]; - "bmw_connected_drive.binary_sensor" = ps: with ps; [ ]; - "bmw_connected_drive.device_tracker" = ps: with ps; [ ]; - "bmw_connected_drive.lock" = ps: with ps; [ ]; - "bmw_connected_drive.sensor" = ps: with ps; [ ]; "bom" = ps: with ps; [ ]; - "bom.sensor" = ps: with ps; [ ]; - "bom.weather" = ps: with ps; [ ]; "braviatv" = ps: with ps; [ ]; - "braviatv.media_player" = ps: with ps; [ ]; - "broadlink" = ps: with ps; [ ]; - "broadlink.sensor" = ps: with ps; [ broadlink ]; - "broadlink.switch" = ps: with ps; [ broadlink ]; + "broadlink" = ps: with ps; [ broadlink ]; "brottsplatskartan" = ps: with ps; [ ]; - "brottsplatskartan.sensor" = ps: with ps; [ ]; "browser" = ps: with ps; [ ]; "brunt" = ps: with ps; [ ]; - "brunt.cover" = ps: with ps; [ ]; "bt_home_hub_5" = ps: with ps; [ ]; - "bt_home_hub_5.device_tracker" = ps: with ps; [ ]; "bt_smarthub" = ps: with ps; [ ]; - "bt_smarthub.device_tracker" = ps: with ps; [ ]; "buienradar" = ps: with ps; [ ]; - "buienradar.sensor" = ps: with ps; [ ]; - "buienradar.weather" = ps: with ps; [ ]; - "caldav" = ps: with ps; [ ]; - "caldav.calendar" = ps: with ps; [ ]; + "caldav" = ps: with ps; [ caldav ]; "calendar" = ps: with ps; [ aiohttp-cors ]; "camera" = ps: with ps; [ aiohttp-cors ]; - "camera.const" = ps: with ps; [ ]; - "camera.prefs" = ps: with ps; [ ]; - "canary" = ps: with ps; [ ]; - "canary.alarm_control_panel" = ps: with ps; [ ]; - "canary.camera" = ps: with ps; [ ha-ffmpeg ]; - "canary.sensor" = ps: with ps; [ ]; + "canary" = ps: with ps; [ ha-ffmpeg ]; "cast" = ps: with ps; [ PyChromecast ]; - "cast.media_player" = ps: with ps; [ PyChromecast ]; "cert_expiry" = ps: with ps; [ ]; - "cert_expiry.sensor" = ps: with ps; [ ]; "channels" = ps: with ps; [ ]; - "channels.media_player" = ps: with ps; [ ]; - "cisco_ios" = ps: with ps; [ ]; - "cisco_ios.device_tracker" = ps: with ps; [ pexpect ]; + "cisco_ios" = ps: with ps; [ pexpect ]; "cisco_mobility_express" = ps: with ps; [ ]; - "cisco_mobility_express.device_tracker" = ps: with ps; [ ]; + "cisco_webex_teams" = ps: with ps; [ ]; "ciscospark" = ps: with ps; [ ]; - "ciscospark.notify" = ps: with ps; [ ]; "citybikes" = ps: with ps; [ ]; - "citybikes.sensor" = ps: with ps; [ ]; "clementine" = ps: with ps; [ ]; - "clementine.media_player" = ps: with ps; [ ]; "clickatell" = ps: with ps; [ ]; - "clickatell.notify" = ps: with ps; [ ]; "clicksend" = ps: with ps; [ ]; - "clicksend.notify" = ps: with ps; [ ]; "clicksend_tts" = ps: with ps; [ ]; - "clicksend_tts.notify" = ps: with ps; [ ]; "climate" = ps: with ps; [ ]; - "climate.const" = ps: with ps; [ ]; - "climate.reproduce_state" = ps: with ps; [ ]; "cloud" = ps: with ps; [ aiohttp-cors ]; - "cloud.binary_sensor" = ps: with ps; [ aiohttp-cors ]; - "cloud.const" = ps: with ps; [ ]; - "cloud.http_api" = ps: with ps; [ ]; - "cloud.prefs" = ps: with ps; [ ]; - "cloud.utils" = ps: with ps; [ ]; "cloudflare" = ps: with ps; [ ]; "cmus" = ps: with ps; [ ]; - "cmus.media_player" = ps: with ps; [ ]; "co2signal" = ps: with ps; [ ]; - "co2signal.sensor" = ps: with ps; [ ]; "coinbase" = ps: with ps; [ ]; - "coinbase.sensor" = ps: with ps; [ ]; - "coinmarketcap" = ps: with ps; [ ]; - "coinmarketcap.sensor" = ps: with ps; [ coinmarketcap ]; + "coinmarketcap" = ps: with ps; [ coinmarketcap ]; "comed_hourly_pricing" = ps: with ps; [ ]; - "comed_hourly_pricing.sensor" = ps: with ps; [ ]; "comfoconnect" = ps: with ps; [ ]; - "comfoconnect.fan" = ps: with ps; [ ]; - "comfoconnect.sensor" = ps: with ps; [ ]; "command_line" = ps: with ps; [ ]; - "command_line.binary_sensor" = ps: with ps; [ ]; - "command_line.cover" = ps: with ps; [ ]; - "command_line.notify" = ps: with ps; [ ]; - "command_line.sensor" = ps: with ps; [ ]; - "command_line.switch" = ps: with ps; [ ]; "concord232" = ps: with ps; [ ]; - "concord232.alarm_control_panel" = ps: with ps; [ ]; - "concord232.binary_sensor" = ps: with ps; [ ]; "config" = ps: with ps; [ aiohttp-cors ]; - "config.area_registry" = ps: with ps; [ ]; - "config.auth" = ps: with ps; [ ]; - "config.automation" = ps: with ps; [ ]; - "config.config_entries" = ps: with ps; [ ]; - "config.core" = ps: with ps; [ ]; - "config.customize" = ps: with ps; [ ]; - "config.device_registry" = ps: with ps; [ ]; - "config.entity_registry" = ps: with ps; [ ]; - "config.group" = ps: with ps; [ ]; - "config.script" = ps: with ps; [ ]; - "config.zwave" = ps: with ps; [ ]; "configurator" = ps: with ps; [ ]; "conversation" = ps: with ps; [ aiohttp-cors ]; - "conversation.util" = ps: with ps; [ ]; "coolmaster" = ps: with ps; [ ]; - "coolmaster.climate" = ps: with ps; [ ]; "counter" = ps: with ps; [ ]; "cover" = ps: with ps; [ ]; "cppm_tracker" = ps: with ps; [ ]; - "cppm_tracker.device_tracker" = ps: with ps; [ ]; - "cpuspeed" = ps: with ps; [ ]; - "cpuspeed.sensor" = ps: with ps; [ py-cpuinfo ]; + "cpuspeed" = ps: with ps; [ py-cpuinfo ]; "crimereports" = ps: with ps; [ ]; - "crimereports.sensor" = ps: with ps; [ ]; - "cups" = ps: with ps; [ ]; - "cups.sensor" = ps: with ps; [ pycups ]; + "cups" = ps: with ps; [ pycups ]; "currencylayer" = ps: with ps; [ ]; - "currencylayer.sensor" = ps: with ps; [ ]; "daikin" = ps: with ps; [ ]; - "daikin.climate" = ps: with ps; [ ]; - "daikin.config_flow" = ps: with ps; [ ]; - "daikin.const" = ps: with ps; [ ]; - "daikin.sensor" = ps: with ps; [ ]; - "daikin.switch" = ps: with ps; [ ]; "danfoss_air" = ps: with ps; [ ]; - "danfoss_air.binary_sensor" = ps: with ps; [ ]; - "danfoss_air.sensor" = ps: with ps; [ ]; - "danfoss_air.switch" = ps: with ps; [ ]; - "darksky" = ps: with ps; [ ]; - "darksky.sensor" = ps: with ps; [ python-forecastio ]; - "darksky.weather" = ps: with ps; [ python-forecastio ]; + "darksky" = ps: with ps; [ python-forecastio ]; "datadog" = ps: with ps; [ datadog ]; "ddwrt" = ps: with ps; [ ]; - "ddwrt.device_tracker" = ps: with ps; [ ]; "deconz" = ps: with ps; [ ]; - "deconz.binary_sensor" = ps: with ps; [ ]; - "deconz.climate" = ps: with ps; [ ]; - "deconz.config_flow" = ps: with ps; [ ]; - "deconz.const" = ps: with ps; [ ]; - "deconz.cover" = ps: with ps; [ ]; - "deconz.deconz_device" = ps: with ps; [ ]; - "deconz.errors" = ps: with ps; [ ]; - "deconz.gateway" = ps: with ps; [ ]; - "deconz.light" = ps: with ps; [ ]; - "deconz.scene" = ps: with ps; [ ]; - "deconz.sensor" = ps: with ps; [ ]; - "deconz.switch" = ps: with ps; [ ]; "decora" = ps: with ps; [ ]; - "decora.light" = ps: with ps; [ ]; "decora_wifi" = ps: with ps; [ ]; - "decora_wifi.light" = ps: with ps; [ ]; "default_config" = ps: with ps; [ pynacl aiohttp-cors distro sqlalchemy zeroconf ]; - "deluge" = ps: with ps; [ ]; - "deluge.sensor" = ps: with ps; [ deluge-client ]; - "deluge.switch" = ps: with ps; [ deluge-client ]; + "deluge" = ps: with ps; [ deluge-client ]; "demo" = ps: with ps; [ aiohttp-cors ]; - "demo.air_quality" = ps: with ps; [ ]; - "demo.alarm_control_panel" = ps: with ps; [ ]; - "demo.binary_sensor" = ps: with ps; [ ]; - "demo.calendar" = ps: with ps; [ ]; - "demo.camera" = ps: with ps; [ ]; - "demo.climate" = ps: with ps; [ ]; - "demo.cover" = ps: with ps; [ ]; - "demo.device_tracker" = ps: with ps; [ ]; - "demo.fan" = ps: with ps; [ ]; - "demo.geo_location" = ps: with ps; [ ]; - "demo.image_processing" = ps: with ps; [ ]; - "demo.light" = ps: with ps; [ ]; - "demo.lock" = ps: with ps; [ ]; - "demo.mailbox" = ps: with ps; [ ]; - "demo.media_player" = ps: with ps; [ ]; - "demo.notify" = ps: with ps; [ ]; - "demo.remote" = ps: with ps; [ ]; - "demo.sensor" = ps: with ps; [ ]; - "demo.switch" = ps: with ps; [ ]; - "demo.tts" = ps: with ps; [ ]; - "demo.vacuum" = ps: with ps; [ ]; - "demo.water_heater" = ps: with ps; [ ]; - "demo.weather" = ps: with ps; [ ]; "denon" = ps: with ps; [ ]; - "denon.media_player" = ps: with ps; [ ]; "denonavr" = ps: with ps; [ ]; - "denonavr.media_player" = ps: with ps; [ ]; "deutsche_bahn" = ps: with ps; [ ]; - "deutsche_bahn.sensor" = ps: with ps; [ ]; "device_sun_light_trigger" = ps: with ps; [ ]; "device_tracker" = ps: with ps; [ ]; "dht" = ps: with ps; [ ]; - "dht.sensor" = ps: with ps; [ ]; "dialogflow" = ps: with ps; [ aiohttp-cors ]; "digital_ocean" = ps: with ps; [ digital-ocean ]; - "digital_ocean.binary_sensor" = ps: with ps; [ digital-ocean ]; - "digital_ocean.switch" = ps: with ps; [ digital-ocean ]; "digitalloggers" = ps: with ps; [ ]; - "digitalloggers.switch" = ps: with ps; [ ]; "directv" = ps: with ps; [ ]; - "directv.media_player" = ps: with ps; [ ]; - "discogs" = ps: with ps; [ ]; - "discogs.sensor" = ps: with ps; [ discogs_client ]; - "discord" = ps: with ps; [ ]; - "discord.notify" = ps: with ps; [ discordpy ]; + "discogs" = ps: with ps; [ discogs_client ]; + "discord" = ps: with ps; [ discordpy ]; "discovery" = ps: with ps; [ netdisco ]; - "dlib_face_detect" = ps: with ps; [ ]; - "dlib_face_detect.image_processing" = ps: with ps; [ face_recognition ]; - "dlib_face_identify" = ps: with ps; [ ]; - "dlib_face_identify.image_processing" = ps: with ps; [ face_recognition ]; + "dlib_face_detect" = ps: with ps; [ face_recognition ]; + "dlib_face_identify" = ps: with ps; [ face_recognition ]; "dlink" = ps: with ps; [ ]; - "dlink.switch" = ps: with ps; [ ]; "dlna_dmr" = ps: with ps; [ ]; - "dlna_dmr.media_player" = ps: with ps; [ ]; - "dnsip" = ps: with ps; [ ]; - "dnsip.sensor" = ps: with ps; [ aiodns ]; + "dnsip" = ps: with ps; [ aiodns ]; "dominos" = ps: with ps; [ aiohttp-cors ]; "doorbird" = ps: with ps; [ ]; - "doorbird.camera" = ps: with ps; [ ]; - "doorbird.switch" = ps: with ps; [ ]; "dovado" = ps: with ps; [ ]; - "dovado.notify" = ps: with ps; [ ]; - "dovado.sensor" = ps: with ps; [ ]; "downloader" = ps: with ps; [ ]; "dsmr" = ps: with ps; [ ]; - "dsmr.sensor" = ps: with ps; [ ]; "dte_energy_bridge" = ps: with ps; [ ]; - "dte_energy_bridge.sensor" = ps: with ps; [ ]; "dublin_bus_transport" = ps: with ps; [ ]; - "dublin_bus_transport.sensor" = ps: with ps; [ ]; "duckdns" = ps: with ps; [ ]; "duke_energy" = ps: with ps; [ ]; - "duke_energy.sensor" = ps: with ps; [ ]; "dunehd" = ps: with ps; [ ]; - "dunehd.media_player" = ps: with ps; [ ]; "dwd_weather_warnings" = ps: with ps; [ ]; - "dwd_weather_warnings.sensor" = ps: with ps; [ ]; "dweet" = ps: with ps; [ ]; - "dweet.sensor" = ps: with ps; [ ]; "dyson" = ps: with ps; [ ]; - "dyson.climate" = ps: with ps; [ ]; - "dyson.fan" = ps: with ps; [ ]; - "dyson.sensor" = ps: with ps; [ ]; - "dyson.vacuum" = ps: with ps; [ ]; "ebox" = ps: with ps; [ ]; - "ebox.sensor" = ps: with ps; [ ]; "ebusd" = ps: with ps; [ ]; - "ebusd.const" = ps: with ps; [ ]; - "ebusd.sensor" = ps: with ps; [ ]; "ecoal_boiler" = ps: with ps; [ ]; - "ecoal_boiler.sensor" = ps: with ps; [ ]; - "ecoal_boiler.switch" = ps: with ps; [ ]; "ecobee" = ps: with ps; [ ]; - "ecobee.binary_sensor" = ps: with ps; [ ]; - "ecobee.climate" = ps: with ps; [ ]; - "ecobee.notify" = ps: with ps; [ ]; - "ecobee.sensor" = ps: with ps; [ ]; - "ecobee.weather" = ps: with ps; [ ]; "econet" = ps: with ps; [ ]; - "econet.water_heater" = ps: with ps; [ ]; "ecovacs" = ps: with ps; [ ]; - "ecovacs.vacuum" = ps: with ps; [ ]; - "eddystone_temperature" = ps: with ps; [ ]; - "eddystone_temperature.sensor" = ps: with ps; [ construct ]; + "eddystone_temperature" = ps: with ps; [ construct ]; "edimax" = ps: with ps; [ ]; - "edimax.switch" = ps: with ps; [ ]; "edp_redy" = ps: with ps; [ ]; - "edp_redy.sensor" = ps: with ps; [ ]; - "edp_redy.switch" = ps: with ps; [ ]; "ee_brightbox" = ps: with ps; [ ]; - "ee_brightbox.device_tracker" = ps: with ps; [ ]; "efergy" = ps: with ps; [ ]; - "efergy.sensor" = ps: with ps; [ ]; "egardia" = ps: with ps; [ ]; - "egardia.alarm_control_panel" = ps: with ps; [ ]; - "egardia.binary_sensor" = ps: with ps; [ ]; "eight_sleep" = ps: with ps; [ ]; - "eight_sleep.binary_sensor" = ps: with ps; [ ]; - "eight_sleep.sensor" = ps: with ps; [ ]; "eliqonline" = ps: with ps; [ ]; - "eliqonline.sensor" = ps: with ps; [ ]; "elkm1" = ps: with ps; [ ]; - "elkm1.alarm_control_panel" = ps: with ps; [ ]; - "elkm1.climate" = ps: with ps; [ ]; - "elkm1.light" = ps: with ps; [ ]; - "elkm1.scene" = ps: with ps; [ ]; - "elkm1.sensor" = ps: with ps; [ ]; - "elkm1.switch" = ps: with ps; [ ]; "emby" = ps: with ps; [ ]; - "emby.media_player" = ps: with ps; [ ]; "emoncms" = ps: with ps; [ ]; - "emoncms.sensor" = ps: with ps; [ ]; "emoncms_history" = ps: with ps; [ ]; "emulated_hue" = ps: with ps; [ aiohttp-cors ]; - "emulated_hue.hue_api" = ps: with ps; [ ]; - "emulated_hue.upnp" = ps: with ps; [ ]; "emulated_roku" = ps: with ps; [ ]; - "emulated_roku.binding" = ps: with ps; [ ]; - "emulated_roku.config_flow" = ps: with ps; [ ]; - "emulated_roku.const" = ps: with ps; [ ]; "enigma2" = ps: with ps; [ ]; - "enigma2.media_player" = ps: with ps; [ ]; "enocean" = ps: with ps; [ ]; - "enocean.binary_sensor" = ps: with ps; [ ]; - "enocean.light" = ps: with ps; [ ]; - "enocean.sensor" = ps: with ps; [ ]; - "enocean.switch" = ps: with ps; [ ]; "enphase_envoy" = ps: with ps; [ ]; - "enphase_envoy.sensor" = ps: with ps; [ ]; "entur_public_transport" = ps: with ps; [ ]; - "entur_public_transport.sensor" = ps: with ps; [ ]; "envirophat" = ps: with ps; [ ]; - "envirophat.sensor" = ps: with ps; [ ]; "envisalink" = ps: with ps; [ ]; - "envisalink.alarm_control_panel" = ps: with ps; [ ]; - "envisalink.binary_sensor" = ps: with ps; [ ]; - "envisalink.sensor" = ps: with ps; [ ]; "ephember" = ps: with ps; [ ]; - "ephember.climate" = ps: with ps; [ ]; "epson" = ps: with ps; [ ]; - "epson.media_player" = ps: with ps; [ ]; - "eq3btsmart" = ps: with ps; [ ]; - "eq3btsmart.climate" = ps: with ps; [ construct ]; + "epsonworkforce" = ps: with ps; [ ]; + "eq3btsmart" = ps: with ps; [ construct ]; "esphome" = ps: with ps; [ aioesphomeapi ]; - "esphome.binary_sensor" = ps: with ps; [ aioesphomeapi ]; - "esphome.camera" = ps: with ps; [ aioesphomeapi ]; - "esphome.config_flow" = ps: with ps; [ ]; - "esphome.cover" = ps: with ps; [ aioesphomeapi ]; - "esphome.fan" = ps: with ps; [ aioesphomeapi ]; - "esphome.light" = ps: with ps; [ aioesphomeapi ]; - "esphome.sensor" = ps: with ps; [ aioesphomeapi ]; - "esphome.switch" = ps: with ps; [ aioesphomeapi ]; "etherscan" = ps: with ps; [ ]; - "etherscan.sensor" = ps: with ps; [ ]; "eufy" = ps: with ps; [ ]; - "eufy.light" = ps: with ps; [ ]; - "eufy.switch" = ps: with ps; [ ]; "everlights" = ps: with ps; [ ]; - "everlights.light" = ps: with ps; [ ]; "evohome" = ps: with ps; [ ]; - "evohome.climate" = ps: with ps; [ ]; "facebook" = ps: with ps; [ ]; - "facebook.notify" = ps: with ps; [ ]; "facebox" = ps: with ps; [ ]; - "facebox.image_processing" = ps: with ps; [ ]; "fail2ban" = ps: with ps; [ ]; - "fail2ban.sensor" = ps: with ps; [ ]; "familyhub" = ps: with ps; [ ]; - "familyhub.camera" = ps: with ps; [ ]; "fan" = ps: with ps; [ ]; "fastdotcom" = ps: with ps; [ ]; - "fastdotcom.sensor" = ps: with ps; [ ]; "fedex" = ps: with ps; [ ]; - "fedex.sensor" = ps: with ps; [ ]; "feedreader" = ps: with ps; [ ]; "ffmpeg" = ps: with ps; [ ha-ffmpeg ]; - "ffmpeg.camera" = ps: with ps; [ ha-ffmpeg ]; - "ffmpeg_motion" = ps: with ps; [ ]; - "ffmpeg_motion.binary_sensor" = ps: with ps; [ ha-ffmpeg ]; - "ffmpeg_noise" = ps: with ps; [ ]; - "ffmpeg_noise.binary_sensor" = ps: with ps; [ ha-ffmpeg ]; + "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ]; + "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ]; "fibaro" = ps: with ps; [ ]; - "fibaro.binary_sensor" = ps: with ps; [ ]; - "fibaro.cover" = ps: with ps; [ ]; - "fibaro.light" = ps: with ps; [ ]; - "fibaro.scene" = ps: with ps; [ ]; - "fibaro.sensor" = ps: with ps; [ ]; - "fibaro.switch" = ps: with ps; [ ]; "fido" = ps: with ps; [ ]; - "fido.sensor" = ps: with ps; [ ]; "file" = ps: with ps; [ ]; - "file.notify" = ps: with ps; [ ]; - "file.sensor" = ps: with ps; [ ]; "filesize" = ps: with ps; [ ]; - "filesize.sensor" = ps: with ps; [ ]; "filter" = ps: with ps; [ ]; - "filter.sensor" = ps: with ps; [ ]; - "fints" = ps: with ps; [ ]; - "fints.sensor" = ps: with ps; [ fints ]; - "fitbit" = ps: with ps; [ ]; - "fitbit.sensor" = ps: with ps; [ aiohttp-cors ]; + "fints" = ps: with ps; [ fints ]; + "fitbit" = ps: with ps; [ aiohttp-cors ]; "fixer" = ps: with ps; [ ]; - "fixer.sensor" = ps: with ps; [ ]; "flexit" = ps: with ps; [ ]; - "flexit.climate" = ps: with ps; [ ]; "flic" = ps: with ps; [ ]; - "flic.binary_sensor" = ps: with ps; [ ]; "flock" = ps: with ps; [ ]; - "flock.notify" = ps: with ps; [ ]; "flunearyou" = ps: with ps; [ ]; - "flunearyou.sensor" = ps: with ps; [ ]; "flux" = ps: with ps; [ ]; - "flux.switch" = ps: with ps; [ ]; "flux_led" = ps: with ps; [ ]; - "flux_led.light" = ps: with ps; [ ]; "folder" = ps: with ps; [ ]; - "folder.sensor" = ps: with ps; [ ]; "folder_watcher" = ps: with ps; [ watchdog ]; "foobot" = ps: with ps; [ ]; - "foobot.sensor" = ps: with ps; [ ]; "foscam" = ps: with ps; [ ]; - "foscam.camera" = ps: with ps; [ ]; "foursquare" = ps: with ps; [ aiohttp-cors ]; "free_mobile" = ps: with ps; [ ]; - "free_mobile.notify" = ps: with ps; [ ]; "freebox" = ps: with ps; [ ]; - "freebox.device_tracker" = ps: with ps; [ ]; - "freebox.sensor" = ps: with ps; [ ]; - "freebox.switch" = ps: with ps; [ ]; "freedns" = ps: with ps; [ ]; - "fritz" = ps: with ps; [ ]; - "fritz.device_tracker" = ps: with ps; [ fritzconnection ]; + "fritz" = ps: with ps; [ fritzconnection ]; "fritzbox" = ps: with ps; [ ]; - "fritzbox.binary_sensor" = ps: with ps; [ ]; - "fritzbox.climate" = ps: with ps; [ ]; - "fritzbox.sensor" = ps: with ps; [ ]; - "fritzbox.switch" = ps: with ps; [ ]; - "fritzbox_callmonitor" = ps: with ps; [ ]; - "fritzbox_callmonitor.sensor" = ps: with ps; [ fritzconnection ]; - "fritzbox_netmonitor" = ps: with ps; [ ]; - "fritzbox_netmonitor.sensor" = ps: with ps; [ fritzconnection ]; + "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ]; + "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ]; "fritzdect" = ps: with ps; [ ]; - "fritzdect.switch" = ps: with ps; [ ]; "frontend" = ps: with ps; [ aiohttp-cors ]; - "frontend.storage" = ps: with ps; [ ]; "frontier_silicon" = ps: with ps; [ ]; - "frontier_silicon.media_player" = ps: with ps; [ ]; "futurenow" = ps: with ps; [ ]; - "futurenow.light" = ps: with ps; [ ]; "garadget" = ps: with ps; [ ]; - "garadget.cover" = ps: with ps; [ ]; "gc100" = ps: with ps; [ ]; - "gc100.binary_sensor" = ps: with ps; [ ]; - "gc100.switch" = ps: with ps; [ ]; "gearbest" = ps: with ps; [ ]; - "gearbest.sensor" = ps: with ps; [ ]; "geizhals" = ps: with ps; [ ]; - "geizhals.sensor" = ps: with ps; [ ]; "generic" = ps: with ps; [ ]; - "generic.camera" = ps: with ps; [ ]; "generic_thermostat" = ps: with ps; [ ]; - "generic_thermostat.climate" = ps: with ps; [ ]; + "geniushub" = ps: with ps; [ ]; "geo_json_events" = ps: with ps; [ ]; - "geo_json_events.geo_location" = ps: with ps; [ ]; "geo_location" = ps: with ps; [ ]; "geo_rss_events" = ps: with ps; [ ]; - "geo_rss_events.sensor" = ps: with ps; [ ]; "geofency" = ps: with ps; [ aiohttp-cors ]; - "geofency.device_tracker" = ps: with ps; [ aiohttp-cors ]; - "github" = ps: with ps; [ ]; - "github.sensor" = ps: with ps; [ PyGithub ]; - "gitlab_ci" = ps: with ps; [ ]; - "gitlab_ci.sensor" = ps: with ps; [ python-gitlab ]; + "github" = ps: with ps; [ PyGithub ]; + "gitlab_ci" = ps: with ps; [ python-gitlab ]; "gitter" = ps: with ps; [ ]; - "gitter.sensor" = ps: with ps; [ ]; "glances" = ps: with ps; [ ]; - "glances.sensor" = ps: with ps; [ ]; "gntp" = ps: with ps; [ ]; - "gntp.notify" = ps: with ps; [ ]; "goalfeed" = ps: with ps; [ ]; "gogogate2" = ps: with ps; [ ]; - "gogogate2.cover" = ps: with ps; [ ]; "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client ]; - "google.calendar" = ps: with ps; [ ]; - "google.tts" = ps: with ps; [ ]; "google_assistant" = ps: with ps; [ aiohttp-cors ]; - "google_assistant.const" = ps: with ps; [ ]; - "google_assistant.helpers" = ps: with ps; [ ]; - "google_assistant.http" = ps: with ps; [ ]; - "google_assistant.smart_home" = ps: with ps; [ ]; - "google_assistant.trait" = ps: with ps; [ ]; "google_domains" = ps: with ps; [ ]; "google_maps" = ps: with ps; [ ]; - "google_maps.device_tracker" = ps: with ps; [ ]; "google_pubsub" = ps: with ps; [ google_cloud_pubsub ]; + "google_translate" = ps: with ps; [ ]; "google_travel_time" = ps: with ps; [ ]; - "google_travel_time.sensor" = ps: with ps; [ ]; "google_wifi" = ps: with ps; [ ]; - "google_wifi.sensor" = ps: with ps; [ ]; "googlehome" = ps: with ps; [ ]; - "googlehome.device_tracker" = ps: with ps; [ ]; - "googlehome.sensor" = ps: with ps; [ ]; - "gpmdp" = ps: with ps; [ ]; - "gpmdp.media_player" = ps: with ps; [ websocket_client ]; + "gpmdp" = ps: with ps; [ websocket_client ]; "gpsd" = ps: with ps; [ ]; - "gpsd.sensor" = ps: with ps; [ ]; "gpslogger" = ps: with ps; [ aiohttp-cors ]; - "gpslogger.device_tracker" = ps: with ps; [ aiohttp-cors ]; "graphite" = ps: with ps; [ ]; "greeneye_monitor" = ps: with ps; [ ]; - "greeneye_monitor.sensor" = ps: with ps; [ ]; "greenwave" = ps: with ps; [ ]; - "greenwave.light" = ps: with ps; [ ]; "group" = ps: with ps; [ ]; - "group.cover" = ps: with ps; [ ]; - "group.light" = ps: with ps; [ ]; - "group.notify" = ps: with ps; [ ]; - "group.reproduce_state" = ps: with ps; [ ]; "gstreamer" = ps: with ps; [ ]; - "gstreamer.media_player" = ps: with ps; [ ]; "gtfs" = ps: with ps; [ ]; - "gtfs.sensor" = ps: with ps; [ ]; "gtt" = ps: with ps; [ ]; - "gtt.sensor" = ps: with ps; [ ]; "habitica" = ps: with ps; [ ]; - "habitica.sensor" = ps: with ps; [ ]; "hangouts" = ps: with ps; [ ]; - "hangouts.config_flow" = ps: with ps; [ ]; - "hangouts.const" = ps: with ps; [ ]; - "hangouts.hangouts_bot" = ps: with ps; [ ]; - "hangouts.intents" = ps: with ps; [ ]; - "hangouts.notify" = ps: with ps; [ ]; "harman_kardon_avr" = ps: with ps; [ ]; - "harman_kardon_avr.media_player" = ps: with ps; [ ]; "harmony" = ps: with ps; [ ]; - "harmony.remote" = ps: with ps; [ ]; "hassio" = ps: with ps; [ aiohttp-cors ]; - "hassio.auth" = ps: with ps; [ ]; - "hassio.const" = ps: with ps; [ ]; - "hassio.discovery" = ps: with ps; [ ]; - "hassio.handler" = ps: with ps; [ ]; - "hassio.http" = ps: with ps; [ ]; - "hassio.ingress" = ps: with ps; [ ]; "haveibeenpwned" = ps: with ps; [ ]; - "haveibeenpwned.sensor" = ps: with ps; [ ]; "hddtemp" = ps: with ps; [ ]; - "hddtemp.sensor" = ps: with ps; [ ]; "hdmi_cec" = ps: with ps; [ ]; - "hdmi_cec.media_player" = ps: with ps; [ ]; - "hdmi_cec.switch" = ps: with ps; [ ]; "heatmiser" = ps: with ps; [ ]; - "heatmiser.climate" = ps: with ps; [ ]; + "heos" = ps: with ps; [ ]; "hikvision" = ps: with ps; [ ]; - "hikvision.binary_sensor" = ps: with ps; [ ]; "hikvisioncam" = ps: with ps; [ ]; - "hikvisioncam.switch" = ps: with ps; [ ]; "hipchat" = ps: with ps; [ ]; - "hipchat.notify" = ps: with ps; [ ]; "history" = ps: with ps; [ aiohttp-cors sqlalchemy ]; "history_graph" = ps: with ps; [ aiohttp-cors sqlalchemy ]; - "history_stats" = ps: with ps; [ ]; - "history_stats.sensor" = ps: with ps; [ aiohttp-cors sqlalchemy ]; + "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ]; "hitron_coda" = ps: with ps; [ ]; - "hitron_coda.device_tracker" = ps: with ps; [ ]; "hive" = ps: with ps; [ ]; - "hive.binary_sensor" = ps: with ps; [ ]; - "hive.climate" = ps: with ps; [ ]; - "hive.light" = ps: with ps; [ ]; - "hive.sensor" = ps: with ps; [ ]; - "hive.switch" = ps: with ps; [ ]; "hlk_sw16" = ps: with ps; [ ]; - "hlk_sw16.switch" = ps: with ps; [ ]; "homeassistant" = ps: with ps; [ ]; - "homeassistant.scene" = ps: with ps; [ ]; "homekit" = ps: with ps; [ ]; - "homekit.const" = ps: with ps; [ ]; - "homekit.util" = ps: with ps; [ ]; "homekit_controller" = ps: with ps; [ ]; - "homekit_controller.alarm_control_panel" = ps: with ps; [ ]; - "homekit_controller.binary_sensor" = ps: with ps; [ ]; - "homekit_controller.climate" = ps: with ps; [ ]; - "homekit_controller.config_flow" = ps: with ps; [ ]; - "homekit_controller.connection" = ps: with ps; [ ]; - "homekit_controller.const" = ps: with ps; [ ]; - "homekit_controller.cover" = ps: with ps; [ ]; - "homekit_controller.light" = ps: with ps; [ ]; - "homekit_controller.lock" = ps: with ps; [ ]; - "homekit_controller.sensor" = ps: with ps; [ ]; - "homekit_controller.switch" = ps: with ps; [ ]; "homematic" = ps: with ps; [ pyhomematic ]; - "homematic.binary_sensor" = ps: with ps; [ pyhomematic ]; - "homematic.climate" = ps: with ps; [ pyhomematic ]; - "homematic.cover" = ps: with ps; [ pyhomematic ]; - "homematic.light" = ps: with ps; [ pyhomematic ]; - "homematic.lock" = ps: with ps; [ pyhomematic ]; - "homematic.notify" = ps: with ps; [ pyhomematic ]; - "homematic.sensor" = ps: with ps; [ pyhomematic ]; - "homematic.switch" = ps: with ps; [ pyhomematic ]; "homematicip_cloud" = ps: with ps; [ ]; - "homematicip_cloud.alarm_control_panel" = ps: with ps; [ ]; - "homematicip_cloud.binary_sensor" = ps: with ps; [ ]; - "homematicip_cloud.climate" = ps: with ps; [ ]; - "homematicip_cloud.config_flow" = ps: with ps; [ ]; - "homematicip_cloud.const" = ps: with ps; [ ]; - "homematicip_cloud.cover" = ps: with ps; [ ]; - "homematicip_cloud.device" = ps: with ps; [ ]; - "homematicip_cloud.errors" = ps: with ps; [ ]; - "homematicip_cloud.hap" = ps: with ps; [ ]; - "homematicip_cloud.light" = ps: with ps; [ ]; - "homematicip_cloud.sensor" = ps: with ps; [ ]; - "homematicip_cloud.switch" = ps: with ps; [ ]; - "homematicip_cloud.weather" = ps: with ps; [ ]; "homeworks" = ps: with ps; [ ]; - "homeworks.light" = ps: with ps; [ ]; "honeywell" = ps: with ps; [ ]; - "honeywell.climate" = ps: with ps; [ ]; "hook" = ps: with ps; [ ]; - "hook.switch" = ps: with ps; [ ]; "horizon" = ps: with ps; [ ]; - "horizon.media_player" = ps: with ps; [ ]; "hp_ilo" = ps: with ps; [ ]; - "hp_ilo.sensor" = ps: with ps; [ ]; - "html5" = ps: with ps; [ ]; - "html5.notify" = ps: with ps; [ aiohttp-cors ]; + "html5" = ps: with ps; [ aiohttp-cors ]; "http" = ps: with ps; [ aiohttp-cors ]; - "http.auth" = ps: with ps; [ ]; - "http.ban" = ps: with ps; [ ]; - "http.const" = ps: with ps; [ ]; - "http.cors" = ps: with ps; [ ]; - "http.data_validator" = ps: with ps; [ ]; - "http.real_ip" = ps: with ps; [ ]; - "http.static" = ps: with ps; [ ]; - "http.view" = ps: with ps; [ ]; "htu21d" = ps: with ps; [ ]; - "htu21d.sensor" = ps: with ps; [ ]; "huawei_lte" = ps: with ps; [ ]; - "huawei_lte.device_tracker" = ps: with ps; [ ]; - "huawei_lte.notify" = ps: with ps; [ ]; - "huawei_lte.sensor" = ps: with ps; [ ]; "huawei_router" = ps: with ps; [ ]; - "huawei_router.device_tracker" = ps: with ps; [ ]; "hue" = ps: with ps; [ aiohue ]; - "hue.bridge" = ps: with ps; [ ]; - "hue.config_flow" = ps: with ps; [ ]; - "hue.const" = ps: with ps; [ ]; - "hue.errors" = ps: with ps; [ ]; - "hue.light" = ps: with ps; [ aiohue ]; "hunterdouglas_powerview" = ps: with ps; [ ]; - "hunterdouglas_powerview.scene" = ps: with ps; [ ]; "hydrawise" = ps: with ps; [ ]; - "hydrawise.binary_sensor" = ps: with ps; [ ]; - "hydrawise.sensor" = ps: with ps; [ ]; - "hydrawise.switch" = ps: with ps; [ ]; "hydroquebec" = ps: with ps; [ ]; - "hydroquebec.sensor" = ps: with ps; [ ]; "hyperion" = ps: with ps; [ ]; - "hyperion.light" = ps: with ps; [ ]; "ialarm" = ps: with ps; [ ]; - "ialarm.alarm_control_panel" = ps: with ps; [ ]; "icloud" = ps: with ps; [ ]; - "icloud.device_tracker" = ps: with ps; [ ]; "idteck_prox" = ps: with ps; [ ]; "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ]; - "ifttt.alarm_control_panel" = ps: with ps; [ aiohttp-cors pyfttt ]; "iglo" = ps: with ps; [ ]; - "iglo.light" = ps: with ps; [ ]; + "ign_sismologia" = ps: with ps; [ ]; "ihc" = ps: with ps; [ defusedxml ]; - "ihc.binary_sensor" = ps: with ps; [ defusedxml ]; - "ihc.const" = ps: with ps; [ ]; - "ihc.ihcdevice" = ps: with ps; [ ]; - "ihc.light" = ps: with ps; [ defusedxml ]; - "ihc.sensor" = ps: with ps; [ defusedxml ]; - "ihc.switch" = ps: with ps; [ defusedxml ]; - "ihc.util" = ps: with ps; [ ]; "image_processing" = ps: with ps; [ aiohttp-cors ]; "imap" = ps: with ps; [ ]; - "imap.sensor" = ps: with ps; [ ]; "imap_email_content" = ps: with ps; [ ]; - "imap_email_content.sensor" = ps: with ps; [ ]; "influxdb" = ps: with ps; [ influxdb ]; - "influxdb.sensor" = ps: with ps; [ influxdb ]; "input_boolean" = ps: with ps; [ ]; "input_datetime" = ps: with ps; [ ]; "input_number" = ps: with ps; [ ]; "input_select" = ps: with ps; [ ]; "input_text" = ps: with ps; [ ]; "insteon" = ps: with ps; [ ]; - "insteon.binary_sensor" = ps: with ps; [ ]; - "insteon.cover" = ps: with ps; [ ]; - "insteon.fan" = ps: with ps; [ ]; - "insteon.light" = ps: with ps; [ ]; - "insteon.sensor" = ps: with ps; [ ]; - "insteon.switch" = ps: with ps; [ ]; - "insteon_local" = ps: with ps; [ ]; - "insteon_plm" = ps: with ps; [ ]; "integration" = ps: with ps; [ ]; - "integration.sensor" = ps: with ps; [ ]; "intent_script" = ps: with ps; [ ]; - "introduction" = ps: with ps; [ ]; "ios" = ps: with ps; [ aiohttp-cors zeroconf ]; - "ios.notify" = ps: with ps; [ aiohttp-cors zeroconf ]; - "ios.sensor" = ps: with ps; [ aiohttp-cors zeroconf ]; "iota" = ps: with ps; [ ]; - "iota.sensor" = ps: with ps; [ ]; "iperf3" = ps: with ps; [ ]; - "iperf3.sensor" = ps: with ps; [ ]; "ipma" = ps: with ps; [ ]; - "ipma.config_flow" = ps: with ps; [ ]; - "ipma.const" = ps: with ps; [ ]; - "ipma.weather" = ps: with ps; [ ]; "irish_rail_transport" = ps: with ps; [ ]; - "irish_rail_transport.sensor" = ps: with ps; [ ]; "islamic_prayer_times" = ps: with ps; [ ]; - "islamic_prayer_times.sensor" = ps: with ps; [ ]; "iss" = ps: with ps; [ ]; - "iss.binary_sensor" = ps: with ps; [ ]; "isy994" = ps: with ps; [ ]; - "isy994.binary_sensor" = ps: with ps; [ ]; - "isy994.cover" = ps: with ps; [ ]; - "isy994.fan" = ps: with ps; [ ]; - "isy994.light" = ps: with ps; [ ]; - "isy994.lock" = ps: with ps; [ ]; - "isy994.sensor" = ps: with ps; [ ]; - "isy994.switch" = ps: with ps; [ ]; "itach" = ps: with ps; [ ]; - "itach.remote" = ps: with ps; [ ]; "itunes" = ps: with ps; [ ]; - "itunes.media_player" = ps: with ps; [ ]; "jewish_calendar" = ps: with ps; [ ]; - "jewish_calendar.sensor" = ps: with ps; [ ]; "joaoapps_join" = ps: with ps; [ ]; - "joaoapps_join.notify" = ps: with ps; [ ]; "juicenet" = ps: with ps; [ ]; - "juicenet.sensor" = ps: with ps; [ ]; "kankun" = ps: with ps; [ ]; - "kankun.switch" = ps: with ps; [ ]; "keenetic_ndms2" = ps: with ps; [ ]; - "keenetic_ndms2.device_tracker" = ps: with ps; [ ]; "keyboard" = ps: with ps; [ ]; "keyboard_remote" = ps: with ps; [ evdev ]; "kira" = ps: with ps; [ ]; - "kira.remote" = ps: with ps; [ ]; - "kira.sensor" = ps: with ps; [ ]; "kiwi" = ps: with ps; [ ]; - "kiwi.lock" = ps: with ps; [ ]; "knx" = ps: with ps; [ ]; - "knx.binary_sensor" = ps: with ps; [ ]; - "knx.climate" = ps: with ps; [ ]; - "knx.cover" = ps: with ps; [ ]; - "knx.light" = ps: with ps; [ ]; - "knx.notify" = ps: with ps; [ ]; - "knx.scene" = ps: with ps; [ ]; - "knx.sensor" = ps: with ps; [ ]; - "knx.switch" = ps: with ps; [ ]; - "kodi" = ps: with ps; [ ]; - "kodi.media_player" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ]; - "kodi.notify" = ps: with ps; [ jsonrpc-async ]; + "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ]; "konnected" = ps: with ps; [ aiohttp-cors ]; - "konnected.binary_sensor" = ps: with ps; [ aiohttp-cors ]; - "konnected.const" = ps: with ps; [ ]; - "konnected.handlers" = ps: with ps; [ ]; - "konnected.sensor" = ps: with ps; [ aiohttp-cors ]; - "konnected.switch" = ps: with ps; [ aiohttp-cors ]; "kwb" = ps: with ps; [ ]; - "kwb.sensor" = ps: with ps; [ ]; "lacrosse" = ps: with ps; [ ]; - "lacrosse.sensor" = ps: with ps; [ ]; "lametric" = ps: with ps; [ ]; - "lametric.notify" = ps: with ps; [ ]; "lannouncer" = ps: with ps; [ ]; - "lannouncer.notify" = ps: with ps; [ ]; - "lastfm" = ps: with ps; [ ]; - "lastfm.sensor" = ps: with ps; [ pylast ]; + "lastfm" = ps: with ps; [ pylast ]; "launch_library" = ps: with ps; [ ]; - "launch_library.sensor" = ps: with ps; [ ]; "lcn" = ps: with ps; [ ]; - "lcn.const" = ps: with ps; [ ]; - "lcn.cover" = ps: with ps; [ ]; - "lcn.light" = ps: with ps; [ ]; - "lcn.sensor" = ps: with ps; [ ]; - "lcn.switch" = ps: with ps; [ ]; "lg_netcast" = ps: with ps; [ ]; - "lg_netcast.media_player" = ps: with ps; [ ]; "lg_soundbar" = ps: with ps; [ ]; - "lg_soundbar.media_player" = ps: with ps; [ ]; - "lifx" = ps: with ps; [ aiolifx ]; - "lifx.light" = ps: with ps; [ aiolifx aiolifx-effects ]; + "lifx" = ps: with ps; [ aiolifx aiolifx-effects ]; "lifx_cloud" = ps: with ps; [ ]; - "lifx_cloud.scene" = ps: with ps; [ ]; "lifx_legacy" = ps: with ps; [ ]; - "lifx_legacy.light" = ps: with ps; [ ]; "light" = ps: with ps; [ ]; "lightwave" = ps: with ps; [ ]; - "lightwave.light" = ps: with ps; [ ]; - "lightwave.switch" = ps: with ps; [ ]; - "limitlessled" = ps: with ps; [ ]; - "limitlessled.light" = ps: with ps; [ limitlessled ]; - "linksys_ap" = ps: with ps; [ ]; - "linksys_ap.device_tracker" = ps: with ps; [ beautifulsoup4 ]; + "limitlessled" = ps: with ps; [ limitlessled ]; + "linksys_ap" = ps: with ps; [ beautifulsoup4 ]; "linksys_smart" = ps: with ps; [ ]; - "linksys_smart.device_tracker" = ps: with ps; [ ]; "linky" = ps: with ps; [ ]; - "linky.sensor" = ps: with ps; [ ]; "linode" = ps: with ps; [ linode-api ]; - "linode.binary_sensor" = ps: with ps; [ linode-api ]; - "linode.switch" = ps: with ps; [ linode-api ]; - "linux_battery" = ps: with ps; [ ]; - "linux_battery.sensor" = ps: with ps; [ batinfo ]; + "linux_battery" = ps: with ps; [ batinfo ]; "lirc" = ps: with ps; [ ]; "litejet" = ps: with ps; [ ]; - "litejet.light" = ps: with ps; [ ]; - "litejet.scene" = ps: with ps; [ ]; - "litejet.switch" = ps: with ps; [ ]; "liveboxplaytv" = ps: with ps; [ ]; - "liveboxplaytv.media_player" = ps: with ps; [ ]; "llamalab_automate" = ps: with ps; [ ]; - "llamalab_automate.notify" = ps: with ps; [ ]; "local_file" = ps: with ps; [ ]; - "local_file.camera" = ps: with ps; [ ]; "locative" = ps: with ps; [ aiohttp-cors ]; - "locative.device_tracker" = ps: with ps; [ aiohttp-cors ]; "lock" = ps: with ps; [ ]; "lockitron" = ps: with ps; [ ]; - "lockitron.lock" = ps: with ps; [ ]; "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy ]; "logentries" = ps: with ps; [ ]; "logger" = ps: with ps; [ ]; - "logi_circle" = ps: with ps; [ ]; - "logi_circle.camera" = ps: with ps; [ ]; - "logi_circle.sensor" = ps: with ps; [ ]; + "logi_circle" = ps: with ps; [ ha-ffmpeg ]; "london_air" = ps: with ps; [ ]; - "london_air.sensor" = ps: with ps; [ ]; "london_underground" = ps: with ps; [ ]; - "london_underground.sensor" = ps: with ps; [ ]; "loopenergy" = ps: with ps; [ ]; - "loopenergy.sensor" = ps: with ps; [ ]; "lovelace" = ps: with ps; [ ]; "luci" = ps: with ps; [ ]; - "luci.device_tracker" = ps: with ps; [ ]; "luftdaten" = ps: with ps; [ luftdaten ]; - "luftdaten.config_flow" = ps: with ps; [ ]; - "luftdaten.const" = ps: with ps; [ ]; - "luftdaten.sensor" = ps: with ps; [ luftdaten ]; "lupusec" = ps: with ps; [ ]; - "lupusec.alarm_control_panel" = ps: with ps; [ ]; - "lupusec.binary_sensor" = ps: with ps; [ ]; - "lupusec.switch" = ps: with ps; [ ]; "lutron" = ps: with ps; [ ]; - "lutron.cover" = ps: with ps; [ ]; - "lutron.light" = ps: with ps; [ ]; - "lutron.scene" = ps: with ps; [ ]; - "lutron.switch" = ps: with ps; [ ]; "lutron_caseta" = ps: with ps; [ ]; - "lutron_caseta.cover" = ps: with ps; [ ]; - "lutron_caseta.light" = ps: with ps; [ ]; - "lutron_caseta.scene" = ps: with ps; [ ]; - "lutron_caseta.switch" = ps: with ps; [ ]; "lw12wifi" = ps: with ps; [ ]; - "lw12wifi.light" = ps: with ps; [ ]; "lyft" = ps: with ps; [ ]; - "lyft.sensor" = ps: with ps; [ ]; "magicseaweed" = ps: with ps; [ ]; - "magicseaweed.sensor" = ps: with ps; [ ]; "mailbox" = ps: with ps; [ aiohttp-cors ]; "mailgun" = ps: with ps; [ aiohttp-cors ]; - "mailgun.notify" = ps: with ps; [ aiohttp-cors ]; "manual" = ps: with ps; [ ]; - "manual.alarm_control_panel" = ps: with ps; [ ]; - "manual_mqtt" = ps: with ps; [ ]; - "manual_mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ]; - "map" = ps: with ps; [ ]; + "manual_mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; + "map" = ps: with ps; [ aiohttp-cors ]; "marytts" = ps: with ps; [ ]; - "marytts.tts" = ps: with ps; [ ]; "mastodon" = ps: with ps; [ ]; - "mastodon.notify" = ps: with ps; [ ]; "matrix" = ps: with ps; [ matrix-client ]; - "matrix.notify" = ps: with ps; [ matrix-client ]; "maxcube" = ps: with ps; [ ]; - "maxcube.binary_sensor" = ps: with ps; [ ]; - "maxcube.climate" = ps: with ps; [ ]; "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ]; "media_player" = ps: with ps; [ aiohttp-cors ]; - "media_player.const" = ps: with ps; [ ]; - "media_player.reproduce_state" = ps: with ps; [ ]; "mediaroom" = ps: with ps; [ ]; - "mediaroom.media_player" = ps: with ps; [ ]; "melissa" = ps: with ps; [ ]; - "melissa.climate" = ps: with ps; [ ]; - "meraki" = ps: with ps; [ ]; - "meraki.device_tracker" = ps: with ps; [ aiohttp-cors ]; + "meraki" = ps: with ps; [ aiohttp-cors ]; "message_bird" = ps: with ps; [ ]; - "message_bird.notify" = ps: with ps; [ ]; "met" = ps: with ps; [ ]; - "met.weather" = ps: with ps; [ ]; "meteo_france" = ps: with ps; [ ]; - "meteo_france.sensor" = ps: with ps; [ ]; - "meteo_france.weather" = ps: with ps; [ ]; "metoffice" = ps: with ps; [ ]; - "metoffice.sensor" = ps: with ps; [ ]; - "metoffice.weather" = ps: with ps; [ ]; "mfi" = ps: with ps; [ ]; - "mfi.sensor" = ps: with ps; [ ]; - "mfi.switch" = ps: with ps; [ ]; "mhz19" = ps: with ps; [ ]; - "mhz19.sensor" = ps: with ps; [ ]; "microsoft" = ps: with ps; [ ]; - "microsoft.tts" = ps: with ps; [ ]; "microsoft_face" = ps: with ps; [ aiohttp-cors ]; - "microsoft_face_detect" = ps: with ps; [ ]; - "microsoft_face_detect.image_processing" = ps: with ps; [ aiohttp-cors ]; - "microsoft_face_identify" = ps: with ps; [ ]; - "microsoft_face_identify.image_processing" = ps: with ps; [ aiohttp-cors ]; + "microsoft_face_detect" = ps: with ps; [ aiohttp-cors ]; + "microsoft_face_identify" = ps: with ps; [ aiohttp-cors ]; "miflora" = ps: with ps; [ ]; - "miflora.sensor" = ps: with ps; [ ]; "mikrotik" = ps: with ps; [ ]; - "mikrotik.device_tracker" = ps: with ps; [ ]; "mill" = ps: with ps; [ ]; - "mill.climate" = ps: with ps; [ ]; "min_max" = ps: with ps; [ ]; - "min_max.sensor" = ps: with ps; [ ]; "mitemp_bt" = ps: with ps; [ ]; - "mitemp_bt.sensor" = ps: with ps; [ ]; "mjpeg" = ps: with ps; [ ]; - "mjpeg.camera" = ps: with ps; [ ]; "mobile_app" = ps: with ps; [ pynacl aiohttp-cors ]; - "mobile_app.binary_sensor" = ps: with ps; [ pynacl aiohttp-cors ]; - "mobile_app.const" = ps: with ps; [ ]; - "mobile_app.entity" = ps: with ps; [ ]; - "mobile_app.helpers" = ps: with ps; [ ]; - "mobile_app.http_api" = ps: with ps; [ ]; - "mobile_app.notify" = ps: with ps; [ pynacl aiohttp-cors ]; - "mobile_app.sensor" = ps: with ps; [ pynacl aiohttp-cors ]; - "mobile_app.webhook" = ps: with ps; [ ]; - "mobile_app.websocket_api" = ps: with ps; [ ]; "mochad" = ps: with ps; [ ]; - "mochad.light" = ps: with ps; [ ]; - "mochad.switch" = ps: with ps; [ ]; "modbus" = ps: with ps; [ ]; - "modbus.binary_sensor" = ps: with ps; [ ]; - "modbus.climate" = ps: with ps; [ ]; - "modbus.sensor" = ps: with ps; [ ]; - "modbus.switch" = ps: with ps; [ ]; "modem_callerid" = ps: with ps; [ ]; - "modem_callerid.sensor" = ps: with ps; [ ]; "mold_indicator" = ps: with ps; [ ]; - "mold_indicator.sensor" = ps: with ps; [ ]; "monoprice" = ps: with ps; [ ]; - "monoprice.media_player" = ps: with ps; [ ]; "moon" = ps: with ps; [ ]; - "moon.sensor" = ps: with ps; [ ]; "mopar" = ps: with ps; [ ]; - "mopar.lock" = ps: with ps; [ ]; - "mopar.sensor" = ps: with ps; [ ]; - "mopar.switch" = ps: with ps; [ ]; "mpchc" = ps: with ps; [ ]; - "mpchc.media_player" = ps: with ps; [ ]; - "mpd" = ps: with ps; [ ]; - "mpd.media_player" = ps: with ps; [ mpd2 ]; - "mqtt" = ps: with ps; [ paho-mqtt ]; - "mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ]; - "mqtt.binary_sensor" = ps: with ps; [ paho-mqtt ]; - "mqtt.camera" = ps: with ps; [ paho-mqtt ]; - "mqtt.climate" = ps: with ps; [ paho-mqtt ]; - "mqtt.config_flow" = ps: with ps; [ ]; - "mqtt.const" = ps: with ps; [ ]; - "mqtt.cover" = ps: with ps; [ paho-mqtt ]; - "mqtt.device_tracker" = ps: with ps; [ paho-mqtt ]; - "mqtt.discovery" = ps: with ps; [ ]; - "mqtt.fan" = ps: with ps; [ paho-mqtt ]; - "mqtt.light" = ps: with ps; [ paho-mqtt ]; - "mqtt.lock" = ps: with ps; [ paho-mqtt ]; - "mqtt.sensor" = ps: with ps; [ paho-mqtt ]; - "mqtt.server" = ps: with ps; [ aiohttp-cors hbmqtt ]; - "mqtt.subscription" = ps: with ps; [ ]; - "mqtt.switch" = ps: with ps; [ paho-mqtt ]; - "mqtt.vacuum" = ps: with ps; [ paho-mqtt ]; - "mqtt_eventstream" = ps: with ps; [ paho-mqtt ]; - "mqtt_json" = ps: with ps; [ ]; - "mqtt_json.device_tracker" = ps: with ps; [ paho-mqtt ]; - "mqtt_room" = ps: with ps; [ ]; - "mqtt_room.sensor" = ps: with ps; [ paho-mqtt ]; - "mqtt_statestream" = ps: with ps; [ paho-mqtt ]; - "mvglive" = ps: with ps; [ ]; - "mvglive.sensor" = ps: with ps; [ PyMVGLive ]; + "mpd" = ps: with ps; [ mpd2 ]; + "mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; + "mqtt_eventstream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; + "mqtt_json" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; + "mqtt_room" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; + "mqtt_statestream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; + "mvglive" = ps: with ps; [ PyMVGLive ]; "mychevy" = ps: with ps; [ ]; - "mychevy.binary_sensor" = ps: with ps; [ ]; - "mychevy.sensor" = ps: with ps; [ ]; "mycroft" = ps: with ps; [ ]; - "mycroft.notify" = ps: with ps; [ ]; "myq" = ps: with ps; [ ]; - "myq.cover" = ps: with ps; [ ]; "mysensors" = ps: with ps; [ ]; - "mysensors.binary_sensor" = ps: with ps; [ ]; - "mysensors.climate" = ps: with ps; [ ]; - "mysensors.const" = ps: with ps; [ ]; - "mysensors.cover" = ps: with ps; [ ]; - "mysensors.device" = ps: with ps; [ ]; - "mysensors.device_tracker" = ps: with ps; [ ]; - "mysensors.gateway" = ps: with ps; [ ]; - "mysensors.handler" = ps: with ps; [ ]; - "mysensors.helpers" = ps: with ps; [ ]; - "mysensors.light" = ps: with ps; [ ]; - "mysensors.notify" = ps: with ps; [ ]; - "mysensors.sensor" = ps: with ps; [ ]; - "mysensors.switch" = ps: with ps; [ ]; - "mystrom" = ps: with ps; [ ]; - "mystrom.binary_sensor" = ps: with ps; [ aiohttp-cors ]; - "mystrom.light" = ps: with ps; [ ]; - "mystrom.switch" = ps: with ps; [ ]; + "mystrom" = ps: with ps; [ aiohttp-cors ]; "mythicbeastsdns" = ps: with ps; [ ]; + "n26" = ps: with ps; [ ]; "nad" = ps: with ps; [ ]; - "nad.media_player" = ps: with ps; [ ]; "namecheapdns" = ps: with ps; [ defusedxml ]; "nanoleaf" = ps: with ps; [ ]; - "nanoleaf.light" = ps: with ps; [ ]; "neato" = ps: with ps; [ pybotvac ]; - "neato.camera" = ps: with ps; [ pybotvac ]; - "neato.switch" = ps: with ps; [ pybotvac ]; - "neato.vacuum" = ps: with ps; [ pybotvac ]; "nederlandse_spoorwegen" = ps: with ps; [ ]; - "nederlandse_spoorwegen.sensor" = ps: with ps; [ ]; "nello" = ps: with ps; [ ]; - "nello.lock" = ps: with ps; [ ]; "ness_alarm" = ps: with ps; [ ]; - "ness_alarm.alarm_control_panel" = ps: with ps; [ ]; - "ness_alarm.binary_sensor" = ps: with ps; [ ]; "nest" = ps: with ps; [ ]; - "nest.binary_sensor" = ps: with ps; [ ]; - "nest.camera" = ps: with ps; [ ]; - "nest.climate" = ps: with ps; [ ]; - "nest.config_flow" = ps: with ps; [ ]; - "nest.const" = ps: with ps; [ ]; - "nest.local_auth" = ps: with ps; [ ]; - "nest.sensor" = ps: with ps; [ ]; "netatmo" = ps: with ps; [ aiohttp-cors ]; - "netatmo.binary_sensor" = ps: with ps; [ aiohttp-cors ]; - "netatmo.camera" = ps: with ps; [ aiohttp-cors ]; - "netatmo.climate" = ps: with ps; [ aiohttp-cors ]; - "netatmo.sensor" = ps: with ps; [ aiohttp-cors ]; - "netatmo_public" = ps: with ps; [ ]; - "netatmo_public.sensor" = ps: with ps; [ aiohttp-cors ]; + "netatmo_public" = ps: with ps; [ aiohttp-cors ]; "netdata" = ps: with ps; [ ]; - "netdata.sensor" = ps: with ps; [ ]; "netgear" = ps: with ps; [ ]; - "netgear.device_tracker" = ps: with ps; [ ]; "netgear_lte" = ps: with ps; [ ]; - "netgear_lte.notify" = ps: with ps; [ ]; - "netgear_lte.sensor" = ps: with ps; [ ]; - "netgear_lte.sensor_types" = ps: with ps; [ ]; - "netio" = ps: with ps; [ ]; - "netio.switch" = ps: with ps; [ aiohttp-cors ]; + "netio" = ps: with ps; [ aiohttp-cors ]; "neurio_energy" = ps: with ps; [ ]; - "neurio_energy.sensor" = ps: with ps; [ ]; "nfandroidtv" = ps: with ps; [ ]; - "nfandroidtv.notify" = ps: with ps; [ ]; "niko_home_control" = ps: with ps; [ ]; - "niko_home_control.light" = ps: with ps; [ ]; "nilu" = ps: with ps; [ ]; - "nilu.air_quality" = ps: with ps; [ ]; "nissan_leaf" = ps: with ps; [ ]; - "nissan_leaf.binary_sensor" = ps: with ps; [ ]; - "nissan_leaf.device_tracker" = ps: with ps; [ ]; - "nissan_leaf.sensor" = ps: with ps; [ ]; - "nissan_leaf.switch" = ps: with ps; [ ]; "nmap_tracker" = ps: with ps; [ ]; - "nmap_tracker.device_tracker" = ps: with ps; [ ]; "nmbs" = ps: with ps; [ ]; - "nmbs.sensor" = ps: with ps; [ ]; "no_ip" = ps: with ps; [ ]; "noaa_tides" = ps: with ps; [ ]; - "noaa_tides.sensor" = ps: with ps; [ ]; "norway_air" = ps: with ps; [ ]; - "norway_air.air_quality" = ps: with ps; [ ]; "notify" = ps: with ps; [ ]; "nsw_fuel_station" = ps: with ps; [ ]; - "nsw_fuel_station.sensor" = ps: with ps; [ ]; "nsw_rural_fire_service_feed" = ps: with ps; [ ]; - "nsw_rural_fire_service_feed.geo_location" = ps: with ps; [ ]; "nuheat" = ps: with ps; [ ]; - "nuheat.climate" = ps: with ps; [ ]; "nuimo_controller" = ps: with ps; [ ]; "nuki" = ps: with ps; [ ]; - "nuki.lock" = ps: with ps; [ ]; "nut" = ps: with ps; [ ]; - "nut.sensor" = ps: with ps; [ ]; "nx584" = ps: with ps; [ ]; - "nx584.alarm_control_panel" = ps: with ps; [ ]; - "nx584.binary_sensor" = ps: with ps; [ ]; "nzbget" = ps: with ps; [ ]; - "nzbget.sensor" = ps: with ps; [ ]; + "oasa_telematics" = ps: with ps; [ ]; "octoprint" = ps: with ps; [ ]; - "octoprint.binary_sensor" = ps: with ps; [ ]; - "octoprint.sensor" = ps: with ps; [ ]; "oem" = ps: with ps; [ ]; - "oem.climate" = ps: with ps; [ ]; - "ohmconnect" = ps: with ps; [ ]; - "ohmconnect.sensor" = ps: with ps; [ defusedxml ]; + "ohmconnect" = ps: with ps; [ defusedxml ]; "onboarding" = ps: with ps; [ aiohttp-cors ]; - "onboarding.const" = ps: with ps; [ ]; - "onboarding.views" = ps: with ps; [ ]; "onewire" = ps: with ps; [ ]; - "onewire.sensor" = ps: with ps; [ ]; - "onkyo" = ps: with ps; [ ]; - "onkyo.media_player" = ps: with ps; [ onkyo-eiscp ]; - "onvif" = ps: with ps; [ ]; - "onvif.camera" = ps: with ps; [ ha-ffmpeg ]; + "onkyo" = ps: with ps; [ onkyo-eiscp ]; + "onvif" = ps: with ps; [ ha-ffmpeg ]; "openalpr_cloud" = ps: with ps; [ ]; - "openalpr_cloud.image_processing" = ps: with ps; [ ]; "openalpr_local" = ps: with ps; [ ]; - "openalpr_local.image_processing" = ps: with ps; [ ]; - "opencv" = ps: with ps; [ ]; - "opencv.image_processing" = ps: with ps; [ numpy ]; + "opencv" = ps: with ps; [ numpy ]; "openevse" = ps: with ps; [ ]; - "openevse.sensor" = ps: with ps; [ ]; "openexchangerates" = ps: with ps; [ ]; - "openexchangerates.sensor" = ps: with ps; [ ]; "opengarage" = ps: with ps; [ ]; - "opengarage.cover" = ps: with ps; [ ]; "openhardwaremonitor" = ps: with ps; [ ]; - "openhardwaremonitor.sensor" = ps: with ps; [ ]; "openhome" = ps: with ps; [ ]; - "openhome.media_player" = ps: with ps; [ ]; "opensensemap" = ps: with ps; [ ]; - "opensensemap.air_quality" = ps: with ps; [ ]; "opensky" = ps: with ps; [ ]; - "opensky.sensor" = ps: with ps; [ ]; "opentherm_gw" = ps: with ps; [ ]; - "opentherm_gw.binary_sensor" = ps: with ps; [ ]; - "opentherm_gw.climate" = ps: with ps; [ ]; - "opentherm_gw.sensor" = ps: with ps; [ ]; "openuv" = ps: with ps; [ ]; - "openuv.binary_sensor" = ps: with ps; [ ]; - "openuv.config_flow" = ps: with ps; [ ]; - "openuv.const" = ps: with ps; [ ]; - "openuv.sensor" = ps: with ps; [ ]; - "openweathermap" = ps: with ps; [ ]; - "openweathermap.sensor" = ps: with ps; [ pyowm ]; - "openweathermap.weather" = ps: with ps; [ pyowm ]; + "openweathermap" = ps: with ps; [ pyowm ]; "opple" = ps: with ps; [ ]; - "opple.light" = ps: with ps; [ ]; "orvibo" = ps: with ps; [ ]; - "orvibo.switch" = ps: with ps; [ ]; "osramlightify" = ps: with ps; [ ]; - "osramlightify.light" = ps: with ps; [ ]; - "otp" = ps: with ps; [ ]; - "otp.sensor" = ps: with ps; [ pyotp ]; + "otp" = ps: with ps; [ pyotp ]; "owlet" = ps: with ps; [ ]; - "owlet.binary_sensor" = ps: with ps; [ ]; - "owlet.const" = ps: with ps; [ ]; - "owlet.sensor" = ps: with ps; [ ]; "owntracks" = ps: with ps; [ pynacl aiohttp-cors ]; - "owntracks.config_flow" = ps: with ps; [ ]; - "owntracks.device_tracker" = ps: with ps; [ pynacl aiohttp-cors ]; "panasonic_bluray" = ps: with ps; [ ]; - "panasonic_bluray.media_player" = ps: with ps; [ ]; - "panasonic_viera" = ps: with ps; [ ]; - "panasonic_viera.media_player" = ps: with ps; [ wakeonlan ]; - "pandora" = ps: with ps; [ ]; - "pandora.media_player" = ps: with ps; [ pexpect ]; + "panasonic_viera" = ps: with ps; [ wakeonlan ]; + "pandora" = ps: with ps; [ pexpect ]; "panel_custom" = ps: with ps; [ aiohttp-cors ]; "panel_iframe" = ps: with ps; [ aiohttp-cors ]; "pencom" = ps: with ps; [ ]; - "pencom.switch" = ps: with ps; [ ]; "persistent_notification" = ps: with ps; [ ]; "person" = ps: with ps; [ ]; "philips_js" = ps: with ps; [ ]; - "philips_js.media_player" = ps: with ps; [ ]; "pi_hole" = ps: with ps; [ ]; - "pi_hole.sensor" = ps: with ps; [ ]; "picotts" = ps: with ps; [ ]; - "picotts.tts" = ps: with ps; [ ]; "piglow" = ps: with ps; [ ]; - "piglow.light" = ps: with ps; [ ]; "pilight" = ps: with ps; [ ]; - "pilight.binary_sensor" = ps: with ps; [ ]; - "pilight.sensor" = ps: with ps; [ ]; - "pilight.switch" = ps: with ps; [ ]; "ping" = ps: with ps; [ ]; - "ping.binary_sensor" = ps: with ps; [ ]; - "ping.device_tracker" = ps: with ps; [ ]; "pioneer" = ps: with ps; [ ]; - "pioneer.media_player" = ps: with ps; [ ]; "pjlink" = ps: with ps; [ ]; - "pjlink.media_player" = ps: with ps; [ ]; "plant" = ps: with ps; [ ]; "plex" = ps: with ps; [ ]; - "plex.media_player" = ps: with ps; [ ]; - "plex.sensor" = ps: with ps; [ ]; "plum_lightpad" = ps: with ps; [ ]; - "plum_lightpad.light" = ps: with ps; [ ]; "pocketcasts" = ps: with ps; [ ]; - "pocketcasts.sensor" = ps: with ps; [ ]; "point" = ps: with ps; [ aiohttp-cors ]; - "point.alarm_control_panel" = ps: with ps; [ ]; - "point.binary_sensor" = ps: with ps; [ ]; - "point.config_flow" = ps: with ps; [ ]; - "point.const" = ps: with ps; [ ]; - "point.sensor" = ps: with ps; [ ]; - "pollen" = ps: with ps; [ ]; - "pollen.sensor" = ps: with ps; [ numpy ]; + "pollen" = ps: with ps; [ numpy ]; "postnl" = ps: with ps; [ ]; - "postnl.sensor" = ps: with ps; [ ]; "prezzibenzina" = ps: with ps; [ ]; - "prezzibenzina.sensor" = ps: with ps; [ ]; "proliphix" = ps: with ps; [ ]; - "proliphix.climate" = ps: with ps; [ ]; "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ]; "prowl" = ps: with ps; [ ]; - "prowl.notify" = ps: with ps; [ ]; "proximity" = ps: with ps; [ ]; - "proxy" = ps: with ps; [ ]; - "proxy.camera" = ps: with ps; [ pillow ]; + "proxy" = ps: with ps; [ pillow ]; "ps4" = ps: with ps; [ ]; - "ps4.config_flow" = ps: with ps; [ ]; - "ps4.const" = ps: with ps; [ ]; - "ps4.media_player" = ps: with ps; [ ]; "pulseaudio_loopback" = ps: with ps; [ ]; - "pulseaudio_loopback.switch" = ps: with ps; [ ]; - "push" = ps: with ps; [ ]; - "push.camera" = ps: with ps; [ aiohttp-cors ]; - "pushbullet" = ps: with ps; [ ]; - "pushbullet.notify" = ps: with ps; [ pushbullet ]; - "pushbullet.sensor" = ps: with ps; [ pushbullet ]; + "push" = ps: with ps; [ aiohttp-cors ]; + "pushbullet" = ps: with ps; [ pushbullet ]; "pushetta" = ps: with ps; [ ]; - "pushetta.notify" = ps: with ps; [ ]; - "pushover" = ps: with ps; [ ]; - "pushover.notify" = ps: with ps; [ python-pushover ]; + "pushover" = ps: with ps; [ python-pushover ]; "pushsafer" = ps: with ps; [ ]; - "pushsafer.notify" = ps: with ps; [ ]; "pvoutput" = ps: with ps; [ ]; - "pvoutput.sensor" = ps: with ps; [ ]; "pyload" = ps: with ps; [ ]; - "pyload.sensor" = ps: with ps; [ ]; "python_script" = ps: with ps; [ ]; "qbittorrent" = ps: with ps; [ ]; - "qbittorrent.sensor" = ps: with ps; [ ]; "qnap" = ps: with ps; [ ]; - "qnap.sensor" = ps: with ps; [ ]; - "qrcode" = ps: with ps; [ ]; - "qrcode.image_processing" = ps: with ps; [ pillow ]; + "qrcode" = ps: with ps; [ pillow ]; "quantum_gateway" = ps: with ps; [ ]; - "quantum_gateway.device_tracker" = ps: with ps; [ ]; "qwikswitch" = ps: with ps; [ ]; - "qwikswitch.binary_sensor" = ps: with ps; [ ]; - "qwikswitch.light" = ps: with ps; [ ]; - "qwikswitch.sensor" = ps: with ps; [ ]; - "qwikswitch.switch" = ps: with ps; [ ]; "rachio" = ps: with ps; [ ]; - "rachio.binary_sensor" = ps: with ps; [ ]; - "rachio.switch" = ps: with ps; [ ]; "radarr" = ps: with ps; [ ]; - "radarr.sensor" = ps: with ps; [ ]; "radiotherm" = ps: with ps; [ ]; - "radiotherm.climate" = ps: with ps; [ ]; "rainbird" = ps: with ps; [ ]; - "rainbird.sensor" = ps: with ps; [ ]; - "rainbird.switch" = ps: with ps; [ ]; "raincloud" = ps: with ps; [ ]; - "raincloud.binary_sensor" = ps: with ps; [ ]; - "raincloud.sensor" = ps: with ps; [ ]; - "raincloud.switch" = ps: with ps; [ ]; "rainmachine" = ps: with ps; [ ]; - "rainmachine.binary_sensor" = ps: with ps; [ ]; - "rainmachine.config_flow" = ps: with ps; [ ]; - "rainmachine.const" = ps: with ps; [ ]; - "rainmachine.sensor" = ps: with ps; [ ]; - "rainmachine.switch" = ps: with ps; [ ]; "random" = ps: with ps; [ ]; - "random.binary_sensor" = ps: with ps; [ ]; - "random.sensor" = ps: with ps; [ ]; "raspihats" = ps: with ps; [ ]; - "raspihats.binary_sensor" = ps: with ps; [ ]; - "raspihats.switch" = ps: with ps; [ ]; "raspyrfm" = ps: with ps; [ ]; - "raspyrfm.switch" = ps: with ps; [ ]; "recollect_waste" = ps: with ps; [ ]; - "recollect_waste.sensor" = ps: with ps; [ ]; "recorder" = ps: with ps; [ sqlalchemy ]; - "recorder.const" = ps: with ps; [ ]; - "recorder.migration" = ps: with ps; [ ]; - "recorder.purge" = ps: with ps; [ ]; - "recorder.util" = ps: with ps; [ ]; "recswitch" = ps: with ps; [ ]; - "recswitch.switch" = ps: with ps; [ ]; - "reddit" = ps: with ps; [ ]; - "reddit.sensor" = ps: with ps; [ praw ]; + "reddit" = ps: with ps; [ praw ]; "rejseplanen" = ps: with ps; [ ]; - "rejseplanen.sensor" = ps: with ps; [ ]; "remember_the_milk" = ps: with ps; [ httplib2 ]; "remote" = ps: with ps; [ ]; "rest" = ps: with ps; [ ]; - "rest.binary_sensor" = ps: with ps; [ ]; - "rest.notify" = ps: with ps; [ ]; - "rest.sensor" = ps: with ps; [ ]; - "rest.switch" = ps: with ps; [ ]; "rest_command" = ps: with ps; [ ]; "rflink" = ps: with ps; [ ]; - "rflink.binary_sensor" = ps: with ps; [ ]; - "rflink.cover" = ps: with ps; [ ]; - "rflink.light" = ps: with ps; [ ]; - "rflink.sensor" = ps: with ps; [ ]; - "rflink.switch" = ps: with ps; [ ]; "rfxtrx" = ps: with ps; [ ]; - "rfxtrx.binary_sensor" = ps: with ps; [ ]; - "rfxtrx.cover" = ps: with ps; [ ]; - "rfxtrx.light" = ps: with ps; [ ]; - "rfxtrx.sensor" = ps: with ps; [ ]; - "rfxtrx.switch" = ps: with ps; [ ]; - "ring" = ps: with ps; [ ]; - "ring.binary_sensor" = ps: with ps; [ ]; - "ring.camera" = ps: with ps; [ ha-ffmpeg ]; - "ring.sensor" = ps: with ps; [ ]; + "ring" = ps: with ps; [ ha-ffmpeg ]; "ripple" = ps: with ps; [ ]; - "ripple.sensor" = ps: with ps; [ ]; "ritassist" = ps: with ps; [ ]; - "ritassist.device_tracker" = ps: with ps; [ ]; "rmvtransport" = ps: with ps; [ ]; - "rmvtransport.sensor" = ps: with ps; [ ]; "rocketchat" = ps: with ps; [ ]; - "rocketchat.notify" = ps: with ps; [ ]; "roku" = ps: with ps; [ ]; - "roku.media_player" = ps: with ps; [ ]; - "roku.remote" = ps: with ps; [ ]; "roomba" = ps: with ps; [ ]; - "roomba.vacuum" = ps: with ps; [ ]; "route53" = ps: with ps; [ boto3 ]; "rova" = ps: with ps; [ ]; - "rova.sensor" = ps: with ps; [ ]; "rpi_camera" = ps: with ps; [ ]; - "rpi_camera.camera" = ps: with ps; [ ]; "rpi_gpio" = ps: with ps; [ ]; - "rpi_gpio.binary_sensor" = ps: with ps; [ ]; - "rpi_gpio.cover" = ps: with ps; [ ]; - "rpi_gpio.switch" = ps: with ps; [ ]; "rpi_gpio_pwm" = ps: with ps; [ ]; - "rpi_gpio_pwm.light" = ps: with ps; [ ]; "rpi_pfio" = ps: with ps; [ ]; - "rpi_pfio.binary_sensor" = ps: with ps; [ ]; - "rpi_pfio.switch" = ps: with ps; [ ]; "rpi_rf" = ps: with ps; [ ]; - "rpi_rf.switch" = ps: with ps; [ ]; "rss_feed_template" = ps: with ps; [ aiohttp-cors ]; "rtorrent" = ps: with ps; [ ]; - "rtorrent.sensor" = ps: with ps; [ ]; "russound_rio" = ps: with ps; [ ]; - "russound_rio.media_player" = ps: with ps; [ ]; "russound_rnet" = ps: with ps; [ ]; - "russound_rnet.media_player" = ps: with ps; [ ]; "ruter" = ps: with ps; [ ]; - "ruter.sensor" = ps: with ps; [ ]; "sabnzbd" = ps: with ps; [ ]; - "sabnzbd.sensor" = ps: with ps; [ ]; - "samsungtv" = ps: with ps; [ ]; - "samsungtv.media_player" = ps: with ps; [ wakeonlan ]; + "samsungtv" = ps: with ps; [ wakeonlan ]; "satel_integra" = ps: with ps; [ ]; - "satel_integra.alarm_control_panel" = ps: with ps; [ ]; - "satel_integra.binary_sensor" = ps: with ps; [ ]; "scene" = ps: with ps; [ ]; - "scrape" = ps: with ps; [ ]; - "scrape.sensor" = ps: with ps; [ beautifulsoup4 ]; + "scrape" = ps: with ps; [ beautifulsoup4 ]; "script" = ps: with ps; [ ]; "scsgate" = ps: with ps; [ ]; - "scsgate.cover" = ps: with ps; [ ]; - "scsgate.light" = ps: with ps; [ ]; - "scsgate.switch" = ps: with ps; [ ]; - "season" = ps: with ps; [ ]; - "season.sensor" = ps: with ps; [ ephem ]; + "season" = ps: with ps; [ ephem ]; "sendgrid" = ps: with ps; [ ]; - "sendgrid.notify" = ps: with ps; [ ]; "sense" = ps: with ps; [ ]; - "sense.binary_sensor" = ps: with ps; [ ]; - "sense.sensor" = ps: with ps; [ ]; "sensehat" = ps: with ps; [ ]; - "sensehat.light" = ps: with ps; [ ]; - "sensehat.sensor" = ps: with ps; [ ]; "sensibo" = ps: with ps; [ ]; - "sensibo.climate" = ps: with ps; [ ]; "sensor" = ps: with ps; [ ]; "serial" = ps: with ps; [ ]; - "serial.sensor" = ps: with ps; [ ]; "serial_pm" = ps: with ps; [ ]; - "serial_pm.sensor" = ps: with ps; [ ]; "sesame" = ps: with ps; [ ]; - "sesame.lock" = ps: with ps; [ ]; "seven_segments" = ps: with ps; [ ]; - "seven_segments.image_processing" = ps: with ps; [ ]; "seventeentrack" = ps: with ps; [ ]; - "seventeentrack.sensor" = ps: with ps; [ ]; "shell_command" = ps: with ps; [ ]; "shiftr" = ps: with ps; [ paho-mqtt ]; - "shodan" = ps: with ps; [ ]; - "shodan.sensor" = ps: with ps; [ shodan ]; + "shodan" = ps: with ps; [ shodan ]; "shopping_list" = ps: with ps; [ aiohttp-cors ]; "sht31" = ps: with ps; [ ]; - "sht31.sensor" = ps: with ps; [ ]; "sigfox" = ps: with ps; [ ]; - "sigfox.sensor" = ps: with ps; [ ]; "simplepush" = ps: with ps; [ ]; - "simplepush.notify" = ps: with ps; [ ]; "simplisafe" = ps: with ps; [ ]; - "simplisafe.alarm_control_panel" = ps: with ps; [ ]; - "simplisafe.config_flow" = ps: with ps; [ ]; - "simplisafe.const" = ps: with ps; [ ]; "simulated" = ps: with ps; [ ]; - "simulated.sensor" = ps: with ps; [ ]; "sisyphus" = ps: with ps; [ ]; - "sisyphus.light" = ps: with ps; [ ]; - "sisyphus.media_player" = ps: with ps; [ ]; "sky_hub" = ps: with ps; [ ]; - "sky_hub.device_tracker" = ps: with ps; [ ]; "skybeacon" = ps: with ps; [ ]; - "skybeacon.sensor" = ps: with ps; [ ]; "skybell" = ps: with ps; [ ]; - "skybell.binary_sensor" = ps: with ps; [ ]; - "skybell.camera" = ps: with ps; [ ]; - "skybell.light" = ps: with ps; [ ]; - "skybell.sensor" = ps: with ps; [ ]; - "skybell.switch" = ps: with ps; [ ]; "slack" = ps: with ps; [ ]; - "slack.notify" = ps: with ps; [ ]; "sleepiq" = ps: with ps; [ ]; - "sleepiq.binary_sensor" = ps: with ps; [ ]; - "sleepiq.sensor" = ps: with ps; [ ]; "sma" = ps: with ps; [ ]; - "sma.sensor" = ps: with ps; [ ]; "smappee" = ps: with ps; [ ]; - "smappee.sensor" = ps: with ps; [ ]; - "smappee.switch" = ps: with ps; [ ]; "smartthings" = ps: with ps; [ aiohttp-cors ]; - "smartthings.binary_sensor" = ps: with ps; [ aiohttp-cors ]; - "smartthings.climate" = ps: with ps; [ aiohttp-cors ]; - "smartthings.config_flow" = ps: with ps; [ ]; - "smartthings.const" = ps: with ps; [ ]; - "smartthings.cover" = ps: with ps; [ aiohttp-cors ]; - "smartthings.fan" = ps: with ps; [ aiohttp-cors ]; - "smartthings.light" = ps: with ps; [ aiohttp-cors ]; - "smartthings.lock" = ps: with ps; [ aiohttp-cors ]; - "smartthings.scene" = ps: with ps; [ aiohttp-cors ]; - "smartthings.sensor" = ps: with ps; [ aiohttp-cors ]; - "smartthings.smartapp" = ps: with ps; [ ]; - "smartthings.switch" = ps: with ps; [ aiohttp-cors ]; "smhi" = ps: with ps; [ ]; - "smhi.config_flow" = ps: with ps; [ ]; - "smhi.const" = ps: with ps; [ ]; - "smhi.weather" = ps: with ps; [ ]; "smtp" = ps: with ps; [ ]; - "smtp.notify" = ps: with ps; [ ]; - "snapcast" = ps: with ps; [ ]; - "snapcast.media_player" = ps: with ps; [ snapcast ]; - "snips" = ps: with ps; [ paho-mqtt ]; - "snmp" = ps: with ps; [ ]; - "snmp.device_tracker" = ps: with ps; [ pysnmp ]; - "snmp.sensor" = ps: with ps; [ pysnmp ]; - "snmp.switch" = ps: with ps; [ pysnmp ]; + "snapcast" = ps: with ps; [ snapcast ]; + "snips" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; + "snmp" = ps: with ps; [ pysnmp ]; "sochain" = ps: with ps; [ ]; - "sochain.sensor" = ps: with ps; [ ]; "socialblade" = ps: with ps; [ ]; - "socialblade.sensor" = ps: with ps; [ ]; "solaredge" = ps: with ps; [ ]; - "solaredge.sensor" = ps: with ps; [ ]; + "somfy_mylink" = ps: with ps; [ ]; "sonarr" = ps: with ps; [ ]; - "sonarr.sensor" = ps: with ps; [ ]; "songpal" = ps: with ps; [ ]; - "songpal.media_player" = ps: with ps; [ ]; "sonos" = ps: with ps; [ ]; - "sonos.media_player" = ps: with ps; [ ]; "sony_projector" = ps: with ps; [ ]; - "sony_projector.switch" = ps: with ps; [ ]; - "soundtouch" = ps: with ps; [ ]; - "soundtouch.media_player" = ps: with ps; [ libsoundtouch ]; + "soundtouch" = ps: with ps; [ libsoundtouch ]; "spaceapi" = ps: with ps; [ aiohttp-cors ]; "spc" = ps: with ps; [ ]; - "spc.alarm_control_panel" = ps: with ps; [ ]; - "spc.binary_sensor" = ps: with ps; [ ]; "speedtestdotnet" = ps: with ps; [ speedtest-cli ]; - "speedtestdotnet.const" = ps: with ps; [ ]; - "speedtestdotnet.sensor" = ps: with ps; [ speedtest-cli ]; "spider" = ps: with ps; [ ]; - "spider.climate" = ps: with ps; [ ]; - "spider.switch" = ps: with ps; [ ]; "splunk" = ps: with ps; [ ]; "spotcrime" = ps: with ps; [ ]; - "spotcrime.sensor" = ps: with ps; [ ]; - "spotify" = ps: with ps; [ ]; - "spotify.media_player" = ps: with ps; [ aiohttp-cors ]; - "sql" = ps: with ps; [ ]; - "sql.sensor" = ps: with ps; [ sqlalchemy ]; + "spotify" = ps: with ps; [ aiohttp-cors ]; + "sql" = ps: with ps; [ sqlalchemy ]; "squeezebox" = ps: with ps; [ ]; - "squeezebox.media_player" = ps: with ps; [ ]; "srp_energy" = ps: with ps; [ ]; - "srp_energy.sensor" = ps: with ps; [ ]; "starlingbank" = ps: with ps; [ ]; - "starlingbank.sensor" = ps: with ps; [ ]; - "startca" = ps: with ps; [ ]; - "startca.sensor" = ps: with ps; [ xmltodict ]; + "startca" = ps: with ps; [ xmltodict ]; "statistics" = ps: with ps; [ ]; - "statistics.sensor" = ps: with ps; [ ]; "statsd" = ps: with ps; [ statsd ]; "steam_online" = ps: with ps; [ ]; - "steam_online.sensor" = ps: with ps; [ ]; + "stiebel_eltron" = ps: with ps; [ ]; "stream" = ps: with ps; [ aiohttp-cors av ]; - "stream.const" = ps: with ps; [ ]; - "stream.core" = ps: with ps; [ ]; - "stream.hls" = ps: with ps; [ ]; - "stream.recorder" = ps: with ps; [ ]; - "stream.worker" = ps: with ps; [ ]; "stride" = ps: with ps; [ ]; - "stride.notify" = ps: with ps; [ ]; "sun" = ps: with ps; [ ]; "supervisord" = ps: with ps; [ ]; - "supervisord.sensor" = ps: with ps; [ ]; + "supla" = ps: with ps; [ ]; "swiss_hydrological_data" = ps: with ps; [ ]; - "swiss_hydrological_data.sensor" = ps: with ps; [ ]; "swiss_public_transport" = ps: with ps; [ ]; - "swiss_public_transport.sensor" = ps: with ps; [ ]; "swisscom" = ps: with ps; [ ]; - "swisscom.device_tracker" = ps: with ps; [ ]; "switch" = ps: with ps; [ ]; - "switch.light" = ps: with ps; [ ]; "switchbot" = ps: with ps; [ ]; - "switchbot.switch" = ps: with ps; [ ]; "switchmate" = ps: with ps; [ ]; - "switchmate.switch" = ps: with ps; [ ]; "syncthru" = ps: with ps; [ ]; - "syncthru.sensor" = ps: with ps; [ ]; "synology" = ps: with ps; [ ]; - "synology.camera" = ps: with ps; [ ]; "synology_chat" = ps: with ps; [ ]; - "synology_chat.notify" = ps: with ps; [ ]; "synology_srm" = ps: with ps; [ ]; - "synology_srm.device_tracker" = ps: with ps; [ ]; "synologydsm" = ps: with ps; [ ]; - "synologydsm.sensor" = ps: with ps; [ ]; "syslog" = ps: with ps; [ ]; - "syslog.notify" = ps: with ps; [ ]; "system_health" = ps: with ps; [ aiohttp-cors ]; "system_log" = ps: with ps; [ aiohttp-cors ]; - "systemmonitor" = ps: with ps; [ ]; - "systemmonitor.sensor" = ps: with ps; [ psutil ]; - "sytadin" = ps: with ps; [ ]; - "sytadin.sensor" = ps: with ps; [ beautifulsoup4 ]; + "systemmonitor" = ps: with ps; [ psutil ]; + "sytadin" = ps: with ps; [ beautifulsoup4 ]; "tado" = ps: with ps; [ ]; - "tado.climate" = ps: with ps; [ ]; - "tado.device_tracker" = ps: with ps; [ ]; - "tado.sensor" = ps: with ps; [ ]; "tahoma" = ps: with ps; [ ]; - "tahoma.binary_sensor" = ps: with ps; [ ]; - "tahoma.cover" = ps: with ps; [ ]; - "tahoma.scene" = ps: with ps; [ ]; - "tahoma.sensor" = ps: with ps; [ ]; - "tahoma.switch" = ps: with ps; [ ]; "tank_utility" = ps: with ps; [ ]; - "tank_utility.sensor" = ps: with ps; [ ]; "tapsaff" = ps: with ps; [ ]; - "tapsaff.binary_sensor" = ps: with ps; [ ]; "tautulli" = ps: with ps; [ ]; - "tautulli.sensor" = ps: with ps; [ ]; "tcp" = ps: with ps; [ ]; - "tcp.binary_sensor" = ps: with ps; [ ]; - "tcp.sensor" = ps: with ps; [ ]; - "ted5000" = ps: with ps; [ ]; - "ted5000.sensor" = ps: with ps; [ xmltodict ]; + "ted5000" = ps: with ps; [ xmltodict ]; "teksavvy" = ps: with ps; [ ]; - "teksavvy.sensor" = ps: with ps; [ ]; - "telegram" = ps: with ps; [ ]; - "telegram.notify" = ps: with ps; [ python-telegram-bot ]; - "telegram_bot" = ps: with ps; [ python-telegram-bot ]; - "telegram_bot.broadcast" = ps: with ps; [ ]; - "telegram_bot.polling" = ps: with ps; [ ]; - "telegram_bot.webhooks" = ps: with ps; [ aiohttp-cors ]; + "telegram" = ps: with ps; [ aiohttp-cors python-telegram-bot ]; + "telegram_bot" = ps: with ps; [ aiohttp-cors python-telegram-bot ]; "tellduslive" = ps: with ps; [ ]; - "tellduslive.binary_sensor" = ps: with ps; [ ]; - "tellduslive.config_flow" = ps: with ps; [ ]; - "tellduslive.const" = ps: with ps; [ ]; - "tellduslive.cover" = ps: with ps; [ ]; - "tellduslive.entry" = ps: with ps; [ ]; - "tellduslive.light" = ps: with ps; [ ]; - "tellduslive.sensor" = ps: with ps; [ ]; - "tellduslive.switch" = ps: with ps; [ ]; "tellstick" = ps: with ps; [ ]; - "tellstick.cover" = ps: with ps; [ ]; - "tellstick.light" = ps: with ps; [ ]; - "tellstick.sensor" = ps: with ps; [ ]; - "tellstick.switch" = ps: with ps; [ ]; "telnet" = ps: with ps; [ ]; - "telnet.switch" = ps: with ps; [ ]; "temper" = ps: with ps; [ ]; - "temper.sensor" = ps: with ps; [ ]; "template" = ps: with ps; [ ]; - "template.binary_sensor" = ps: with ps; [ ]; - "template.cover" = ps: with ps; [ ]; - "template.fan" = ps: with ps; [ ]; - "template.light" = ps: with ps; [ ]; - "template.lock" = ps: with ps; [ ]; - "template.sensor" = ps: with ps; [ ]; - "template.switch" = ps: with ps; [ ]; - "tensorflow" = ps: with ps; [ ]; - "tensorflow.image_processing" = ps: with ps; [ numpy pillow protobuf ]; + "tensorflow" = ps: with ps; [ numpy pillow protobuf ]; "tesla" = ps: with ps; [ ]; - "tesla.binary_sensor" = ps: with ps; [ ]; - "tesla.climate" = ps: with ps; [ ]; - "tesla.device_tracker" = ps: with ps; [ ]; - "tesla.lock" = ps: with ps; [ ]; - "tesla.sensor" = ps: with ps; [ ]; - "tesla.switch" = ps: with ps; [ ]; "tfiac" = ps: with ps; [ ]; - "tfiac.climate" = ps: with ps; [ ]; "thermoworks_smoke" = ps: with ps; [ ]; - "thermoworks_smoke.sensor" = ps: with ps; [ ]; "thethingsnetwork" = ps: with ps; [ ]; - "thethingsnetwork.sensor" = ps: with ps; [ ]; "thingspeak" = ps: with ps; [ ]; "thinkingcleaner" = ps: with ps; [ ]; - "thinkingcleaner.sensor" = ps: with ps; [ ]; - "thinkingcleaner.switch" = ps: with ps; [ ]; "thomson" = ps: with ps; [ ]; - "thomson.device_tracker" = ps: with ps; [ ]; "threshold" = ps: with ps; [ ]; - "threshold.binary_sensor" = ps: with ps; [ ]; "tibber" = ps: with ps; [ ]; - "tibber.notify" = ps: with ps; [ ]; - "tibber.sensor" = ps: with ps; [ ]; "tikteck" = ps: with ps; [ ]; - "tikteck.light" = ps: with ps; [ ]; "tile" = ps: with ps; [ ]; - "tile.device_tracker" = ps: with ps; [ ]; "time_date" = ps: with ps; [ ]; - "time_date.sensor" = ps: with ps; [ ]; "timer" = ps: with ps; [ ]; "tod" = ps: with ps; [ ]; - "tod.binary_sensor" = ps: with ps; [ ]; - "todoist" = ps: with ps; [ ]; - "todoist.calendar" = ps: with ps; [ todoist ]; + "todoist" = ps: with ps; [ todoist ]; "tof" = ps: with ps; [ ]; - "tof.sensor" = ps: with ps; [ ]; "tomato" = ps: with ps; [ ]; - "tomato.device_tracker" = ps: with ps; [ ]; "toon" = ps: with ps; [ ]; - "toon.binary_sensor" = ps: with ps; [ ]; - "toon.climate" = ps: with ps; [ ]; - "toon.config_flow" = ps: with ps; [ ]; - "toon.const" = ps: with ps; [ ]; - "toon.sensor" = ps: with ps; [ ]; - "torque" = ps: with ps; [ ]; - "torque.sensor" = ps: with ps; [ aiohttp-cors ]; + "torque" = ps: with ps; [ aiohttp-cors ]; "totalconnect" = ps: with ps; [ ]; - "totalconnect.alarm_control_panel" = ps: with ps; [ ]; "touchline" = ps: with ps; [ ]; - "touchline.climate" = ps: with ps; [ ]; "tplink" = ps: with ps; [ ]; - "tplink.device_tracker" = ps: with ps; [ ]; - "tplink.light" = ps: with ps; [ ]; - "tplink.switch" = ps: with ps; [ ]; "tplink_lte" = ps: with ps; [ ]; - "tplink_lte.notify" = ps: with ps; [ ]; "traccar" = ps: with ps; [ ]; - "traccar.device_tracker" = ps: with ps; [ ]; "trackr" = ps: with ps; [ ]; - "trackr.device_tracker" = ps: with ps; [ ]; "tradfri" = ps: with ps; [ ]; - "tradfri.config_flow" = ps: with ps; [ ]; - "tradfri.const" = ps: with ps; [ ]; - "tradfri.light" = ps: with ps; [ ]; - "tradfri.sensor" = ps: with ps; [ ]; - "tradfri.switch" = ps: with ps; [ ]; "trafikverket_weatherstation" = ps: with ps; [ ]; - "trafikverket_weatherstation.sensor" = ps: with ps; [ ]; "transmission" = ps: with ps; [ transmissionrpc ]; - "transmission.sensor" = ps: with ps; [ transmissionrpc ]; - "transmission.switch" = ps: with ps; [ transmissionrpc ]; "transport_nsw" = ps: with ps; [ ]; - "transport_nsw.sensor" = ps: with ps; [ ]; "travisci" = ps: with ps; [ ]; - "travisci.sensor" = ps: with ps; [ ]; - "trend" = ps: with ps; [ ]; - "trend.binary_sensor" = ps: with ps; [ numpy ]; + "trend" = ps: with ps; [ numpy ]; "tts" = ps: with ps; [ aiohttp-cors mutagen ]; "tuya" = ps: with ps; [ ]; - "tuya.climate" = ps: with ps; [ ]; - "tuya.cover" = ps: with ps; [ ]; - "tuya.fan" = ps: with ps; [ ]; - "tuya.light" = ps: with ps; [ ]; - "tuya.scene" = ps: with ps; [ ]; - "tuya.switch" = ps: with ps; [ ]; "twilio" = ps: with ps; [ aiohttp-cors twilio ]; - "twilio_call" = ps: with ps; [ ]; - "twilio_call.notify" = ps: with ps; [ aiohttp-cors twilio ]; - "twilio_sms" = ps: with ps; [ ]; - "twilio_sms.notify" = ps: with ps; [ aiohttp-cors twilio ]; + "twilio_call" = ps: with ps; [ aiohttp-cors twilio ]; + "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ]; "twitch" = ps: with ps; [ ]; - "twitch.sensor" = ps: with ps; [ ]; "twitter" = ps: with ps; [ ]; - "twitter.notify" = ps: with ps; [ ]; "ubee" = ps: with ps; [ ]; - "ubee.device_tracker" = ps: with ps; [ ]; "uber" = ps: with ps; [ ]; - "uber.sensor" = ps: with ps; [ ]; "ubus" = ps: with ps; [ ]; - "ubus.device_tracker" = ps: with ps; [ ]; "ue_smart_radio" = ps: with ps; [ ]; - "ue_smart_radio.media_player" = ps: with ps; [ ]; "uk_transport" = ps: with ps; [ ]; - "uk_transport.sensor" = ps: with ps; [ ]; - "unifi" = ps: with ps; [ aiounifi ]; - "unifi.const" = ps: with ps; [ ]; - "unifi.controller" = ps: with ps; [ ]; - "unifi.device_tracker" = ps: with ps; [ pyunifi ]; - "unifi.errors" = ps: with ps; [ ]; - "unifi.switch" = ps: with ps; [ aiounifi ]; - "unifi_direct" = ps: with ps; [ ]; - "unifi_direct.device_tracker" = ps: with ps; [ pexpect ]; + "unifi" = ps: with ps; [ aiounifi pyunifi ]; + "unifi_direct" = ps: with ps; [ pexpect ]; "universal" = ps: with ps; [ ]; - "universal.media_player" = ps: with ps; [ ]; - "upc_connect" = ps: with ps; [ ]; - "upc_connect.device_tracker" = ps: with ps; [ defusedxml ]; + "upc_connect" = ps: with ps; [ defusedxml ]; "upcloud" = ps: with ps; [ ]; - "upcloud.binary_sensor" = ps: with ps; [ ]; - "upcloud.switch" = ps: with ps; [ ]; "updater" = ps: with ps; [ distro ]; "upnp" = ps: with ps; [ ]; - "upnp.const" = ps: with ps; [ ]; - "upnp.device" = ps: with ps; [ ]; - "upnp.sensor" = ps: with ps; [ ]; "ups" = ps: with ps; [ ]; - "ups.sensor" = ps: with ps; [ ]; "uptime" = ps: with ps; [ ]; - "uptime.sensor" = ps: with ps; [ ]; "uptimerobot" = ps: with ps; [ ]; - "uptimerobot.binary_sensor" = ps: with ps; [ ]; "uscis" = ps: with ps; [ ]; - "uscis.sensor" = ps: with ps; [ ]; "usgs_earthquakes_feed" = ps: with ps; [ ]; - "usgs_earthquakes_feed.geo_location" = ps: with ps; [ ]; "usps" = ps: with ps; [ ]; - "usps.camera" = ps: with ps; [ ]; - "usps.sensor" = ps: with ps; [ ]; "utility_meter" = ps: with ps; [ ]; - "utility_meter.const" = ps: with ps; [ ]; - "utility_meter.sensor" = ps: with ps; [ ]; "uvc" = ps: with ps; [ ]; - "uvc.camera" = ps: with ps; [ ]; "vacuum" = ps: with ps; [ ]; "vasttrafik" = ps: with ps; [ ]; - "vasttrafik.sensor" = ps: with ps; [ ]; "velbus" = ps: with ps; [ ]; - "velbus.binary_sensor" = ps: with ps; [ ]; - "velbus.climate" = ps: with ps; [ ]; - "velbus.cover" = ps: with ps; [ ]; - "velbus.sensor" = ps: with ps; [ ]; - "velbus.switch" = ps: with ps; [ ]; "velux" = ps: with ps; [ ]; - "velux.cover" = ps: with ps; [ ]; - "velux.scene" = ps: with ps; [ ]; "venstar" = ps: with ps; [ ]; - "venstar.climate" = ps: with ps; [ ]; "vera" = ps: with ps; [ ]; - "vera.binary_sensor" = ps: with ps; [ ]; - "vera.climate" = ps: with ps; [ ]; - "vera.cover" = ps: with ps; [ ]; - "vera.light" = ps: with ps; [ ]; - "vera.lock" = ps: with ps; [ ]; - "vera.scene" = ps: with ps; [ ]; - "vera.sensor" = ps: with ps; [ ]; - "vera.switch" = ps: with ps; [ ]; "verisure" = ps: with ps; [ ]; - "verisure.alarm_control_panel" = ps: with ps; [ ]; - "verisure.binary_sensor" = ps: with ps; [ ]; - "verisure.camera" = ps: with ps; [ ]; - "verisure.lock" = ps: with ps; [ ]; - "verisure.sensor" = ps: with ps; [ ]; - "verisure.switch" = ps: with ps; [ ]; "version" = ps: with ps; [ ]; - "version.sensor" = ps: with ps; [ ]; "vesync" = ps: with ps; [ ]; - "vesync.switch" = ps: with ps; [ ]; "viaggiatreno" = ps: with ps; [ ]; - "viaggiatreno.sensor" = ps: with ps; [ ]; "vizio" = ps: with ps; [ ]; - "vizio.media_player" = ps: with ps; [ ]; "vlc" = ps: with ps; [ ]; - "vlc.media_player" = ps: with ps; [ ]; "voicerss" = ps: with ps; [ ]; - "voicerss.tts" = ps: with ps; [ ]; "volkszaehler" = ps: with ps; [ ]; - "volkszaehler.sensor" = ps: with ps; [ ]; "volumio" = ps: with ps; [ ]; - "volumio.media_player" = ps: with ps; [ ]; "volvooncall" = ps: with ps; [ ]; - "volvooncall.binary_sensor" = ps: with ps; [ ]; - "volvooncall.device_tracker" = ps: with ps; [ ]; - "volvooncall.lock" = ps: with ps; [ ]; - "volvooncall.sensor" = ps: with ps; [ ]; - "volvooncall.switch" = ps: with ps; [ ]; "vultr" = ps: with ps; [ vultr ]; - "vultr.binary_sensor" = ps: with ps; [ vultr ]; - "vultr.sensor" = ps: with ps; [ vultr ]; - "vultr.switch" = ps: with ps; [ vultr ]; "w800rf32" = ps: with ps; [ ]; - "w800rf32.binary_sensor" = ps: with ps; [ ]; "wake_on_lan" = ps: with ps; [ wakeonlan ]; - "wake_on_lan.switch" = ps: with ps; [ wakeonlan ]; "waqi" = ps: with ps; [ ]; - "waqi.sensor" = ps: with ps; [ ]; "water_heater" = ps: with ps; [ ]; "waterfurnace" = ps: with ps; [ ]; - "waterfurnace.sensor" = ps: with ps; [ ]; "watson_iot" = ps: with ps; [ ]; - "waze_travel_time" = ps: with ps; [ ]; - "waze_travel_time.sensor" = ps: with ps; [ WazeRouteCalculator ]; + "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; [ ]; - "webostv.media_player" = ps: with ps; [ websockets ]; - "webostv.notify" = ps: with ps; [ ]; + "webostv" = ps: with ps; [ websockets ]; "websocket_api" = ps: with ps; [ aiohttp-cors ]; - "websocket_api.auth" = ps: with ps; [ ]; - "websocket_api.commands" = ps: with ps; [ ]; - "websocket_api.connection" = ps: with ps; [ ]; - "websocket_api.const" = ps: with ps; [ ]; - "websocket_api.decorators" = ps: with ps; [ ]; - "websocket_api.error" = ps: with ps; [ ]; - "websocket_api.http" = ps: with ps; [ ]; - "websocket_api.messages" = ps: with ps; [ ]; - "websocket_api.permissions" = ps: with ps; [ ]; - "websocket_api.sensor" = ps: with ps; [ ]; "wemo" = ps: with ps; [ ]; - "wemo.binary_sensor" = ps: with ps; [ ]; - "wemo.fan" = ps: with ps; [ ]; - "wemo.light" = ps: with ps; [ ]; - "wemo.switch" = ps: with ps; [ ]; "whois" = ps: with ps; [ ]; - "whois.sensor" = ps: with ps; [ ]; "wink" = ps: with ps; [ ]; - "wink.alarm_control_panel" = ps: with ps; [ ]; - "wink.binary_sensor" = ps: with ps; [ ]; - "wink.climate" = ps: with ps; [ ]; - "wink.cover" = ps: with ps; [ ]; - "wink.fan" = ps: with ps; [ ]; - "wink.light" = ps: with ps; [ ]; - "wink.lock" = ps: with ps; [ ]; - "wink.scene" = ps: with ps; [ ]; - "wink.sensor" = ps: with ps; [ ]; - "wink.switch" = ps: with ps; [ ]; - "wink.water_heater" = ps: with ps; [ ]; "wirelesstag" = ps: with ps; [ ]; - "wirelesstag.binary_sensor" = ps: with ps; [ ]; - "wirelesstag.sensor" = ps: with ps; [ ]; - "wirelesstag.switch" = ps: with ps; [ ]; "workday" = ps: with ps; [ ]; - "workday.binary_sensor" = ps: with ps; [ ]; "worldclock" = ps: with ps; [ ]; - "worldclock.sensor" = ps: with ps; [ ]; "worldtidesinfo" = ps: with ps; [ ]; - "worldtidesinfo.sensor" = ps: with ps; [ ]; "worxlandroid" = ps: with ps; [ ]; - "worxlandroid.sensor" = ps: with ps; [ ]; "wsdot" = ps: with ps; [ ]; - "wsdot.sensor" = ps: with ps; [ ]; "wunderground" = ps: with ps; [ ]; - "wunderground.sensor" = ps: with ps; [ ]; "wunderlist" = ps: with ps; [ ]; "x10" = ps: with ps; [ ]; - "x10.light" = ps: with ps; [ ]; "xbox_live" = ps: with ps; [ ]; - "xbox_live.sensor" = ps: with ps; [ ]; "xeoma" = ps: with ps; [ ]; - "xeoma.camera" = ps: with ps; [ ]; "xfinity" = ps: with ps; [ ]; - "xfinity.device_tracker" = ps: with ps; [ ]; - "xiaomi" = ps: with ps; [ ]; - "xiaomi.camera" = ps: with ps; [ ha-ffmpeg ]; - "xiaomi.device_tracker" = ps: with ps; [ ]; + "xiaomi" = ps: with ps; [ ha-ffmpeg ]; "xiaomi_aqara" = ps: with ps; [ ]; - "xiaomi_aqara.binary_sensor" = ps: with ps; [ ]; - "xiaomi_aqara.cover" = ps: with ps; [ ]; - "xiaomi_aqara.light" = ps: with ps; [ ]; - "xiaomi_aqara.lock" = ps: with ps; [ ]; - "xiaomi_aqara.sensor" = ps: with ps; [ ]; - "xiaomi_aqara.switch" = ps: with ps; [ ]; - "xiaomi_miio" = ps: with ps; [ ]; - "xiaomi_miio.device_tracker" = ps: with ps; [ construct ]; - "xiaomi_miio.fan" = ps: with ps; [ construct ]; - "xiaomi_miio.light" = ps: with ps; [ construct ]; - "xiaomi_miio.remote" = ps: with ps; [ construct ]; - "xiaomi_miio.sensor" = ps: with ps; [ construct ]; - "xiaomi_miio.switch" = ps: with ps; [ construct ]; - "xiaomi_miio.vacuum" = ps: with ps; [ construct ]; + "xiaomi_miio" = ps: with ps; [ construct ]; "xiaomi_tv" = ps: with ps; [ ]; - "xiaomi_tv.media_player" = ps: with ps; [ ]; - "xmpp" = ps: with ps; [ ]; - "xmpp.notify" = ps: with ps; [ slixmpp ]; + "xmpp" = ps: with ps; [ slixmpp ]; "xs1" = ps: with ps; [ ]; - "xs1.climate" = ps: with ps; [ ]; - "xs1.sensor" = ps: with ps; [ ]; - "xs1.switch" = ps: with ps; [ ]; "yale_smart_alarm" = ps: with ps; [ ]; - "yale_smart_alarm.alarm_control_panel" = ps: with ps; [ ]; "yamaha" = ps: with ps; [ ]; - "yamaha.media_player" = ps: with ps; [ ]; "yamaha_musiccast" = ps: with ps; [ ]; - "yamaha_musiccast.media_player" = ps: with ps; [ ]; "yandextts" = ps: with ps; [ ]; - "yandextts.tts" = ps: with ps; [ ]; "yeelight" = ps: with ps; [ ]; - "yeelight.binary_sensor" = ps: with ps; [ ]; - "yeelight.light" = ps: with ps; [ ]; "yeelightsunflower" = ps: with ps; [ ]; - "yeelightsunflower.light" = ps: with ps; [ ]; "yessssms" = ps: with ps; [ ]; - "yessssms.notify" = ps: with ps; [ ]; - "yi" = ps: with ps; [ ]; - "yi.camera" = ps: with ps; [ ha-ffmpeg ]; - "yr" = ps: with ps; [ ]; - "yr.sensor" = ps: with ps; [ xmltodict ]; - "yweather" = ps: with ps; [ ]; - "yweather.sensor" = ps: with ps; [ yahooweather ]; - "yweather.weather" = ps: with ps; [ yahooweather ]; + "yi" = ps: with ps; [ ha-ffmpeg ]; + "yr" = ps: with ps; [ xmltodict ]; + "yweather" = ps: with ps; [ yahooweather ]; "zabbix" = ps: with ps; [ ]; - "zabbix.sensor" = ps: with ps; [ ]; "zamg" = ps: with ps; [ ]; - "zamg.sensor" = ps: with ps; [ ]; - "zamg.weather" = ps: with ps; [ ]; "zengge" = ps: with ps; [ ]; - "zengge.light" = ps: with ps; [ ]; "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ]; - "zestimate" = ps: with ps; [ ]; - "zestimate.sensor" = ps: with ps; [ xmltodict ]; + "zestimate" = ps: with ps; [ xmltodict ]; "zha" = ps: with ps; [ ]; - "zha.api" = ps: with ps; [ ]; - "zha.binary_sensor" = ps: with ps; [ ]; - "zha.config_flow" = ps: with ps; [ ]; - "zha.const" = ps: with ps; [ ]; - "zha.core" = ps: with ps; [ ]; - "zha.device_entity" = ps: with ps; [ ]; - "zha.entity" = ps: with ps; [ ]; - "zha.fan" = ps: with ps; [ ]; - "zha.light" = ps: with ps; [ ]; - "zha.sensor" = ps: with ps; [ ]; - "zha.switch" = ps: with ps; [ ]; "zhong_hong" = ps: with ps; [ ]; - "zhong_hong.climate" = ps: with ps; [ ]; "zigbee" = ps: with ps; [ ]; - "zigbee.binary_sensor" = ps: with ps; [ ]; - "zigbee.light" = ps: with ps; [ ]; - "zigbee.sensor" = ps: with ps; [ ]; - "zigbee.switch" = ps: with ps; [ ]; "ziggo_mediabox_xl" = ps: with ps; [ ]; - "ziggo_mediabox_xl.media_player" = ps: with ps; [ ]; "zone" = ps: with ps; [ ]; - "zone.config_flow" = ps: with ps; [ ]; - "zone.const" = ps: with ps; [ ]; - "zone.zone" = ps: with ps; [ ]; "zoneminder" = ps: with ps; [ zm-py ]; - "zoneminder.binary_sensor" = ps: with ps; [ zm-py ]; - "zoneminder.camera" = ps: with ps; [ zm-py ]; - "zoneminder.sensor" = ps: with ps; [ zm-py ]; - "zoneminder.switch" = ps: with ps; [ zm-py ]; "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ]; - "zwave.binary_sensor" = ps: with ps; [ ]; - "zwave.climate" = ps: with ps; [ ]; - "zwave.config_flow" = ps: with ps; [ ]; - "zwave.const" = ps: with ps; [ ]; - "zwave.cover" = ps: with ps; [ ]; - "zwave.discovery_schemas" = ps: with ps; [ ]; - "zwave.fan" = ps: with ps; [ ]; - "zwave.light" = ps: with ps; [ ]; - "zwave.lock" = ps: with ps; [ ]; - "zwave.node_entity" = ps: with ps; [ ]; - "zwave.sensor" = ps: with ps; [ ]; - "zwave.switch" = ps: with ps; [ ]; - "zwave.util" = ps: with ps; [ ]; - "zwave.workaround" = ps: with ps; [ ]; }; } diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index d2eb536a11e5..6de571b1e0f1 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -28,28 +28,20 @@ let "10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69") (mkOverride "bcrypt" "3.1.6" "44636759d222baa62806bbceb20e96f75a015a6381690d1bc2eda91c01ec02ea") - (self: super: { - pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec { - version = "1.6.4"; - src = oldAttrs.src.override { - inherit version; - sha256 = "4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176"; - }; - doCheck = false; # https://github.com/jpadilla/pyjwt/issues/382 - }); - }) - (mkOverride "cryptography" "2.5" - "00c4d7gvsymlaw0r13zrm32dcnarmpayjyrh65yymlmr6mrbcij9") - (mkOverride "cryptography_vectors" "2.5" # required by cryptography==2.5 - "15qfl3pnw2f11r0z0zhwl56f6pb60ysav8fxmpnz5p80cfwljdik") - (mkOverride "python-slugify" "1.2.6" - "7723daf30996db26573176bddcdf5fcb98f66dc70df05c9cb29f2c79b8193245") + (mkOverride "pyjwt" "1.7.1" + "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96") + (mkOverride "cryptography" "2.6.1" + "26c821cbeb683facb966045e2064303029d572a87ee69ca5a1bf54bf55f93ca6") + (mkOverride "cryptography_vectors" "2.6.1" # required by cryptography==2.6.1 + "03f38115dccb266dd96538f94067442a877932c2322661bdc5bf2502c76658af") + (mkOverride "python-slugify" "3.0.2" + "57163ffb345c7e26063435a27add1feae67fa821f1ef4b2f292c25847575d758") (mkOverride "pyyaml" "3.13" "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf") (mkOverride "requests" "2.21.0" "502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e") - (mkOverride "ruamel_yaml" "0.15.89" - "86d034aa9e2ab3eacc5f75f5cd6a469a2af533b6d9e60ea92edbba540d21b9b7") + (mkOverride "ruamel_yaml" "0.15.91" + "692f03ed24c8c1d9fa9fd4c045f7ba1c26f1e96edb8bfb4d54854ba26bc02319") (mkOverride "voluptuous" "0.11.5" "567a56286ef82a9d7ae0628c5842f65f516abcb496e74f3f59f1d7b28df314ef") (mkOverride "voluptuous-serialize" "2.1.0" @@ -67,14 +59,13 @@ let # required by home-assistant-frontend (self: super: { user-agents = super.user-agents.overridePythonAttrs (oldAttrs: rec { - version = "1.1.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "selwin"; repo = "python-user-agents"; rev = "v${version}"; - sha256 = "14kxd780zhp8718xr1z63xffaj3bvxgr4pldh9sv943m4hvi0gw5"; + sha256 = "0ix2yajqdnfj433j50dls90mkmqz8m4fiywxg097zwkkc95wm8s4"; }; - doCheck = false; # can be dropped for 2.0 }); }) @@ -118,7 +109,7 @@ let extraBuildInputs = extraPackages py.pkgs; # Don't forget to run parse-requirements.py after updating - hassVersion = "0.91.4"; + hassVersion = "0.92.2"; in with py.pkgs; buildPythonApplication rec { pname = "homeassistant"; @@ -133,7 +124,7 @@ in with py.pkgs; buildPythonApplication rec { owner = "home-assistant"; repo = "home-assistant"; rev = version; - sha256 = "195pif8lz0qxjsannpi39gxphfb6dkj9lkpah0vjw0pgx753sflv"; + sha256 = "10kqfj7gi8w0d9jalb4i2w4ifla8jkllymjav74abc4b30y08vmw"; }; propagatedBuildInputs = [ @@ -145,16 +136,17 @@ in with py.pkgs; buildPythonApplication rec { ] ++ componentBuildInputs ++ extraBuildInputs; checkInputs = [ - asynctest pytest pytest-aiohttp requests-mock pydispatcher + asynctest pytest pytest-aiohttp requests-mock pydispatcher aiohue ]; checkPhase = '' # The components' dependencies are not included, so they cannot be tested - py.test --ignore tests/components + # test_webhook_create_cloudhook imports hass_nabucasa and is thus excluded + py.test --ignore tests/components -k "not test_webhook_create_cloudhook" # Some basic components should be tested however py.test \ tests/components/{api,config,configurator,demo,discovery,frontend,group,history,history_graph} \ - tests/components/{homeassistant,http,introduction,logger,script,shell_command,system_log,websocket_api} + tests/components/{homeassistant,http,logger,script,shell_command,system_log,websocket_api} ''; makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip"; diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index f8349c24f7fb..9919270a8d02 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "home-assistant-frontend"; - version = "20190331.0"; + version = "20190427.0"; src = fetchPypi { inherit pname version; - sha256 = "2d266a4d3d31af9a50debb99b0e9e9650044698f9157753bec785785057264cf"; + sha256 = "eb14e7be0ad591ad4623c67db752bc4eb4f4e43ce60bb0f6d1909e9ad9399d91"; }; propagatedBuildInputs = [ user-agents ]; From d280603bd18cb27ce2e6bf6a0f8a163d8568214f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 25 Apr 2019 15:54:24 +0200 Subject: [PATCH 34/49] nixos/home-assistant: account for introduction of manifest.json The `availableComponents` now only contain a single attribute for every integration. --- .../modules/services/misc/home-assistant.nix | 35 +++++++------------ 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix index 7f8d31bcf0b8..f1b351246740 100644 --- a/nixos/modules/services/misc/home-assistant.nix +++ b/nixos/modules/services/misc/home-assistant.nix @@ -21,32 +21,23 @@ let availableComponents = cfg.package.availableComponents; - # Given component "parentConfig.platform", returns whether config.parentConfig - # is a list containing a set with set.platform == "platform". + usedPlatforms = config: + if isAttrs config then + optional (config ? platform) config.platform + ++ concatMap usedPlatforms (attrValues config) + else if isList config then + concatMap usedPlatforms config + else [ ]; + + # Given a component "platform", looks up whether it is used in the config + # as `platform = "platform";`. # - # For example, the component sensor.luftdaten is used as follows: + # For example, the component mqtt.sensor is used as follows: # config.sensor = [ { - # platform = "luftdaten"; + # platform = "mqtt"; # ... # } ]; - # - # Beginning with 0.87 Home Assistant is migrating their components to the - # scheme "platform.subComponent", e.g. "hue.light" instead of "light.hue". - # See https://developers.home-assistant.io/blog/2019/02/19/the-great-migration.html. - # Hence, we also check whether we find an entry in the config when interpreting - # the first part of the path as the component. - useComponentPlatform = component: - let - path = splitString "." component; - # old: platform is the last part of path - parentConfig = attrByPath (init path) null cfg.config; - platform = last path; - # new: platform is the first part of the path - parentConfig' = attrByPath (tail path) null cfg.config; - platform' = head path; - in - (isList parentConfig && any (item: item.platform or null == platform) parentConfig) - || (isList parentConfig' && any (item: item.platform or null == platform') parentConfig'); + useComponentPlatform = component: elem component (usedPlatforms cfg.config); # Returns whether component is used in config useComponent = component: From 7e09b531ae81c83f613b8a8f30eca5adef23fa64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 26 Apr 2019 09:26:38 +0200 Subject: [PATCH 35/49] appdaemon: 3.0.4 -> 3.0.5 --- pkgs/servers/home-assistant/appdaemon.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix index ca8ddbc7af33..82df1f6b988f 100644 --- a/pkgs/servers/home-assistant/appdaemon.nix +++ b/pkgs/servers/home-assistant/appdaemon.nix @@ -24,10 +24,10 @@ let }); jinja2 = super.jinja2.overridePythonAttrs (oldAttrs: rec { - version = "2.10"; + version = "2.10.1"; src = oldAttrs.src.override { inherit version; - sha256 = "f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"; + sha256 = "065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013"; }; }); @@ -52,11 +52,11 @@ let in python.pkgs.buildPythonApplication rec { pname = "appdaemon"; - version = "3.0.4"; + version = "3.0.5"; src = python.pkgs.fetchPypi { inherit pname version; - sha256 = "e2393b5e0bb34e94e61f5debc95ad74c1c6929635b74bf8ba15c22b40cbdec69"; + sha256 = "623897ce08dc2efe24d04380df36e4b7fb35c0e4007e882857d4047f0b60349d"; }; propagatedBuildInputs = with python.pkgs; [ From 1b0cd28a51db1759a04bb437ad7ad10f0602041c Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Fri, 3 May 2019 02:19:06 -0500 Subject: [PATCH 36/49] lz4: pick upstream fix for Darwin, move to pname --- pkgs/tools/compression/lz4/default.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/compression/lz4/default.nix b/pkgs/tools/compression/lz4/default.nix index 3ca56e91a9ec..3f2497cd8d22 100644 --- a/pkgs/tools/compression/lz4/default.nix +++ b/pkgs/tools/compression/lz4/default.nix @@ -1,18 +1,26 @@ -{ stdenv, fetchFromGitHub, valgrind +{ stdenv, fetchFromGitHub, valgrind, fetchpatch , enableStatic ? false, enableShared ? true }: stdenv.mkDerivation rec { - name = "lz4-${version}"; + pname = "lz4"; version = "1.9.1"; src = fetchFromGitHub { sha256 = "1l1caxrik1hqs40vj3bpv1pikw6b74cfazv5c0v6g48zpcbmshl0"; rev = "v${version}"; - repo = "lz4"; - owner = "lz4"; + repo = pname; + owner = pname; }; + patches = [ + # Fix detection of Darwin + (fetchpatch { + url = "https://github.com/lz4/lz4/commit/024216ef7394b6411eeaa5b52d0cec9953a44249.patch"; + sha256 = "0j0j2pr6pkplxf083hlwl5q4cfp86q3wd8mc64bcfcr7ysc5pzl3"; + }) + ]; + outputs = [ "out" "dev" ]; buildInputs = stdenv.lib.optional doCheck valgrind; From e25f5c1e8692b344c771019879a875df034652a4 Mon Sep 17 00:00:00 2001 From: Samuel Dionne-Riel Date: Fri, 8 Mar 2019 19:33:28 -0500 Subject: [PATCH 37/49] linux: Makes the -dev output reproducible --- pkgs/os-specific/linux/kernel/manual-config.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 1512f47ade40..6210523d62a5 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -198,6 +198,10 @@ let cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build make modules_prepare $makeFlags "''${makeFlagsArray[@]}" O=$dev/lib/modules/${modDirVersion}/build + # For reproducibility, removes accidental leftovers from a `cc1` call + # from a `try-run` call from the Makefile + rm -f $dev/lib/modules/${modDirVersion}/build/.[0-9]*.d + # Keep some extra files on some arches (powerpc, aarch64) for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do if [ -f "$buildRoot/$f" ]; then From dafc45800ae4753490f4d33a9d1f20354a45f59f Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Wed, 1 May 2019 17:07:39 -0700 Subject: [PATCH 38/49] pcre2: 10.32 -> 10.33 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pcre2/versions --- pkgs/development/libraries/pcre2/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix index 89649f0bf308..f080de82ddc2 100644 --- a/pkgs/development/libraries/pcre2/default.nix +++ b/pkgs/development/libraries/pcre2/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { name = "pcre2-${version}"; - version = "10.32"; + version = "10.33"; src = fetchurl { url = "https://ftp.pcre.org/pub/pcre/${name}.tar.bz2"; - sha256 = "0bkwp2czcckvvbdls7b331cad11rxsm020aqhrbz84z8bp68k7pj"; + sha256 = "1anqi7vpbfzag7imccrc6di1zl5rl63ab7rfpmajpw6d1kzlsl9m"; }; configureFlags = [ From 8eb0dd1cb1f8f7d66ef31bc1e58f31c75a78b49a Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 30 Apr 2019 23:10:09 -0700 Subject: [PATCH 39/49] libcdio: 2.0.0 -> 2.1.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libcdio/versions --- pkgs/development/libraries/libcdio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libcdio/default.nix b/pkgs/development/libraries/libcdio/default.nix index 531ca4102afe..9c3132a3e637 100644 --- a/pkgs/development/libraries/libcdio/default.nix +++ b/pkgs/development/libraries/libcdio/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, libcddb, pkgconfig, ncurses, help2man, libiconv, Carbon, IOKit }: stdenv.mkDerivation rec { - name = "libcdio-2.0.0"; + name = "libcdio-2.1.0"; src = fetchurl { url = "mirror://gnu/libcdio/${name}.tar.bz2"; - sha256 = "0jr8ppdm80c533nzmrpz3iffnpc6nhvsria1di9f4jg1l19a03fd"; + sha256 = "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45"; }; postPatch = '' From 9955f6301ac1bad58350d09cee18ab6c16fdc628 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Wed, 1 May 2019 18:17:44 -0700 Subject: [PATCH 40/49] pixman: 0.38.0 -> 0.38.4 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pixman/versions --- pkgs/development/libraries/pixman/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix index 639d6266b5a8..2a033304b66e 100644 --- a/pkgs/development/libraries/pixman/default.nix +++ b/pkgs/development/libraries/pixman/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "pixman-${version}"; - version = "0.38.0"; + version = "0.38.4"; src = fetchurl { url = "mirror://xorg/individual/lib/${name}.tar.bz2"; - sha256 = "1a1nnkjv0rqdj26847r0saly0kzckjfp4y3ly30bvpjxi7vy6s5p"; + sha256 = "0l0m48lnmdlmnaxn2021qi5cj366d9fzfjxkqgcj9bs14pxbgaw4"; }; nativeBuildInputs = [ pkgconfig ]; From 8cc761c606a07c20546c803f4300bd626aeded9f Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 29 Apr 2019 18:09:34 -0500 Subject: [PATCH 41/49] getopt: 1.1.4 -> 1.1.6, modernize a bit http://frodo.looijaard.name/project/getopt/release/1-1-6 http://frodo.looijaard.name/project/getopt/release/1-1-5 * don't rely on tarballs.nixos.org * no need for custom builder --- pkgs/tools/misc/getopt/builder.sh | 4 ---- pkgs/tools/misc/getopt/default.nix | 20 ++++++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 pkgs/tools/misc/getopt/builder.sh diff --git a/pkgs/tools/misc/getopt/builder.sh b/pkgs/tools/misc/getopt/builder.sh deleted file mode 100644 index a220ad0c66fb..000000000000 --- a/pkgs/tools/misc/getopt/builder.sh +++ /dev/null @@ -1,4 +0,0 @@ -source $stdenv/setup -installFlags="prefix=$out" -makeFlags="CFLAGS=-DWITHOUT_GETTEXT LIBCGETOPT=0" -genericBuild diff --git a/pkgs/tools/misc/getopt/default.nix b/pkgs/tools/misc/getopt/default.nix index 8221bec6ccab..62414a604756 100644 --- a/pkgs/tools/misc/getopt/default.nix +++ b/pkgs/tools/misc/getopt/default.nix @@ -1,15 +1,19 @@ {stdenv, fetchurl}: -stdenv.mkDerivation { - name = "getopt-1.1.4"; - builder = ./builder.sh; +stdenv.mkDerivation rec { + pname = "getopt"; + version = "1.1.6"; src = fetchurl { - url = http://tarballs.nixos.org/getopt-1.1.4.tar.gz; - sha256 = "1arvjfzw6p310zbgv629w5hkyslrj44imf3r3s2r4ry2jfcks221"; + url = "http://frodo.looijaard.name/system/files/software/${pname}/${pname}-${version}.tar.gz"; + sha256 = "1zn5kp8ar853rin0ay2j3p17blxy16agpp8wi8wfg4x98b31vgyh"; }; - preBuild = '' - export buildFlags=CC="$CC" # for darwin - ''; + + makeFlags = [ + "WITHOUT_GETTEXT=1" + "LIBCGETOPT=0" + "prefix=${placeholder "out"}" + "CC:=$(CC)" + ]; meta = { platforms = stdenv.lib.platforms.unix; From 8062ef595cc794de6d286cd19505eaa2d91316aa Mon Sep 17 00:00:00 2001 From: volth Date: Thu, 18 Apr 2019 18:26:57 +0000 Subject: [PATCH 42/49] libuv: disable "get_passwd" test --- pkgs/development/libraries/libuv/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix index 4fdfc8556425..effbb9ac742a 100644 --- a/pkgs/development/libraries/libuv/default.nix +++ b/pkgs/development/libraries/libuv/default.nix @@ -17,6 +17,7 @@ stdenv.mkDerivation rec { "spawn_setuid_fails" "spawn_setgid_fails" "fs_chown" # user namespaces "getaddrinfo_fail" "getaddrinfo_fail_sync" "threadpool_multiple_event_loops" # times out on slow machines + "get_passwd" # passed on NixOS but failed on other Linuxes ] ++ stdenv.lib.optionals stdenv.isDarwin [ # Sometimes: timeout (no output), failed uv_listen. Someone # should report these failures to libuv team. There tests should From a134f9cb01d48946e926efa2bdd4356b762ab304 Mon Sep 17 00:00:00 2001 From: volth Date: Sat, 27 Apr 2019 09:55:43 +0000 Subject: [PATCH 43/49] libuv: blacklist "tcp_writealot" test sometimes it times out https://logs.nix.ci/?key=nixos/nixpkgs.59849&attempt_id=5efe1166-4a32-4a3d-976c-45b3a34f0441 --- pkgs/development/libraries/libuv/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix index effbb9ac742a..78abbe7392c9 100644 --- a/pkgs/development/libraries/libuv/default.nix +++ b/pkgs/development/libraries/libuv/default.nix @@ -18,6 +18,7 @@ stdenv.mkDerivation rec { "getaddrinfo_fail" "getaddrinfo_fail_sync" "threadpool_multiple_event_loops" # times out on slow machines "get_passwd" # passed on NixOS but failed on other Linuxes + "tcp_writealot" # times out sometimes ] ++ stdenv.lib.optionals stdenv.isDarwin [ # Sometimes: timeout (no output), failed uv_listen. Someone # should report these failures to libuv team. There tests should From e3b13dfaf3e4447645b2fe8910725b09cfd35c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 5 May 2019 17:00:28 +0100 Subject: [PATCH 44/49] iana-etc: 20181219 -> 20190504 --- pkgs/data/misc/iana-etc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/misc/iana-etc/default.nix b/pkgs/data/misc/iana-etc/default.nix index 59773e34ccec..163f230e077a 100644 --- a/pkgs/data/misc/iana-etc/default.nix +++ b/pkgs/data/misc/iana-etc/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchzip }: let - version = "20181219"; + version = "20190504"; in fetchzip { name = "iana-etc-${version}"; url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz"; - sha256 = "0i3f7shvf1g6dp984w8xfix6id3q5c10b292wz2qw3v5n7h6wkm3"; + sha256 = "1h61qnb3ybyfivyq8qjnisj4arbnhn8hcwad1bp4iqidjk6rjfv3"; postFetch = '' tar -xzvf $downloadedFile --strip-components=1 From c4146b0df0de6c15c781efeafbe364cfb9190cda Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 5 May 2019 12:11:01 -0700 Subject: [PATCH 45/49] pidgin-sipe: 1.23.3 -> 1.24.0 (#50658) * pidgin-sipe: 1.23.3 -> 1.24.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pidgin-sipe/versions * pidgin-sipe: add gmime to build inputs and refactor --- .../pidgin-plugins/sipe/default.nix | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix index 2d3a10cec5e4..5b3e09440a63 100644 --- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix +++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix @@ -1,24 +1,24 @@ -{ stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }: +{ stdenv, fetchurl, pidgin, intltool, libxml2, gmime, nss }: -let version = "1.23.3"; in - -stdenv.mkDerivation { - name = "pidgin-sipe-${version}"; +stdenv.mkDerivation rec { + pname = "pidgin-sipe"; + version = "1.24.0"; src = fetchurl { - url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz"; - sha256 = "0aaiblnagncb0lhdwb8qbps6hxxmyfjg7sdi15lrkl98i3fahg4n"; + url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz"; + sha256 = "04cxprz6dbcsc4n2jg72mr1r9630nhrywn0zim9kwvbgps3wdd9c"; }; - meta = with stdenv.lib; { - description = "SIPE plugin for Pidgin IM"; - homepage = http://sipe.sourceforge.net/; - license = licenses.gpl2; - platforms = platforms.linux; - }; + nativeBuildInputs = [ intltool ]; + buildInputs = [ pidgin gmime libxml2 nss ]; + enableParallelBuilding = true; postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; - buildInputs = [ pidgin intltool libxml2 nss nspr ]; - + meta = with stdenv.lib; { + description = "SIPE plugin for Pidgin IM"; + homepage = "http://sipe.sourceforge.net/"; + license = licenses.gpl2; + platforms = platforms.linux; + }; } From 1800e3ca5c8114073c5aaf59d77d6cde816e9787 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 6 May 2019 07:47:10 -0700 Subject: [PATCH 46/49] libdvdread: 6.0.0 -> 6.0.1 (#57275) Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libdvdread/versions --- pkgs/development/libraries/libdvdread/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libdvdread/default.nix b/pkgs/development/libraries/libdvdread/default.nix index 95815f4abcda..5f0f08275035 100644 --- a/pkgs/development/libraries/libdvdread/default.nix +++ b/pkgs/development/libraries/libdvdread/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "libdvdread-${version}"; - version = "6.0.0"; + version = "6.0.1"; src = fetchurl { url = "http://get.videolan.org/libdvdread/${version}/${name}.tar.bz2"; - sha256 = "0dgr23fzcjhb7ck54xkr9zmf4jcq3ph0dz3fbyvla1c6ni9ijfxk"; + sha256 = "1gfmh8ii3s2fw1c8vn57piwxc0smd3va4h7xgp9s8g48cc04zki8"; }; buildInputs = [libdvdcss]; From 3b7ea8a7b97cb1ecd20612363d1412a3a6abe431 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sun, 5 May 2019 22:37:28 -0500 Subject: [PATCH 47/49] utillinux: placeholder, touchup how su is disabled --- pkgs/os-specific/linux/util-linux/default.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index 3e94ba5c1ea2..73604769d1e6 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -41,15 +41,19 @@ in stdenv.mkDerivation rec { "--disable-use-tty-group" "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin" "--disable-makeinstall-setuid" "--disable-makeinstall-chown" + "--disable-su" # provided by shadow (lib.withFeature (ncurses != null) "ncursesw") (lib.withFeature (systemd != null) "systemd") (lib.withFeatureAs (systemd != null) - "systemdsystemunitdir" "$(bin)/lib/systemd/system/") + "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/") ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "scanf_cv_type_modifier=ms" ; - makeFlags = "usrbin_execdir=$(bin)/bin usrsbin_execdir=$(bin)/sbin"; + makeFlags = [ + "usrbin_execdir=${placeholder "bin"}/bin" + "usrsbin_execdir=${placeholder "bin"}/sbin" + ]; nativeBuildInputs = [ pkgconfig ]; buildInputs = @@ -58,9 +62,7 @@ in stdenv.mkDerivation rec { doCheck = false; # "For development purpose only. Don't execute on production system!" - postInstall = '' - rm "$bin/bin/su" # su should be supplied by the su package (shadow) - '' + lib.optionalString minimal '' + postInstall = lib.optionalString minimal '' rm -rf $out/share/{locale,doc,bash-completion} ''; From 42c100985a4445af375b1b09abefd3a3d7257aa0 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sun, 5 May 2019 22:39:50 -0500 Subject: [PATCH 48/49] utillinux: 2.33.1 -> 2.33.2 https://lkml.org/lkml/2019/4/9/474 --- pkgs/os-specific/linux/util-linux/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index 73604769d1e6..0962bd911329 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -5,14 +5,14 @@ let version = lib.concatStringsSep "." ([ majorVersion ] ++ lib.optional (patchVersion != "") patchVersion); majorVersion = "2.33"; - patchVersion = "1"; + patchVersion = "2"; in stdenv.mkDerivation rec { name = "util-linux-${version}"; src = fetchurl { url = "mirror://kernel/linux/utils/util-linux/v${majorVersion}/${name}.tar.xz"; - sha256 = "08ggvgrb59m5jbq29950xxirsgv4xj3nwsc7vf82nyg1nvrxjjy1"; + sha256 = "15yf2dh4jd1kg6066hydlgdhhs2j3na13qld8yx30qngqvmfh6v3"; }; patches = [ From 9ab5d019759f7b298461c99013e0b939c6a75b42 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 5 May 2019 06:44:07 -0700 Subject: [PATCH 49/49] libshout: 2.4.1 -> 2.4.2 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libshout/versions --- pkgs/development/libraries/libshout/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libshout/default.nix b/pkgs/development/libraries/libshout/default.nix index ef0236406213..3753a070c639 100644 --- a/pkgs/development/libraries/libshout/default.nix +++ b/pkgs/development/libraries/libshout/default.nix @@ -4,11 +4,11 @@ # need pkgconfig so that libshout installs ${out}/lib/pkgconfig/shout.pc stdenv.mkDerivation rec { - name = "libshout-2.4.1"; + name = "libshout-2.4.2"; src = fetchurl { url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz"; - sha256 = "0kgjpf8jkgyclw11nilxi8vyjk4s8878x23qyxnvybbgqbgbib7k"; + sha256 = "0qgwarqp2p6jy3zadds6dzj8z1jfb2mbwc3lsdlidf527h0a86ym"; }; outputs = [ "out" "dev" "doc" ];