Merge branch 'staging-next'

A few thousand Darwin jobs are still pending, but there we're depending
on this merge to fix the channel-blocking lz4 failure.
https://hydra.nixos.org/eval/1519778?compare=1519770

+768 -1855
+13 -22
nixos/modules/services/misc/home-assistant.nix
··· 21 21 22 22 availableComponents = cfg.package.availableComponents; 23 23 24 - # Given component "parentConfig.platform", returns whether config.parentConfig 25 - # is a list containing a set with set.platform == "platform". 24 + usedPlatforms = config: 25 + if isAttrs config then 26 + optional (config ? platform) config.platform 27 + ++ concatMap usedPlatforms (attrValues config) 28 + else if isList config then 29 + concatMap usedPlatforms config 30 + else [ ]; 31 + 32 + # Given a component "platform", looks up whether it is used in the config 33 + # as `platform = "platform";`. 26 34 # 27 - # For example, the component sensor.luftdaten is used as follows: 35 + # For example, the component mqtt.sensor is used as follows: 28 36 # config.sensor = [ { 29 - # platform = "luftdaten"; 37 + # platform = "mqtt"; 30 38 # ... 31 39 # } ]; 32 - # 33 - # Beginning with 0.87 Home Assistant is migrating their components to the 34 - # scheme "platform.subComponent", e.g. "hue.light" instead of "light.hue". 35 - # See https://developers.home-assistant.io/blog/2019/02/19/the-great-migration.html. 36 - # Hence, we also check whether we find an entry in the config when interpreting 37 - # the first part of the path as the component. 38 - useComponentPlatform = component: 39 - let 40 - path = splitString "." component; 41 - # old: platform is the last part of path 42 - parentConfig = attrByPath (init path) null cfg.config; 43 - platform = last path; 44 - # new: platform is the first part of the path 45 - parentConfig' = attrByPath (tail path) null cfg.config; 46 - platform' = head path; 47 - in 48 - (isList parentConfig && any (item: item.platform or null == platform) parentConfig) 49 - || (isList parentConfig' && any (item: item.platform or null == platform') parentConfig'); 40 + useComponentPlatform = component: elem component (usedPlatforms cfg.config); 50 41 51 42 # Returns whether component is used in config 52 43 useComponent = component:
+2 -2
pkgs/applications/audio/fluidsynth/default.nix
··· 11 11 sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"; 12 12 }; 13 13 "2" = { 14 - fluidsynthVersion = "2.0.4"; 15 - sha256 = "1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0"; 14 + fluidsynthVersion = "2.0.5"; 15 + sha256 = "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"; 16 16 }; 17 17 }; 18 18 in
+13 -13
pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
··· 1 - { stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }: 1 + { stdenv, fetchurl, pidgin, intltool, libxml2, gmime, nss }: 2 2 3 - let version = "1.23.3"; in 4 - 5 - stdenv.mkDerivation { 6 - name = "pidgin-sipe-${version}"; 3 + stdenv.mkDerivation rec { 4 + pname = "pidgin-sipe"; 5 + version = "1.24.0"; 7 6 8 7 src = fetchurl { 9 - url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz"; 10 - sha256 = "0aaiblnagncb0lhdwb8qbps6hxxmyfjg7sdi15lrkl98i3fahg4n"; 8 + url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz"; 9 + sha256 = "04cxprz6dbcsc4n2jg72mr1r9630nhrywn0zim9kwvbgps3wdd9c"; 11 10 }; 12 11 12 + nativeBuildInputs = [ intltool ]; 13 + buildInputs = [ pidgin gmime libxml2 nss ]; 14 + enableParallelBuilding = true; 15 + 16 + postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; 17 + 13 18 meta = with stdenv.lib; { 14 19 description = "SIPE plugin for Pidgin IM"; 15 - homepage = http://sipe.sourceforge.net/; 20 + homepage = "http://sipe.sourceforge.net/"; 16 21 license = licenses.gpl2; 17 22 platforms = platforms.linux; 18 23 }; 19 - 20 - postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; 21 - 22 - buildInputs = [ pidgin intltool libxml2 nss nspr ]; 23 - 24 24 }
-7
pkgs/build-support/libredirect/libredirect.c
··· 166 166 char buf[PATH_MAX]; 167 167 return execv_real(rewrite(path, buf), argv); 168 168 } 169 - 170 - void *dlopen(const char *filename, int flag) 171 - { 172 - void * (*__dlopen_real) (const char *, int) = dlsym(RTLD_NEXT, "dlopen"); 173 - char buf[PATH_MAX]; 174 - return __dlopen_real(rewrite(filename, buf), flag); 175 - }
+2 -2
pkgs/data/misc/iana-etc/default.nix
··· 1 1 { stdenv, fetchzip }: 2 2 3 3 let 4 - version = "20181219"; 4 + version = "20190504"; 5 5 in fetchzip { 6 6 name = "iana-etc-${version}"; 7 7 url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz"; 8 - sha256 = "0i3f7shvf1g6dp984w8xfix6id3q5c10b292wz2qw3v5n7h6wkm3"; 8 + sha256 = "1h61qnb3ybyfivyq8qjnisj4arbnhn8hcwad1bp4iqidjk6rjfv3"; 9 9 10 10 postFetch = '' 11 11 tar -xzvf $downloadedFile --strip-components=1
+10
pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch
··· 1 + --- a/catalog.xml 2 + +++ b/catalog.xml 3 + @@ -5,4 +5,7 @@ 4 + <rewriteSystem systemIdStartString="http://cdn.docbook.org/release/xsl@suffix@/current/" rewritePrefix="./"/> 5 + <rewriteURI uriStartString="http://cdn.docbook.org/release/xsl@suffix@/@version@/" rewritePrefix="./"/> 6 + <rewriteSystem systemIdStartString="http://cdn.docbook.org/release/xsl@suffix@/@version@/" rewritePrefix="./"/> 7 + + <!-- legacy URIs --> 8 + + <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl@legacySuffix@/current/" rewritePrefix="./"/> 9 + + <rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl@legacySuffix@/current/" rewritePrefix="./"/> 10 + </catalog>
+56 -45
pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
··· 1 - { lib, stdenv, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }: 1 + { lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }: 2 2 3 3 let 4 4 5 - common = { pname, sha256, patches ? [] }: let self = stdenv.mkDerivation rec { 6 - name = "${pname}-1.79.1"; 5 + common = { pname, sha256, suffix ? "" }: let 6 + legacySuffix = if suffix == "-nons" then "" else "-ns"; 7 + self = stdenv.mkDerivation rec { 8 + inherit pname; 9 + version = "1.79.2"; 7 10 8 - src = fetchurl { 9 - url = "mirror://sourceforge/docbook/${name}.tar.bz2"; 10 - inherit sha256; 11 - }; 11 + src = fetchurl { 12 + url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${version}/docbook-xsl${suffix}-${version}.tar.bz2"; 13 + inherit sha256; 14 + }; 15 + 16 + patches = [ 17 + # Prevent a potential stack overflow 18 + # https://github.com/docbook/xslt10-stylesheets/pull/37 19 + (fetchpatch { 20 + url = https://src.fedoraproject.org/rpms/docbook-style-xsl/raw/e3ae7a97ed1d185594dd35954e1a02196afb205a/f/docbook-style-xsl-non-recursive-string-subst.patch; 21 + sha256 = "0lrjjg5kpwwmbhkxzz6i5zmimb6lsvrrdhzc2qgjmb3r6jnsmii3"; 22 + stripLen = "1"; 23 + }) 12 24 13 - inherit patches; 25 + # Add legacy sourceforge.net URIs to the catalog 26 + (substituteAll { 27 + src = ./catalog-legacy-uris.patch; 28 + inherit legacySuffix suffix version; 29 + }) 30 + ]; 14 31 15 - propagatedBuildInputs = [ findXMLCatalogs ]; 32 + propagatedBuildInputs = [ findXMLCatalogs ]; 16 33 17 - dontBuild = true; 34 + dontBuild = true; 18 35 19 - installPhase = '' 20 - dst=$out/share/xml/${pname} 21 - mkdir -p $dst 22 - rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh svn* tools log Makefile tests extensions webhelp 23 - mv * $dst/ 36 + installPhase = '' 37 + dst=$out/share/xml/${pname} 38 + mkdir -p $dst 39 + rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp 40 + mv * $dst/ 24 41 25 - # Backwards compatibility. Will remove eventually. 26 - mkdir -p $out/xml/xsl 27 - ln -s $dst $out/xml/xsl/docbook 28 - ''; 42 + # Backwards compatibility. Will remove eventually. 43 + mkdir -p $out/xml/xsl 44 + ln -s $dst $out/xml/xsl/docbook 29 45 30 - passthru.dbtoepub = writeScriptBin "dbtoepub" 31 - '' 32 - #!${bash}/bin/bash 33 - exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@" 46 + # More backwards compatibility 47 + ln -s $dst $out/share/xml/docbook-xsl${legacySuffix} 34 48 ''; 35 49 36 - meta = { 37 - homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets; 38 - description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats"; 39 - maintainers = [ lib.maintainers.eelco ]; 40 - platforms = lib.platforms.all; 50 + passthru.dbtoepub = writeScriptBin "dbtoepub" 51 + '' 52 + #!${bash}/bin/bash 53 + exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@" 54 + ''; 55 + 56 + meta = { 57 + homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets; 58 + description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats"; 59 + maintainers = [ lib.maintainers.eelco ]; 60 + platforms = lib.platforms.all; 61 + }; 41 62 }; 42 - }; in self; 63 + in self; 43 64 44 65 in { 45 66 46 - docbook_xsl = common { 47 - pname = "docbook-xsl"; 48 - sha256 = "0s59lihif2fr7rznckxr2kfyrvkirv76r1zvidp9b5mj28p4apvj"; 49 - 50 - patches = [(fetchpatch { 51 - name = "potential-infinite-template-recursion.patch"; 52 - url = "https://src.fedoraproject.org/cgit/rpms/docbook-style-xsl.git/" 53 - + "plain/docbook-style-xsl-non-recursive-string-subst.patch?id=bf9e5d16fd"; 54 - sha256 = "1pfb468bsj3j879ip0950waih0r1s6rzfbm2p70glbz0g3903p7h"; 55 - stripLen = "1"; 56 - })]; 57 - 67 + docbook-xsl-nons = common { 68 + pname = "docbook-xsl-nons"; 69 + suffix = "-nons"; 70 + sha256 = "00i1hdyxim8jymv2dz68ix3wbs5w6isxm8ijb03qk3vs1g59x2zf"; 58 71 }; 59 72 60 - docbook_xsl_ns = common { 73 + docbook-xsl-ns = common { 61 74 pname = "docbook-xsl-ns"; 62 - sha256 = "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin"; 63 - 64 - patches = [ ./docbook-xsl-ns-infinite.patch ]; 75 + sha256 = "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i"; 65 76 }; 66 77 }
-30
pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch
··· 1 - Description: Remove infinite recursion 2 - Attribute: docbook5_xsl 3 - Version: 1.79.1 4 - URL: https://github.com/NixOS/nixpkgs/issues/39090 5 - diff -ru a/lib/lib.xsl b/lib/lib.xsl 6 - --- a/lib/lib.xsl 2015-12-26 15:15:37.000000000 -0800 7 - +++ b/lib/lib.xsl 2018-03-22 11:52:45.311949264 -0700 8 - @@ -11,8 +11,10 @@ 9 - 10 - ******************************************************************** --> 11 - <xsl:stylesheet exclude-result-prefixes="d" 12 - - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook" 13 - -version="1.0"> 14 - + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 15 - + xmlns:d="http://docbook.org/ns/docbook" 16 - + xmlns:str="http://exslt.org/strings" 17 - + version="1.0"> 18 - 19 - <xsl:template name="dot.count"> 20 - <!-- Returns the number of "." characters in a string --> 21 - @@ -58,6 +61,9 @@ 22 - <xsl:param name="replacement"/> 23 - 24 - <xsl:choose> 25 - + <xsl:when test="function-available('str:replace')"> 26 - + <xsl:value-of select="str:replace($string, string($target), string($replacement))"/> 27 - + </xsl:when> 28 - <xsl:when test="contains($string, $target)"> 29 - <xsl:variable name="rest"> 30 - <xsl:call-template name="string.subst">
+27 -26
pkgs/development/compilers/vala/default.nix
··· 4 4 5 5 let 6 6 generic = lib.makeOverridable ({ 7 - major, minor, sha256, 7 + version, sha256, 8 8 extraNativeBuildInputs ? [], 9 9 extraBuildInputs ? [], 10 10 withGraphviz ? false 11 11 }: 12 12 let 13 - atLeast = lib.versionAtLeast "${major}.${minor}"; 14 - 15 13 # Patches from the openembedded-core project to build vala without graphviz 16 14 # support. We need to apply an additional patch to allow building when the 17 15 # header file isn't available at all, but that patch (./gvc-compat.patch) ··· 43 41 # We've reverted the addition of the "--disable-valadoc" option 44 42 # and then applied the following patch. 45 43 # 0.42.4: https://github.com/openembedded/openembedded-core/raw/f2b4f9ec6f44dced7f88df849cca68961419eeb8/meta/recipes-devtools/vala/vala/disable-graphviz.patch 46 - "0.44" = ./disable-graphviz-0.44.1.patch; 44 + "0.44" = ./disable-graphviz-0.44.3.patch; 47 45 48 - }.${major} or (throw "no graphviz patch for this version of vala"); 46 + }.${lib.versions.majorMinor version} or (throw "no graphviz patch for this version of vala"); 49 47 50 - disableGraphviz = atLeast "0.38" && !withGraphviz; 48 + disableGraphviz = lib.versionAtLeast version "0.38" && !withGraphviz; 51 49 52 50 in stdenv.mkDerivation rec { 53 - name = "vala-${version}"; 54 - version = "${major}.${minor}"; 51 + pname = "vala"; 52 + inherit version; 55 53 56 54 setupHook = substituteAll { 57 55 src = ./setup-hook.sh; 58 - apiVersion = major; 56 + apiVersion = lib.versions.majorMinor version; 59 57 }; 60 58 61 59 src = fetchurl { 62 - url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz"; 60 + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; 63 61 inherit sha256; 64 62 }; 65 63 ··· 78 76 79 77 nativeBuildInputs = [ 80 78 pkgconfig flex bison libxslt 81 - ] ++ lib.optional (stdenv.isDarwin && (atLeast "0.38")) expat 79 + ] ++ lib.optional (stdenv.isDarwin && (lib.versionAtLeast version "0.38")) expat 82 80 ++ lib.optional disableGraphviz autoreconfHook # if we changed our ./configure script, need to reconfigure 83 81 ++ extraNativeBuildInputs; 84 82 85 83 buildInputs = [ 86 84 glib libiconv libintl 87 - ] ++ lib.optional (atLeast "0.38" && withGraphviz) graphviz 85 + ] ++ lib.optional (lib.versionAtLeast version "0.38" && withGraphviz) graphviz 88 86 ++ extraBuildInputs; 89 87 90 88 enableParallelBuilding = true; 91 89 92 90 doCheck = false; # fails, requires dbus daemon 93 91 92 + # Wait for PR #59372 93 + #passthru = { 94 + # updateScript = gnome3.updateScript { 95 + # attrPath = "${pname}_${lib.versions.major version}_${lib.versions.minor version}"; 96 + # packageName = pname; 97 + # }; 98 + #}; 99 + 94 100 meta = with stdenv.lib; { 95 101 description = "Compiler for GObject type system"; 96 102 homepage = https://wiki.gnome.org/Projects/Vala; ··· 102 108 103 109 in rec { 104 110 vala_0_36 = generic { 105 - major = "0.36"; 106 - minor = "18"; 107 - sha256 = "0csb9skgy663y05kl813dsarzjbfcdsmx5fvz13p8gas3hycciq9"; 111 + version = "0.36.19"; 112 + sha256 = "05si2f4zjvq0q3wqfh1wxdq20jy1xqxq2skqh8vfh2jyp355lwar"; 108 113 }; 109 114 110 115 vala_0_38 = generic { 111 - major = "0.38"; 112 - minor = "10"; 116 + version = "0.38.10"; 113 117 sha256 = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw"; 114 118 extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool; 115 119 }; 116 120 117 121 vala_0_40 = generic { 118 - major = "0.40"; 119 - minor = "14"; 120 - sha256 = "0llid9b9cgjcrcclc0pw2skkssb7br7b2clq9cql3p14dl94gki0"; 122 + version = "0.40.15"; 123 + sha256 = "0mfayli159yyw6abjf6sgq41j54mr3nspg25b1kxhypcz0scjm19"; 121 124 }; 122 125 123 126 vala_0_42 = generic { 124 - major = "0.42"; 125 - minor = "6"; 126 - sha256 = "14024gvs23q323fmd62hqd8jiypaxbjjvamyd782ixbhxmpz8x1p"; 127 + version = "0.42.7"; 128 + sha256 = "029ksbsdpl581wzy570kj4kkw8b4bizgh494c051zsvkwck55p83"; 127 129 }; 128 130 129 131 vala_0_44 = generic { 130 - major = "0.44"; 131 - minor = "1"; 132 - sha256 = "1qiglkgymws6a3m8xz1v8b3na165ywx2dbipp3bdg134bi0w3a4n"; 132 + version = "0.44.3"; 133 + sha256 = "1sgas7z6y9r2mf4pxry3fx2awdnzn3vlg2sxd3hqpy2a90ib8lw5"; 133 134 }; 134 135 135 136 vala = vala_0_44;
+28 -28
pkgs/development/compilers/vala/disable-graphviz-0.44.1.patch pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch
··· 19 19 - --enable-valadoc \ 20 20 - --enable-unversioned \ 21 21 - $(NULL) 22 - 22 + 23 23 if ENABLE_UNVERSIONED 24 24 aclocaldir = $(datadir)/aclocal 25 25 diff --git a/configure.ac b/configure.ac 26 - index 16ebd1f81..cf23db4b8 100644 26 + index 504db13aa..622397747 100644 27 27 --- a/configure.ac 28 28 +++ b/configure.ac 29 - @@ -156,10 +156,11 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED) 30 - AC_SUBST(GMODULE_CFLAGS) 29 + @@ -157,10 +157,11 @@ AC_SUBST(GMODULE_CFLAGS) 31 30 AC_SUBST(GMODULE_LIBS) 32 - 31 + 32 + AC_ARG_WITH(cgraph, AS_HELP_STRING([--with-cgraph], [Required flag for cross-compilation to define capability of graphviz]), [], with_cgraph=check) 33 33 -AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes) 34 34 -if test x$enable_valadoc = xyes; then 35 35 +AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes) ··· 40 40 cgraph_tmp_LIBADD="$LIBADD" 41 41 cgraph_tmp_CFLAGS="$CFLAGS" 42 42 LIBADD="$LIBADD $LIBGVC_LIBS" 43 - @@ -186,8 +187,8 @@ if test x$enable_valadoc = xyes; then 43 + @@ -198,8 +199,8 @@ if test x$enable_valadoc = xyes; then 44 44 LIBADD="$cgraph_tmp_LIBADD" 45 45 CFLAGS="$cgraph_tmp_CFLAGS" 46 46 fi 47 47 +AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes) 48 48 AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes") 49 49 -AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes) 50 - 50 + 51 51 AC_PATH_PROG([XSLTPROC], [xsltproc], :) 52 52 AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :) 53 53 diff --git a/doc/Makefile.am b/doc/Makefile.am ··· 55 55 --- a/doc/Makefile.am 56 56 +++ b/doc/Makefile.am 57 57 @@ -6,16 +6,11 @@ SUBDIRS = \ 58 - 58 + 59 59 dist_man_MANS = \ 60 60 valac.1 \ 61 61 + valadoc.1 \ 62 62 vala-gen-introspect.1 \ 63 63 vapigen.1 \ 64 64 $(NULL) 65 - 65 + 66 66 -if ENABLE_VALADOC 67 67 -dist_man_MANS += \ 68 68 - valadoc.1 \ ··· 74 74 valadoc.h2m \ 75 75 @@ -24,11 +19,7 @@ EXTRA_DIST = \ 76 76 $(NULL) 77 - 77 + 78 78 if HAVE_HELP2MAN 79 79 -if ENABLE_VALADOC 80 80 manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1 ··· 83 83 -endif 84 84 @rm $^ 85 85 $(MAKE) $(AM_MAKEFLAGS) $^ 86 - 86 + 87 87 @@ -37,13 +28,11 @@ valac.1: 88 88 --include $(srcdir)/valac.h2m \ 89 89 --libtool --no-info \ ··· 108 108 cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1 109 109 cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1 110 110 endif 111 - 112 - 111 + 112 + 113 113 -if ENABLE_VALADOC 114 114 COMMON_VALADOCFLAGS = \ 115 115 --force \ 116 116 --verbose \ 117 117 @@ -150,7 +136,6 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen 118 118 @touch $@ 119 - 119 + 120 120 internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc 121 121 -endif 122 - 122 + 123 123 clean-local: 124 124 rm -rf $(builddir)/internal-apis 125 125 diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am ··· 147 147 html/htmlmarkupwriter.vala \ 148 148 html/htmlrenderer.vala \ 149 149 $(NULL) 150 - 150 + 151 151 +if ENABLE_GRAPHVIZ 152 152 +libvaladoc_la_VALASOURCES += \ 153 153 + charts/chart.vala \ ··· 177 177 $(filter %.vala %.c,$^) 178 178 touch $@ 179 179 @@ -207,6 +214,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc 180 - 180 + 181 181 valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc 182 182 cp $< $@ 183 183 +if !ENABLE_GRAPHVIZ 184 184 + sed -i "s/libgvc //g" $@ 185 185 +endif 186 - 186 + 187 187 vapidir = $(datadir)/vala/vapi 188 188 dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi 189 189 @@ -214,6 +224,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps 190 - 190 + 191 191 valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps 192 192 cp $< $@ 193 193 +if !ENABLE_GRAPHVIZ 194 194 + sed -i "s/libgvc//g" $@ 195 195 +endif 196 - 196 + 197 197 EXTRA_DIST = \ 198 198 $(libvaladoc_la_VALASOURCES) \ 199 199 diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala ··· 211 211 +#endif 212 212 protected ErrorReporter reporter; 213 213 protected string package_list_link = "../index.html"; 214 - 214 + 215 215 @@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { 216 216 this.linker = new LinkHelper (); 217 - 217 + 218 218 _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver); 219 219 +#if HAVE_GRAPHVIZ 220 220 this.image_factory = new SimpleChartFactory (settings, linker); 221 221 +#endif 222 222 } 223 - 224 - 223 + 224 + 225 225 @@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { 226 226 } 227 - 227 + 228 228 protected void write_image_block (Api.Node element) { 229 229 +#if HAVE_GRAPHVIZ 230 230 if (element is Class || element is Interface || element is Struct) { ··· 236 236 } 237 237 +#endif 238 238 } 239 - 239 + 240 240 public void write_namespace_content (Namespace node, Api.Node? parent) { 241 241 diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala 242 242 index 5aa4afdea..e79b0b8f5 100644 ··· 245 245 @@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter { 246 246 } 247 247 } 248 - 248 + 249 249 +#if HAVE_GRAPHVIZ 250 250 public unowned MarkupWriter add_usemap (Charts.Chart chart) { 251 251 string? buf = (string?) chart.write_buffer ("cmapx"); ··· 256 256 +#else 257 257 + public unowned MarkupWriter add_usemap (void* chart) { 258 258 +#endif 259 - 259 + 260 260 return this; 261 261 }
+7 -24
pkgs/development/interpreters/ruby/default.nix
··· 11 11 opString = lib.optionalString; 12 12 patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; 13 13 config = import ./config.nix { inherit fetchFromSavannah; }; 14 - rubygemsSrc = import ./rubygems-src.nix { inherit fetchurl; }; 15 - rubygemsPatch = fetchpatch { 16 - url = "https://github.com/zimbatm/rubygems/compare/v2.6.6...v2.6.6-nix.patch"; 17 - sha256 = "0297rdb1m6v75q8665ry9id1s74p9305dv32l95ssf198liaihhd"; 18 - }; 19 - unpackdir = obj: 20 - lib.removeSuffix ".tgz" 21 - (lib.removeSuffix ".tar.gz" obj.name); 14 + rubygems = import ./rubygems { inherit stdenv lib fetchurl fetchpatch; }; 22 15 23 16 # Contains the ruby version heuristics 24 17 rubyVersion = import ./ruby-version.nix { inherit lib; }; ··· 49 42 , buildEnv, bundler, bundix 50 43 , libiconv, libobjc, libunwind, Foundation 51 44 }: 52 - let rubySrc = 53 - if useRailsExpress then fetchFromGitHub { 45 + stdenv.mkDerivation rec { 46 + name = "ruby-${version}"; 47 + 48 + src = if useRailsExpress then fetchFromGitHub { 54 49 owner = "ruby"; 55 50 repo = "ruby"; 56 51 rev = tag; ··· 59 54 url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz"; 60 55 sha256 = sha256.src; 61 56 }; 62 - in 63 - stdenv.mkDerivation rec { 64 - name = "ruby-${version}"; 65 - 66 - srcs = [ rubySrc rubygemsSrc ]; 67 - sourceRoot = 68 - if useRailsExpress then 69 - rubySrc.name 70 - else 71 - unpackdir rubySrc; 72 57 73 58 # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. 74 59 NROFF = if docSupport then "${groff}/bin/nroff" else null; ··· 100 85 })."${ver.majMinTiny}"; 101 86 102 87 postUnpack = '' 103 - cp -r ${unpackdir rubygemsSrc} ${sourceRoot}/rubygems 104 - pushd ${sourceRoot}/rubygems 105 - patch -p1 < ${rubygemsPatch} 106 - popd 88 + cp -r ${rubygems} $sourceRoot/rubygems 107 89 ''; 108 90 109 91 postPatch = if atLeast25 then '' ··· 146 128 postInstall = '' 147 129 # Update rubygems 148 130 pushd rubygems 131 + chmod +w bundler/bundler.gemspec 149 132 ${buildRuby} setup.rb --destdir $GEM_HOME 150 133 popd 151 134
-8
pkgs/development/interpreters/ruby/rubygems-src.nix
··· 1 - { fetchurl 2 - , version ? "2.7.7" 3 - , sha256 ? "1jsmmd31j8j066b83lin4bbqz19jhrirarzb41f3sjhfdjiwkcjc" 4 - }: 5 - fetchurl { 6 - url = "https://rubygems.org/rubygems/rubygems-${version}.tgz"; 7 - sha256 = sha256; 8 - }
+34
pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch
··· 1 + From a6485cfcdf51ff8be452980f93cebfea97f34dec Mon Sep 17 00:00:00 2001 2 + From: zimbatm <zimbatm@zimbatm.com> 3 + Date: Wed, 21 Sep 2016 09:32:34 +0100 4 + Subject: [PATCH 1/3] add post-extract hook 5 + 6 + Allows nix to execute scripts just after the gem extraction 7 + --- 8 + lib/rubygems/installer.rb | 10 +++++++++- 9 + 1 file changed, 9 insertions(+), 1 deletion(-) 10 + 11 + diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb 12 + index d26b1e88..bf18fb7f 100644 13 + --- a/lib/rubygems/installer.rb 14 + +++ b/lib/rubygems/installer.rb 15 + @@ -848,7 +848,15 @@ TEXT 16 + # Ensures that files can't be installed outside the gem directory. 17 + 18 + def extract_files 19 + - @package.extract_files gem_dir 20 + + ret = @package.extract_files gem_dir 21 + + if ENV['NIX_POST_EXTRACT_FILES_HOOK'] 22 + + puts 23 + + puts "running NIX_POST_EXTRACT_FILES_HOOK #{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{gem_dir}" 24 + + system(ENV['NIX_POST_EXTRACT_FILES_HOOK'], gem_dir.to_s) 25 + + puts "running NIX_POST_EXTRACT_FILES_HOOK done" 26 + + puts 27 + + end 28 + + ret 29 + end 30 + 31 + ## 32 + -- 33 + 2.21.0 34 +
+28
pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch
··· 1 + From 2e1328bcdddd35e557eabdff83ac07f3591dc693 Mon Sep 17 00:00:00 2001 2 + From: zimbatm <zimbatm@zimbatm.com> 3 + Date: Wed, 21 Sep 2016 19:37:05 +0100 4 + Subject: [PATCH 2/3] binaries with env shebang 5 + 6 + By default, don't point to the absolute ruby derivation path. As a user 7 + installing a gem in the home, it would freeze the selected ruby version 8 + to the currently-installed ruby derivation. 9 + --- 10 + lib/rubygems/dependency_installer.rb | 2 +- 11 + 1 file changed, 1 insertion(+), 1 deletion(-) 12 + 13 + diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb 14 + index 34620860..00ab31d9 100644 15 + --- a/lib/rubygems/dependency_installer.rb 16 + +++ b/lib/rubygems/dependency_installer.rb 17 + @@ -18,7 +18,7 @@ class Gem::DependencyInstaller 18 + extend Gem::Deprecate 19 + 20 + DEFAULT_OPTIONS = { # :nodoc: 21 + - :env_shebang => false, 22 + + :env_shebang => true, 23 + :document => %w[ri], 24 + :domain => :both, # HACK dup 25 + :force => false, 26 + -- 27 + 2.21.0 28 +
+26
pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch
··· 1 + From d69249d0ff210316121b44d971ddd2439b1bc393 Mon Sep 17 00:00:00 2001 2 + From: zimbatm <zimbatm@zimbatm.com> 3 + Date: Wed, 21 Sep 2016 09:40:39 +0100 4 + Subject: [PATCH 3/3] gem install default to user 5 + 6 + Default to not installing gems to the read-only system derivation. 7 + --- 8 + lib/rubygems/path_support.rb | 2 +- 9 + 1 file changed, 1 insertion(+), 1 deletion(-) 10 + 11 + diff --git a/lib/rubygems/path_support.rb b/lib/rubygems/path_support.rb 12 + index ed680d65..749b9ea6 100644 13 + --- a/lib/rubygems/path_support.rb 14 + +++ b/lib/rubygems/path_support.rb 15 + @@ -23,7 +23,7 @@ class Gem::PathSupport 16 + # hashtable, or defaults to ENV, the system environment. 17 + # 18 + def initialize(env) 19 + - @home = env["GEM_HOME"] || Gem.default_dir 20 + + @home = env["GEM_HOME"] || Gem.user_dir 21 + 22 + if File::ALT_SEPARATOR 23 + @home = @home.gsub(File::ALT_SEPARATOR, File::SEPARATOR) 24 + -- 25 + 2.21.0 26 +
+30
pkgs/development/interpreters/ruby/rubygems/default.nix
··· 1 + { stdenv, lib, fetchurl, fetchpatch }: 2 + 3 + stdenv.mkDerivation rec { 4 + name = "rubygems"; 5 + version = "3.0.3"; 6 + 7 + src = fetchurl { 8 + url = "https://rubygems.org/rubygems/rubygems-${version}.tgz"; 9 + sha256 = "0b6b9ads8522804xv8b8498gqwsv4qawv13f81kyc7g966y7lfmy"; 10 + }; 11 + 12 + patches = [ 13 + ./0001-add-post-extract-hook.patch 14 + ./0002-binaries-with-env-shebang.patch 15 + ./0003-gem-install-default-to-user.patch 16 + ]; 17 + 18 + installPhase = '' 19 + runHook preInstall 20 + cp -r . $out 21 + runHook postInstall 22 + ''; 23 + 24 + meta = with lib; { 25 + description = "Package management framework for Ruby"; 26 + homepage = https://rubygems.org/; 27 + license = with licenses; [ mit /* or */ ruby ]; 28 + maintainers = with maintainers; [ qyliss zimbatm ]; 29 + }; 30 + }
+2 -2
pkgs/development/libraries/at-spi2-core/default.nix
··· 19 19 stdenv.mkDerivation rec { 20 20 name = "${pname}-${version}"; 21 21 pname = "at-spi2-core"; 22 - version = "2.32.0"; 22 + version = "2.32.1"; 23 23 24 24 src = fetchurl { 25 25 url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; 26 - sha256 = "083j1v7kdjrpjsv1b9dl3d8xqj39jyp4cfn8i9gbbm7q2g93b923"; 26 + sha256 = "0lqd7gsl471v6538iighkvb21gjglcb9pklvas32rjpsxcvsjaiw"; 27 27 }; 28 28 29 29 outputs = [ "out" "dev" ];
+2 -2
pkgs/development/libraries/c-blosc/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "c-blosc-${version}"; 5 - version = "1.16.2"; 5 + version = "1.16.3"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "Blosc"; 9 9 repo = "c-blosc"; 10 10 rev = "v${version}"; 11 - sha256 = "19wb699rb5bn6h9qhw1m18m2w77lws7r50vxpgrvggnl27mvm3xc"; 11 + sha256 = "1c58wkf34rp5wh9qp09zdk7zcfn037sk56p4xq1g0vapbnglv603"; 12 12 }; 13 13 14 14 buildInputs = [ cmake ];
-10
pkgs/development/libraries/gnutls/3.5.10.nix
··· 1 - { callPackage, fetchurl, libunistring, ... } @ args: 2 - 3 - callPackage ./generic.nix (args // rec { 4 - version = "3.5.10"; 5 - 6 - src = fetchurl { 7 - url = "mirror://gnupg/gnutls/v3.5/gnutls-${version}.tar.xz"; 8 - sha256 = "17apwvdkkazh5w8z8mbanpj2yj8s2002qwy46wz4v3akpa33wi5g"; 9 - }; 10 - })
-22
pkgs/development/libraries/gnutls/3.6.nix
··· 1 - { callPackage, fetchurl, ... } @ args: 2 - 3 - callPackage ./generic.nix (args // rec { 4 - version = "3.6.7"; 5 - 6 - src = fetchurl { 7 - url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz"; 8 - sha256 = "1ql8l6l5bxks2pgpwb1602zc0j6ivhpy27hdfc49h8xgbanhjd2v"; 9 - }; 10 - 11 - # Skip some tests: 12 - # - pkgconfig: building against the result won't work before installing (3.5.11) 13 - # - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular) 14 - # - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11) 15 - # - psk-file: no idea; it broke between 3.6.3 and 3.6.4 16 - # Change p11-kit test to use pkg-config to find p11-kit 17 - postPatch = '' 18 - sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh 19 - sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c 20 - 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 21 - ''; 22 - })
+36 -16
pkgs/development/libraries/gnutls/generic.nix pkgs/development/libraries/gnutls/default.nix
··· 1 - { config, lib, stdenv, zlib, lzo, libtasn1, nettle, pkgconfig, lzip 2 - , perl, gmp, autogen, libidn, p11-kit, libiconv 1 + { config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkgconfig, lzip 2 + , perl, gmp, autoconf, autogen, automake, libidn, p11-kit, libiconv 3 + , unbound, dns-root-data, gettext 3 4 , guileBindings ? config.gnutls.guile or false, guile 4 5 , tpmSupport ? false, trousers, which, nettools, libunistring 5 - , unbound, dns-root-data, gettext 6 - 7 - # Version dependent args 8 - , version, src, patches ? [], postPatch ? "", nativeBuildInputs ? [] 9 - , buildInputs ? [] 10 - , ...}: 6 + , withSecurity ? false, Security # darwin Security.framework 7 + }: 11 8 12 9 assert guileBindings -> guile != null; 13 10 let 11 + version = "3.6.7"; 12 + 14 13 # XXX: Gnulib's `test-select' fails on FreeBSD: 15 14 # http://hydra.nixos.org/build/2962084/nixlog/1/raw . 16 15 doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin && lib.versionAtLeast version "3.4" 17 16 && stdenv.buildPlatform == stdenv.hostPlatform; 17 + 18 + inherit (stdenv.hostPlatform) isDarwin; 18 19 in 20 + 19 21 stdenv.mkDerivation { 20 22 name = "gnutls-${version}"; 23 + inherit version; 21 24 22 - inherit src patches; 25 + src = fetchurl { 26 + url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz"; 27 + sha256 = "1ql8l6l5bxks2pgpwb1602zc0j6ivhpy27hdfc49h8xgbanhjd2v"; 28 + }; 23 29 24 30 outputs = [ "bin" "dev" "out" "man" "devdoc" ]; 25 31 outputInfo = "devdoc"; 26 32 33 + patches = [ ./nix-ssl-cert-file.patch ] 34 + # Disable native add_system_trust. 35 + ++ lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch; 36 + 37 + # Skip some tests: 38 + # - pkgconfig: building against the result won't work before installing (3.5.11) 39 + # - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular) 40 + # - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11) 41 + # - psk-file: no idea; it broke between 3.6.3 and 3.6.4 42 + # Change p11-kit test to use pkg-config to find p11-kit 27 43 postPatch = lib.optionalString (lib.versionAtLeast version "3.4") '' 28 - sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' \ 29 - -i tests/cert-tests/name-constraints 30 - '' + postPatch; 44 + sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' -i tests/cert-tests/name-constraints 45 + '' + lib.optionalString (lib.versionAtLeast version "3.6") '' 46 + sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh 47 + sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c 48 + 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 49 + ''; 31 50 32 51 preConfigure = "patchShebangs ."; 33 52 configureFlags = ··· 42 61 enableParallelBuilding = true; 43 62 44 63 buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp autogen libunistring unbound gettext libiconv ] 64 + ++ lib.optional (isDarwin && withSecurity) Security 45 65 ++ lib.optional (tpmSupport && stdenv.isLinux) trousers 46 - ++ lib.optional guileBindings guile 47 - ++ buildInputs; 66 + ++ lib.optional guileBindings guile; 48 67 49 - nativeBuildInputs = [ perl pkgconfig ] ++ nativeBuildInputs 68 + nativeBuildInputs = [ perl pkgconfig ] 69 + ++ lib.optionals (isDarwin && !withSecurity) [ autoconf automake ] 50 70 ++ lib.optionals doCheck [ which nettools ]; 51 71 52 72 propagatedBuildInputs = [ nettle ]; ··· 54 74 inherit doCheck; 55 75 56 76 # Fixup broken libtool and pkgconfig files 57 - preFixup = lib.optionalString (!stdenv.isDarwin) '' 77 + preFixup = lib.optionalString (!isDarwin) '' 58 78 sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \ 59 79 -e 's,-lz,-L${zlib.out}/lib -lz,' \ 60 80 -e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \
+19
pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch
··· 1 + allow overriding system trust store location via $NIX_SSL_CERT_FILE 2 + 3 + diff --git a/lib/system/certs.c b/lib/system/certs.c 4 + index 611c645..6ef6edb 100644 5 + --- a/lib/system/certs.c 6 + +++ b/lib/system/certs.c 7 + @@ -369,6 +369,11 @@ gnutls_x509_trust_list_add_system_trust(gnutls_x509_trust_list_t list, 8 + unsigned int tl_flags, 9 + unsigned int tl_vflags) 10 + { 11 + - return add_system_trust(list, tl_flags|GNUTLS_TL_NO_DUPLICATES, tl_vflags); 12 + + tl_flags = tl_flags|GNUTLS_TL_NO_DUPLICATES; 13 + + const char *file = secure_getenv("NIX_SSL_CERT_FILE"); 14 + + return file 15 + + ? gnutls_x509_trust_list_add_trust_file( 16 + + list, file, NULL/*CRL*/, GNUTLS_X509_FMT_PEM, tl_flags, tl_vflags) 17 + + : add_system_trust(list, tl_flags, tl_vflags); 18 + } 19 +
+126
pkgs/development/libraries/gnutls/no-security-framework.patch
··· 1 + commit 9bcdde1ab9cdff6a4471f9a926dd488ab70c7247 2 + Author: Daiderd Jordan <daiderd@gmail.com> 3 + Date: Mon Apr 22 16:38:27 2019 +0200 4 + 5 + Revert "gnutls_x509_trust_list_add_system_trust: Add macOS keychain support" 6 + 7 + This reverts commit c0eb46d3463cd21b3f822ac377ff37f067f66b8d. 8 + 9 + diff --git a/configure.ac b/configure.ac 10 + index 8ad597bfd..8d14f26cd 100644 11 + --- a/configure.ac 12 + +++ b/configure.ac 13 + @@ -781,7 +781,7 @@ dnl auto detect https://lists.gnu.org/archive/html/help-gnutls/2012-05/msg00004. 14 + AC_ARG_WITH([default-trust-store-file], 15 + [AS_HELP_STRING([--with-default-trust-store-file=FILE], 16 + [use the given file default trust store])], with_default_trust_store_file="$withval", 17 + - [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 18 + + [if test "$build" = "$host" && test x$with_default_trust_store_pkcs11 = x && test x$with_default_trust_store_dir = x;then 19 + for i in \ 20 + /etc/ssl/ca-bundle.pem \ 21 + /etc/ssl/certs/ca-certificates.crt \ 22 + diff --git a/lib/Makefile.am b/lib/Makefile.am 23 + index fe9cf63a2..745695f7e 100644 24 + --- a/lib/Makefile.am 25 + +++ b/lib/Makefile.am 26 + @@ -203,10 +203,6 @@ if WINDOWS 27 + thirdparty_libadd += -lcrypt32 28 + endif 29 + 30 + -if MACOSX 31 + -libgnutls_la_LDFLAGS += -framework Security -framework CoreFoundation 32 + -endif 33 + - 34 + libgnutls_la_LIBADD += $(thirdparty_libadd) 35 + 36 + # C++ library 37 + diff --git a/lib/system/certs.c b/lib/system/certs.c 38 + index 611c645e0..912b0aa5e 100644 39 + --- a/lib/system/certs.c 40 + +++ b/lib/system/certs.c 41 + @@ -44,12 +44,6 @@ 42 + # endif 43 + #endif 44 + 45 + -#ifdef __APPLE__ 46 + -# include <CoreFoundation/CoreFoundation.h> 47 + -# include <Security/Security.h> 48 + -# include <Availability.h> 49 + -#endif 50 + - 51 + /* System specific function wrappers for certificate stores. 52 + */ 53 + 54 + @@ -276,72 +270,6 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags, 55 + 56 + return r; 57 + } 58 + -#elif defined(__APPLE__) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 59 + -static 60 + -int osstatus_error(status) 61 + -{ 62 + - CFStringRef err_str = SecCopyErrorMessageString(status, NULL); 63 + - _gnutls_debug_log("Error loading system root certificates: %s\n", 64 + - CFStringGetCStringPtr(err_str, kCFStringEncodingUTF8)); 65 + - CFRelease(err_str); 66 + - return GNUTLS_E_FILE_ERROR; 67 + -} 68 + - 69 + -static 70 + -int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags, 71 + - unsigned int tl_vflags) 72 + -{ 73 + - int r=0; 74 + - 75 + - SecTrustSettingsDomain domain[] = { kSecTrustSettingsDomainUser, 76 + - kSecTrustSettingsDomainAdmin, 77 + - kSecTrustSettingsDomainSystem }; 78 + - for (size_t d=0; d<sizeof(domain)/sizeof(*domain); d++) { 79 + - CFArrayRef certs = NULL; 80 + - OSStatus status = SecTrustSettingsCopyCertificates(domain[d], 81 + - &certs); 82 + - if (status == errSecNoTrustSettings) 83 + - continue; 84 + - if (status != errSecSuccess) 85 + - return osstatus_error(status); 86 + - 87 + - int cert_count = CFArrayGetCount(certs); 88 + - for (int i=0; i<cert_count; i++) { 89 + - SecCertificateRef cert = 90 + - (void*)CFArrayGetValueAtIndex(certs, i); 91 + - CFDataRef der; 92 + - status = SecItemExport(cert, kSecFormatX509Cert, 0, 93 + - NULL, &der); 94 + - if (status != errSecSuccess) { 95 + - CFRelease(der); 96 + - CFRelease(certs); 97 + - return osstatus_error(status); 98 + - } 99 + - 100 + - if (gnutls_x509_trust_list_add_trust_mem(list, 101 + - &(gnutls_datum_t) { 102 + - .data = (void*)CFDataGetBytePtr(der), 103 + - .size = CFDataGetLength(der), 104 + - }, 105 + - NULL, 106 + - GNUTLS_X509_FMT_DER, 107 + - tl_flags, 108 + - tl_vflags) > 0) 109 + - r++; 110 + - CFRelease(der); 111 + - } 112 + - CFRelease(certs); 113 + - } 114 + - 115 + -#ifdef DEFAULT_BLACKLIST_FILE 116 + - ret = gnutls_x509_trust_list_remove_trust_file(list, DEFAULT_BLACKLIST_FILE, GNUTLS_X509_FMT_PEM); 117 + - if (ret < 0) { 118 + - _gnutls_debug_log("Could not load blacklist file '%s'\n", DEFAULT_BLACKLIST_FILE); 119 + - } 120 + -#endif 121 + - 122 + - return r; 123 + -} 124 + #else 125 + 126 + #define add_system_trust(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE
+2 -2
pkgs/development/libraries/libcdio/default.nix
··· 1 1 { stdenv, fetchurl, libcddb, pkgconfig, ncurses, help2man, libiconv, Carbon, IOKit }: 2 2 3 3 stdenv.mkDerivation rec { 4 - name = "libcdio-2.0.0"; 4 + name = "libcdio-2.1.0"; 5 5 6 6 src = fetchurl { 7 7 url = "mirror://gnu/libcdio/${name}.tar.bz2"; 8 - sha256 = "0jr8ppdm80c533nzmrpz3iffnpc6nhvsria1di9f4jg1l19a03fd"; 8 + sha256 = "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45"; 9 9 }; 10 10 11 11 postPatch = ''
+2 -2
pkgs/development/libraries/libdrm/default.nix
··· 1 1 { stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, valgrind-light }: 2 2 3 3 stdenv.mkDerivation rec { 4 - name = "libdrm-2.4.97"; 4 + name = "libdrm-2.4.98"; 5 5 6 6 src = fetchurl { 7 7 url = "https://dri.freedesktop.org/libdrm/${name}.tar.bz2"; 8 - sha256 = "08yimlp6jir1rs5ajgdx74xa5qdzcqahpdzdk0rmkmhh7vdcrl3p"; 8 + sha256 = "150qdzsm2nx6dfacc75rx53anzsc6m31nhxidf5xxax3mk6fvq4b"; 9 9 }; 10 10 11 11 outputs = [ "out" "dev" "bin" ];
+2 -2
pkgs/development/libraries/libdvdread/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "libdvdread-${version}"; 5 - version = "6.0.0"; 5 + version = "6.0.1"; 6 6 7 7 src = fetchurl { 8 8 url = "http://get.videolan.org/libdvdread/${version}/${name}.tar.bz2"; 9 - sha256 = "0dgr23fzcjhb7ck54xkr9zmf4jcq3ph0dz3fbyvla1c6ni9ijfxk"; 9 + sha256 = "1gfmh8ii3s2fw1c8vn57piwxc0smd3va4h7xgp9s8g48cc04zki8"; 10 10 }; 11 11 12 12 buildInputs = [libdvdcss];
+2 -2
pkgs/development/libraries/libmbim/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "libmbim"; 5 - version = "1.18.0"; 5 + version = "1.18.2"; 6 6 7 7 src = fetchurl { 8 8 url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz"; 9 - sha256 = "10mjjy860aakfd3h1yaj9l1jw816amrpwmyqlx37j21xv0l03x3c"; 9 + sha256 = "0s4jsfsydp2vykv7lnimalp9i680aas1qcx7zdpjiic64b5g48vp"; 10 10 }; 11 11 12 12 outputs = [ "out" "dev" "man" ];
+2 -2
pkgs/development/libraries/libqmi/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "libqmi"; 5 - version = "1.22.2"; 5 + version = "1.22.4"; 6 6 7 7 src = fetchurl { 8 8 url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz"; 9 - sha256 = "09w20dsgr16bgbqw5ds7r6j2s6ihwyalh9zpbjhcn7cvm0afbwgi"; 9 + sha256 = "1wgrrb9vb3myl8xgck8ik86876ycbg8crylybs3ssi21vrxqwnsc"; 10 10 }; 11 11 12 12 outputs = [ "out" "dev" "devdoc" ];
+2 -2
pkgs/development/libraries/libshout/default.nix
··· 4 4 # need pkgconfig so that libshout installs ${out}/lib/pkgconfig/shout.pc 5 5 6 6 stdenv.mkDerivation rec { 7 - name = "libshout-2.4.1"; 7 + name = "libshout-2.4.2"; 8 8 9 9 src = fetchurl { 10 10 url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz"; 11 - sha256 = "0kgjpf8jkgyclw11nilxi8vyjk4s8878x23qyxnvybbgqbgbib7k"; 11 + sha256 = "0qgwarqp2p6jy3zadds6dzj8z1jfb2mbwc3lsdlidf527h0a86ym"; 12 12 }; 13 13 14 14 outputs = [ "out" "dev" "doc" ];
+2
pkgs/development/libraries/libuv/default.nix
··· 17 17 "spawn_setuid_fails" "spawn_setgid_fails" "fs_chown" # user namespaces 18 18 "getaddrinfo_fail" "getaddrinfo_fail_sync" 19 19 "threadpool_multiple_event_loops" # times out on slow machines 20 + "get_passwd" # passed on NixOS but failed on other Linuxes 21 + "tcp_writealot" # times out sometimes 20 22 ] ++ stdenv.lib.optionals stdenv.isDarwin [ 21 23 # Sometimes: timeout (no output), failed uv_listen. Someone 22 24 # should report these failures to libuv team. There tests should
+2 -2
pkgs/development/libraries/pcre2/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "pcre2-${version}"; 5 - version = "10.32"; 5 + version = "10.33"; 6 6 src = fetchurl { 7 7 url = "https://ftp.pcre.org/pub/pcre/${name}.tar.bz2"; 8 - sha256 = "0bkwp2czcckvvbdls7b331cad11rxsm020aqhrbz84z8bp68k7pj"; 8 + sha256 = "1anqi7vpbfzag7imccrc6di1zl5rl63ab7rfpmajpw6d1kzlsl9m"; 9 9 }; 10 10 11 11 configureFlags = [
+2 -2
pkgs/development/libraries/pixman/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "pixman-${version}"; 5 - version = "0.38.0"; 5 + version = "0.38.4"; 6 6 7 7 src = fetchurl { 8 8 url = "mirror://xorg/individual/lib/${name}.tar.bz2"; 9 - sha256 = "1a1nnkjv0rqdj26847r0saly0kzckjfp4y3ly30bvpjxi7vy6s5p"; 9 + sha256 = "0l0m48lnmdlmnaxn2021qi5cj366d9fzfjxkqgcj9bs14pxbgaw4"; 10 10 }; 11 11 12 12 nativeBuildInputs = [ pkgconfig ];
+2 -2
pkgs/development/python-modules/pychromecast/default.nix
··· 2 2 3 3 buildPythonPackage rec { 4 4 pname = "PyChromecast"; 5 - version = "3.2.0"; 5 + version = "3.2.1"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "0jksh7rb4880kni8iw3hb5q9dm5gi40zmx4r2fwydnpfhadhq5af"; 9 + sha256 = "e1e71e30581e1021b6bdd50a80cfcdcfa86d9082171fdd719c5ca6a77b8a9699"; 10 10 }; 11 11 12 12 disabled = !isPy3k;
+8 -6
pkgs/development/python-modules/python-slugify/default.nix
··· 1 - { stdenv, fetchPypi, buildPythonPackage, unidecode, regex, isPy3k }: 1 + { stdenv, fetchPypi, buildPythonPackage, python, text-unidecode }: 2 2 3 3 buildPythonPackage rec { 4 4 pname = "python-slugify"; 5 - version = "2.0.1"; 5 + version = "3.0.2"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "d3e034397236020498e677a35e5c05dcc6ba1624b608b9ef7e5fe3090ccbd5a8"; 9 + sha256 = "57163ffb345c7e26063435a27add1feae67fa821f1ef4b2f292c25847575d758"; 10 10 }; 11 - doCheck = !isPy3k; 12 - # (only) on python3 unittest loader (loadTestsFromModule) fails 13 11 14 - propagatedBuildInputs = [ unidecode regex ]; 12 + propagatedBuildInputs = [ text-unidecode ]; 13 + 14 + checkPhase = '' 15 + ${python.interpreter} test.py 16 + ''; 15 17 16 18 meta = with stdenv.lib; { 17 19 homepage = https://github.com/un33k/python-slugify;
+2 -2
pkgs/development/python-modules/pytz/default.nix
··· 2 2 3 3 buildPythonPackage rec { 4 4 pname = "pytz"; 5 - version = "2018.9"; 5 + version = "2019.1"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "d5f05e487007e29e03409f9398d074e158d920d36eb82eaf66fb1136b0c5374c"; 9 + sha256 = "d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141"; 10 10 }; 11 11 12 12 checkPhase = ''
+2 -2
pkgs/development/python-modules/pytzdata/default.nix
··· 2 2 3 3 buildPythonPackage rec { 4 4 pname = "pytzdata"; 5 - version = "2018.9"; 5 + version = "2019.1"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "dddaaf4f1717820a6fdcac94057e03c1a15b3829a44d9eaf19988917977db408"; 9 + sha256 = "f0469062f799c66480fcc7eae69a8270dc83f0e6522c0e70db882d6bd708d378"; 10 10 }; 11 11 12 12 # No tests
+2 -2
pkgs/development/tools/misc/binutils/default.nix
··· 1 1 { stdenv, lib, buildPackages 2 - , fetchurl, zlib, autoreconfHook 2 + , fetchurl, zlib, autoreconfHook, gettext 3 3 # Enabling all targets increases output size to a multiple. 4 4 , withAllTargets ? false, libbfd, libopcodes 5 5 , enableShared ? true ··· 73 73 ] ++ lib.optionals stdenv.targetPlatform.isiOS [ 74 74 autoreconfHook 75 75 ]; 76 - buildInputs = [ zlib ]; 76 + buildInputs = [ zlib gettext ]; 77 77 78 78 inherit noSysDirs; 79 79
+2 -2
pkgs/development/tools/misc/help2man/default.nix
··· 1 1 { stdenv, fetchurl, perlPackages, gettext }: 2 2 3 3 stdenv.mkDerivation rec { 4 - name = "help2man-1.47.9"; 4 + name = "help2man-1.47.10"; 5 5 6 6 src = fetchurl { 7 7 url = "mirror://gnu/help2man/${name}.tar.xz"; 8 - sha256 = "1li3b6vifhysc2ckx0d7krwrqb8bk0kzn3k18ff1963hjc1qp7nz"; 8 + sha256 = "1yywli520246aba12vpgj7bhr1r13swad3xm49a0cygqcgywnwgk"; 9 9 }; 10 10 11 11 nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];
+1
pkgs/os-specific/linux/kernel/common-config.nix
··· 184 184 VGA_SWITCHEROO = yes; # Hybrid graphics support 185 185 DRM_GMA600 = yes; 186 186 DRM_GMA3600 = yes; 187 + DRM_VMWGFX_FBCON = yes; 187 188 # necessary for amdgpu polaris support 188 189 DRM_AMD_POWERPLAY = whenBetween "4.5" "4.9" yes; 189 190 # (experimental) amdgpu support for verde and newer chipsets
+4
pkgs/os-specific/linux/kernel/manual-config.nix
··· 198 198 cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build 199 199 make modules_prepare $makeFlags "''${makeFlagsArray[@]}" O=$dev/lib/modules/${modDirVersion}/build 200 200 201 + # For reproducibility, removes accidental leftovers from a `cc1` call 202 + # from a `try-run` call from the Makefile 203 + rm -f $dev/lib/modules/${modDirVersion}/build/.[0-9]*.d 204 + 201 205 # Keep some extra files on some arches (powerpc, aarch64) 202 206 for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do 203 207 if [ -f "$buildRoot/$f" ]; then
+11 -7
pkgs/os-specific/linux/shadow/default.nix
··· 1 1 { stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt, libxml2 2 - , docbook_xml_dtd_412, docbook_xsl, gnome-doc-utils, flex, bison 2 + , docbook_xml_dtd_45, docbook_xsl, gnome-doc-utils, flex, bison 3 3 , pam ? null, glibcCross ? null 4 4 }: 5 5 ··· 30 30 31 31 buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam; 32 32 nativeBuildInputs = [autoreconfHook libxslt libxml2 33 - docbook_xml_dtd_412 docbook_xsl gnome-doc-utils flex bison 33 + docbook_xml_dtd_45 docbook_xsl gnome-doc-utils flex bison 34 34 ]; 35 35 36 36 patches = 37 37 [ ./keep-path.patch 38 + # Obtain XML resources from XML catalog (patch adapted from gtk-doc) 39 + ./respect-xml-catalog-files-var.patch 38 40 dots_in_usernames 41 + 42 + # Check for correct DocBook version during configure 43 + # https://github.com/shadow-maint/shadow/pull/162 44 + (fetchpatch { 45 + url = "https://github.com/shadow-maint/shadow/commit/47797ca6654f79e3de854a6c69db2bdb0516db08.patch"; 46 + sha256 = "1zn8f6fd26gj5sh60099xqc7mjwgbbkkic5xfigvxa4b90vm8fd7"; 47 + }) 39 48 ]; 40 49 41 50 # The nix daemon often forbids even creating set[ug]id files. ··· 52 61 preConfigure = '' 53 62 export ac_cv_func_setpgrp_void=yes 54 63 export shadow_cv_logdir=/var/log 55 - ( 56 - head -n -1 "${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml" 57 - tail -n +3 "${docbook_xsl}/share/xml/docbook-xsl/catalog.xml" 58 - ) > xmlcatalog 59 - configureFlags="$configureFlags --with-xml-catalog=$PWD/xmlcatalog "; 60 64 ''; 61 65 62 66 configureFlags = [
+30
pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch
··· 1 + diff --git a/acinclude.m4 b/acinclude.m4 2 + index dd01f165..e23160ee 100644 3 + --- a/acinclude.m4 4 + +++ b/acinclude.m4 5 + @@ -46,9 +46,21 @@ AC_DEFUN([JH_CHECK_XML_CATALOG], 6 + ifelse([$3],,,[$3 7 + ])dnl 8 + else 9 + - AC_MSG_RESULT([not found]) 10 + - ifelse([$4],, 11 + - [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])], 12 + - [$4]) 13 + + jh_check_xml_catalog_saved_ifs="$IFS" 14 + + IFS=' ' 15 + + for f in $XML_CATALOG_FILES; do 16 + + if [[ -f "$f" ]] && \ 17 + + AC_RUN_LOG([$XMLCATALOG --noout "$f" "$1" >&2]); then 18 + + jh_found_xmlcatalog=true 19 + + AC_MSG_RESULT([found]) 20 + + ifelse([$3],,,[$3]) 21 + + break 22 + + fi 23 + + done 24 + + IFS="$jh_check_xml_catalog_saved_ifs" 25 + + if ! $jh_found_xmlcatalog; then 26 + + AC_MSG_RESULT([not found]) 27 + + ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4]) 28 + + fi 29 + fi 30 + ])
+9 -7
pkgs/os-specific/linux/util-linux/default.nix
··· 5 5 version = lib.concatStringsSep "." ([ majorVersion ] 6 6 ++ lib.optional (patchVersion != "") patchVersion); 7 7 majorVersion = "2.33"; 8 - patchVersion = "1"; 8 + patchVersion = "2"; 9 9 10 10 in stdenv.mkDerivation rec { 11 11 name = "util-linux-${version}"; 12 12 13 13 src = fetchurl { 14 14 url = "mirror://kernel/linux/utils/util-linux/v${majorVersion}/${name}.tar.xz"; 15 - sha256 = "08ggvgrb59m5jbq29950xxirsgv4xj3nwsc7vf82nyg1nvrxjjy1"; 15 + sha256 = "15yf2dh4jd1kg6066hydlgdhhs2j3na13qld8yx30qngqvmfh6v3"; 16 16 }; 17 17 18 18 patches = [ ··· 41 41 "--disable-use-tty-group" 42 42 "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin" 43 43 "--disable-makeinstall-setuid" "--disable-makeinstall-chown" 44 + "--disable-su" # provided by shadow 44 45 (lib.withFeature (ncurses != null) "ncursesw") 45 46 (lib.withFeature (systemd != null) "systemd") 46 47 (lib.withFeatureAs (systemd != null) 47 - "systemdsystemunitdir" "$(bin)/lib/systemd/system/") 48 + "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/") 48 49 ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) 49 50 "scanf_cv_type_modifier=ms" 50 51 ; 51 52 52 - makeFlags = "usrbin_execdir=$(bin)/bin usrsbin_execdir=$(bin)/sbin"; 53 + makeFlags = [ 54 + "usrbin_execdir=${placeholder "bin"}/bin" 55 + "usrsbin_execdir=${placeholder "bin"}/sbin" 56 + ]; 53 57 54 58 nativeBuildInputs = [ pkgconfig ]; 55 59 buildInputs = ··· 58 62 59 63 doCheck = false; # "For development purpose only. Don't execute on production system!" 60 64 61 - postInstall = '' 62 - rm "$bin/bin/su" # su should be supplied by the su package (shadow) 63 - '' + lib.optionalString minimal '' 65 + postInstall = lib.optionalString minimal '' 64 66 rm -rf $out/share/{locale,doc,bash-completion} 65 67 ''; 66 68
+4 -4
pkgs/servers/home-assistant/appdaemon.nix
··· 24 24 }); 25 25 26 26 jinja2 = super.jinja2.overridePythonAttrs (oldAttrs: rec { 27 - version = "2.10"; 27 + version = "2.10.1"; 28 28 src = oldAttrs.src.override { 29 29 inherit version; 30 - sha256 = "f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"; 30 + sha256 = "065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013"; 31 31 }; 32 32 }); 33 33 ··· 52 52 53 53 in python.pkgs.buildPythonApplication rec { 54 54 pname = "appdaemon"; 55 - version = "3.0.4"; 55 + version = "3.0.5"; 56 56 57 57 src = python.pkgs.fetchPypi { 58 58 inherit pname version; 59 - sha256 = "e2393b5e0bb34e94e61f5debc95ad74c1c6929635b74bf8ba15c22b40cbdec69"; 59 + sha256 = "623897ce08dc2efe24d04380df36e4b7fb35c0e4007e882857d4047f0b60349d"; 60 60 }; 61 61 62 62 propagatedBuildInputs = with python.pkgs; [
+124 -1442
pkgs/servers/home-assistant/component-packages.nix
··· 2 2 # Do not edit! 3 3 4 4 { 5 - version = "0.91.4"; 5 + version = "0.92.2"; 6 6 components = { 7 7 "abode" = ps: with ps; [ ]; 8 - "abode.alarm_control_panel" = ps: with ps; [ ]; 9 - "abode.binary_sensor" = ps: with ps; [ ]; 10 - "abode.camera" = ps: with ps; [ ]; 11 - "abode.cover" = ps: with ps; [ ]; 12 - "abode.light" = ps: with ps; [ ]; 13 - "abode.lock" = ps: with ps; [ ]; 14 - "abode.sensor" = ps: with ps; [ ]; 15 - "abode.switch" = ps: with ps; [ ]; 16 - "acer_projector" = ps: with ps; [ ]; 17 - "acer_projector.switch" = ps: with ps; [ pyserial ]; 8 + "acer_projector" = ps: with ps; [ pyserial ]; 18 9 "actiontec" = ps: with ps; [ ]; 19 - "actiontec.device_tracker" = ps: with ps; [ ]; 20 10 "ads" = ps: with ps; [ ]; 21 - "ads.binary_sensor" = ps: with ps; [ ]; 22 - "ads.light" = ps: with ps; [ ]; 23 - "ads.sensor" = ps: with ps; [ ]; 24 - "ads.switch" = ps: with ps; [ ]; 25 11 "aftership" = ps: with ps; [ ]; 26 - "aftership.sensor" = ps: with ps; [ ]; 27 12 "air_quality" = ps: with ps; [ ]; 28 - "airvisual" = ps: with ps; [ ]; 29 - "airvisual.sensor" = ps: with ps; [ pyairvisual ]; 13 + "airvisual" = ps: with ps; [ pyairvisual ]; 30 14 "aladdin_connect" = ps: with ps; [ ]; 31 - "aladdin_connect.cover" = ps: with ps; [ ]; 32 15 "alarm_control_panel" = ps: with ps; [ ]; 33 16 "alarmdecoder" = ps: with ps; [ ]; 34 - "alarmdecoder.alarm_control_panel" = ps: with ps; [ ]; 35 - "alarmdecoder.binary_sensor" = ps: with ps; [ ]; 36 - "alarmdecoder.sensor" = ps: with ps; [ ]; 37 17 "alarmdotcom" = ps: with ps; [ ]; 38 - "alarmdotcom.alarm_control_panel" = ps: with ps; [ ]; 39 18 "alert" = ps: with ps; [ ]; 40 19 "alexa" = ps: with ps; [ aiohttp-cors ]; 41 - "alexa.auth" = ps: with ps; [ ]; 42 - "alexa.const" = ps: with ps; [ ]; 43 - "alexa.flash_briefings" = ps: with ps; [ ]; 44 - "alexa.intent" = ps: with ps; [ ]; 45 - "alexa.smart_home" = ps: with ps; [ ]; 46 20 "alpha_vantage" = ps: with ps; [ ]; 47 - "alpha_vantage.sensor" = ps: with ps; [ ]; 48 - "amazon_polly" = ps: with ps; [ ]; 49 - "amazon_polly.tts" = ps: with ps; [ boto3 ]; 21 + "amazon_polly" = ps: with ps; [ boto3 ]; 50 22 "ambient_station" = ps: with ps; [ ]; 51 - "ambient_station.binary_sensor" = ps: with ps; [ ]; 52 - "ambient_station.config_flow" = ps: with ps; [ ]; 53 - "ambient_station.const" = ps: with ps; [ ]; 54 - "ambient_station.sensor" = ps: with ps; [ ]; 55 23 "amcrest" = ps: with ps; [ ha-ffmpeg ]; 56 - "amcrest.camera" = ps: with ps; [ ha-ffmpeg ]; 57 - "amcrest.sensor" = ps: with ps; [ ha-ffmpeg ]; 58 - "amcrest.switch" = ps: with ps; [ ha-ffmpeg ]; 24 + "ampio" = ps: with ps; [ ]; 59 25 "android_ip_webcam" = ps: with ps; [ ]; 60 - "android_ip_webcam.binary_sensor" = ps: with ps; [ ]; 61 - "android_ip_webcam.sensor" = ps: with ps; [ ]; 62 - "android_ip_webcam.switch" = ps: with ps; [ ]; 63 26 "androidtv" = ps: with ps; [ ]; 64 - "androidtv.media_player" = ps: with ps; [ ]; 65 27 "anel_pwrctrl" = ps: with ps; [ ]; 66 - "anel_pwrctrl.switch" = ps: with ps; [ ]; 67 28 "anthemav" = ps: with ps; [ ]; 68 - "anthemav.media_player" = ps: with ps; [ ]; 69 29 "apcupsd" = ps: with ps; [ ]; 70 - "apcupsd.binary_sensor" = ps: with ps; [ ]; 71 - "apcupsd.sensor" = ps: with ps; [ ]; 72 30 "api" = ps: with ps; [ aiohttp-cors ]; 73 - "api_streams" = ps: with ps; [ ]; 74 31 "apns" = ps: with ps; [ ]; 75 - "apns.notify" = ps: with ps; [ ]; 76 32 "apple_tv" = ps: with ps; [ pyatv ]; 77 - "apple_tv.media_player" = ps: with ps; [ pyatv ]; 78 - "apple_tv.remote" = ps: with ps; [ pyatv ]; 79 33 "aqualogic" = ps: with ps; [ ]; 80 - "aqualogic.sensor" = ps: with ps; [ ]; 81 - "aqualogic.switch" = ps: with ps; [ ]; 82 34 "aquostv" = ps: with ps; [ ]; 83 - "aquostv.media_player" = ps: with ps; [ ]; 84 35 "arduino" = ps: with ps; [ ]; 85 - "arduino.sensor" = ps: with ps; [ ]; 86 - "arduino.switch" = ps: with ps; [ ]; 87 36 "arest" = ps: with ps; [ ]; 88 - "arest.binary_sensor" = ps: with ps; [ ]; 89 - "arest.sensor" = ps: with ps; [ ]; 90 - "arest.switch" = ps: with ps; [ ]; 91 - "arlo" = ps: with ps; [ ]; 92 - "arlo.alarm_control_panel" = ps: with ps; [ ]; 93 - "arlo.camera" = ps: with ps; [ ha-ffmpeg ]; 94 - "arlo.sensor" = ps: with ps; [ ]; 95 - "aruba" = ps: with ps; [ ]; 96 - "aruba.device_tracker" = ps: with ps; [ pexpect ]; 97 - "arwn" = ps: with ps; [ ]; 98 - "arwn.sensor" = ps: with ps; [ paho-mqtt ]; 37 + "arlo" = ps: with ps; [ ha-ffmpeg ]; 38 + "aruba" = ps: with ps; [ pexpect ]; 39 + "arwn" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; 99 40 "asterisk_cdr" = ps: with ps; [ ]; 100 - "asterisk_cdr.mailbox" = ps: with ps; [ ]; 101 41 "asterisk_mbox" = ps: with ps; [ ]; 102 - "asterisk_mbox.mailbox" = ps: with ps; [ ]; 103 42 "asuswrt" = ps: with ps; [ ]; 104 - "asuswrt.device_tracker" = ps: with ps; [ ]; 105 - "asuswrt.sensor" = ps: with ps; [ ]; 106 43 "august" = ps: with ps; [ ]; 107 - "august.binary_sensor" = ps: with ps; [ ]; 108 - "august.camera" = ps: with ps; [ ]; 109 - "august.lock" = ps: with ps; [ ]; 110 44 "aurora" = ps: with ps; [ ]; 111 - "aurora.binary_sensor" = ps: with ps; [ ]; 112 45 "auth" = ps: with ps; [ aiohttp-cors ]; 113 - "auth.indieauth" = ps: with ps; [ ]; 114 - "auth.login_flow" = ps: with ps; [ ]; 115 - "auth.mfa_setup_flow" = ps: with ps; [ ]; 116 - "automatic" = ps: with ps; [ ]; 117 - "automatic.device_tracker" = ps: with ps; [ aiohttp-cors ]; 118 - "automation" = ps: with ps; [ ]; 119 - "automation.event" = ps: with ps; [ ]; 120 - "automation.geo_location" = ps: with ps; [ ]; 121 - "automation.homeassistant" = ps: with ps; [ ]; 122 - "automation.litejet" = ps: with ps; [ ]; 123 - "automation.mqtt" = ps: with ps; [ paho-mqtt ]; 124 - "automation.numeric_state" = ps: with ps; [ ]; 125 - "automation.state" = ps: with ps; [ ]; 126 - "automation.sun" = ps: with ps; [ ]; 127 - "automation.template" = ps: with ps; [ ]; 128 - "automation.time" = ps: with ps; [ ]; 129 - "automation.time_pattern" = ps: with ps; [ ]; 130 - "automation.webhook" = ps: with ps; [ aiohttp-cors ]; 131 - "automation.zone" = ps: with ps; [ ]; 46 + "automatic" = ps: with ps; [ aiohttp-cors ]; 47 + "automation" = ps: with ps; [ aiohttp-cors ]; 132 48 "avion" = ps: with ps; [ ]; 133 - "avion.light" = ps: with ps; [ ]; 134 49 "awair" = ps: with ps; [ ]; 135 - "awair.sensor" = ps: with ps; [ ]; 136 50 "aws" = ps: with ps; [ ]; 137 - "aws.config_flow" = ps: with ps; [ ]; 138 - "aws.const" = ps: with ps; [ ]; 139 - "aws.notify" = ps: with ps; [ ]; 140 - "aws_lambda" = ps: with ps; [ ]; 141 - "aws_lambda.notify" = ps: with ps; [ boto3 ]; 142 - "aws_sns" = ps: with ps; [ ]; 143 - "aws_sns.notify" = ps: with ps; [ boto3 ]; 144 - "aws_sqs" = ps: with ps; [ ]; 145 - "aws_sqs.notify" = ps: with ps; [ boto3 ]; 146 51 "axis" = ps: with ps; [ ]; 147 - "axis.binary_sensor" = ps: with ps; [ ]; 148 - "axis.camera" = ps: with ps; [ ]; 149 - "axis.config_flow" = ps: with ps; [ ]; 150 - "axis.const" = ps: with ps; [ ]; 151 - "axis.device" = ps: with ps; [ ]; 152 - "axis.errors" = ps: with ps; [ ]; 153 52 "baidu" = ps: with ps; [ ]; 154 - "baidu.tts" = ps: with ps; [ ]; 155 53 "bayesian" = ps: with ps; [ ]; 156 - "bayesian.binary_sensor" = ps: with ps; [ ]; 157 54 "bbb_gpio" = ps: with ps; [ ]; 158 - "bbb_gpio.binary_sensor" = ps: with ps; [ ]; 159 - "bbb_gpio.switch" = ps: with ps; [ ]; 160 55 "bbox" = ps: with ps; [ ]; 161 - "bbox.device_tracker" = ps: with ps; [ ]; 162 - "bbox.sensor" = ps: with ps; [ ]; 163 56 "bh1750" = ps: with ps; [ ]; 164 - "bh1750.sensor" = ps: with ps; [ ]; 165 57 "binary_sensor" = ps: with ps; [ ]; 166 58 "bitcoin" = ps: with ps; [ ]; 167 - "bitcoin.sensor" = ps: with ps; [ ]; 168 59 "blackbird" = ps: with ps; [ ]; 169 - "blackbird.media_player" = ps: with ps; [ ]; 170 60 "blink" = ps: with ps; [ ]; 171 - "blink.alarm_control_panel" = ps: with ps; [ ]; 172 - "blink.binary_sensor" = ps: with ps; [ ]; 173 - "blink.camera" = ps: with ps; [ ]; 174 - "blink.sensor" = ps: with ps; [ ]; 175 - "blinksticklight" = ps: with ps; [ ]; 176 - "blinksticklight.light" = ps: with ps; [ BlinkStick ]; 61 + "blinksticklight" = ps: with ps; [ BlinkStick ]; 177 62 "blinkt" = ps: with ps; [ ]; 178 - "blinkt.light" = ps: with ps; [ ]; 179 63 "blockchain" = ps: with ps; [ ]; 180 - "blockchain.sensor" = ps: with ps; [ ]; 181 64 "bloomsky" = ps: with ps; [ ]; 182 - "bloomsky.binary_sensor" = ps: with ps; [ ]; 183 - "bloomsky.camera" = ps: with ps; [ ]; 184 - "bloomsky.sensor" = ps: with ps; [ ]; 185 - "bluesound" = ps: with ps; [ ]; 186 - "bluesound.media_player" = ps: with ps; [ xmltodict ]; 65 + "bluesound" = ps: with ps; [ xmltodict ]; 187 66 "bluetooth_le_tracker" = ps: with ps; [ ]; 188 - "bluetooth_le_tracker.device_tracker" = ps: with ps; [ ]; 189 - "bluetooth_tracker" = ps: with ps; [ ]; 190 - "bluetooth_tracker.device_tracker" = ps: with ps; [ bt_proximity ]; 67 + "bluetooth_tracker" = ps: with ps; [ bt_proximity ]; 191 68 "bme280" = ps: with ps; [ ]; 192 - "bme280.sensor" = ps: with ps; [ ]; 193 69 "bme680" = ps: with ps; [ ]; 194 - "bme680.sensor" = ps: with ps; [ ]; 195 70 "bmw_connected_drive" = ps: with ps; [ ]; 196 - "bmw_connected_drive.binary_sensor" = ps: with ps; [ ]; 197 - "bmw_connected_drive.device_tracker" = ps: with ps; [ ]; 198 - "bmw_connected_drive.lock" = ps: with ps; [ ]; 199 - "bmw_connected_drive.sensor" = ps: with ps; [ ]; 200 71 "bom" = ps: with ps; [ ]; 201 - "bom.sensor" = ps: with ps; [ ]; 202 - "bom.weather" = ps: with ps; [ ]; 203 72 "braviatv" = ps: with ps; [ ]; 204 - "braviatv.media_player" = ps: with ps; [ ]; 205 - "broadlink" = ps: with ps; [ ]; 206 - "broadlink.sensor" = ps: with ps; [ broadlink ]; 207 - "broadlink.switch" = ps: with ps; [ broadlink ]; 73 + "broadlink" = ps: with ps; [ broadlink ]; 208 74 "brottsplatskartan" = ps: with ps; [ ]; 209 - "brottsplatskartan.sensor" = ps: with ps; [ ]; 210 75 "browser" = ps: with ps; [ ]; 211 76 "brunt" = ps: with ps; [ ]; 212 - "brunt.cover" = ps: with ps; [ ]; 213 77 "bt_home_hub_5" = ps: with ps; [ ]; 214 - "bt_home_hub_5.device_tracker" = ps: with ps; [ ]; 215 78 "bt_smarthub" = ps: with ps; [ ]; 216 - "bt_smarthub.device_tracker" = ps: with ps; [ ]; 217 79 "buienradar" = ps: with ps; [ ]; 218 - "buienradar.sensor" = ps: with ps; [ ]; 219 - "buienradar.weather" = ps: with ps; [ ]; 220 - "caldav" = ps: with ps; [ ]; 221 - "caldav.calendar" = ps: with ps; [ ]; 80 + "caldav" = ps: with ps; [ caldav ]; 222 81 "calendar" = ps: with ps; [ aiohttp-cors ]; 223 82 "camera" = ps: with ps; [ aiohttp-cors ]; 224 - "camera.const" = ps: with ps; [ ]; 225 - "camera.prefs" = ps: with ps; [ ]; 226 - "canary" = ps: with ps; [ ]; 227 - "canary.alarm_control_panel" = ps: with ps; [ ]; 228 - "canary.camera" = ps: with ps; [ ha-ffmpeg ]; 229 - "canary.sensor" = ps: with ps; [ ]; 83 + "canary" = ps: with ps; [ ha-ffmpeg ]; 230 84 "cast" = ps: with ps; [ PyChromecast ]; 231 - "cast.media_player" = ps: with ps; [ PyChromecast ]; 232 85 "cert_expiry" = ps: with ps; [ ]; 233 - "cert_expiry.sensor" = ps: with ps; [ ]; 234 86 "channels" = ps: with ps; [ ]; 235 - "channels.media_player" = ps: with ps; [ ]; 236 - "cisco_ios" = ps: with ps; [ ]; 237 - "cisco_ios.device_tracker" = ps: with ps; [ pexpect ]; 87 + "cisco_ios" = ps: with ps; [ pexpect ]; 238 88 "cisco_mobility_express" = ps: with ps; [ ]; 239 - "cisco_mobility_express.device_tracker" = ps: with ps; [ ]; 89 + "cisco_webex_teams" = ps: with ps; [ ]; 240 90 "ciscospark" = ps: with ps; [ ]; 241 - "ciscospark.notify" = ps: with ps; [ ]; 242 91 "citybikes" = ps: with ps; [ ]; 243 - "citybikes.sensor" = ps: with ps; [ ]; 244 92 "clementine" = ps: with ps; [ ]; 245 - "clementine.media_player" = ps: with ps; [ ]; 246 93 "clickatell" = ps: with ps; [ ]; 247 - "clickatell.notify" = ps: with ps; [ ]; 248 94 "clicksend" = ps: with ps; [ ]; 249 - "clicksend.notify" = ps: with ps; [ ]; 250 95 "clicksend_tts" = ps: with ps; [ ]; 251 - "clicksend_tts.notify" = ps: with ps; [ ]; 252 96 "climate" = ps: with ps; [ ]; 253 - "climate.const" = ps: with ps; [ ]; 254 - "climate.reproduce_state" = ps: with ps; [ ]; 255 97 "cloud" = ps: with ps; [ aiohttp-cors ]; 256 - "cloud.binary_sensor" = ps: with ps; [ aiohttp-cors ]; 257 - "cloud.const" = ps: with ps; [ ]; 258 - "cloud.http_api" = ps: with ps; [ ]; 259 - "cloud.prefs" = ps: with ps; [ ]; 260 - "cloud.utils" = ps: with ps; [ ]; 261 98 "cloudflare" = ps: with ps; [ ]; 262 99 "cmus" = ps: with ps; [ ]; 263 - "cmus.media_player" = ps: with ps; [ ]; 264 100 "co2signal" = ps: with ps; [ ]; 265 - "co2signal.sensor" = ps: with ps; [ ]; 266 101 "coinbase" = ps: with ps; [ ]; 267 - "coinbase.sensor" = ps: with ps; [ ]; 268 - "coinmarketcap" = ps: with ps; [ ]; 269 - "coinmarketcap.sensor" = ps: with ps; [ coinmarketcap ]; 102 + "coinmarketcap" = ps: with ps; [ coinmarketcap ]; 270 103 "comed_hourly_pricing" = ps: with ps; [ ]; 271 - "comed_hourly_pricing.sensor" = ps: with ps; [ ]; 272 104 "comfoconnect" = ps: with ps; [ ]; 273 - "comfoconnect.fan" = ps: with ps; [ ]; 274 - "comfoconnect.sensor" = ps: with ps; [ ]; 275 105 "command_line" = ps: with ps; [ ]; 276 - "command_line.binary_sensor" = ps: with ps; [ ]; 277 - "command_line.cover" = ps: with ps; [ ]; 278 - "command_line.notify" = ps: with ps; [ ]; 279 - "command_line.sensor" = ps: with ps; [ ]; 280 - "command_line.switch" = ps: with ps; [ ]; 281 106 "concord232" = ps: with ps; [ ]; 282 - "concord232.alarm_control_panel" = ps: with ps; [ ]; 283 - "concord232.binary_sensor" = ps: with ps; [ ]; 284 107 "config" = ps: with ps; [ aiohttp-cors ]; 285 - "config.area_registry" = ps: with ps; [ ]; 286 - "config.auth" = ps: with ps; [ ]; 287 - "config.automation" = ps: with ps; [ ]; 288 - "config.config_entries" = ps: with ps; [ ]; 289 - "config.core" = ps: with ps; [ ]; 290 - "config.customize" = ps: with ps; [ ]; 291 - "config.device_registry" = ps: with ps; [ ]; 292 - "config.entity_registry" = ps: with ps; [ ]; 293 - "config.group" = ps: with ps; [ ]; 294 - "config.script" = ps: with ps; [ ]; 295 - "config.zwave" = ps: with ps; [ ]; 296 108 "configurator" = ps: with ps; [ ]; 297 109 "conversation" = ps: with ps; [ aiohttp-cors ]; 298 - "conversation.util" = ps: with ps; [ ]; 299 110 "coolmaster" = ps: with ps; [ ]; 300 - "coolmaster.climate" = ps: with ps; [ ]; 301 111 "counter" = ps: with ps; [ ]; 302 112 "cover" = ps: with ps; [ ]; 303 113 "cppm_tracker" = ps: with ps; [ ]; 304 - "cppm_tracker.device_tracker" = ps: with ps; [ ]; 305 - "cpuspeed" = ps: with ps; [ ]; 306 - "cpuspeed.sensor" = ps: with ps; [ py-cpuinfo ]; 114 + "cpuspeed" = ps: with ps; [ py-cpuinfo ]; 307 115 "crimereports" = ps: with ps; [ ]; 308 - "crimereports.sensor" = ps: with ps; [ ]; 309 - "cups" = ps: with ps; [ ]; 310 - "cups.sensor" = ps: with ps; [ pycups ]; 116 + "cups" = ps: with ps; [ pycups ]; 311 117 "currencylayer" = ps: with ps; [ ]; 312 - "currencylayer.sensor" = ps: with ps; [ ]; 313 118 "daikin" = ps: with ps; [ ]; 314 - "daikin.climate" = ps: with ps; [ ]; 315 - "daikin.config_flow" = ps: with ps; [ ]; 316 - "daikin.const" = ps: with ps; [ ]; 317 - "daikin.sensor" = ps: with ps; [ ]; 318 - "daikin.switch" = ps: with ps; [ ]; 319 119 "danfoss_air" = ps: with ps; [ ]; 320 - "danfoss_air.binary_sensor" = ps: with ps; [ ]; 321 - "danfoss_air.sensor" = ps: with ps; [ ]; 322 - "danfoss_air.switch" = ps: with ps; [ ]; 323 - "darksky" = ps: with ps; [ ]; 324 - "darksky.sensor" = ps: with ps; [ python-forecastio ]; 325 - "darksky.weather" = ps: with ps; [ python-forecastio ]; 120 + "darksky" = ps: with ps; [ python-forecastio ]; 326 121 "datadog" = ps: with ps; [ datadog ]; 327 122 "ddwrt" = ps: with ps; [ ]; 328 - "ddwrt.device_tracker" = ps: with ps; [ ]; 329 123 "deconz" = ps: with ps; [ ]; 330 - "deconz.binary_sensor" = ps: with ps; [ ]; 331 - "deconz.climate" = ps: with ps; [ ]; 332 - "deconz.config_flow" = ps: with ps; [ ]; 333 - "deconz.const" = ps: with ps; [ ]; 334 - "deconz.cover" = ps: with ps; [ ]; 335 - "deconz.deconz_device" = ps: with ps; [ ]; 336 - "deconz.errors" = ps: with ps; [ ]; 337 - "deconz.gateway" = ps: with ps; [ ]; 338 - "deconz.light" = ps: with ps; [ ]; 339 - "deconz.scene" = ps: with ps; [ ]; 340 - "deconz.sensor" = ps: with ps; [ ]; 341 - "deconz.switch" = ps: with ps; [ ]; 342 124 "decora" = ps: with ps; [ ]; 343 - "decora.light" = ps: with ps; [ ]; 344 125 "decora_wifi" = ps: with ps; [ ]; 345 - "decora_wifi.light" = ps: with ps; [ ]; 346 126 "default_config" = ps: with ps; [ pynacl aiohttp-cors distro sqlalchemy zeroconf ]; 347 - "deluge" = ps: with ps; [ ]; 348 - "deluge.sensor" = ps: with ps; [ deluge-client ]; 349 - "deluge.switch" = ps: with ps; [ deluge-client ]; 127 + "deluge" = ps: with ps; [ deluge-client ]; 350 128 "demo" = ps: with ps; [ aiohttp-cors ]; 351 - "demo.air_quality" = ps: with ps; [ ]; 352 - "demo.alarm_control_panel" = ps: with ps; [ ]; 353 - "demo.binary_sensor" = ps: with ps; [ ]; 354 - "demo.calendar" = ps: with ps; [ ]; 355 - "demo.camera" = ps: with ps; [ ]; 356 - "demo.climate" = ps: with ps; [ ]; 357 - "demo.cover" = ps: with ps; [ ]; 358 - "demo.device_tracker" = ps: with ps; [ ]; 359 - "demo.fan" = ps: with ps; [ ]; 360 - "demo.geo_location" = ps: with ps; [ ]; 361 - "demo.image_processing" = ps: with ps; [ ]; 362 - "demo.light" = ps: with ps; [ ]; 363 - "demo.lock" = ps: with ps; [ ]; 364 - "demo.mailbox" = ps: with ps; [ ]; 365 - "demo.media_player" = ps: with ps; [ ]; 366 - "demo.notify" = ps: with ps; [ ]; 367 - "demo.remote" = ps: with ps; [ ]; 368 - "demo.sensor" = ps: with ps; [ ]; 369 - "demo.switch" = ps: with ps; [ ]; 370 - "demo.tts" = ps: with ps; [ ]; 371 - "demo.vacuum" = ps: with ps; [ ]; 372 - "demo.water_heater" = ps: with ps; [ ]; 373 - "demo.weather" = ps: with ps; [ ]; 374 129 "denon" = ps: with ps; [ ]; 375 - "denon.media_player" = ps: with ps; [ ]; 376 130 "denonavr" = ps: with ps; [ ]; 377 - "denonavr.media_player" = ps: with ps; [ ]; 378 131 "deutsche_bahn" = ps: with ps; [ ]; 379 - "deutsche_bahn.sensor" = ps: with ps; [ ]; 380 132 "device_sun_light_trigger" = ps: with ps; [ ]; 381 133 "device_tracker" = ps: with ps; [ ]; 382 134 "dht" = ps: with ps; [ ]; 383 - "dht.sensor" = ps: with ps; [ ]; 384 135 "dialogflow" = ps: with ps; [ aiohttp-cors ]; 385 136 "digital_ocean" = ps: with ps; [ digital-ocean ]; 386 - "digital_ocean.binary_sensor" = ps: with ps; [ digital-ocean ]; 387 - "digital_ocean.switch" = ps: with ps; [ digital-ocean ]; 388 137 "digitalloggers" = ps: with ps; [ ]; 389 - "digitalloggers.switch" = ps: with ps; [ ]; 390 138 "directv" = ps: with ps; [ ]; 391 - "directv.media_player" = ps: with ps; [ ]; 392 - "discogs" = ps: with ps; [ ]; 393 - "discogs.sensor" = ps: with ps; [ discogs_client ]; 394 - "discord" = ps: with ps; [ ]; 395 - "discord.notify" = ps: with ps; [ discordpy ]; 139 + "discogs" = ps: with ps; [ discogs_client ]; 140 + "discord" = ps: with ps; [ discordpy ]; 396 141 "discovery" = ps: with ps; [ netdisco ]; 397 - "dlib_face_detect" = ps: with ps; [ ]; 398 - "dlib_face_detect.image_processing" = ps: with ps; [ face_recognition ]; 399 - "dlib_face_identify" = ps: with ps; [ ]; 400 - "dlib_face_identify.image_processing" = ps: with ps; [ face_recognition ]; 142 + "dlib_face_detect" = ps: with ps; [ face_recognition ]; 143 + "dlib_face_identify" = ps: with ps; [ face_recognition ]; 401 144 "dlink" = ps: with ps; [ ]; 402 - "dlink.switch" = ps: with ps; [ ]; 403 145 "dlna_dmr" = ps: with ps; [ ]; 404 - "dlna_dmr.media_player" = ps: with ps; [ ]; 405 - "dnsip" = ps: with ps; [ ]; 406 - "dnsip.sensor" = ps: with ps; [ aiodns ]; 146 + "dnsip" = ps: with ps; [ aiodns ]; 407 147 "dominos" = ps: with ps; [ aiohttp-cors ]; 408 148 "doorbird" = ps: with ps; [ ]; 409 - "doorbird.camera" = ps: with ps; [ ]; 410 - "doorbird.switch" = ps: with ps; [ ]; 411 149 "dovado" = ps: with ps; [ ]; 412 - "dovado.notify" = ps: with ps; [ ]; 413 - "dovado.sensor" = ps: with ps; [ ]; 414 150 "downloader" = ps: with ps; [ ]; 415 151 "dsmr" = ps: with ps; [ ]; 416 - "dsmr.sensor" = ps: with ps; [ ]; 417 152 "dte_energy_bridge" = ps: with ps; [ ]; 418 - "dte_energy_bridge.sensor" = ps: with ps; [ ]; 419 153 "dublin_bus_transport" = ps: with ps; [ ]; 420 - "dublin_bus_transport.sensor" = ps: with ps; [ ]; 421 154 "duckdns" = ps: with ps; [ ]; 422 155 "duke_energy" = ps: with ps; [ ]; 423 - "duke_energy.sensor" = ps: with ps; [ ]; 424 156 "dunehd" = ps: with ps; [ ]; 425 - "dunehd.media_player" = ps: with ps; [ ]; 426 157 "dwd_weather_warnings" = ps: with ps; [ ]; 427 - "dwd_weather_warnings.sensor" = ps: with ps; [ ]; 428 158 "dweet" = ps: with ps; [ ]; 429 - "dweet.sensor" = ps: with ps; [ ]; 430 159 "dyson" = ps: with ps; [ ]; 431 - "dyson.climate" = ps: with ps; [ ]; 432 - "dyson.fan" = ps: with ps; [ ]; 433 - "dyson.sensor" = ps: with ps; [ ]; 434 - "dyson.vacuum" = ps: with ps; [ ]; 435 160 "ebox" = ps: with ps; [ ]; 436 - "ebox.sensor" = ps: with ps; [ ]; 437 161 "ebusd" = ps: with ps; [ ]; 438 - "ebusd.const" = ps: with ps; [ ]; 439 - "ebusd.sensor" = ps: with ps; [ ]; 440 162 "ecoal_boiler" = ps: with ps; [ ]; 441 - "ecoal_boiler.sensor" = ps: with ps; [ ]; 442 - "ecoal_boiler.switch" = ps: with ps; [ ]; 443 163 "ecobee" = ps: with ps; [ ]; 444 - "ecobee.binary_sensor" = ps: with ps; [ ]; 445 - "ecobee.climate" = ps: with ps; [ ]; 446 - "ecobee.notify" = ps: with ps; [ ]; 447 - "ecobee.sensor" = ps: with ps; [ ]; 448 - "ecobee.weather" = ps: with ps; [ ]; 449 164 "econet" = ps: with ps; [ ]; 450 - "econet.water_heater" = ps: with ps; [ ]; 451 165 "ecovacs" = ps: with ps; [ ]; 452 - "ecovacs.vacuum" = ps: with ps; [ ]; 453 - "eddystone_temperature" = ps: with ps; [ ]; 454 - "eddystone_temperature.sensor" = ps: with ps; [ construct ]; 166 + "eddystone_temperature" = ps: with ps; [ construct ]; 455 167 "edimax" = ps: with ps; [ ]; 456 - "edimax.switch" = ps: with ps; [ ]; 457 168 "edp_redy" = ps: with ps; [ ]; 458 - "edp_redy.sensor" = ps: with ps; [ ]; 459 - "edp_redy.switch" = ps: with ps; [ ]; 460 169 "ee_brightbox" = ps: with ps; [ ]; 461 - "ee_brightbox.device_tracker" = ps: with ps; [ ]; 462 170 "efergy" = ps: with ps; [ ]; 463 - "efergy.sensor" = ps: with ps; [ ]; 464 171 "egardia" = ps: with ps; [ ]; 465 - "egardia.alarm_control_panel" = ps: with ps; [ ]; 466 - "egardia.binary_sensor" = ps: with ps; [ ]; 467 172 "eight_sleep" = ps: with ps; [ ]; 468 - "eight_sleep.binary_sensor" = ps: with ps; [ ]; 469 - "eight_sleep.sensor" = ps: with ps; [ ]; 470 173 "eliqonline" = ps: with ps; [ ]; 471 - "eliqonline.sensor" = ps: with ps; [ ]; 472 174 "elkm1" = ps: with ps; [ ]; 473 - "elkm1.alarm_control_panel" = ps: with ps; [ ]; 474 - "elkm1.climate" = ps: with ps; [ ]; 475 - "elkm1.light" = ps: with ps; [ ]; 476 - "elkm1.scene" = ps: with ps; [ ]; 477 - "elkm1.sensor" = ps: with ps; [ ]; 478 - "elkm1.switch" = ps: with ps; [ ]; 479 175 "emby" = ps: with ps; [ ]; 480 - "emby.media_player" = ps: with ps; [ ]; 481 176 "emoncms" = ps: with ps; [ ]; 482 - "emoncms.sensor" = ps: with ps; [ ]; 483 177 "emoncms_history" = ps: with ps; [ ]; 484 178 "emulated_hue" = ps: with ps; [ aiohttp-cors ]; 485 - "emulated_hue.hue_api" = ps: with ps; [ ]; 486 - "emulated_hue.upnp" = ps: with ps; [ ]; 487 179 "emulated_roku" = ps: with ps; [ ]; 488 - "emulated_roku.binding" = ps: with ps; [ ]; 489 - "emulated_roku.config_flow" = ps: with ps; [ ]; 490 - "emulated_roku.const" = ps: with ps; [ ]; 491 180 "enigma2" = ps: with ps; [ ]; 492 - "enigma2.media_player" = ps: with ps; [ ]; 493 181 "enocean" = ps: with ps; [ ]; 494 - "enocean.binary_sensor" = ps: with ps; [ ]; 495 - "enocean.light" = ps: with ps; [ ]; 496 - "enocean.sensor" = ps: with ps; [ ]; 497 - "enocean.switch" = ps: with ps; [ ]; 498 182 "enphase_envoy" = ps: with ps; [ ]; 499 - "enphase_envoy.sensor" = ps: with ps; [ ]; 500 183 "entur_public_transport" = ps: with ps; [ ]; 501 - "entur_public_transport.sensor" = ps: with ps; [ ]; 502 184 "envirophat" = ps: with ps; [ ]; 503 - "envirophat.sensor" = ps: with ps; [ ]; 504 185 "envisalink" = ps: with ps; [ ]; 505 - "envisalink.alarm_control_panel" = ps: with ps; [ ]; 506 - "envisalink.binary_sensor" = ps: with ps; [ ]; 507 - "envisalink.sensor" = ps: with ps; [ ]; 508 186 "ephember" = ps: with ps; [ ]; 509 - "ephember.climate" = ps: with ps; [ ]; 510 187 "epson" = ps: with ps; [ ]; 511 - "epson.media_player" = ps: with ps; [ ]; 512 - "eq3btsmart" = ps: with ps; [ ]; 513 - "eq3btsmart.climate" = ps: with ps; [ construct ]; 188 + "epsonworkforce" = ps: with ps; [ ]; 189 + "eq3btsmart" = ps: with ps; [ construct ]; 514 190 "esphome" = ps: with ps; [ aioesphomeapi ]; 515 - "esphome.binary_sensor" = ps: with ps; [ aioesphomeapi ]; 516 - "esphome.camera" = ps: with ps; [ aioesphomeapi ]; 517 - "esphome.config_flow" = ps: with ps; [ ]; 518 - "esphome.cover" = ps: with ps; [ aioesphomeapi ]; 519 - "esphome.fan" = ps: with ps; [ aioesphomeapi ]; 520 - "esphome.light" = ps: with ps; [ aioesphomeapi ]; 521 - "esphome.sensor" = ps: with ps; [ aioesphomeapi ]; 522 - "esphome.switch" = ps: with ps; [ aioesphomeapi ]; 523 191 "etherscan" = ps: with ps; [ ]; 524 - "etherscan.sensor" = ps: with ps; [ ]; 525 192 "eufy" = ps: with ps; [ ]; 526 - "eufy.light" = ps: with ps; [ ]; 527 - "eufy.switch" = ps: with ps; [ ]; 528 193 "everlights" = ps: with ps; [ ]; 529 - "everlights.light" = ps: with ps; [ ]; 530 194 "evohome" = ps: with ps; [ ]; 531 - "evohome.climate" = ps: with ps; [ ]; 532 195 "facebook" = ps: with ps; [ ]; 533 - "facebook.notify" = ps: with ps; [ ]; 534 196 "facebox" = ps: with ps; [ ]; 535 - "facebox.image_processing" = ps: with ps; [ ]; 536 197 "fail2ban" = ps: with ps; [ ]; 537 - "fail2ban.sensor" = ps: with ps; [ ]; 538 198 "familyhub" = ps: with ps; [ ]; 539 - "familyhub.camera" = ps: with ps; [ ]; 540 199 "fan" = ps: with ps; [ ]; 541 200 "fastdotcom" = ps: with ps; [ ]; 542 - "fastdotcom.sensor" = ps: with ps; [ ]; 543 201 "fedex" = ps: with ps; [ ]; 544 - "fedex.sensor" = ps: with ps; [ ]; 545 202 "feedreader" = ps: with ps; [ ]; 546 203 "ffmpeg" = ps: with ps; [ ha-ffmpeg ]; 547 - "ffmpeg.camera" = ps: with ps; [ ha-ffmpeg ]; 548 - "ffmpeg_motion" = ps: with ps; [ ]; 549 - "ffmpeg_motion.binary_sensor" = ps: with ps; [ ha-ffmpeg ]; 550 - "ffmpeg_noise" = ps: with ps; [ ]; 551 - "ffmpeg_noise.binary_sensor" = ps: with ps; [ ha-ffmpeg ]; 204 + "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ]; 205 + "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ]; 552 206 "fibaro" = ps: with ps; [ ]; 553 - "fibaro.binary_sensor" = ps: with ps; [ ]; 554 - "fibaro.cover" = ps: with ps; [ ]; 555 - "fibaro.light" = ps: with ps; [ ]; 556 - "fibaro.scene" = ps: with ps; [ ]; 557 - "fibaro.sensor" = ps: with ps; [ ]; 558 - "fibaro.switch" = ps: with ps; [ ]; 559 207 "fido" = ps: with ps; [ ]; 560 - "fido.sensor" = ps: with ps; [ ]; 561 208 "file" = ps: with ps; [ ]; 562 - "file.notify" = ps: with ps; [ ]; 563 - "file.sensor" = ps: with ps; [ ]; 564 209 "filesize" = ps: with ps; [ ]; 565 - "filesize.sensor" = ps: with ps; [ ]; 566 210 "filter" = ps: with ps; [ ]; 567 - "filter.sensor" = ps: with ps; [ ]; 568 - "fints" = ps: with ps; [ ]; 569 - "fints.sensor" = ps: with ps; [ fints ]; 570 - "fitbit" = ps: with ps; [ ]; 571 - "fitbit.sensor" = ps: with ps; [ aiohttp-cors ]; 211 + "fints" = ps: with ps; [ fints ]; 212 + "fitbit" = ps: with ps; [ aiohttp-cors ]; 572 213 "fixer" = ps: with ps; [ ]; 573 - "fixer.sensor" = ps: with ps; [ ]; 574 214 "flexit" = ps: with ps; [ ]; 575 - "flexit.climate" = ps: with ps; [ ]; 576 215 "flic" = ps: with ps; [ ]; 577 - "flic.binary_sensor" = ps: with ps; [ ]; 578 216 "flock" = ps: with ps; [ ]; 579 - "flock.notify" = ps: with ps; [ ]; 580 217 "flunearyou" = ps: with ps; [ ]; 581 - "flunearyou.sensor" = ps: with ps; [ ]; 582 218 "flux" = ps: with ps; [ ]; 583 - "flux.switch" = ps: with ps; [ ]; 584 219 "flux_led" = ps: with ps; [ ]; 585 - "flux_led.light" = ps: with ps; [ ]; 586 220 "folder" = ps: with ps; [ ]; 587 - "folder.sensor" = ps: with ps; [ ]; 588 221 "folder_watcher" = ps: with ps; [ watchdog ]; 589 222 "foobot" = ps: with ps; [ ]; 590 - "foobot.sensor" = ps: with ps; [ ]; 591 223 "foscam" = ps: with ps; [ ]; 592 - "foscam.camera" = ps: with ps; [ ]; 593 224 "foursquare" = ps: with ps; [ aiohttp-cors ]; 594 225 "free_mobile" = ps: with ps; [ ]; 595 - "free_mobile.notify" = ps: with ps; [ ]; 596 226 "freebox" = ps: with ps; [ ]; 597 - "freebox.device_tracker" = ps: with ps; [ ]; 598 - "freebox.sensor" = ps: with ps; [ ]; 599 - "freebox.switch" = ps: with ps; [ ]; 600 227 "freedns" = ps: with ps; [ ]; 601 - "fritz" = ps: with ps; [ ]; 602 - "fritz.device_tracker" = ps: with ps; [ fritzconnection ]; 228 + "fritz" = ps: with ps; [ fritzconnection ]; 603 229 "fritzbox" = ps: with ps; [ ]; 604 - "fritzbox.binary_sensor" = ps: with ps; [ ]; 605 - "fritzbox.climate" = ps: with ps; [ ]; 606 - "fritzbox.sensor" = ps: with ps; [ ]; 607 - "fritzbox.switch" = ps: with ps; [ ]; 608 - "fritzbox_callmonitor" = ps: with ps; [ ]; 609 - "fritzbox_callmonitor.sensor" = ps: with ps; [ fritzconnection ]; 610 - "fritzbox_netmonitor" = ps: with ps; [ ]; 611 - "fritzbox_netmonitor.sensor" = ps: with ps; [ fritzconnection ]; 230 + "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ]; 231 + "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ]; 612 232 "fritzdect" = ps: with ps; [ ]; 613 - "fritzdect.switch" = ps: with ps; [ ]; 614 233 "frontend" = ps: with ps; [ aiohttp-cors ]; 615 - "frontend.storage" = ps: with ps; [ ]; 616 234 "frontier_silicon" = ps: with ps; [ ]; 617 - "frontier_silicon.media_player" = ps: with ps; [ ]; 618 235 "futurenow" = ps: with ps; [ ]; 619 - "futurenow.light" = ps: with ps; [ ]; 620 236 "garadget" = ps: with ps; [ ]; 621 - "garadget.cover" = ps: with ps; [ ]; 622 237 "gc100" = ps: with ps; [ ]; 623 - "gc100.binary_sensor" = ps: with ps; [ ]; 624 - "gc100.switch" = ps: with ps; [ ]; 625 238 "gearbest" = ps: with ps; [ ]; 626 - "gearbest.sensor" = ps: with ps; [ ]; 627 239 "geizhals" = ps: with ps; [ ]; 628 - "geizhals.sensor" = ps: with ps; [ ]; 629 240 "generic" = ps: with ps; [ ]; 630 - "generic.camera" = ps: with ps; [ ]; 631 241 "generic_thermostat" = ps: with ps; [ ]; 632 - "generic_thermostat.climate" = ps: with ps; [ ]; 242 + "geniushub" = ps: with ps; [ ]; 633 243 "geo_json_events" = ps: with ps; [ ]; 634 - "geo_json_events.geo_location" = ps: with ps; [ ]; 635 244 "geo_location" = ps: with ps; [ ]; 636 245 "geo_rss_events" = ps: with ps; [ ]; 637 - "geo_rss_events.sensor" = ps: with ps; [ ]; 638 246 "geofency" = ps: with ps; [ aiohttp-cors ]; 639 - "geofency.device_tracker" = ps: with ps; [ aiohttp-cors ]; 640 - "github" = ps: with ps; [ ]; 641 - "github.sensor" = ps: with ps; [ PyGithub ]; 642 - "gitlab_ci" = ps: with ps; [ ]; 643 - "gitlab_ci.sensor" = ps: with ps; [ python-gitlab ]; 247 + "github" = ps: with ps; [ PyGithub ]; 248 + "gitlab_ci" = ps: with ps; [ python-gitlab ]; 644 249 "gitter" = ps: with ps; [ ]; 645 - "gitter.sensor" = ps: with ps; [ ]; 646 250 "glances" = ps: with ps; [ ]; 647 - "glances.sensor" = ps: with ps; [ ]; 648 251 "gntp" = ps: with ps; [ ]; 649 - "gntp.notify" = ps: with ps; [ ]; 650 252 "goalfeed" = ps: with ps; [ ]; 651 253 "gogogate2" = ps: with ps; [ ]; 652 - "gogogate2.cover" = ps: with ps; [ ]; 653 254 "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client ]; 654 - "google.calendar" = ps: with ps; [ ]; 655 - "google.tts" = ps: with ps; [ ]; 656 255 "google_assistant" = ps: with ps; [ aiohttp-cors ]; 657 - "google_assistant.const" = ps: with ps; [ ]; 658 - "google_assistant.helpers" = ps: with ps; [ ]; 659 - "google_assistant.http" = ps: with ps; [ ]; 660 - "google_assistant.smart_home" = ps: with ps; [ ]; 661 - "google_assistant.trait" = ps: with ps; [ ]; 662 256 "google_domains" = ps: with ps; [ ]; 663 257 "google_maps" = ps: with ps; [ ]; 664 - "google_maps.device_tracker" = ps: with ps; [ ]; 665 258 "google_pubsub" = ps: with ps; [ google_cloud_pubsub ]; 259 + "google_translate" = ps: with ps; [ ]; 666 260 "google_travel_time" = ps: with ps; [ ]; 667 - "google_travel_time.sensor" = ps: with ps; [ ]; 668 261 "google_wifi" = ps: with ps; [ ]; 669 - "google_wifi.sensor" = ps: with ps; [ ]; 670 262 "googlehome" = ps: with ps; [ ]; 671 - "googlehome.device_tracker" = ps: with ps; [ ]; 672 - "googlehome.sensor" = ps: with ps; [ ]; 673 - "gpmdp" = ps: with ps; [ ]; 674 - "gpmdp.media_player" = ps: with ps; [ websocket_client ]; 263 + "gpmdp" = ps: with ps; [ websocket_client ]; 675 264 "gpsd" = ps: with ps; [ ]; 676 - "gpsd.sensor" = ps: with ps; [ ]; 677 265 "gpslogger" = ps: with ps; [ aiohttp-cors ]; 678 - "gpslogger.device_tracker" = ps: with ps; [ aiohttp-cors ]; 679 266 "graphite" = ps: with ps; [ ]; 680 267 "greeneye_monitor" = ps: with ps; [ ]; 681 - "greeneye_monitor.sensor" = ps: with ps; [ ]; 682 268 "greenwave" = ps: with ps; [ ]; 683 - "greenwave.light" = ps: with ps; [ ]; 684 269 "group" = ps: with ps; [ ]; 685 - "group.cover" = ps: with ps; [ ]; 686 - "group.light" = ps: with ps; [ ]; 687 - "group.notify" = ps: with ps; [ ]; 688 - "group.reproduce_state" = ps: with ps; [ ]; 689 270 "gstreamer" = ps: with ps; [ ]; 690 - "gstreamer.media_player" = ps: with ps; [ ]; 691 271 "gtfs" = ps: with ps; [ ]; 692 - "gtfs.sensor" = ps: with ps; [ ]; 693 272 "gtt" = ps: with ps; [ ]; 694 - "gtt.sensor" = ps: with ps; [ ]; 695 273 "habitica" = ps: with ps; [ ]; 696 - "habitica.sensor" = ps: with ps; [ ]; 697 274 "hangouts" = ps: with ps; [ ]; 698 - "hangouts.config_flow" = ps: with ps; [ ]; 699 - "hangouts.const" = ps: with ps; [ ]; 700 - "hangouts.hangouts_bot" = ps: with ps; [ ]; 701 - "hangouts.intents" = ps: with ps; [ ]; 702 - "hangouts.notify" = ps: with ps; [ ]; 703 275 "harman_kardon_avr" = ps: with ps; [ ]; 704 - "harman_kardon_avr.media_player" = ps: with ps; [ ]; 705 276 "harmony" = ps: with ps; [ ]; 706 - "harmony.remote" = ps: with ps; [ ]; 707 277 "hassio" = ps: with ps; [ aiohttp-cors ]; 708 - "hassio.auth" = ps: with ps; [ ]; 709 - "hassio.const" = ps: with ps; [ ]; 710 - "hassio.discovery" = ps: with ps; [ ]; 711 - "hassio.handler" = ps: with ps; [ ]; 712 - "hassio.http" = ps: with ps; [ ]; 713 - "hassio.ingress" = ps: with ps; [ ]; 714 278 "haveibeenpwned" = ps: with ps; [ ]; 715 - "haveibeenpwned.sensor" = ps: with ps; [ ]; 716 279 "hddtemp" = ps: with ps; [ ]; 717 - "hddtemp.sensor" = ps: with ps; [ ]; 718 280 "hdmi_cec" = ps: with ps; [ ]; 719 - "hdmi_cec.media_player" = ps: with ps; [ ]; 720 - "hdmi_cec.switch" = ps: with ps; [ ]; 721 281 "heatmiser" = ps: with ps; [ ]; 722 - "heatmiser.climate" = ps: with ps; [ ]; 282 + "heos" = ps: with ps; [ ]; 723 283 "hikvision" = ps: with ps; [ ]; 724 - "hikvision.binary_sensor" = ps: with ps; [ ]; 725 284 "hikvisioncam" = ps: with ps; [ ]; 726 - "hikvisioncam.switch" = ps: with ps; [ ]; 727 285 "hipchat" = ps: with ps; [ ]; 728 - "hipchat.notify" = ps: with ps; [ ]; 729 286 "history" = ps: with ps; [ aiohttp-cors sqlalchemy ]; 730 287 "history_graph" = ps: with ps; [ aiohttp-cors sqlalchemy ]; 731 - "history_stats" = ps: with ps; [ ]; 732 - "history_stats.sensor" = ps: with ps; [ aiohttp-cors sqlalchemy ]; 288 + "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ]; 733 289 "hitron_coda" = ps: with ps; [ ]; 734 - "hitron_coda.device_tracker" = ps: with ps; [ ]; 735 290 "hive" = ps: with ps; [ ]; 736 - "hive.binary_sensor" = ps: with ps; [ ]; 737 - "hive.climate" = ps: with ps; [ ]; 738 - "hive.light" = ps: with ps; [ ]; 739 - "hive.sensor" = ps: with ps; [ ]; 740 - "hive.switch" = ps: with ps; [ ]; 741 291 "hlk_sw16" = ps: with ps; [ ]; 742 - "hlk_sw16.switch" = ps: with ps; [ ]; 743 292 "homeassistant" = ps: with ps; [ ]; 744 - "homeassistant.scene" = ps: with ps; [ ]; 745 293 "homekit" = ps: with ps; [ ]; 746 - "homekit.const" = ps: with ps; [ ]; 747 - "homekit.util" = ps: with ps; [ ]; 748 294 "homekit_controller" = ps: with ps; [ ]; 749 - "homekit_controller.alarm_control_panel" = ps: with ps; [ ]; 750 - "homekit_controller.binary_sensor" = ps: with ps; [ ]; 751 - "homekit_controller.climate" = ps: with ps; [ ]; 752 - "homekit_controller.config_flow" = ps: with ps; [ ]; 753 - "homekit_controller.connection" = ps: with ps; [ ]; 754 - "homekit_controller.const" = ps: with ps; [ ]; 755 - "homekit_controller.cover" = ps: with ps; [ ]; 756 - "homekit_controller.light" = ps: with ps; [ ]; 757 - "homekit_controller.lock" = ps: with ps; [ ]; 758 - "homekit_controller.sensor" = ps: with ps; [ ]; 759 - "homekit_controller.switch" = ps: with ps; [ ]; 760 295 "homematic" = ps: with ps; [ pyhomematic ]; 761 - "homematic.binary_sensor" = ps: with ps; [ pyhomematic ]; 762 - "homematic.climate" = ps: with ps; [ pyhomematic ]; 763 - "homematic.cover" = ps: with ps; [ pyhomematic ]; 764 - "homematic.light" = ps: with ps; [ pyhomematic ]; 765 - "homematic.lock" = ps: with ps; [ pyhomematic ]; 766 - "homematic.notify" = ps: with ps; [ pyhomematic ]; 767 - "homematic.sensor" = ps: with ps; [ pyhomematic ]; 768 - "homematic.switch" = ps: with ps; [ pyhomematic ]; 769 296 "homematicip_cloud" = ps: with ps; [ ]; 770 - "homematicip_cloud.alarm_control_panel" = ps: with ps; [ ]; 771 - "homematicip_cloud.binary_sensor" = ps: with ps; [ ]; 772 - "homematicip_cloud.climate" = ps: with ps; [ ]; 773 - "homematicip_cloud.config_flow" = ps: with ps; [ ]; 774 - "homematicip_cloud.const" = ps: with ps; [ ]; 775 - "homematicip_cloud.cover" = ps: with ps; [ ]; 776 - "homematicip_cloud.device" = ps: with ps; [ ]; 777 - "homematicip_cloud.errors" = ps: with ps; [ ]; 778 - "homematicip_cloud.hap" = ps: with ps; [ ]; 779 - "homematicip_cloud.light" = ps: with ps; [ ]; 780 - "homematicip_cloud.sensor" = ps: with ps; [ ]; 781 - "homematicip_cloud.switch" = ps: with ps; [ ]; 782 - "homematicip_cloud.weather" = ps: with ps; [ ]; 783 297 "homeworks" = ps: with ps; [ ]; 784 - "homeworks.light" = ps: with ps; [ ]; 785 298 "honeywell" = ps: with ps; [ ]; 786 - "honeywell.climate" = ps: with ps; [ ]; 787 299 "hook" = ps: with ps; [ ]; 788 - "hook.switch" = ps: with ps; [ ]; 789 300 "horizon" = ps: with ps; [ ]; 790 - "horizon.media_player" = ps: with ps; [ ]; 791 301 "hp_ilo" = ps: with ps; [ ]; 792 - "hp_ilo.sensor" = ps: with ps; [ ]; 793 - "html5" = ps: with ps; [ ]; 794 - "html5.notify" = ps: with ps; [ aiohttp-cors ]; 302 + "html5" = ps: with ps; [ aiohttp-cors ]; 795 303 "http" = ps: with ps; [ aiohttp-cors ]; 796 - "http.auth" = ps: with ps; [ ]; 797 - "http.ban" = ps: with ps; [ ]; 798 - "http.const" = ps: with ps; [ ]; 799 - "http.cors" = ps: with ps; [ ]; 800 - "http.data_validator" = ps: with ps; [ ]; 801 - "http.real_ip" = ps: with ps; [ ]; 802 - "http.static" = ps: with ps; [ ]; 803 - "http.view" = ps: with ps; [ ]; 804 304 "htu21d" = ps: with ps; [ ]; 805 - "htu21d.sensor" = ps: with ps; [ ]; 806 305 "huawei_lte" = ps: with ps; [ ]; 807 - "huawei_lte.device_tracker" = ps: with ps; [ ]; 808 - "huawei_lte.notify" = ps: with ps; [ ]; 809 - "huawei_lte.sensor" = ps: with ps; [ ]; 810 306 "huawei_router" = ps: with ps; [ ]; 811 - "huawei_router.device_tracker" = ps: with ps; [ ]; 812 307 "hue" = ps: with ps; [ aiohue ]; 813 - "hue.bridge" = ps: with ps; [ ]; 814 - "hue.config_flow" = ps: with ps; [ ]; 815 - "hue.const" = ps: with ps; [ ]; 816 - "hue.errors" = ps: with ps; [ ]; 817 - "hue.light" = ps: with ps; [ aiohue ]; 818 308 "hunterdouglas_powerview" = ps: with ps; [ ]; 819 - "hunterdouglas_powerview.scene" = ps: with ps; [ ]; 820 309 "hydrawise" = ps: with ps; [ ]; 821 - "hydrawise.binary_sensor" = ps: with ps; [ ]; 822 - "hydrawise.sensor" = ps: with ps; [ ]; 823 - "hydrawise.switch" = ps: with ps; [ ]; 824 310 "hydroquebec" = ps: with ps; [ ]; 825 - "hydroquebec.sensor" = ps: with ps; [ ]; 826 311 "hyperion" = ps: with ps; [ ]; 827 - "hyperion.light" = ps: with ps; [ ]; 828 312 "ialarm" = ps: with ps; [ ]; 829 - "ialarm.alarm_control_panel" = ps: with ps; [ ]; 830 313 "icloud" = ps: with ps; [ ]; 831 - "icloud.device_tracker" = ps: with ps; [ ]; 832 314 "idteck_prox" = ps: with ps; [ ]; 833 315 "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ]; 834 - "ifttt.alarm_control_panel" = ps: with ps; [ aiohttp-cors pyfttt ]; 835 316 "iglo" = ps: with ps; [ ]; 836 - "iglo.light" = ps: with ps; [ ]; 317 + "ign_sismologia" = ps: with ps; [ ]; 837 318 "ihc" = ps: with ps; [ defusedxml ]; 838 - "ihc.binary_sensor" = ps: with ps; [ defusedxml ]; 839 - "ihc.const" = ps: with ps; [ ]; 840 - "ihc.ihcdevice" = ps: with ps; [ ]; 841 - "ihc.light" = ps: with ps; [ defusedxml ]; 842 - "ihc.sensor" = ps: with ps; [ defusedxml ]; 843 - "ihc.switch" = ps: with ps; [ defusedxml ]; 844 - "ihc.util" = ps: with ps; [ ]; 845 319 "image_processing" = ps: with ps; [ aiohttp-cors ]; 846 320 "imap" = ps: with ps; [ ]; 847 - "imap.sensor" = ps: with ps; [ ]; 848 321 "imap_email_content" = ps: with ps; [ ]; 849 - "imap_email_content.sensor" = ps: with ps; [ ]; 850 322 "influxdb" = ps: with ps; [ influxdb ]; 851 - "influxdb.sensor" = ps: with ps; [ influxdb ]; 852 323 "input_boolean" = ps: with ps; [ ]; 853 324 "input_datetime" = ps: with ps; [ ]; 854 325 "input_number" = ps: with ps; [ ]; 855 326 "input_select" = ps: with ps; [ ]; 856 327 "input_text" = ps: with ps; [ ]; 857 328 "insteon" = ps: with ps; [ ]; 858 - "insteon.binary_sensor" = ps: with ps; [ ]; 859 - "insteon.cover" = ps: with ps; [ ]; 860 - "insteon.fan" = ps: with ps; [ ]; 861 - "insteon.light" = ps: with ps; [ ]; 862 - "insteon.sensor" = ps: with ps; [ ]; 863 - "insteon.switch" = ps: with ps; [ ]; 864 - "insteon_local" = ps: with ps; [ ]; 865 - "insteon_plm" = ps: with ps; [ ]; 866 329 "integration" = ps: with ps; [ ]; 867 - "integration.sensor" = ps: with ps; [ ]; 868 330 "intent_script" = ps: with ps; [ ]; 869 - "introduction" = ps: with ps; [ ]; 870 331 "ios" = ps: with ps; [ aiohttp-cors zeroconf ]; 871 - "ios.notify" = ps: with ps; [ aiohttp-cors zeroconf ]; 872 - "ios.sensor" = ps: with ps; [ aiohttp-cors zeroconf ]; 873 332 "iota" = ps: with ps; [ ]; 874 - "iota.sensor" = ps: with ps; [ ]; 875 333 "iperf3" = ps: with ps; [ ]; 876 - "iperf3.sensor" = ps: with ps; [ ]; 877 334 "ipma" = ps: with ps; [ ]; 878 - "ipma.config_flow" = ps: with ps; [ ]; 879 - "ipma.const" = ps: with ps; [ ]; 880 - "ipma.weather" = ps: with ps; [ ]; 881 335 "irish_rail_transport" = ps: with ps; [ ]; 882 - "irish_rail_transport.sensor" = ps: with ps; [ ]; 883 336 "islamic_prayer_times" = ps: with ps; [ ]; 884 - "islamic_prayer_times.sensor" = ps: with ps; [ ]; 885 337 "iss" = ps: with ps; [ ]; 886 - "iss.binary_sensor" = ps: with ps; [ ]; 887 338 "isy994" = ps: with ps; [ ]; 888 - "isy994.binary_sensor" = ps: with ps; [ ]; 889 - "isy994.cover" = ps: with ps; [ ]; 890 - "isy994.fan" = ps: with ps; [ ]; 891 - "isy994.light" = ps: with ps; [ ]; 892 - "isy994.lock" = ps: with ps; [ ]; 893 - "isy994.sensor" = ps: with ps; [ ]; 894 - "isy994.switch" = ps: with ps; [ ]; 895 339 "itach" = ps: with ps; [ ]; 896 - "itach.remote" = ps: with ps; [ ]; 897 340 "itunes" = ps: with ps; [ ]; 898 - "itunes.media_player" = ps: with ps; [ ]; 899 341 "jewish_calendar" = ps: with ps; [ ]; 900 - "jewish_calendar.sensor" = ps: with ps; [ ]; 901 342 "joaoapps_join" = ps: with ps; [ ]; 902 - "joaoapps_join.notify" = ps: with ps; [ ]; 903 343 "juicenet" = ps: with ps; [ ]; 904 - "juicenet.sensor" = ps: with ps; [ ]; 905 344 "kankun" = ps: with ps; [ ]; 906 - "kankun.switch" = ps: with ps; [ ]; 907 345 "keenetic_ndms2" = ps: with ps; [ ]; 908 - "keenetic_ndms2.device_tracker" = ps: with ps; [ ]; 909 346 "keyboard" = ps: with ps; [ ]; 910 347 "keyboard_remote" = ps: with ps; [ evdev ]; 911 348 "kira" = ps: with ps; [ ]; 912 - "kira.remote" = ps: with ps; [ ]; 913 - "kira.sensor" = ps: with ps; [ ]; 914 349 "kiwi" = ps: with ps; [ ]; 915 - "kiwi.lock" = ps: with ps; [ ]; 916 350 "knx" = ps: with ps; [ ]; 917 - "knx.binary_sensor" = ps: with ps; [ ]; 918 - "knx.climate" = ps: with ps; [ ]; 919 - "knx.cover" = ps: with ps; [ ]; 920 - "knx.light" = ps: with ps; [ ]; 921 - "knx.notify" = ps: with ps; [ ]; 922 - "knx.scene" = ps: with ps; [ ]; 923 - "knx.sensor" = ps: with ps; [ ]; 924 - "knx.switch" = ps: with ps; [ ]; 925 - "kodi" = ps: with ps; [ ]; 926 - "kodi.media_player" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ]; 927 - "kodi.notify" = ps: with ps; [ jsonrpc-async ]; 351 + "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ]; 928 352 "konnected" = ps: with ps; [ aiohttp-cors ]; 929 - "konnected.binary_sensor" = ps: with ps; [ aiohttp-cors ]; 930 - "konnected.const" = ps: with ps; [ ]; 931 - "konnected.handlers" = ps: with ps; [ ]; 932 - "konnected.sensor" = ps: with ps; [ aiohttp-cors ]; 933 - "konnected.switch" = ps: with ps; [ aiohttp-cors ]; 934 353 "kwb" = ps: with ps; [ ]; 935 - "kwb.sensor" = ps: with ps; [ ]; 936 354 "lacrosse" = ps: with ps; [ ]; 937 - "lacrosse.sensor" = ps: with ps; [ ]; 938 355 "lametric" = ps: with ps; [ ]; 939 - "lametric.notify" = ps: with ps; [ ]; 940 356 "lannouncer" = ps: with ps; [ ]; 941 - "lannouncer.notify" = ps: with ps; [ ]; 942 - "lastfm" = ps: with ps; [ ]; 943 - "lastfm.sensor" = ps: with ps; [ pylast ]; 357 + "lastfm" = ps: with ps; [ pylast ]; 944 358 "launch_library" = ps: with ps; [ ]; 945 - "launch_library.sensor" = ps: with ps; [ ]; 946 359 "lcn" = ps: with ps; [ ]; 947 - "lcn.const" = ps: with ps; [ ]; 948 - "lcn.cover" = ps: with ps; [ ]; 949 - "lcn.light" = ps: with ps; [ ]; 950 - "lcn.sensor" = ps: with ps; [ ]; 951 - "lcn.switch" = ps: with ps; [ ]; 952 360 "lg_netcast" = ps: with ps; [ ]; 953 - "lg_netcast.media_player" = ps: with ps; [ ]; 954 361 "lg_soundbar" = ps: with ps; [ ]; 955 - "lg_soundbar.media_player" = ps: with ps; [ ]; 956 - "lifx" = ps: with ps; [ aiolifx ]; 957 - "lifx.light" = ps: with ps; [ aiolifx aiolifx-effects ]; 362 + "lifx" = ps: with ps; [ aiolifx aiolifx-effects ]; 958 363 "lifx_cloud" = ps: with ps; [ ]; 959 - "lifx_cloud.scene" = ps: with ps; [ ]; 960 364 "lifx_legacy" = ps: with ps; [ ]; 961 - "lifx_legacy.light" = ps: with ps; [ ]; 962 365 "light" = ps: with ps; [ ]; 963 366 "lightwave" = ps: with ps; [ ]; 964 - "lightwave.light" = ps: with ps; [ ]; 965 - "lightwave.switch" = ps: with ps; [ ]; 966 - "limitlessled" = ps: with ps; [ ]; 967 - "limitlessled.light" = ps: with ps; [ limitlessled ]; 968 - "linksys_ap" = ps: with ps; [ ]; 969 - "linksys_ap.device_tracker" = ps: with ps; [ beautifulsoup4 ]; 367 + "limitlessled" = ps: with ps; [ limitlessled ]; 368 + "linksys_ap" = ps: with ps; [ beautifulsoup4 ]; 970 369 "linksys_smart" = ps: with ps; [ ]; 971 - "linksys_smart.device_tracker" = ps: with ps; [ ]; 972 370 "linky" = ps: with ps; [ ]; 973 - "linky.sensor" = ps: with ps; [ ]; 974 371 "linode" = ps: with ps; [ linode-api ]; 975 - "linode.binary_sensor" = ps: with ps; [ linode-api ]; 976 - "linode.switch" = ps: with ps; [ linode-api ]; 977 - "linux_battery" = ps: with ps; [ ]; 978 - "linux_battery.sensor" = ps: with ps; [ batinfo ]; 372 + "linux_battery" = ps: with ps; [ batinfo ]; 979 373 "lirc" = ps: with ps; [ ]; 980 374 "litejet" = ps: with ps; [ ]; 981 - "litejet.light" = ps: with ps; [ ]; 982 - "litejet.scene" = ps: with ps; [ ]; 983 - "litejet.switch" = ps: with ps; [ ]; 984 375 "liveboxplaytv" = ps: with ps; [ ]; 985 - "liveboxplaytv.media_player" = ps: with ps; [ ]; 986 376 "llamalab_automate" = ps: with ps; [ ]; 987 - "llamalab_automate.notify" = ps: with ps; [ ]; 988 377 "local_file" = ps: with ps; [ ]; 989 - "local_file.camera" = ps: with ps; [ ]; 990 378 "locative" = ps: with ps; [ aiohttp-cors ]; 991 - "locative.device_tracker" = ps: with ps; [ aiohttp-cors ]; 992 379 "lock" = ps: with ps; [ ]; 993 380 "lockitron" = ps: with ps; [ ]; 994 - "lockitron.lock" = ps: with ps; [ ]; 995 381 "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy ]; 996 382 "logentries" = ps: with ps; [ ]; 997 383 "logger" = ps: with ps; [ ]; 998 - "logi_circle" = ps: with ps; [ ]; 999 - "logi_circle.camera" = ps: with ps; [ ]; 1000 - "logi_circle.sensor" = ps: with ps; [ ]; 384 + "logi_circle" = ps: with ps; [ ha-ffmpeg ]; 1001 385 "london_air" = ps: with ps; [ ]; 1002 - "london_air.sensor" = ps: with ps; [ ]; 1003 386 "london_underground" = ps: with ps; [ ]; 1004 - "london_underground.sensor" = ps: with ps; [ ]; 1005 387 "loopenergy" = ps: with ps; [ ]; 1006 - "loopenergy.sensor" = ps: with ps; [ ]; 1007 388 "lovelace" = ps: with ps; [ ]; 1008 389 "luci" = ps: with ps; [ ]; 1009 - "luci.device_tracker" = ps: with ps; [ ]; 1010 390 "luftdaten" = ps: with ps; [ luftdaten ]; 1011 - "luftdaten.config_flow" = ps: with ps; [ ]; 1012 - "luftdaten.const" = ps: with ps; [ ]; 1013 - "luftdaten.sensor" = ps: with ps; [ luftdaten ]; 1014 391 "lupusec" = ps: with ps; [ ]; 1015 - "lupusec.alarm_control_panel" = ps: with ps; [ ]; 1016 - "lupusec.binary_sensor" = ps: with ps; [ ]; 1017 - "lupusec.switch" = ps: with ps; [ ]; 1018 392 "lutron" = ps: with ps; [ ]; 1019 - "lutron.cover" = ps: with ps; [ ]; 1020 - "lutron.light" = ps: with ps; [ ]; 1021 - "lutron.scene" = ps: with ps; [ ]; 1022 - "lutron.switch" = ps: with ps; [ ]; 1023 393 "lutron_caseta" = ps: with ps; [ ]; 1024 - "lutron_caseta.cover" = ps: with ps; [ ]; 1025 - "lutron_caseta.light" = ps: with ps; [ ]; 1026 - "lutron_caseta.scene" = ps: with ps; [ ]; 1027 - "lutron_caseta.switch" = ps: with ps; [ ]; 1028 394 "lw12wifi" = ps: with ps; [ ]; 1029 - "lw12wifi.light" = ps: with ps; [ ]; 1030 395 "lyft" = ps: with ps; [ ]; 1031 - "lyft.sensor" = ps: with ps; [ ]; 1032 396 "magicseaweed" = ps: with ps; [ ]; 1033 - "magicseaweed.sensor" = ps: with ps; [ ]; 1034 397 "mailbox" = ps: with ps; [ aiohttp-cors ]; 1035 398 "mailgun" = ps: with ps; [ aiohttp-cors ]; 1036 - "mailgun.notify" = ps: with ps; [ aiohttp-cors ]; 1037 399 "manual" = ps: with ps; [ ]; 1038 - "manual.alarm_control_panel" = ps: with ps; [ ]; 1039 - "manual_mqtt" = ps: with ps; [ ]; 1040 - "manual_mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ]; 1041 - "map" = ps: with ps; [ ]; 400 + "manual_mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; 401 + "map" = ps: with ps; [ aiohttp-cors ]; 1042 402 "marytts" = ps: with ps; [ ]; 1043 - "marytts.tts" = ps: with ps; [ ]; 1044 403 "mastodon" = ps: with ps; [ ]; 1045 - "mastodon.notify" = ps: with ps; [ ]; 1046 404 "matrix" = ps: with ps; [ matrix-client ]; 1047 - "matrix.notify" = ps: with ps; [ matrix-client ]; 1048 405 "maxcube" = ps: with ps; [ ]; 1049 - "maxcube.binary_sensor" = ps: with ps; [ ]; 1050 - "maxcube.climate" = ps: with ps; [ ]; 1051 406 "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ]; 1052 407 "media_player" = ps: with ps; [ aiohttp-cors ]; 1053 - "media_player.const" = ps: with ps; [ ]; 1054 - "media_player.reproduce_state" = ps: with ps; [ ]; 1055 408 "mediaroom" = ps: with ps; [ ]; 1056 - "mediaroom.media_player" = ps: with ps; [ ]; 1057 409 "melissa" = ps: with ps; [ ]; 1058 - "melissa.climate" = ps: with ps; [ ]; 1059 - "meraki" = ps: with ps; [ ]; 1060 - "meraki.device_tracker" = ps: with ps; [ aiohttp-cors ]; 410 + "meraki" = ps: with ps; [ aiohttp-cors ]; 1061 411 "message_bird" = ps: with ps; [ ]; 1062 - "message_bird.notify" = ps: with ps; [ ]; 1063 412 "met" = ps: with ps; [ ]; 1064 - "met.weather" = ps: with ps; [ ]; 1065 413 "meteo_france" = ps: with ps; [ ]; 1066 - "meteo_france.sensor" = ps: with ps; [ ]; 1067 - "meteo_france.weather" = ps: with ps; [ ]; 1068 414 "metoffice" = ps: with ps; [ ]; 1069 - "metoffice.sensor" = ps: with ps; [ ]; 1070 - "metoffice.weather" = ps: with ps; [ ]; 1071 415 "mfi" = ps: with ps; [ ]; 1072 - "mfi.sensor" = ps: with ps; [ ]; 1073 - "mfi.switch" = ps: with ps; [ ]; 1074 416 "mhz19" = ps: with ps; [ ]; 1075 - "mhz19.sensor" = ps: with ps; [ ]; 1076 417 "microsoft" = ps: with ps; [ ]; 1077 - "microsoft.tts" = ps: with ps; [ ]; 1078 418 "microsoft_face" = ps: with ps; [ aiohttp-cors ]; 1079 - "microsoft_face_detect" = ps: with ps; [ ]; 1080 - "microsoft_face_detect.image_processing" = ps: with ps; [ aiohttp-cors ]; 1081 - "microsoft_face_identify" = ps: with ps; [ ]; 1082 - "microsoft_face_identify.image_processing" = ps: with ps; [ aiohttp-cors ]; 419 + "microsoft_face_detect" = ps: with ps; [ aiohttp-cors ]; 420 + "microsoft_face_identify" = ps: with ps; [ aiohttp-cors ]; 1083 421 "miflora" = ps: with ps; [ ]; 1084 - "miflora.sensor" = ps: with ps; [ ]; 1085 422 "mikrotik" = ps: with ps; [ ]; 1086 - "mikrotik.device_tracker" = ps: with ps; [ ]; 1087 423 "mill" = ps: with ps; [ ]; 1088 - "mill.climate" = ps: with ps; [ ]; 1089 424 "min_max" = ps: with ps; [ ]; 1090 - "min_max.sensor" = ps: with ps; [ ]; 1091 425 "mitemp_bt" = ps: with ps; [ ]; 1092 - "mitemp_bt.sensor" = ps: with ps; [ ]; 1093 426 "mjpeg" = ps: with ps; [ ]; 1094 - "mjpeg.camera" = ps: with ps; [ ]; 1095 427 "mobile_app" = ps: with ps; [ pynacl aiohttp-cors ]; 1096 - "mobile_app.binary_sensor" = ps: with ps; [ pynacl aiohttp-cors ]; 1097 - "mobile_app.const" = ps: with ps; [ ]; 1098 - "mobile_app.entity" = ps: with ps; [ ]; 1099 - "mobile_app.helpers" = ps: with ps; [ ]; 1100 - "mobile_app.http_api" = ps: with ps; [ ]; 1101 - "mobile_app.notify" = ps: with ps; [ pynacl aiohttp-cors ]; 1102 - "mobile_app.sensor" = ps: with ps; [ pynacl aiohttp-cors ]; 1103 - "mobile_app.webhook" = ps: with ps; [ ]; 1104 - "mobile_app.websocket_api" = ps: with ps; [ ]; 1105 428 "mochad" = ps: with ps; [ ]; 1106 - "mochad.light" = ps: with ps; [ ]; 1107 - "mochad.switch" = ps: with ps; [ ]; 1108 429 "modbus" = ps: with ps; [ ]; 1109 - "modbus.binary_sensor" = ps: with ps; [ ]; 1110 - "modbus.climate" = ps: with ps; [ ]; 1111 - "modbus.sensor" = ps: with ps; [ ]; 1112 - "modbus.switch" = ps: with ps; [ ]; 1113 430 "modem_callerid" = ps: with ps; [ ]; 1114 - "modem_callerid.sensor" = ps: with ps; [ ]; 1115 431 "mold_indicator" = ps: with ps; [ ]; 1116 - "mold_indicator.sensor" = ps: with ps; [ ]; 1117 432 "monoprice" = ps: with ps; [ ]; 1118 - "monoprice.media_player" = ps: with ps; [ ]; 1119 433 "moon" = ps: with ps; [ ]; 1120 - "moon.sensor" = ps: with ps; [ ]; 1121 434 "mopar" = ps: with ps; [ ]; 1122 - "mopar.lock" = ps: with ps; [ ]; 1123 - "mopar.sensor" = ps: with ps; [ ]; 1124 - "mopar.switch" = ps: with ps; [ ]; 1125 435 "mpchc" = ps: with ps; [ ]; 1126 - "mpchc.media_player" = ps: with ps; [ ]; 1127 - "mpd" = ps: with ps; [ ]; 1128 - "mpd.media_player" = ps: with ps; [ mpd2 ]; 1129 - "mqtt" = ps: with ps; [ paho-mqtt ]; 1130 - "mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ]; 1131 - "mqtt.binary_sensor" = ps: with ps; [ paho-mqtt ]; 1132 - "mqtt.camera" = ps: with ps; [ paho-mqtt ]; 1133 - "mqtt.climate" = ps: with ps; [ paho-mqtt ]; 1134 - "mqtt.config_flow" = ps: with ps; [ ]; 1135 - "mqtt.const" = ps: with ps; [ ]; 1136 - "mqtt.cover" = ps: with ps; [ paho-mqtt ]; 1137 - "mqtt.device_tracker" = ps: with ps; [ paho-mqtt ]; 1138 - "mqtt.discovery" = ps: with ps; [ ]; 1139 - "mqtt.fan" = ps: with ps; [ paho-mqtt ]; 1140 - "mqtt.light" = ps: with ps; [ paho-mqtt ]; 1141 - "mqtt.lock" = ps: with ps; [ paho-mqtt ]; 1142 - "mqtt.sensor" = ps: with ps; [ paho-mqtt ]; 1143 - "mqtt.server" = ps: with ps; [ aiohttp-cors hbmqtt ]; 1144 - "mqtt.subscription" = ps: with ps; [ ]; 1145 - "mqtt.switch" = ps: with ps; [ paho-mqtt ]; 1146 - "mqtt.vacuum" = ps: with ps; [ paho-mqtt ]; 1147 - "mqtt_eventstream" = ps: with ps; [ paho-mqtt ]; 1148 - "mqtt_json" = ps: with ps; [ ]; 1149 - "mqtt_json.device_tracker" = ps: with ps; [ paho-mqtt ]; 1150 - "mqtt_room" = ps: with ps; [ ]; 1151 - "mqtt_room.sensor" = ps: with ps; [ paho-mqtt ]; 1152 - "mqtt_statestream" = ps: with ps; [ paho-mqtt ]; 1153 - "mvglive" = ps: with ps; [ ]; 1154 - "mvglive.sensor" = ps: with ps; [ PyMVGLive ]; 436 + "mpd" = ps: with ps; [ mpd2 ]; 437 + "mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; 438 + "mqtt_eventstream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; 439 + "mqtt_json" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; 440 + "mqtt_room" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; 441 + "mqtt_statestream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; 442 + "mvglive" = ps: with ps; [ PyMVGLive ]; 1155 443 "mychevy" = ps: with ps; [ ]; 1156 - "mychevy.binary_sensor" = ps: with ps; [ ]; 1157 - "mychevy.sensor" = ps: with ps; [ ]; 1158 444 "mycroft" = ps: with ps; [ ]; 1159 - "mycroft.notify" = ps: with ps; [ ]; 1160 445 "myq" = ps: with ps; [ ]; 1161 - "myq.cover" = ps: with ps; [ ]; 1162 446 "mysensors" = ps: with ps; [ ]; 1163 - "mysensors.binary_sensor" = ps: with ps; [ ]; 1164 - "mysensors.climate" = ps: with ps; [ ]; 1165 - "mysensors.const" = ps: with ps; [ ]; 1166 - "mysensors.cover" = ps: with ps; [ ]; 1167 - "mysensors.device" = ps: with ps; [ ]; 1168 - "mysensors.device_tracker" = ps: with ps; [ ]; 1169 - "mysensors.gateway" = ps: with ps; [ ]; 1170 - "mysensors.handler" = ps: with ps; [ ]; 1171 - "mysensors.helpers" = ps: with ps; [ ]; 1172 - "mysensors.light" = ps: with ps; [ ]; 1173 - "mysensors.notify" = ps: with ps; [ ]; 1174 - "mysensors.sensor" = ps: with ps; [ ]; 1175 - "mysensors.switch" = ps: with ps; [ ]; 1176 - "mystrom" = ps: with ps; [ ]; 1177 - "mystrom.binary_sensor" = ps: with ps; [ aiohttp-cors ]; 1178 - "mystrom.light" = ps: with ps; [ ]; 1179 - "mystrom.switch" = ps: with ps; [ ]; 447 + "mystrom" = ps: with ps; [ aiohttp-cors ]; 1180 448 "mythicbeastsdns" = ps: with ps; [ ]; 449 + "n26" = ps: with ps; [ ]; 1181 450 "nad" = ps: with ps; [ ]; 1182 - "nad.media_player" = ps: with ps; [ ]; 1183 451 "namecheapdns" = ps: with ps; [ defusedxml ]; 1184 452 "nanoleaf" = ps: with ps; [ ]; 1185 - "nanoleaf.light" = ps: with ps; [ ]; 1186 453 "neato" = ps: with ps; [ pybotvac ]; 1187 - "neato.camera" = ps: with ps; [ pybotvac ]; 1188 - "neato.switch" = ps: with ps; [ pybotvac ]; 1189 - "neato.vacuum" = ps: with ps; [ pybotvac ]; 1190 454 "nederlandse_spoorwegen" = ps: with ps; [ ]; 1191 - "nederlandse_spoorwegen.sensor" = ps: with ps; [ ]; 1192 455 "nello" = ps: with ps; [ ]; 1193 - "nello.lock" = ps: with ps; [ ]; 1194 456 "ness_alarm" = ps: with ps; [ ]; 1195 - "ness_alarm.alarm_control_panel" = ps: with ps; [ ]; 1196 - "ness_alarm.binary_sensor" = ps: with ps; [ ]; 1197 457 "nest" = ps: with ps; [ ]; 1198 - "nest.binary_sensor" = ps: with ps; [ ]; 1199 - "nest.camera" = ps: with ps; [ ]; 1200 - "nest.climate" = ps: with ps; [ ]; 1201 - "nest.config_flow" = ps: with ps; [ ]; 1202 - "nest.const" = ps: with ps; [ ]; 1203 - "nest.local_auth" = ps: with ps; [ ]; 1204 - "nest.sensor" = ps: with ps; [ ]; 1205 458 "netatmo" = ps: with ps; [ aiohttp-cors ]; 1206 - "netatmo.binary_sensor" = ps: with ps; [ aiohttp-cors ]; 1207 - "netatmo.camera" = ps: with ps; [ aiohttp-cors ]; 1208 - "netatmo.climate" = ps: with ps; [ aiohttp-cors ]; 1209 - "netatmo.sensor" = ps: with ps; [ aiohttp-cors ]; 1210 - "netatmo_public" = ps: with ps; [ ]; 1211 - "netatmo_public.sensor" = ps: with ps; [ aiohttp-cors ]; 459 + "netatmo_public" = ps: with ps; [ aiohttp-cors ]; 1212 460 "netdata" = ps: with ps; [ ]; 1213 - "netdata.sensor" = ps: with ps; [ ]; 1214 461 "netgear" = ps: with ps; [ ]; 1215 - "netgear.device_tracker" = ps: with ps; [ ]; 1216 462 "netgear_lte" = ps: with ps; [ ]; 1217 - "netgear_lte.notify" = ps: with ps; [ ]; 1218 - "netgear_lte.sensor" = ps: with ps; [ ]; 1219 - "netgear_lte.sensor_types" = ps: with ps; [ ]; 1220 - "netio" = ps: with ps; [ ]; 1221 - "netio.switch" = ps: with ps; [ aiohttp-cors ]; 463 + "netio" = ps: with ps; [ aiohttp-cors ]; 1222 464 "neurio_energy" = ps: with ps; [ ]; 1223 - "neurio_energy.sensor" = ps: with ps; [ ]; 1224 465 "nfandroidtv" = ps: with ps; [ ]; 1225 - "nfandroidtv.notify" = ps: with ps; [ ]; 1226 466 "niko_home_control" = ps: with ps; [ ]; 1227 - "niko_home_control.light" = ps: with ps; [ ]; 1228 467 "nilu" = ps: with ps; [ ]; 1229 - "nilu.air_quality" = ps: with ps; [ ]; 1230 468 "nissan_leaf" = ps: with ps; [ ]; 1231 - "nissan_leaf.binary_sensor" = ps: with ps; [ ]; 1232 - "nissan_leaf.device_tracker" = ps: with ps; [ ]; 1233 - "nissan_leaf.sensor" = ps: with ps; [ ]; 1234 - "nissan_leaf.switch" = ps: with ps; [ ]; 1235 469 "nmap_tracker" = ps: with ps; [ ]; 1236 - "nmap_tracker.device_tracker" = ps: with ps; [ ]; 1237 470 "nmbs" = ps: with ps; [ ]; 1238 - "nmbs.sensor" = ps: with ps; [ ]; 1239 471 "no_ip" = ps: with ps; [ ]; 1240 472 "noaa_tides" = ps: with ps; [ ]; 1241 - "noaa_tides.sensor" = ps: with ps; [ ]; 1242 473 "norway_air" = ps: with ps; [ ]; 1243 - "norway_air.air_quality" = ps: with ps; [ ]; 1244 474 "notify" = ps: with ps; [ ]; 1245 475 "nsw_fuel_station" = ps: with ps; [ ]; 1246 - "nsw_fuel_station.sensor" = ps: with ps; [ ]; 1247 476 "nsw_rural_fire_service_feed" = ps: with ps; [ ]; 1248 - "nsw_rural_fire_service_feed.geo_location" = ps: with ps; [ ]; 1249 477 "nuheat" = ps: with ps; [ ]; 1250 - "nuheat.climate" = ps: with ps; [ ]; 1251 478 "nuimo_controller" = ps: with ps; [ ]; 1252 479 "nuki" = ps: with ps; [ ]; 1253 - "nuki.lock" = ps: with ps; [ ]; 1254 480 "nut" = ps: with ps; [ ]; 1255 - "nut.sensor" = ps: with ps; [ ]; 1256 481 "nx584" = ps: with ps; [ ]; 1257 - "nx584.alarm_control_panel" = ps: with ps; [ ]; 1258 - "nx584.binary_sensor" = ps: with ps; [ ]; 1259 482 "nzbget" = ps: with ps; [ ]; 1260 - "nzbget.sensor" = ps: with ps; [ ]; 483 + "oasa_telematics" = ps: with ps; [ ]; 1261 484 "octoprint" = ps: with ps; [ ]; 1262 - "octoprint.binary_sensor" = ps: with ps; [ ]; 1263 - "octoprint.sensor" = ps: with ps; [ ]; 1264 485 "oem" = ps: with ps; [ ]; 1265 - "oem.climate" = ps: with ps; [ ]; 1266 - "ohmconnect" = ps: with ps; [ ]; 1267 - "ohmconnect.sensor" = ps: with ps; [ defusedxml ]; 486 + "ohmconnect" = ps: with ps; [ defusedxml ]; 1268 487 "onboarding" = ps: with ps; [ aiohttp-cors ]; 1269 - "onboarding.const" = ps: with ps; [ ]; 1270 - "onboarding.views" = ps: with ps; [ ]; 1271 488 "onewire" = ps: with ps; [ ]; 1272 - "onewire.sensor" = ps: with ps; [ ]; 1273 - "onkyo" = ps: with ps; [ ]; 1274 - "onkyo.media_player" = ps: with ps; [ onkyo-eiscp ]; 1275 - "onvif" = ps: with ps; [ ]; 1276 - "onvif.camera" = ps: with ps; [ ha-ffmpeg ]; 489 + "onkyo" = ps: with ps; [ onkyo-eiscp ]; 490 + "onvif" = ps: with ps; [ ha-ffmpeg ]; 1277 491 "openalpr_cloud" = ps: with ps; [ ]; 1278 - "openalpr_cloud.image_processing" = ps: with ps; [ ]; 1279 492 "openalpr_local" = ps: with ps; [ ]; 1280 - "openalpr_local.image_processing" = ps: with ps; [ ]; 1281 - "opencv" = ps: with ps; [ ]; 1282 - "opencv.image_processing" = ps: with ps; [ numpy ]; 493 + "opencv" = ps: with ps; [ numpy ]; 1283 494 "openevse" = ps: with ps; [ ]; 1284 - "openevse.sensor" = ps: with ps; [ ]; 1285 495 "openexchangerates" = ps: with ps; [ ]; 1286 - "openexchangerates.sensor" = ps: with ps; [ ]; 1287 496 "opengarage" = ps: with ps; [ ]; 1288 - "opengarage.cover" = ps: with ps; [ ]; 1289 497 "openhardwaremonitor" = ps: with ps; [ ]; 1290 - "openhardwaremonitor.sensor" = ps: with ps; [ ]; 1291 498 "openhome" = ps: with ps; [ ]; 1292 - "openhome.media_player" = ps: with ps; [ ]; 1293 499 "opensensemap" = ps: with ps; [ ]; 1294 - "opensensemap.air_quality" = ps: with ps; [ ]; 1295 500 "opensky" = ps: with ps; [ ]; 1296 - "opensky.sensor" = ps: with ps; [ ]; 1297 501 "opentherm_gw" = ps: with ps; [ ]; 1298 - "opentherm_gw.binary_sensor" = ps: with ps; [ ]; 1299 - "opentherm_gw.climate" = ps: with ps; [ ]; 1300 - "opentherm_gw.sensor" = ps: with ps; [ ]; 1301 502 "openuv" = ps: with ps; [ ]; 1302 - "openuv.binary_sensor" = ps: with ps; [ ]; 1303 - "openuv.config_flow" = ps: with ps; [ ]; 1304 - "openuv.const" = ps: with ps; [ ]; 1305 - "openuv.sensor" = ps: with ps; [ ]; 1306 - "openweathermap" = ps: with ps; [ ]; 1307 - "openweathermap.sensor" = ps: with ps; [ pyowm ]; 1308 - "openweathermap.weather" = ps: with ps; [ pyowm ]; 503 + "openweathermap" = ps: with ps; [ pyowm ]; 1309 504 "opple" = ps: with ps; [ ]; 1310 - "opple.light" = ps: with ps; [ ]; 1311 505 "orvibo" = ps: with ps; [ ]; 1312 - "orvibo.switch" = ps: with ps; [ ]; 1313 506 "osramlightify" = ps: with ps; [ ]; 1314 - "osramlightify.light" = ps: with ps; [ ]; 1315 - "otp" = ps: with ps; [ ]; 1316 - "otp.sensor" = ps: with ps; [ pyotp ]; 507 + "otp" = ps: with ps; [ pyotp ]; 1317 508 "owlet" = ps: with ps; [ ]; 1318 - "owlet.binary_sensor" = ps: with ps; [ ]; 1319 - "owlet.const" = ps: with ps; [ ]; 1320 - "owlet.sensor" = ps: with ps; [ ]; 1321 509 "owntracks" = ps: with ps; [ pynacl aiohttp-cors ]; 1322 - "owntracks.config_flow" = ps: with ps; [ ]; 1323 - "owntracks.device_tracker" = ps: with ps; [ pynacl aiohttp-cors ]; 1324 510 "panasonic_bluray" = ps: with ps; [ ]; 1325 - "panasonic_bluray.media_player" = ps: with ps; [ ]; 1326 - "panasonic_viera" = ps: with ps; [ ]; 1327 - "panasonic_viera.media_player" = ps: with ps; [ wakeonlan ]; 1328 - "pandora" = ps: with ps; [ ]; 1329 - "pandora.media_player" = ps: with ps; [ pexpect ]; 511 + "panasonic_viera" = ps: with ps; [ wakeonlan ]; 512 + "pandora" = ps: with ps; [ pexpect ]; 1330 513 "panel_custom" = ps: with ps; [ aiohttp-cors ]; 1331 514 "panel_iframe" = ps: with ps; [ aiohttp-cors ]; 1332 515 "pencom" = ps: with ps; [ ]; 1333 - "pencom.switch" = ps: with ps; [ ]; 1334 516 "persistent_notification" = ps: with ps; [ ]; 1335 517 "person" = ps: with ps; [ ]; 1336 518 "philips_js" = ps: with ps; [ ]; 1337 - "philips_js.media_player" = ps: with ps; [ ]; 1338 519 "pi_hole" = ps: with ps; [ ]; 1339 - "pi_hole.sensor" = ps: with ps; [ ]; 1340 520 "picotts" = ps: with ps; [ ]; 1341 - "picotts.tts" = ps: with ps; [ ]; 1342 521 "piglow" = ps: with ps; [ ]; 1343 - "piglow.light" = ps: with ps; [ ]; 1344 522 "pilight" = ps: with ps; [ ]; 1345 - "pilight.binary_sensor" = ps: with ps; [ ]; 1346 - "pilight.sensor" = ps: with ps; [ ]; 1347 - "pilight.switch" = ps: with ps; [ ]; 1348 523 "ping" = ps: with ps; [ ]; 1349 - "ping.binary_sensor" = ps: with ps; [ ]; 1350 - "ping.device_tracker" = ps: with ps; [ ]; 1351 524 "pioneer" = ps: with ps; [ ]; 1352 - "pioneer.media_player" = ps: with ps; [ ]; 1353 525 "pjlink" = ps: with ps; [ ]; 1354 - "pjlink.media_player" = ps: with ps; [ ]; 1355 526 "plant" = ps: with ps; [ ]; 1356 527 "plex" = ps: with ps; [ ]; 1357 - "plex.media_player" = ps: with ps; [ ]; 1358 - "plex.sensor" = ps: with ps; [ ]; 1359 528 "plum_lightpad" = ps: with ps; [ ]; 1360 - "plum_lightpad.light" = ps: with ps; [ ]; 1361 529 "pocketcasts" = ps: with ps; [ ]; 1362 - "pocketcasts.sensor" = ps: with ps; [ ]; 1363 530 "point" = ps: with ps; [ aiohttp-cors ]; 1364 - "point.alarm_control_panel" = ps: with ps; [ ]; 1365 - "point.binary_sensor" = ps: with ps; [ ]; 1366 - "point.config_flow" = ps: with ps; [ ]; 1367 - "point.const" = ps: with ps; [ ]; 1368 - "point.sensor" = ps: with ps; [ ]; 1369 - "pollen" = ps: with ps; [ ]; 1370 - "pollen.sensor" = ps: with ps; [ numpy ]; 531 + "pollen" = ps: with ps; [ numpy ]; 1371 532 "postnl" = ps: with ps; [ ]; 1372 - "postnl.sensor" = ps: with ps; [ ]; 1373 533 "prezzibenzina" = ps: with ps; [ ]; 1374 - "prezzibenzina.sensor" = ps: with ps; [ ]; 1375 534 "proliphix" = ps: with ps; [ ]; 1376 - "proliphix.climate" = ps: with ps; [ ]; 1377 535 "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ]; 1378 536 "prowl" = ps: with ps; [ ]; 1379 - "prowl.notify" = ps: with ps; [ ]; 1380 537 "proximity" = ps: with ps; [ ]; 1381 - "proxy" = ps: with ps; [ ]; 1382 - "proxy.camera" = ps: with ps; [ pillow ]; 538 + "proxy" = ps: with ps; [ pillow ]; 1383 539 "ps4" = ps: with ps; [ ]; 1384 - "ps4.config_flow" = ps: with ps; [ ]; 1385 - "ps4.const" = ps: with ps; [ ]; 1386 - "ps4.media_player" = ps: with ps; [ ]; 1387 540 "pulseaudio_loopback" = ps: with ps; [ ]; 1388 - "pulseaudio_loopback.switch" = ps: with ps; [ ]; 1389 - "push" = ps: with ps; [ ]; 1390 - "push.camera" = ps: with ps; [ aiohttp-cors ]; 1391 - "pushbullet" = ps: with ps; [ ]; 1392 - "pushbullet.notify" = ps: with ps; [ pushbullet ]; 1393 - "pushbullet.sensor" = ps: with ps; [ pushbullet ]; 541 + "push" = ps: with ps; [ aiohttp-cors ]; 542 + "pushbullet" = ps: with ps; [ pushbullet ]; 1394 543 "pushetta" = ps: with ps; [ ]; 1395 - "pushetta.notify" = ps: with ps; [ ]; 1396 - "pushover" = ps: with ps; [ ]; 1397 - "pushover.notify" = ps: with ps; [ python-pushover ]; 544 + "pushover" = ps: with ps; [ python-pushover ]; 1398 545 "pushsafer" = ps: with ps; [ ]; 1399 - "pushsafer.notify" = ps: with ps; [ ]; 1400 546 "pvoutput" = ps: with ps; [ ]; 1401 - "pvoutput.sensor" = ps: with ps; [ ]; 1402 547 "pyload" = ps: with ps; [ ]; 1403 - "pyload.sensor" = ps: with ps; [ ]; 1404 548 "python_script" = ps: with ps; [ ]; 1405 549 "qbittorrent" = ps: with ps; [ ]; 1406 - "qbittorrent.sensor" = ps: with ps; [ ]; 1407 550 "qnap" = ps: with ps; [ ]; 1408 - "qnap.sensor" = ps: with ps; [ ]; 1409 - "qrcode" = ps: with ps; [ ]; 1410 - "qrcode.image_processing" = ps: with ps; [ pillow ]; 551 + "qrcode" = ps: with ps; [ pillow ]; 1411 552 "quantum_gateway" = ps: with ps; [ ]; 1412 - "quantum_gateway.device_tracker" = ps: with ps; [ ]; 1413 553 "qwikswitch" = ps: with ps; [ ]; 1414 - "qwikswitch.binary_sensor" = ps: with ps; [ ]; 1415 - "qwikswitch.light" = ps: with ps; [ ]; 1416 - "qwikswitch.sensor" = ps: with ps; [ ]; 1417 - "qwikswitch.switch" = ps: with ps; [ ]; 1418 554 "rachio" = ps: with ps; [ ]; 1419 - "rachio.binary_sensor" = ps: with ps; [ ]; 1420 - "rachio.switch" = ps: with ps; [ ]; 1421 555 "radarr" = ps: with ps; [ ]; 1422 - "radarr.sensor" = ps: with ps; [ ]; 1423 556 "radiotherm" = ps: with ps; [ ]; 1424 - "radiotherm.climate" = ps: with ps; [ ]; 1425 557 "rainbird" = ps: with ps; [ ]; 1426 - "rainbird.sensor" = ps: with ps; [ ]; 1427 - "rainbird.switch" = ps: with ps; [ ]; 1428 558 "raincloud" = ps: with ps; [ ]; 1429 - "raincloud.binary_sensor" = ps: with ps; [ ]; 1430 - "raincloud.sensor" = ps: with ps; [ ]; 1431 - "raincloud.switch" = ps: with ps; [ ]; 1432 559 "rainmachine" = ps: with ps; [ ]; 1433 - "rainmachine.binary_sensor" = ps: with ps; [ ]; 1434 - "rainmachine.config_flow" = ps: with ps; [ ]; 1435 - "rainmachine.const" = ps: with ps; [ ]; 1436 - "rainmachine.sensor" = ps: with ps; [ ]; 1437 - "rainmachine.switch" = ps: with ps; [ ]; 1438 560 "random" = ps: with ps; [ ]; 1439 - "random.binary_sensor" = ps: with ps; [ ]; 1440 - "random.sensor" = ps: with ps; [ ]; 1441 561 "raspihats" = ps: with ps; [ ]; 1442 - "raspihats.binary_sensor" = ps: with ps; [ ]; 1443 - "raspihats.switch" = ps: with ps; [ ]; 1444 562 "raspyrfm" = ps: with ps; [ ]; 1445 - "raspyrfm.switch" = ps: with ps; [ ]; 1446 563 "recollect_waste" = ps: with ps; [ ]; 1447 - "recollect_waste.sensor" = ps: with ps; [ ]; 1448 564 "recorder" = ps: with ps; [ sqlalchemy ]; 1449 - "recorder.const" = ps: with ps; [ ]; 1450 - "recorder.migration" = ps: with ps; [ ]; 1451 - "recorder.purge" = ps: with ps; [ ]; 1452 - "recorder.util" = ps: with ps; [ ]; 1453 565 "recswitch" = ps: with ps; [ ]; 1454 - "recswitch.switch" = ps: with ps; [ ]; 1455 - "reddit" = ps: with ps; [ ]; 1456 - "reddit.sensor" = ps: with ps; [ praw ]; 566 + "reddit" = ps: with ps; [ praw ]; 1457 567 "rejseplanen" = ps: with ps; [ ]; 1458 - "rejseplanen.sensor" = ps: with ps; [ ]; 1459 568 "remember_the_milk" = ps: with ps; [ httplib2 ]; 1460 569 "remote" = ps: with ps; [ ]; 1461 570 "rest" = ps: with ps; [ ]; 1462 - "rest.binary_sensor" = ps: with ps; [ ]; 1463 - "rest.notify" = ps: with ps; [ ]; 1464 - "rest.sensor" = ps: with ps; [ ]; 1465 - "rest.switch" = ps: with ps; [ ]; 1466 571 "rest_command" = ps: with ps; [ ]; 1467 572 "rflink" = ps: with ps; [ ]; 1468 - "rflink.binary_sensor" = ps: with ps; [ ]; 1469 - "rflink.cover" = ps: with ps; [ ]; 1470 - "rflink.light" = ps: with ps; [ ]; 1471 - "rflink.sensor" = ps: with ps; [ ]; 1472 - "rflink.switch" = ps: with ps; [ ]; 1473 573 "rfxtrx" = ps: with ps; [ ]; 1474 - "rfxtrx.binary_sensor" = ps: with ps; [ ]; 1475 - "rfxtrx.cover" = ps: with ps; [ ]; 1476 - "rfxtrx.light" = ps: with ps; [ ]; 1477 - "rfxtrx.sensor" = ps: with ps; [ ]; 1478 - "rfxtrx.switch" = ps: with ps; [ ]; 1479 - "ring" = ps: with ps; [ ]; 1480 - "ring.binary_sensor" = ps: with ps; [ ]; 1481 - "ring.camera" = ps: with ps; [ ha-ffmpeg ]; 1482 - "ring.sensor" = ps: with ps; [ ]; 574 + "ring" = ps: with ps; [ ha-ffmpeg ]; 1483 575 "ripple" = ps: with ps; [ ]; 1484 - "ripple.sensor" = ps: with ps; [ ]; 1485 576 "ritassist" = ps: with ps; [ ]; 1486 - "ritassist.device_tracker" = ps: with ps; [ ]; 1487 577 "rmvtransport" = ps: with ps; [ ]; 1488 - "rmvtransport.sensor" = ps: with ps; [ ]; 1489 578 "rocketchat" = ps: with ps; [ ]; 1490 - "rocketchat.notify" = ps: with ps; [ ]; 1491 579 "roku" = ps: with ps; [ ]; 1492 - "roku.media_player" = ps: with ps; [ ]; 1493 - "roku.remote" = ps: with ps; [ ]; 1494 580 "roomba" = ps: with ps; [ ]; 1495 - "roomba.vacuum" = ps: with ps; [ ]; 1496 581 "route53" = ps: with ps; [ boto3 ]; 1497 582 "rova" = ps: with ps; [ ]; 1498 - "rova.sensor" = ps: with ps; [ ]; 1499 583 "rpi_camera" = ps: with ps; [ ]; 1500 - "rpi_camera.camera" = ps: with ps; [ ]; 1501 584 "rpi_gpio" = ps: with ps; [ ]; 1502 - "rpi_gpio.binary_sensor" = ps: with ps; [ ]; 1503 - "rpi_gpio.cover" = ps: with ps; [ ]; 1504 - "rpi_gpio.switch" = ps: with ps; [ ]; 1505 585 "rpi_gpio_pwm" = ps: with ps; [ ]; 1506 - "rpi_gpio_pwm.light" = ps: with ps; [ ]; 1507 586 "rpi_pfio" = ps: with ps; [ ]; 1508 - "rpi_pfio.binary_sensor" = ps: with ps; [ ]; 1509 - "rpi_pfio.switch" = ps: with ps; [ ]; 1510 587 "rpi_rf" = ps: with ps; [ ]; 1511 - "rpi_rf.switch" = ps: with ps; [ ]; 1512 588 "rss_feed_template" = ps: with ps; [ aiohttp-cors ]; 1513 589 "rtorrent" = ps: with ps; [ ]; 1514 - "rtorrent.sensor" = ps: with ps; [ ]; 1515 590 "russound_rio" = ps: with ps; [ ]; 1516 - "russound_rio.media_player" = ps: with ps; [ ]; 1517 591 "russound_rnet" = ps: with ps; [ ]; 1518 - "russound_rnet.media_player" = ps: with ps; [ ]; 1519 592 "ruter" = ps: with ps; [ ]; 1520 - "ruter.sensor" = ps: with ps; [ ]; 1521 593 "sabnzbd" = ps: with ps; [ ]; 1522 - "sabnzbd.sensor" = ps: with ps; [ ]; 1523 - "samsungtv" = ps: with ps; [ ]; 1524 - "samsungtv.media_player" = ps: with ps; [ wakeonlan ]; 594 + "samsungtv" = ps: with ps; [ wakeonlan ]; 1525 595 "satel_integra" = ps: with ps; [ ]; 1526 - "satel_integra.alarm_control_panel" = ps: with ps; [ ]; 1527 - "satel_integra.binary_sensor" = ps: with ps; [ ]; 1528 596 "scene" = ps: with ps; [ ]; 1529 - "scrape" = ps: with ps; [ ]; 1530 - "scrape.sensor" = ps: with ps; [ beautifulsoup4 ]; 597 + "scrape" = ps: with ps; [ beautifulsoup4 ]; 1531 598 "script" = ps: with ps; [ ]; 1532 599 "scsgate" = ps: with ps; [ ]; 1533 - "scsgate.cover" = ps: with ps; [ ]; 1534 - "scsgate.light" = ps: with ps; [ ]; 1535 - "scsgate.switch" = ps: with ps; [ ]; 1536 - "season" = ps: with ps; [ ]; 1537 - "season.sensor" = ps: with ps; [ ephem ]; 600 + "season" = ps: with ps; [ ephem ]; 1538 601 "sendgrid" = ps: with ps; [ ]; 1539 - "sendgrid.notify" = ps: with ps; [ ]; 1540 602 "sense" = ps: with ps; [ ]; 1541 - "sense.binary_sensor" = ps: with ps; [ ]; 1542 - "sense.sensor" = ps: with ps; [ ]; 1543 603 "sensehat" = ps: with ps; [ ]; 1544 - "sensehat.light" = ps: with ps; [ ]; 1545 - "sensehat.sensor" = ps: with ps; [ ]; 1546 604 "sensibo" = ps: with ps; [ ]; 1547 - "sensibo.climate" = ps: with ps; [ ]; 1548 605 "sensor" = ps: with ps; [ ]; 1549 606 "serial" = ps: with ps; [ ]; 1550 - "serial.sensor" = ps: with ps; [ ]; 1551 607 "serial_pm" = ps: with ps; [ ]; 1552 - "serial_pm.sensor" = ps: with ps; [ ]; 1553 608 "sesame" = ps: with ps; [ ]; 1554 - "sesame.lock" = ps: with ps; [ ]; 1555 609 "seven_segments" = ps: with ps; [ ]; 1556 - "seven_segments.image_processing" = ps: with ps; [ ]; 1557 610 "seventeentrack" = ps: with ps; [ ]; 1558 - "seventeentrack.sensor" = ps: with ps; [ ]; 1559 611 "shell_command" = ps: with ps; [ ]; 1560 612 "shiftr" = ps: with ps; [ paho-mqtt ]; 1561 - "shodan" = ps: with ps; [ ]; 1562 - "shodan.sensor" = ps: with ps; [ shodan ]; 613 + "shodan" = ps: with ps; [ shodan ]; 1563 614 "shopping_list" = ps: with ps; [ aiohttp-cors ]; 1564 615 "sht31" = ps: with ps; [ ]; 1565 - "sht31.sensor" = ps: with ps; [ ]; 1566 616 "sigfox" = ps: with ps; [ ]; 1567 - "sigfox.sensor" = ps: with ps; [ ]; 1568 617 "simplepush" = ps: with ps; [ ]; 1569 - "simplepush.notify" = ps: with ps; [ ]; 1570 618 "simplisafe" = ps: with ps; [ ]; 1571 - "simplisafe.alarm_control_panel" = ps: with ps; [ ]; 1572 - "simplisafe.config_flow" = ps: with ps; [ ]; 1573 - "simplisafe.const" = ps: with ps; [ ]; 1574 619 "simulated" = ps: with ps; [ ]; 1575 - "simulated.sensor" = ps: with ps; [ ]; 1576 620 "sisyphus" = ps: with ps; [ ]; 1577 - "sisyphus.light" = ps: with ps; [ ]; 1578 - "sisyphus.media_player" = ps: with ps; [ ]; 1579 621 "sky_hub" = ps: with ps; [ ]; 1580 - "sky_hub.device_tracker" = ps: with ps; [ ]; 1581 622 "skybeacon" = ps: with ps; [ ]; 1582 - "skybeacon.sensor" = ps: with ps; [ ]; 1583 623 "skybell" = ps: with ps; [ ]; 1584 - "skybell.binary_sensor" = ps: with ps; [ ]; 1585 - "skybell.camera" = ps: with ps; [ ]; 1586 - "skybell.light" = ps: with ps; [ ]; 1587 - "skybell.sensor" = ps: with ps; [ ]; 1588 - "skybell.switch" = ps: with ps; [ ]; 1589 624 "slack" = ps: with ps; [ ]; 1590 - "slack.notify" = ps: with ps; [ ]; 1591 625 "sleepiq" = ps: with ps; [ ]; 1592 - "sleepiq.binary_sensor" = ps: with ps; [ ]; 1593 - "sleepiq.sensor" = ps: with ps; [ ]; 1594 626 "sma" = ps: with ps; [ ]; 1595 - "sma.sensor" = ps: with ps; [ ]; 1596 627 "smappee" = ps: with ps; [ ]; 1597 - "smappee.sensor" = ps: with ps; [ ]; 1598 - "smappee.switch" = ps: with ps; [ ]; 1599 628 "smartthings" = ps: with ps; [ aiohttp-cors ]; 1600 - "smartthings.binary_sensor" = ps: with ps; [ aiohttp-cors ]; 1601 - "smartthings.climate" = ps: with ps; [ aiohttp-cors ]; 1602 - "smartthings.config_flow" = ps: with ps; [ ]; 1603 - "smartthings.const" = ps: with ps; [ ]; 1604 - "smartthings.cover" = ps: with ps; [ aiohttp-cors ]; 1605 - "smartthings.fan" = ps: with ps; [ aiohttp-cors ]; 1606 - "smartthings.light" = ps: with ps; [ aiohttp-cors ]; 1607 - "smartthings.lock" = ps: with ps; [ aiohttp-cors ]; 1608 - "smartthings.scene" = ps: with ps; [ aiohttp-cors ]; 1609 - "smartthings.sensor" = ps: with ps; [ aiohttp-cors ]; 1610 - "smartthings.smartapp" = ps: with ps; [ ]; 1611 - "smartthings.switch" = ps: with ps; [ aiohttp-cors ]; 1612 629 "smhi" = ps: with ps; [ ]; 1613 - "smhi.config_flow" = ps: with ps; [ ]; 1614 - "smhi.const" = ps: with ps; [ ]; 1615 - "smhi.weather" = ps: with ps; [ ]; 1616 630 "smtp" = ps: with ps; [ ]; 1617 - "smtp.notify" = ps: with ps; [ ]; 1618 - "snapcast" = ps: with ps; [ ]; 1619 - "snapcast.media_player" = ps: with ps; [ snapcast ]; 1620 - "snips" = ps: with ps; [ paho-mqtt ]; 1621 - "snmp" = ps: with ps; [ ]; 1622 - "snmp.device_tracker" = ps: with ps; [ pysnmp ]; 1623 - "snmp.sensor" = ps: with ps; [ pysnmp ]; 1624 - "snmp.switch" = ps: with ps; [ pysnmp ]; 631 + "snapcast" = ps: with ps; [ snapcast ]; 632 + "snips" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ]; 633 + "snmp" = ps: with ps; [ pysnmp ]; 1625 634 "sochain" = ps: with ps; [ ]; 1626 - "sochain.sensor" = ps: with ps; [ ]; 1627 635 "socialblade" = ps: with ps; [ ]; 1628 - "socialblade.sensor" = ps: with ps; [ ]; 1629 636 "solaredge" = ps: with ps; [ ]; 1630 - "solaredge.sensor" = ps: with ps; [ ]; 637 + "somfy_mylink" = ps: with ps; [ ]; 1631 638 "sonarr" = ps: with ps; [ ]; 1632 - "sonarr.sensor" = ps: with ps; [ ]; 1633 639 "songpal" = ps: with ps; [ ]; 1634 - "songpal.media_player" = ps: with ps; [ ]; 1635 640 "sonos" = ps: with ps; [ ]; 1636 - "sonos.media_player" = ps: with ps; [ ]; 1637 641 "sony_projector" = ps: with ps; [ ]; 1638 - "sony_projector.switch" = ps: with ps; [ ]; 1639 - "soundtouch" = ps: with ps; [ ]; 1640 - "soundtouch.media_player" = ps: with ps; [ libsoundtouch ]; 642 + "soundtouch" = ps: with ps; [ libsoundtouch ]; 1641 643 "spaceapi" = ps: with ps; [ aiohttp-cors ]; 1642 644 "spc" = ps: with ps; [ ]; 1643 - "spc.alarm_control_panel" = ps: with ps; [ ]; 1644 - "spc.binary_sensor" = ps: with ps; [ ]; 1645 645 "speedtestdotnet" = ps: with ps; [ speedtest-cli ]; 1646 - "speedtestdotnet.const" = ps: with ps; [ ]; 1647 - "speedtestdotnet.sensor" = ps: with ps; [ speedtest-cli ]; 1648 646 "spider" = ps: with ps; [ ]; 1649 - "spider.climate" = ps: with ps; [ ]; 1650 - "spider.switch" = ps: with ps; [ ]; 1651 647 "splunk" = ps: with ps; [ ]; 1652 648 "spotcrime" = ps: with ps; [ ]; 1653 - "spotcrime.sensor" = ps: with ps; [ ]; 1654 - "spotify" = ps: with ps; [ ]; 1655 - "spotify.media_player" = ps: with ps; [ aiohttp-cors ]; 1656 - "sql" = ps: with ps; [ ]; 1657 - "sql.sensor" = ps: with ps; [ sqlalchemy ]; 649 + "spotify" = ps: with ps; [ aiohttp-cors ]; 650 + "sql" = ps: with ps; [ sqlalchemy ]; 1658 651 "squeezebox" = ps: with ps; [ ]; 1659 - "squeezebox.media_player" = ps: with ps; [ ]; 1660 652 "srp_energy" = ps: with ps; [ ]; 1661 - "srp_energy.sensor" = ps: with ps; [ ]; 1662 653 "starlingbank" = ps: with ps; [ ]; 1663 - "starlingbank.sensor" = ps: with ps; [ ]; 1664 - "startca" = ps: with ps; [ ]; 1665 - "startca.sensor" = ps: with ps; [ xmltodict ]; 654 + "startca" = ps: with ps; [ xmltodict ]; 1666 655 "statistics" = ps: with ps; [ ]; 1667 - "statistics.sensor" = ps: with ps; [ ]; 1668 656 "statsd" = ps: with ps; [ statsd ]; 1669 657 "steam_online" = ps: with ps; [ ]; 1670 - "steam_online.sensor" = ps: with ps; [ ]; 658 + "stiebel_eltron" = ps: with ps; [ ]; 1671 659 "stream" = ps: with ps; [ aiohttp-cors av ]; 1672 - "stream.const" = ps: with ps; [ ]; 1673 - "stream.core" = ps: with ps; [ ]; 1674 - "stream.hls" = ps: with ps; [ ]; 1675 - "stream.recorder" = ps: with ps; [ ]; 1676 - "stream.worker" = ps: with ps; [ ]; 1677 660 "stride" = ps: with ps; [ ]; 1678 - "stride.notify" = ps: with ps; [ ]; 1679 661 "sun" = ps: with ps; [ ]; 1680 662 "supervisord" = ps: with ps; [ ]; 1681 - "supervisord.sensor" = ps: with ps; [ ]; 663 + "supla" = ps: with ps; [ ]; 1682 664 "swiss_hydrological_data" = ps: with ps; [ ]; 1683 - "swiss_hydrological_data.sensor" = ps: with ps; [ ]; 1684 665 "swiss_public_transport" = ps: with ps; [ ]; 1685 - "swiss_public_transport.sensor" = ps: with ps; [ ]; 1686 666 "swisscom" = ps: with ps; [ ]; 1687 - "swisscom.device_tracker" = ps: with ps; [ ]; 1688 667 "switch" = ps: with ps; [ ]; 1689 - "switch.light" = ps: with ps; [ ]; 1690 668 "switchbot" = ps: with ps; [ ]; 1691 - "switchbot.switch" = ps: with ps; [ ]; 1692 669 "switchmate" = ps: with ps; [ ]; 1693 - "switchmate.switch" = ps: with ps; [ ]; 1694 670 "syncthru" = ps: with ps; [ ]; 1695 - "syncthru.sensor" = ps: with ps; [ ]; 1696 671 "synology" = ps: with ps; [ ]; 1697 - "synology.camera" = ps: with ps; [ ]; 1698 672 "synology_chat" = ps: with ps; [ ]; 1699 - "synology_chat.notify" = ps: with ps; [ ]; 1700 673 "synology_srm" = ps: with ps; [ ]; 1701 - "synology_srm.device_tracker" = ps: with ps; [ ]; 1702 674 "synologydsm" = ps: with ps; [ ]; 1703 - "synologydsm.sensor" = ps: with ps; [ ]; 1704 675 "syslog" = ps: with ps; [ ]; 1705 - "syslog.notify" = ps: with ps; [ ]; 1706 676 "system_health" = ps: with ps; [ aiohttp-cors ]; 1707 677 "system_log" = ps: with ps; [ aiohttp-cors ]; 1708 - "systemmonitor" = ps: with ps; [ ]; 1709 - "systemmonitor.sensor" = ps: with ps; [ psutil ]; 1710 - "sytadin" = ps: with ps; [ ]; 1711 - "sytadin.sensor" = ps: with ps; [ beautifulsoup4 ]; 678 + "systemmonitor" = ps: with ps; [ psutil ]; 679 + "sytadin" = ps: with ps; [ beautifulsoup4 ]; 1712 680 "tado" = ps: with ps; [ ]; 1713 - "tado.climate" = ps: with ps; [ ]; 1714 - "tado.device_tracker" = ps: with ps; [ ]; 1715 - "tado.sensor" = ps: with ps; [ ]; 1716 681 "tahoma" = ps: with ps; [ ]; 1717 - "tahoma.binary_sensor" = ps: with ps; [ ]; 1718 - "tahoma.cover" = ps: with ps; [ ]; 1719 - "tahoma.scene" = ps: with ps; [ ]; 1720 - "tahoma.sensor" = ps: with ps; [ ]; 1721 - "tahoma.switch" = ps: with ps; [ ]; 1722 682 "tank_utility" = ps: with ps; [ ]; 1723 - "tank_utility.sensor" = ps: with ps; [ ]; 1724 683 "tapsaff" = ps: with ps; [ ]; 1725 - "tapsaff.binary_sensor" = ps: with ps; [ ]; 1726 684 "tautulli" = ps: with ps; [ ]; 1727 - "tautulli.sensor" = ps: with ps; [ ]; 1728 685 "tcp" = ps: with ps; [ ]; 1729 - "tcp.binary_sensor" = ps: with ps; [ ]; 1730 - "tcp.sensor" = ps: with ps; [ ]; 1731 - "ted5000" = ps: with ps; [ ]; 1732 - "ted5000.sensor" = ps: with ps; [ xmltodict ]; 686 + "ted5000" = ps: with ps; [ xmltodict ]; 1733 687 "teksavvy" = ps: with ps; [ ]; 1734 - "teksavvy.sensor" = ps: with ps; [ ]; 1735 - "telegram" = ps: with ps; [ ]; 1736 - "telegram.notify" = ps: with ps; [ python-telegram-bot ]; 1737 - "telegram_bot" = ps: with ps; [ python-telegram-bot ]; 1738 - "telegram_bot.broadcast" = ps: with ps; [ ]; 1739 - "telegram_bot.polling" = ps: with ps; [ ]; 1740 - "telegram_bot.webhooks" = ps: with ps; [ aiohttp-cors ]; 688 + "telegram" = ps: with ps; [ aiohttp-cors python-telegram-bot ]; 689 + "telegram_bot" = ps: with ps; [ aiohttp-cors python-telegram-bot ]; 1741 690 "tellduslive" = ps: with ps; [ ]; 1742 - "tellduslive.binary_sensor" = ps: with ps; [ ]; 1743 - "tellduslive.config_flow" = ps: with ps; [ ]; 1744 - "tellduslive.const" = ps: with ps; [ ]; 1745 - "tellduslive.cover" = ps: with ps; [ ]; 1746 - "tellduslive.entry" = ps: with ps; [ ]; 1747 - "tellduslive.light" = ps: with ps; [ ]; 1748 - "tellduslive.sensor" = ps: with ps; [ ]; 1749 - "tellduslive.switch" = ps: with ps; [ ]; 1750 691 "tellstick" = ps: with ps; [ ]; 1751 - "tellstick.cover" = ps: with ps; [ ]; 1752 - "tellstick.light" = ps: with ps; [ ]; 1753 - "tellstick.sensor" = ps: with ps; [ ]; 1754 - "tellstick.switch" = ps: with ps; [ ]; 1755 692 "telnet" = ps: with ps; [ ]; 1756 - "telnet.switch" = ps: with ps; [ ]; 1757 693 "temper" = ps: with ps; [ ]; 1758 - "temper.sensor" = ps: with ps; [ ]; 1759 694 "template" = ps: with ps; [ ]; 1760 - "template.binary_sensor" = ps: with ps; [ ]; 1761 - "template.cover" = ps: with ps; [ ]; 1762 - "template.fan" = ps: with ps; [ ]; 1763 - "template.light" = ps: with ps; [ ]; 1764 - "template.lock" = ps: with ps; [ ]; 1765 - "template.sensor" = ps: with ps; [ ]; 1766 - "template.switch" = ps: with ps; [ ]; 1767 - "tensorflow" = ps: with ps; [ ]; 1768 - "tensorflow.image_processing" = ps: with ps; [ numpy pillow protobuf ]; 695 + "tensorflow" = ps: with ps; [ numpy pillow protobuf ]; 1769 696 "tesla" = ps: with ps; [ ]; 1770 - "tesla.binary_sensor" = ps: with ps; [ ]; 1771 - "tesla.climate" = ps: with ps; [ ]; 1772 - "tesla.device_tracker" = ps: with ps; [ ]; 1773 - "tesla.lock" = ps: with ps; [ ]; 1774 - "tesla.sensor" = ps: with ps; [ ]; 1775 - "tesla.switch" = ps: with ps; [ ]; 1776 697 "tfiac" = ps: with ps; [ ]; 1777 - "tfiac.climate" = ps: with ps; [ ]; 1778 698 "thermoworks_smoke" = ps: with ps; [ ]; 1779 - "thermoworks_smoke.sensor" = ps: with ps; [ ]; 1780 699 "thethingsnetwork" = ps: with ps; [ ]; 1781 - "thethingsnetwork.sensor" = ps: with ps; [ ]; 1782 700 "thingspeak" = ps: with ps; [ ]; 1783 701 "thinkingcleaner" = ps: with ps; [ ]; 1784 - "thinkingcleaner.sensor" = ps: with ps; [ ]; 1785 - "thinkingcleaner.switch" = ps: with ps; [ ]; 1786 702 "thomson" = ps: with ps; [ ]; 1787 - "thomson.device_tracker" = ps: with ps; [ ]; 1788 703 "threshold" = ps: with ps; [ ]; 1789 - "threshold.binary_sensor" = ps: with ps; [ ]; 1790 704 "tibber" = ps: with ps; [ ]; 1791 - "tibber.notify" = ps: with ps; [ ]; 1792 - "tibber.sensor" = ps: with ps; [ ]; 1793 705 "tikteck" = ps: with ps; [ ]; 1794 - "tikteck.light" = ps: with ps; [ ]; 1795 706 "tile" = ps: with ps; [ ]; 1796 - "tile.device_tracker" = ps: with ps; [ ]; 1797 707 "time_date" = ps: with ps; [ ]; 1798 - "time_date.sensor" = ps: with ps; [ ]; 1799 708 "timer" = ps: with ps; [ ]; 1800 709 "tod" = ps: with ps; [ ]; 1801 - "tod.binary_sensor" = ps: with ps; [ ]; 1802 - "todoist" = ps: with ps; [ ]; 1803 - "todoist.calendar" = ps: with ps; [ todoist ]; 710 + "todoist" = ps: with ps; [ todoist ]; 1804 711 "tof" = ps: with ps; [ ]; 1805 - "tof.sensor" = ps: with ps; [ ]; 1806 712 "tomato" = ps: with ps; [ ]; 1807 - "tomato.device_tracker" = ps: with ps; [ ]; 1808 713 "toon" = ps: with ps; [ ]; 1809 - "toon.binary_sensor" = ps: with ps; [ ]; 1810 - "toon.climate" = ps: with ps; [ ]; 1811 - "toon.config_flow" = ps: with ps; [ ]; 1812 - "toon.const" = ps: with ps; [ ]; 1813 - "toon.sensor" = ps: with ps; [ ]; 1814 - "torque" = ps: with ps; [ ]; 1815 - "torque.sensor" = ps: with ps; [ aiohttp-cors ]; 714 + "torque" = ps: with ps; [ aiohttp-cors ]; 1816 715 "totalconnect" = ps: with ps; [ ]; 1817 - "totalconnect.alarm_control_panel" = ps: with ps; [ ]; 1818 716 "touchline" = ps: with ps; [ ]; 1819 - "touchline.climate" = ps: with ps; [ ]; 1820 717 "tplink" = ps: with ps; [ ]; 1821 - "tplink.device_tracker" = ps: with ps; [ ]; 1822 - "tplink.light" = ps: with ps; [ ]; 1823 - "tplink.switch" = ps: with ps; [ ]; 1824 718 "tplink_lte" = ps: with ps; [ ]; 1825 - "tplink_lte.notify" = ps: with ps; [ ]; 1826 719 "traccar" = ps: with ps; [ ]; 1827 - "traccar.device_tracker" = ps: with ps; [ ]; 1828 720 "trackr" = ps: with ps; [ ]; 1829 - "trackr.device_tracker" = ps: with ps; [ ]; 1830 721 "tradfri" = ps: with ps; [ ]; 1831 - "tradfri.config_flow" = ps: with ps; [ ]; 1832 - "tradfri.const" = ps: with ps; [ ]; 1833 - "tradfri.light" = ps: with ps; [ ]; 1834 - "tradfri.sensor" = ps: with ps; [ ]; 1835 - "tradfri.switch" = ps: with ps; [ ]; 1836 722 "trafikverket_weatherstation" = ps: with ps; [ ]; 1837 - "trafikverket_weatherstation.sensor" = ps: with ps; [ ]; 1838 723 "transmission" = ps: with ps; [ transmissionrpc ]; 1839 - "transmission.sensor" = ps: with ps; [ transmissionrpc ]; 1840 - "transmission.switch" = ps: with ps; [ transmissionrpc ]; 1841 724 "transport_nsw" = ps: with ps; [ ]; 1842 - "transport_nsw.sensor" = ps: with ps; [ ]; 1843 725 "travisci" = ps: with ps; [ ]; 1844 - "travisci.sensor" = ps: with ps; [ ]; 1845 - "trend" = ps: with ps; [ ]; 1846 - "trend.binary_sensor" = ps: with ps; [ numpy ]; 726 + "trend" = ps: with ps; [ numpy ]; 1847 727 "tts" = ps: with ps; [ aiohttp-cors mutagen ]; 1848 728 "tuya" = ps: with ps; [ ]; 1849 - "tuya.climate" = ps: with ps; [ ]; 1850 - "tuya.cover" = ps: with ps; [ ]; 1851 - "tuya.fan" = ps: with ps; [ ]; 1852 - "tuya.light" = ps: with ps; [ ]; 1853 - "tuya.scene" = ps: with ps; [ ]; 1854 - "tuya.switch" = ps: with ps; [ ]; 1855 729 "twilio" = ps: with ps; [ aiohttp-cors twilio ]; 1856 - "twilio_call" = ps: with ps; [ ]; 1857 - "twilio_call.notify" = ps: with ps; [ aiohttp-cors twilio ]; 1858 - "twilio_sms" = ps: with ps; [ ]; 1859 - "twilio_sms.notify" = ps: with ps; [ aiohttp-cors twilio ]; 730 + "twilio_call" = ps: with ps; [ aiohttp-cors twilio ]; 731 + "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ]; 1860 732 "twitch" = ps: with ps; [ ]; 1861 - "twitch.sensor" = ps: with ps; [ ]; 1862 733 "twitter" = ps: with ps; [ ]; 1863 - "twitter.notify" = ps: with ps; [ ]; 1864 734 "ubee" = ps: with ps; [ ]; 1865 - "ubee.device_tracker" = ps: with ps; [ ]; 1866 735 "uber" = ps: with ps; [ ]; 1867 - "uber.sensor" = ps: with ps; [ ]; 1868 736 "ubus" = ps: with ps; [ ]; 1869 - "ubus.device_tracker" = ps: with ps; [ ]; 1870 737 "ue_smart_radio" = ps: with ps; [ ]; 1871 - "ue_smart_radio.media_player" = ps: with ps; [ ]; 1872 738 "uk_transport" = ps: with ps; [ ]; 1873 - "uk_transport.sensor" = ps: with ps; [ ]; 1874 - "unifi" = ps: with ps; [ aiounifi ]; 1875 - "unifi.const" = ps: with ps; [ ]; 1876 - "unifi.controller" = ps: with ps; [ ]; 1877 - "unifi.device_tracker" = ps: with ps; [ pyunifi ]; 1878 - "unifi.errors" = ps: with ps; [ ]; 1879 - "unifi.switch" = ps: with ps; [ aiounifi ]; 1880 - "unifi_direct" = ps: with ps; [ ]; 1881 - "unifi_direct.device_tracker" = ps: with ps; [ pexpect ]; 739 + "unifi" = ps: with ps; [ aiounifi pyunifi ]; 740 + "unifi_direct" = ps: with ps; [ pexpect ]; 1882 741 "universal" = ps: with ps; [ ]; 1883 - "universal.media_player" = ps: with ps; [ ]; 1884 - "upc_connect" = ps: with ps; [ ]; 1885 - "upc_connect.device_tracker" = ps: with ps; [ defusedxml ]; 742 + "upc_connect" = ps: with ps; [ defusedxml ]; 1886 743 "upcloud" = ps: with ps; [ ]; 1887 - "upcloud.binary_sensor" = ps: with ps; [ ]; 1888 - "upcloud.switch" = ps: with ps; [ ]; 1889 744 "updater" = ps: with ps; [ distro ]; 1890 745 "upnp" = ps: with ps; [ ]; 1891 - "upnp.const" = ps: with ps; [ ]; 1892 - "upnp.device" = ps: with ps; [ ]; 1893 - "upnp.sensor" = ps: with ps; [ ]; 1894 746 "ups" = ps: with ps; [ ]; 1895 - "ups.sensor" = ps: with ps; [ ]; 1896 747 "uptime" = ps: with ps; [ ]; 1897 - "uptime.sensor" = ps: with ps; [ ]; 1898 748 "uptimerobot" = ps: with ps; [ ]; 1899 - "uptimerobot.binary_sensor" = ps: with ps; [ ]; 1900 749 "uscis" = ps: with ps; [ ]; 1901 - "uscis.sensor" = ps: with ps; [ ]; 1902 750 "usgs_earthquakes_feed" = ps: with ps; [ ]; 1903 - "usgs_earthquakes_feed.geo_location" = ps: with ps; [ ]; 1904 751 "usps" = ps: with ps; [ ]; 1905 - "usps.camera" = ps: with ps; [ ]; 1906 - "usps.sensor" = ps: with ps; [ ]; 1907 752 "utility_meter" = ps: with ps; [ ]; 1908 - "utility_meter.const" = ps: with ps; [ ]; 1909 - "utility_meter.sensor" = ps: with ps; [ ]; 1910 753 "uvc" = ps: with ps; [ ]; 1911 - "uvc.camera" = ps: with ps; [ ]; 1912 754 "vacuum" = ps: with ps; [ ]; 1913 755 "vasttrafik" = ps: with ps; [ ]; 1914 - "vasttrafik.sensor" = ps: with ps; [ ]; 1915 756 "velbus" = ps: with ps; [ ]; 1916 - "velbus.binary_sensor" = ps: with ps; [ ]; 1917 - "velbus.climate" = ps: with ps; [ ]; 1918 - "velbus.cover" = ps: with ps; [ ]; 1919 - "velbus.sensor" = ps: with ps; [ ]; 1920 - "velbus.switch" = ps: with ps; [ ]; 1921 757 "velux" = ps: with ps; [ ]; 1922 - "velux.cover" = ps: with ps; [ ]; 1923 - "velux.scene" = ps: with ps; [ ]; 1924 758 "venstar" = ps: with ps; [ ]; 1925 - "venstar.climate" = ps: with ps; [ ]; 1926 759 "vera" = ps: with ps; [ ]; 1927 - "vera.binary_sensor" = ps: with ps; [ ]; 1928 - "vera.climate" = ps: with ps; [ ]; 1929 - "vera.cover" = ps: with ps; [ ]; 1930 - "vera.light" = ps: with ps; [ ]; 1931 - "vera.lock" = ps: with ps; [ ]; 1932 - "vera.scene" = ps: with ps; [ ]; 1933 - "vera.sensor" = ps: with ps; [ ]; 1934 - "vera.switch" = ps: with ps; [ ]; 1935 760 "verisure" = ps: with ps; [ ]; 1936 - "verisure.alarm_control_panel" = ps: with ps; [ ]; 1937 - "verisure.binary_sensor" = ps: with ps; [ ]; 1938 - "verisure.camera" = ps: with ps; [ ]; 1939 - "verisure.lock" = ps: with ps; [ ]; 1940 - "verisure.sensor" = ps: with ps; [ ]; 1941 - "verisure.switch" = ps: with ps; [ ]; 1942 761 "version" = ps: with ps; [ ]; 1943 - "version.sensor" = ps: with ps; [ ]; 1944 762 "vesync" = ps: with ps; [ ]; 1945 - "vesync.switch" = ps: with ps; [ ]; 1946 763 "viaggiatreno" = ps: with ps; [ ]; 1947 - "viaggiatreno.sensor" = ps: with ps; [ ]; 1948 764 "vizio" = ps: with ps; [ ]; 1949 - "vizio.media_player" = ps: with ps; [ ]; 1950 765 "vlc" = ps: with ps; [ ]; 1951 - "vlc.media_player" = ps: with ps; [ ]; 1952 766 "voicerss" = ps: with ps; [ ]; 1953 - "voicerss.tts" = ps: with ps; [ ]; 1954 767 "volkszaehler" = ps: with ps; [ ]; 1955 - "volkszaehler.sensor" = ps: with ps; [ ]; 1956 768 "volumio" = ps: with ps; [ ]; 1957 - "volumio.media_player" = ps: with ps; [ ]; 1958 769 "volvooncall" = ps: with ps; [ ]; 1959 - "volvooncall.binary_sensor" = ps: with ps; [ ]; 1960 - "volvooncall.device_tracker" = ps: with ps; [ ]; 1961 - "volvooncall.lock" = ps: with ps; [ ]; 1962 - "volvooncall.sensor" = ps: with ps; [ ]; 1963 - "volvooncall.switch" = ps: with ps; [ ]; 1964 770 "vultr" = ps: with ps; [ vultr ]; 1965 - "vultr.binary_sensor" = ps: with ps; [ vultr ]; 1966 - "vultr.sensor" = ps: with ps; [ vultr ]; 1967 - "vultr.switch" = ps: with ps; [ vultr ]; 1968 771 "w800rf32" = ps: with ps; [ ]; 1969 - "w800rf32.binary_sensor" = ps: with ps; [ ]; 1970 772 "wake_on_lan" = ps: with ps; [ wakeonlan ]; 1971 - "wake_on_lan.switch" = ps: with ps; [ wakeonlan ]; 1972 773 "waqi" = ps: with ps; [ ]; 1973 - "waqi.sensor" = ps: with ps; [ ]; 1974 774 "water_heater" = ps: with ps; [ ]; 1975 775 "waterfurnace" = ps: with ps; [ ]; 1976 - "waterfurnace.sensor" = ps: with ps; [ ]; 1977 776 "watson_iot" = ps: with ps; [ ]; 1978 - "waze_travel_time" = ps: with ps; [ ]; 1979 - "waze_travel_time.sensor" = ps: with ps; [ WazeRouteCalculator ]; 777 + "waze_travel_time" = ps: with ps; [ WazeRouteCalculator ]; 1980 778 "weather" = ps: with ps; [ ]; 1981 779 "webhook" = ps: with ps; [ aiohttp-cors ]; 1982 780 "weblink" = ps: with ps; [ ]; 1983 - "webostv" = ps: with ps; [ ]; 1984 - "webostv.media_player" = ps: with ps; [ websockets ]; 1985 - "webostv.notify" = ps: with ps; [ ]; 781 + "webostv" = ps: with ps; [ websockets ]; 1986 782 "websocket_api" = ps: with ps; [ aiohttp-cors ]; 1987 - "websocket_api.auth" = ps: with ps; [ ]; 1988 - "websocket_api.commands" = ps: with ps; [ ]; 1989 - "websocket_api.connection" = ps: with ps; [ ]; 1990 - "websocket_api.const" = ps: with ps; [ ]; 1991 - "websocket_api.decorators" = ps: with ps; [ ]; 1992 - "websocket_api.error" = ps: with ps; [ ]; 1993 - "websocket_api.http" = ps: with ps; [ ]; 1994 - "websocket_api.messages" = ps: with ps; [ ]; 1995 - "websocket_api.permissions" = ps: with ps; [ ]; 1996 - "websocket_api.sensor" = ps: with ps; [ ]; 1997 783 "wemo" = ps: with ps; [ ]; 1998 - "wemo.binary_sensor" = ps: with ps; [ ]; 1999 - "wemo.fan" = ps: with ps; [ ]; 2000 - "wemo.light" = ps: with ps; [ ]; 2001 - "wemo.switch" = ps: with ps; [ ]; 2002 784 "whois" = ps: with ps; [ ]; 2003 - "whois.sensor" = ps: with ps; [ ]; 2004 785 "wink" = ps: with ps; [ ]; 2005 - "wink.alarm_control_panel" = ps: with ps; [ ]; 2006 - "wink.binary_sensor" = ps: with ps; [ ]; 2007 - "wink.climate" = ps: with ps; [ ]; 2008 - "wink.cover" = ps: with ps; [ ]; 2009 - "wink.fan" = ps: with ps; [ ]; 2010 - "wink.light" = ps: with ps; [ ]; 2011 - "wink.lock" = ps: with ps; [ ]; 2012 - "wink.scene" = ps: with ps; [ ]; 2013 - "wink.sensor" = ps: with ps; [ ]; 2014 - "wink.switch" = ps: with ps; [ ]; 2015 - "wink.water_heater" = ps: with ps; [ ]; 2016 786 "wirelesstag" = ps: with ps; [ ]; 2017 - "wirelesstag.binary_sensor" = ps: with ps; [ ]; 2018 - "wirelesstag.sensor" = ps: with ps; [ ]; 2019 - "wirelesstag.switch" = ps: with ps; [ ]; 2020 787 "workday" = ps: with ps; [ ]; 2021 - "workday.binary_sensor" = ps: with ps; [ ]; 2022 788 "worldclock" = ps: with ps; [ ]; 2023 - "worldclock.sensor" = ps: with ps; [ ]; 2024 789 "worldtidesinfo" = ps: with ps; [ ]; 2025 - "worldtidesinfo.sensor" = ps: with ps; [ ]; 2026 790 "worxlandroid" = ps: with ps; [ ]; 2027 - "worxlandroid.sensor" = ps: with ps; [ ]; 2028 791 "wsdot" = ps: with ps; [ ]; 2029 - "wsdot.sensor" = ps: with ps; [ ]; 2030 792 "wunderground" = ps: with ps; [ ]; 2031 - "wunderground.sensor" = ps: with ps; [ ]; 2032 793 "wunderlist" = ps: with ps; [ ]; 2033 794 "x10" = ps: with ps; [ ]; 2034 - "x10.light" = ps: with ps; [ ]; 2035 795 "xbox_live" = ps: with ps; [ ]; 2036 - "xbox_live.sensor" = ps: with ps; [ ]; 2037 796 "xeoma" = ps: with ps; [ ]; 2038 - "xeoma.camera" = ps: with ps; [ ]; 2039 797 "xfinity" = ps: with ps; [ ]; 2040 - "xfinity.device_tracker" = ps: with ps; [ ]; 2041 - "xiaomi" = ps: with ps; [ ]; 2042 - "xiaomi.camera" = ps: with ps; [ ha-ffmpeg ]; 2043 - "xiaomi.device_tracker" = ps: with ps; [ ]; 798 + "xiaomi" = ps: with ps; [ ha-ffmpeg ]; 2044 799 "xiaomi_aqara" = ps: with ps; [ ]; 2045 - "xiaomi_aqara.binary_sensor" = ps: with ps; [ ]; 2046 - "xiaomi_aqara.cover" = ps: with ps; [ ]; 2047 - "xiaomi_aqara.light" = ps: with ps; [ ]; 2048 - "xiaomi_aqara.lock" = ps: with ps; [ ]; 2049 - "xiaomi_aqara.sensor" = ps: with ps; [ ]; 2050 - "xiaomi_aqara.switch" = ps: with ps; [ ]; 2051 - "xiaomi_miio" = ps: with ps; [ ]; 2052 - "xiaomi_miio.device_tracker" = ps: with ps; [ construct ]; 2053 - "xiaomi_miio.fan" = ps: with ps; [ construct ]; 2054 - "xiaomi_miio.light" = ps: with ps; [ construct ]; 2055 - "xiaomi_miio.remote" = ps: with ps; [ construct ]; 2056 - "xiaomi_miio.sensor" = ps: with ps; [ construct ]; 2057 - "xiaomi_miio.switch" = ps: with ps; [ construct ]; 2058 - "xiaomi_miio.vacuum" = ps: with ps; [ construct ]; 800 + "xiaomi_miio" = ps: with ps; [ construct ]; 2059 801 "xiaomi_tv" = ps: with ps; [ ]; 2060 - "xiaomi_tv.media_player" = ps: with ps; [ ]; 2061 - "xmpp" = ps: with ps; [ ]; 2062 - "xmpp.notify" = ps: with ps; [ slixmpp ]; 802 + "xmpp" = ps: with ps; [ slixmpp ]; 2063 803 "xs1" = ps: with ps; [ ]; 2064 - "xs1.climate" = ps: with ps; [ ]; 2065 - "xs1.sensor" = ps: with ps; [ ]; 2066 - "xs1.switch" = ps: with ps; [ ]; 2067 804 "yale_smart_alarm" = ps: with ps; [ ]; 2068 - "yale_smart_alarm.alarm_control_panel" = ps: with ps; [ ]; 2069 805 "yamaha" = ps: with ps; [ ]; 2070 - "yamaha.media_player" = ps: with ps; [ ]; 2071 806 "yamaha_musiccast" = ps: with ps; [ ]; 2072 - "yamaha_musiccast.media_player" = ps: with ps; [ ]; 2073 807 "yandextts" = ps: with ps; [ ]; 2074 - "yandextts.tts" = ps: with ps; [ ]; 2075 808 "yeelight" = ps: with ps; [ ]; 2076 - "yeelight.binary_sensor" = ps: with ps; [ ]; 2077 - "yeelight.light" = ps: with ps; [ ]; 2078 809 "yeelightsunflower" = ps: with ps; [ ]; 2079 - "yeelightsunflower.light" = ps: with ps; [ ]; 2080 810 "yessssms" = ps: with ps; [ ]; 2081 - "yessssms.notify" = ps: with ps; [ ]; 2082 - "yi" = ps: with ps; [ ]; 2083 - "yi.camera" = ps: with ps; [ ha-ffmpeg ]; 2084 - "yr" = ps: with ps; [ ]; 2085 - "yr.sensor" = ps: with ps; [ xmltodict ]; 2086 - "yweather" = ps: with ps; [ ]; 2087 - "yweather.sensor" = ps: with ps; [ yahooweather ]; 2088 - "yweather.weather" = ps: with ps; [ yahooweather ]; 811 + "yi" = ps: with ps; [ ha-ffmpeg ]; 812 + "yr" = ps: with ps; [ xmltodict ]; 813 + "yweather" = ps: with ps; [ yahooweather ]; 2089 814 "zabbix" = ps: with ps; [ ]; 2090 - "zabbix.sensor" = ps: with ps; [ ]; 2091 815 "zamg" = ps: with ps; [ ]; 2092 - "zamg.sensor" = ps: with ps; [ ]; 2093 - "zamg.weather" = ps: with ps; [ ]; 2094 816 "zengge" = ps: with ps; [ ]; 2095 - "zengge.light" = ps: with ps; [ ]; 2096 817 "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ]; 2097 - "zestimate" = ps: with ps; [ ]; 2098 - "zestimate.sensor" = ps: with ps; [ xmltodict ]; 818 + "zestimate" = ps: with ps; [ xmltodict ]; 2099 819 "zha" = ps: with ps; [ ]; 2100 - "zha.api" = ps: with ps; [ ]; 2101 - "zha.binary_sensor" = ps: with ps; [ ]; 2102 - "zha.config_flow" = ps: with ps; [ ]; 2103 - "zha.const" = ps: with ps; [ ]; 2104 - "zha.core" = ps: with ps; [ ]; 2105 - "zha.device_entity" = ps: with ps; [ ]; 2106 - "zha.entity" = ps: with ps; [ ]; 2107 - "zha.fan" = ps: with ps; [ ]; 2108 - "zha.light" = ps: with ps; [ ]; 2109 - "zha.sensor" = ps: with ps; [ ]; 2110 - "zha.switch" = ps: with ps; [ ]; 2111 820 "zhong_hong" = ps: with ps; [ ]; 2112 - "zhong_hong.climate" = ps: with ps; [ ]; 2113 821 "zigbee" = ps: with ps; [ ]; 2114 - "zigbee.binary_sensor" = ps: with ps; [ ]; 2115 - "zigbee.light" = ps: with ps; [ ]; 2116 - "zigbee.sensor" = ps: with ps; [ ]; 2117 - "zigbee.switch" = ps: with ps; [ ]; 2118 822 "ziggo_mediabox_xl" = ps: with ps; [ ]; 2119 - "ziggo_mediabox_xl.media_player" = ps: with ps; [ ]; 2120 823 "zone" = ps: with ps; [ ]; 2121 - "zone.config_flow" = ps: with ps; [ ]; 2122 - "zone.const" = ps: with ps; [ ]; 2123 - "zone.zone" = ps: with ps; [ ]; 2124 824 "zoneminder" = ps: with ps; [ zm-py ]; 2125 - "zoneminder.binary_sensor" = ps: with ps; [ zm-py ]; 2126 - "zoneminder.camera" = ps: with ps; [ zm-py ]; 2127 - "zoneminder.sensor" = ps: with ps; [ zm-py ]; 2128 - "zoneminder.switch" = ps: with ps; [ zm-py ]; 2129 825 "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ]; 2130 - "zwave.binary_sensor" = ps: with ps; [ ]; 2131 - "zwave.climate" = ps: with ps; [ ]; 2132 - "zwave.config_flow" = ps: with ps; [ ]; 2133 - "zwave.const" = ps: with ps; [ ]; 2134 - "zwave.cover" = ps: with ps; [ ]; 2135 - "zwave.discovery_schemas" = ps: with ps; [ ]; 2136 - "zwave.fan" = ps: with ps; [ ]; 2137 - "zwave.light" = ps: with ps; [ ]; 2138 - "zwave.lock" = ps: with ps; [ ]; 2139 - "zwave.node_entity" = ps: with ps; [ ]; 2140 - "zwave.sensor" = ps: with ps; [ ]; 2141 - "zwave.switch" = ps: with ps; [ ]; 2142 - "zwave.util" = ps: with ps; [ ]; 2143 - "zwave.workaround" = ps: with ps; [ ]; 2144 826 }; 2145 827 }
+18 -26
pkgs/servers/home-assistant/default.nix
··· 28 28 "10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69") 29 29 (mkOverride "bcrypt" "3.1.6" 30 30 "44636759d222baa62806bbceb20e96f75a015a6381690d1bc2eda91c01ec02ea") 31 - (self: super: { 32 - pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec { 33 - version = "1.6.4"; 34 - src = oldAttrs.src.override { 35 - inherit version; 36 - sha256 = "4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176"; 37 - }; 38 - doCheck = false; # https://github.com/jpadilla/pyjwt/issues/382 39 - }); 40 - }) 41 - (mkOverride "cryptography" "2.5" 42 - "00c4d7gvsymlaw0r13zrm32dcnarmpayjyrh65yymlmr6mrbcij9") 43 - (mkOverride "cryptography_vectors" "2.5" # required by cryptography==2.5 44 - "15qfl3pnw2f11r0z0zhwl56f6pb60ysav8fxmpnz5p80cfwljdik") 45 - (mkOverride "python-slugify" "1.2.6" 46 - "7723daf30996db26573176bddcdf5fcb98f66dc70df05c9cb29f2c79b8193245") 31 + (mkOverride "pyjwt" "1.7.1" 32 + "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96") 33 + (mkOverride "cryptography" "2.6.1" 34 + "26c821cbeb683facb966045e2064303029d572a87ee69ca5a1bf54bf55f93ca6") 35 + (mkOverride "cryptography_vectors" "2.6.1" # required by cryptography==2.6.1 36 + "03f38115dccb266dd96538f94067442a877932c2322661bdc5bf2502c76658af") 37 + (mkOverride "python-slugify" "3.0.2" 38 + "57163ffb345c7e26063435a27add1feae67fa821f1ef4b2f292c25847575d758") 47 39 (mkOverride "pyyaml" "3.13" 48 40 "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf") 49 41 (mkOverride "requests" "2.21.0" 50 42 "502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e") 51 - (mkOverride "ruamel_yaml" "0.15.89" 52 - "86d034aa9e2ab3eacc5f75f5cd6a469a2af533b6d9e60ea92edbba540d21b9b7") 43 + (mkOverride "ruamel_yaml" "0.15.91" 44 + "692f03ed24c8c1d9fa9fd4c045f7ba1c26f1e96edb8bfb4d54854ba26bc02319") 53 45 (mkOverride "voluptuous" "0.11.5" 54 46 "567a56286ef82a9d7ae0628c5842f65f516abcb496e74f3f59f1d7b28df314ef") 55 47 (mkOverride "voluptuous-serialize" "2.1.0" ··· 67 59 # required by home-assistant-frontend 68 60 (self: super: { 69 61 user-agents = super.user-agents.overridePythonAttrs (oldAttrs: rec { 70 - version = "1.1.0"; 62 + version = "2.0.0"; 71 63 src = fetchFromGitHub { 72 64 owner = "selwin"; 73 65 repo = "python-user-agents"; 74 66 rev = "v${version}"; 75 - sha256 = "14kxd780zhp8718xr1z63xffaj3bvxgr4pldh9sv943m4hvi0gw5"; 67 + sha256 = "0ix2yajqdnfj433j50dls90mkmqz8m4fiywxg097zwkkc95wm8s4"; 76 68 }; 77 - doCheck = false; # can be dropped for 2.0 78 69 }); 79 70 }) 80 71 ··· 118 109 extraBuildInputs = extraPackages py.pkgs; 119 110 120 111 # Don't forget to run parse-requirements.py after updating 121 - hassVersion = "0.91.4"; 112 + hassVersion = "0.92.2"; 122 113 123 114 in with py.pkgs; buildPythonApplication rec { 124 115 pname = "homeassistant"; ··· 133 124 owner = "home-assistant"; 134 125 repo = "home-assistant"; 135 126 rev = version; 136 - sha256 = "195pif8lz0qxjsannpi39gxphfb6dkj9lkpah0vjw0pgx753sflv"; 127 + sha256 = "10kqfj7gi8w0d9jalb4i2w4ifla8jkllymjav74abc4b30y08vmw"; 137 128 }; 138 129 139 130 propagatedBuildInputs = [ ··· 145 136 ] ++ componentBuildInputs ++ extraBuildInputs; 146 137 147 138 checkInputs = [ 148 - asynctest pytest pytest-aiohttp requests-mock pydispatcher 139 + asynctest pytest pytest-aiohttp requests-mock pydispatcher aiohue 149 140 ]; 150 141 151 142 checkPhase = '' 152 143 # The components' dependencies are not included, so they cannot be tested 153 - py.test --ignore tests/components 144 + # test_webhook_create_cloudhook imports hass_nabucasa and is thus excluded 145 + py.test --ignore tests/components -k "not test_webhook_create_cloudhook" 154 146 # Some basic components should be tested however 155 147 py.test \ 156 148 tests/components/{api,config,configurator,demo,discovery,frontend,group,history,history_graph} \ 157 - tests/components/{homeassistant,http,introduction,logger,script,shell_command,system_log,websocket_api} 149 + tests/components/{homeassistant,http,logger,script,shell_command,system_log,websocket_api} 158 150 ''; 159 151 160 152 makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
+2 -2
pkgs/servers/home-assistant/frontend.nix
··· 2 2 3 3 buildPythonPackage rec { 4 4 pname = "home-assistant-frontend"; 5 - version = "20190331.0"; 5 + version = "20190427.0"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "2d266a4d3d31af9a50debb99b0e9e9650044698f9157753bec785785057264cf"; 9 + sha256 = "eb14e7be0ad591ad4623c67db752bc4eb4f4e43ce60bb0f6d1909e9ad9399d91"; 10 10 }; 11 11 12 12 propagatedBuildInputs = [ user-agents ];
+26 -29
pkgs/servers/home-assistant/parse-requirements.py
··· 1 1 #! /usr/bin/env nix-shell 2 - #! 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 ])" 2 + #! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ attrs ]) 3 3 # 4 4 # This script downloads Home Assistant's source tarball. 5 - # Inside the homeassistant/components directory, each component has an associated .py file, 6 - # specifying required packages and other components it depends on: 5 + # Inside the homeassistant/components directory, each integration has an associated manifest.json, 6 + # specifying required packages and other integrations it depends on: 7 7 # 8 - # REQUIREMENTS = [ 'package==1.2.3' ] 9 - # DEPENDENCIES = [ 'component' ] 8 + # { 9 + # "requirements": [ "package==1.2.3" ], 10 + # "dependencies": [ "component" ] 11 + # } 10 12 # 11 - # By parsing the files, a dictionary mapping component to requirements and dependencies is created. 13 + # By parsing the files, a dictionary mapping integrations to requirements and dependencies is created. 12 14 # For all of these requirements and the dependencies' requirements, 13 - # Nixpkgs' python3Packages are searched for appropriate names. 14 - # Then, a Nix attribute set mapping component name to dependencies is created. 15 + # nixpkgs' python3Packages are searched for appropriate names. 16 + # Then, a Nix attribute set mapping integration name to dependencies is created. 15 17 16 - from urllib.request import urlopen 17 - import tempfile 18 18 from io import BytesIO 19 - import tarfile 20 - import importlib 19 + import json 20 + import pathlib 21 + import os 22 + import re 21 23 import subprocess 22 - import os 23 24 import sys 24 - import json 25 - import re 25 + import tempfile 26 + import tarfile 27 + from urllib.request import urlopen 26 28 27 29 COMPONENT_PREFIX = 'homeassistant.components' 28 30 PKG_SET = 'python3Packages' ··· 43 45 def parse_components(version='master'): 44 46 components = {} 45 47 with tempfile.TemporaryDirectory() as tmp: 46 - with urlopen('https://github.com/home-assistant/home-assistant/archive/{}.tar.gz'.format(version)) as response: 48 + with urlopen(f'https://github.com/home-assistant/home-assistant/archive/{version}.tar.gz') as response: 47 49 tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp) 48 50 # Use part of a script from the Home Assistant codebase 49 - sys.path.append(tmp + '/home-assistant-{}'.format(version)) 50 - from script.gen_requirements_all import explore_module 51 - for package in explore_module(COMPONENT_PREFIX, True): 52 - # Remove 'homeassistant.components.' prefix 53 - component = package[len(COMPONENT_PREFIX + '.'):] 54 - try: 55 - module = importlib.import_module(package) 56 - components[component] = {} 57 - components[component]['requirements'] = getattr(module, 'REQUIREMENTS', []) 58 - components[component]['dependencies'] = getattr(module, 'DEPENDENCIES', []) 59 - # If there is an ImportError, the imported file is not the main file of the component 60 - except ImportError: 61 - continue 51 + sys.path.append(os.path.join(tmp, f'home-assistant-{version}')) 52 + from script.hassfest.model import Integration 53 + integrations = Integration.load_dir(pathlib.Path( 54 + os.path.join(tmp, f'home-assistant-{version}', 'homeassistant/components') 55 + )) 56 + for domain in sorted(integrations): 57 + integration = integrations[domain] 58 + components[domain] = integration.manifest 62 59 return components 63 60 64 61 # Recursively get the requirements of a component and its dependencies
+12 -4
pkgs/tools/compression/lz4/default.nix
··· 1 - { stdenv, fetchFromGitHub, valgrind 1 + { stdenv, fetchFromGitHub, valgrind, fetchpatch 2 2 , enableStatic ? false, enableShared ? true 3 3 }: 4 4 5 5 stdenv.mkDerivation rec { 6 - name = "lz4-${version}"; 6 + pname = "lz4"; 7 7 version = "1.9.1"; 8 8 9 9 src = fetchFromGitHub { 10 10 sha256 = "1l1caxrik1hqs40vj3bpv1pikw6b74cfazv5c0v6g48zpcbmshl0"; 11 11 rev = "v${version}"; 12 - repo = "lz4"; 13 - owner = "lz4"; 12 + repo = pname; 13 + owner = pname; 14 14 }; 15 + 16 + patches = [ 17 + # Fix detection of Darwin 18 + (fetchpatch { 19 + url = "https://github.com/lz4/lz4/commit/024216ef7394b6411eeaa5b52d0cec9953a44249.patch"; 20 + sha256 = "0j0j2pr6pkplxf083hlwl5q4cfp86q3wd8mc64bcfcr7ysc5pzl3"; 21 + }) 22 + ]; 15 23 16 24 outputs = [ "out" "dev" ]; 17 25
-4
pkgs/tools/misc/getopt/builder.sh
··· 1 - source $stdenv/setup 2 - installFlags="prefix=$out" 3 - makeFlags="CFLAGS=-DWITHOUT_GETTEXT LIBCGETOPT=0" 4 - genericBuild
+12 -8
pkgs/tools/misc/getopt/default.nix
··· 1 1 {stdenv, fetchurl}: 2 2 3 - stdenv.mkDerivation { 4 - name = "getopt-1.1.4"; 5 - builder = ./builder.sh; 3 + stdenv.mkDerivation rec { 4 + pname = "getopt"; 5 + version = "1.1.6"; 6 6 src = fetchurl { 7 - url = http://tarballs.nixos.org/getopt-1.1.4.tar.gz; 8 - sha256 = "1arvjfzw6p310zbgv629w5hkyslrj44imf3r3s2r4ry2jfcks221"; 7 + url = "http://frodo.looijaard.name/system/files/software/${pname}/${pname}-${version}.tar.gz"; 8 + sha256 = "1zn5kp8ar853rin0ay2j3p17blxy16agpp8wi8wfg4x98b31vgyh"; 9 9 }; 10 - preBuild = '' 11 - export buildFlags=CC="$CC" # for darwin 12 - ''; 10 + 11 + makeFlags = [ 12 + "WITHOUT_GETTEXT=1" 13 + "LIBCGETOPT=0" 14 + "prefix=${placeholder "out"}" 15 + "CC:=$(CC)" 16 + ]; 13 17 14 18 meta = { 15 19 platforms = stdenv.lib.platforms.unix;
+8 -10
pkgs/tools/networking/network-manager/default.nix
··· 61 61 # Meson does not support using different directories during build and 62 62 # for installation like Autotools did with flags passed to make install. 63 63 ./fix-install-paths.patch 64 - 65 - # Our gobject-introspection patches make the shared library paths absolute 66 - # in the GIR files. When building docs, the library is not yet installed, 67 - # though, so we need to replace the absolute path with a local one during build. 68 - # We are replacing the variables in postPatch since substituteAll does not support 69 - # placeholders. 70 - ./fix-docs-build.patch 71 64 ]; 72 65 73 66 buildInputs = [ ··· 91 84 postPatch = '' 92 85 patchShebangs ./tools 93 86 patchShebangs libnm/generate-setting-docs.py 87 + ''; 94 88 95 - substituteInPlace libnm/meson.build \ 96 - --subst-var-by DOCS_LD_PRELOAD "${libredirect}/lib/libredirect.so" \ 97 - --subst-var-by DOCS_NIX_REDIRECTS "${placeholder "out"}/lib/libnm.so.0=$PWD/build/libnm/libnm.so.0" 89 + preBuild = '' 90 + # Our gobject-introspection patches make the shared library paths absolute 91 + # in the GIR files. When building docs, the library is not yet installed, 92 + # though, so we need to replace the absolute path with a local one during build. 93 + # We are using a symlink that will be overridden during installation. 94 + mkdir -p ${placeholder "out"}/lib 95 + ln -s $PWD/libnm/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0 98 96 ''; 99 97 100 98 postInstall = ''
-11
pkgs/tools/networking/network-manager/fix-docs-build.patch
··· 1 - --- a/libnm/meson.build 2 - +++ b/libnm/meson.build 3 - @@ -262,6 +262,8 @@ 4 - 'env', '-i', 5 - 'GI_TYPELIB_PATH=' + gi_typelib_path, 6 - 'LD_LIBRARY_PATH=' + ld_library_path, 7 - + 'LD_PRELOAD=' + '@DOCS_LD_PRELOAD@', 8 - + 'NIX_REDIRECTS=' + '@DOCS_NIX_REDIRECTS@', 9 - ] 10 - 11 - name = 'nm-property-docs.xml'
+1 -1
pkgs/tools/text/transifex-client/default.nix
··· 17 17 prePatch = '' 18 18 substituteInPlace requirements.txt --replace "urllib3<1.24" "urllib3<2.0" \ 19 19 --replace "six==1.11.0" "six<2.0.0" \ 20 - --replace "python-slugify==1.2.6" "python-slugify<3.0.0" 20 + --replace "python-slugify==1.2.6" "python-slugify<4.0.0" 21 21 ''; 22 22 23 23 # Requires external resources
+9 -9
pkgs/top-level/all-packages.nix
··· 10621 10621 then callPackage ../development/libraries/gnu-efi { } 10622 10622 else null; 10623 10623 10624 - gnutls = callPackage 10625 - (if stdenv.isDarwin 10626 - # Avoid > 3.5.10 due to frameworks for now; see discussion on: 10627 - # https://github.com/NixOS/nixpkgs/commit/d6454e6a1 10628 - then ../development/libraries/gnutls/3.5.10.nix 10629 - else ../development/libraries/gnutls/3.6.nix) 10630 - { }; 10624 + gnutls = callPackage ../development/libraries/gnutls/default.nix { 10625 + inherit (darwin.apple_sdk.frameworks) Security; 10626 + }; 10631 10627 10632 10628 gnutls-kdh = callPackage ../development/libraries/gnutls-kdh/3.5.nix { 10633 10629 gperf = gperf_3_0; ··· 16094 16090 docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { }; 16095 16091 16096 16092 inherit (callPackages ../data/sgml+xml/stylesheets/xslt/docbook-xsl { }) 16097 - docbook_xsl 16098 - docbook_xsl_ns; 16093 + docbook-xsl-nons 16094 + docbook-xsl-ns; 16095 + 16096 + # TODO: move this to aliases 16097 + docbook_xsl = docbook-xsl-nons; 16098 + docbook_xsl_ns = docbook-xsl-ns; 16099 16099 16100 16100 documentation-highlighter = callPackage ../misc/documentation-highlighter { }; 16101 16101