diff --git a/pkgs/applications/misc/join-desktop/default.nix b/pkgs/applications/misc/join-desktop/default.nix new file mode 100644 index 000000000000..0b09911ddb24 --- /dev/null +++ b/pkgs/applications/misc/join-desktop/default.nix @@ -0,0 +1,73 @@ +{ lib +, stdenv +, fetchurl +, alsa-lib +, autoPatchelfHook +, dpkg +, gtk3 +, makeWrapper +, mesa +, nss +, systemd +, xorg +}: + +stdenv.mkDerivation rec { + pname = "join-desktop"; + version = "1.1.2"; + + src = fetchurl { + url = "https://github.com/joaomgcd/JoinDesktop/releases/download/v${version}/com.joaomgcd.join_${version}_amd64.deb"; + sha256 = "sha256-k1LX/HC3tfL4Raipo7wp/LnfrPa38x8NBeKRyHJ72CU="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + ]; + + buildInputs = [ + alsa-lib + gtk3 + mesa + nss + xorg.libXScrnSaver + xorg.libXtst + ]; + + unpackPhase = "dpkg-deb -x $src ."; + + runtimeDependencies = [ + (lib.getLib systemd) + # TODO: check if they are required + # libnotify + # libappindicator + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/join-desktop + + mv usr/share/* $out/share + mv opt/Join\ Desktop/* $out/share/join-desktop + + ln -s $out/share/join-desktop/com.joaomgcd.join $out/bin/ + + substituteInPlace $out/share/applications/com.joaomgcd.join.desktop \ + --replace "/opt/Join Desktop/com.joaomgcd.join" "com.joaomgcd.join" + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/joaomgcd/JoinDesktop/"; + description = "Desktop app for Join"; + # on https://joaoapps.com/join/desktop/ "Join Desktop is an open source app" but no license + license = licenses.free; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; + +} diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 6dd6d98c0efd..a303dabad327 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -39,14 +39,12 @@ , glibc # gconv + locale # Package customization: -, gnomeSupport ? false, gnome2 ? null -, gnomeKeyringSupport ? false, libgnome-keyring3 ? null , cupsSupport ? true, cups ? null , proprietaryCodecs ? true , pulseSupport ? false, libpulseaudio ? null , ungoogled ? false, ungoogled-chromium # Optional dependencies: -, libgcrypt ? null # gnomeSupport || cupsSupport +, libgcrypt ? null # cupsSupport , systemdSupport ? stdenv.isLinux , systemd }: @@ -154,8 +152,6 @@ let curl libepoxy ] ++ optional systemdSupport systemd - ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ] - ++ optional gnomeKeyringSupport libgnome-keyring3 ++ optionals cupsSupport [ libgcrypt cups ] ++ optional pulseSupport libpulseaudio; @@ -271,7 +267,7 @@ let # Optional features: use_gio = true; - use_gnome_keyring = gnomeKeyringSupport; + use_gnome_keyring = false; # Superseded by libsecret use_cups = cupsSupport; # Feature overrides: diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index e8d9a13f9ac7..5bd24faafe40 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -8,8 +8,6 @@ # package customization # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) , channel ? "stable" -, gnomeSupport ? false, gnome2 ? null -, gnomeKeyringSupport ? false , proprietaryCodecs ? true , enableWideVine ? false , ungoogled ? false # Whether to build chromium or ungoogled-chromium @@ -46,7 +44,7 @@ let mkChromiumDerivation = callPackage ./common.nix ({ inherit channel chromiumVersionAtLeast versionRange; - inherit gnome2 gnomeSupport gnomeKeyringSupport proprietaryCodecs + inherit proprietaryCodecs cupsSupport pulseSupport ungoogled; gnChromium = gn.overrideAttrs (oldAttrs: { inherit (upstream-info.deps.gn) version; diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix index 3c43715dd981..c15a5377173e 100644 --- a/pkgs/applications/networking/instant-messengers/zulip/default.nix +++ b/pkgs/applications/networking/instant-messengers/zulip/default.nix @@ -5,12 +5,12 @@ let pname = "zulip"; - version = "5.9.0"; + version = "5.9.1"; name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; - hash = "sha256-qiGkZuGJsKuquMuAcO+9wbU4KW++uyOb4TKb9lCgZmI="; + hash = "sha256-hUi4t7WdZG6GmNQfUcG4E9qGJDdPIMbglJzwR7tFNVQ="; name="${pname}-${version}.AppImage"; }; diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index 954fd3f051a9..68082f5de41b 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -234,9 +234,10 @@ stdenv.mkDerivation rec { # the .desktop is both invalid and pointless rm -f $out/share/applications/qemu.desktop - # copy qemu-ga (guest agent) to separate output + # move qemu-ga (guest agent) to separate output mkdir -p $ga/bin - cp $out/bin/qemu-ga $ga/bin/ + mv $out/bin/qemu-ga $ga/bin/ + ln -s $ga/bin/qemu-ga $out/bin remove-references-to -t $out $ga/bin/qemu-ga '' + lib.optionalString gtkSupport '' # wrap GTK Binaries diff --git a/pkgs/development/libraries/glibmm/2.68.nix b/pkgs/development/libraries/glibmm/2.68.nix index 1ba18898ad89..e0ef34a451e3 100644 --- a/pkgs/development/libraries/glibmm/2.68.nix +++ b/pkgs/development/libraries/glibmm/2.68.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "glibmm"; - version = "2.70.0"; + version = "2.72.0"; outputs = [ "out" "dev" ]; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-gAj9iu3cyGej+X8RPeYl9ulu+Yz3hgN5gTqcD+/9tSA="; + sha256 = "sha256-eCkkvxNklvOHj9wqCqnvQPDFFeLD4FTK/6XS5SOAxx4="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/phash/default.nix b/pkgs/development/libraries/phash/default.nix index 4596c5aaf4f6..73097db5ccc6 100644 --- a/pkgs/development/libraries/phash/default.nix +++ b/pkgs/development/libraries/phash/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { pname = "pHash"; - version = "0.9.4"; + version = "0.9.6"; buildInputs = [ cimg ]; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { owner = "clearscene"; repo = "pHash"; rev = version; - sha256 = "0y4gknfkns5sssfaj0snyx29752my20xmxajg6xggijx0myabbv0"; + sha256 = "sha256-frISiZ89ei7XfI5F2nJJehfQZsk0Mlb4n91q/AiZ2vA="; }; meta = with lib; { diff --git a/pkgs/development/libraries/robin-map/default.nix b/pkgs/development/libraries/robin-map/default.nix index 4ab48c484426..229714723cdf 100644 --- a/pkgs/development/libraries/robin-map/default.nix +++ b/pkgs/development/libraries/robin-map/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "robin-map"; - version = "1.0.0"; + version = "1.0.1"; src = fetchFromGitHub { owner = "Tessil"; repo = pname; rev = "v${version}"; - sha256 = "sha256-h59khOUg7vzw64EAMT/uzTKHzx2M9q+pc2BhfGQiY3Q="; + sha256 = "sha256-4OW7PHow+O7R4t5+6iPV3E+1+6XPhqxrL1LQZitmCzQ="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/python-modules/aioh2/default.nix b/pkgs/development/python-modules/aioh2/default.nix deleted file mode 100644 index 1ae997c60e8c..000000000000 --- a/pkgs/development/python-modules/aioh2/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, buildPythonPackage, isPy3k, fetchPypi, h2, priority }: - -buildPythonPackage rec { - pname = "aioh2"; - version = "0.2.2"; - disabled = !isPy3k; - - src = fetchPypi { - inherit pname version; - sha256 = "03i24wzpw0mrnrpck3w6qy83iigwl7n99sdrndqzxfyrc69b99wd"; - }; - - propagatedBuildInputs = [ h2 priority ]; - - doCheck = false; # https://github.com/decentfox/aioh2/issues/17 - - meta = with lib; { - homepage = "https://github.com/decentfox/aioh2"; - description = "HTTP/2 implementation with hyper-h2 on Python 3 asyncio"; - license = licenses.bsd3; - maintainers = [ maintainers.qyliss ]; - broken = true; # requires h2<4 - }; -} diff --git a/pkgs/development/tools/database/pgcli/default.nix b/pkgs/development/tools/database/pgcli/default.nix index e8f053679c32..40c204812887 100644 --- a/pkgs/development/tools/database/pgcli/default.nix +++ b/pkgs/development/tools/database/pgcli/default.nix @@ -5,7 +5,6 @@ , cli-helpers , click , configobj -, humanize , prompt-toolkit , psycopg2 , pygments @@ -15,25 +14,23 @@ , keyring , pendulum , pytestCheckHook +, sshtunnel , mock }: buildPythonApplication rec { pname = "pgcli"; - version = "3.3.1"; - - disabled = !isPy3k; + version = "3.4.1"; src = fetchPypi { inherit pname version; - sha256 = "sha256-/MyeVcpopK0Ih6z6KZGvs7ivk/PM6a2iSeatiYeZM6E="; + sha256 = "sha256-8DkwGH4n1g32WMqKBPtgHsXXR2xzXysVQsat7Fysj+I="; }; propagatedBuildInputs = [ cli-helpers click configobj - humanize prompt-toolkit psycopg2 pygments @@ -42,6 +39,7 @@ buildPythonApplication rec { setproctitle keyring pendulum + sshtunnel ]; checkInputs = [ pytestCheckHook mock ]; diff --git a/pkgs/development/tools/go-migrate/default.nix b/pkgs/development/tools/go-migrate/default.nix index ed2d508017a0..2b7b70e36c48 100644 --- a/pkgs/development/tools/go-migrate/default.nix +++ b/pkgs/development/tools/go-migrate/default.nix @@ -15,11 +15,13 @@ buildGoModule rec { subPackages = [ "cmd/migrate" ]; + tags = [ "postgres" "mysql" "redshift" "cassandra" "spanner" "cockroachdb" "clickhouse" "mongodb" "sqlserver" "firebird" "neo4j" "pgx" ]; + meta = with lib; { - homepage = "https://github.com/golang-migrate/migrate"; + homepage = "https://github.com/golang-migrate/migrate"; description = "Database migrations. CLI and Golang library"; maintainers = with maintainers; [ offline ]; - license = licenses.mit; + license = licenses.mit; mainProgram = "migrate"; }; } diff --git a/pkgs/development/tools/golint/default.nix b/pkgs/development/tools/golint/default.nix index aa6ce6c7cda5..4a835067ac81 100644 --- a/pkgs/development/tools/golint/default.nix +++ b/pkgs/development/tools/golint/default.nix @@ -1,22 +1,27 @@ { lib, buildGoModule, fetchgit }: buildGoModule rec { - pname = "lint"; - version = "20201208-${lib.strings.substring 0 7 rev}"; - rev = "83fdc39ff7b56453e3793356bcff3070b9b96445"; + pname = "golint"; + version = "unstable-2020-12-08"; # we must allow references to the original `go` package, as golint uses # compiler go/build package to load the packages it's linting. allowGoReference = true; src = fetchgit { - inherit rev; url = "https://go.googlesource.com/lint"; + rev = "83fdc39ff7b56453e3793356bcff3070b9b96445"; sha256 = "sha256-g4Z9PREOxGoN7n/XhutawsITBznJlbz6StXeDYvOQ1c="; }; vendorSha256 = "sha256-dPadFoymYu2Uw2AXZfbaBfxsN8IWMuK1TrcknHco3Bo="; + # tests no longer work: + # found packages pkg (4.go) and foo (blank-import-lib.go) in /build/lint-6edffad/testdata + # testdata/errorf-custom.go:9:2: cannot find package "." in: + # /build/lint-6edffad/vendor/github.com/pkg/errors + doCheck = false; + meta = with lib; { homepage = "https://golang.org"; description = "Linter for Go source code"; diff --git a/pkgs/servers/dns/doh-proxy/default.nix b/pkgs/servers/dns/doh-proxy/default.nix deleted file mode 100644 index 8128ec6f04d4..000000000000 --- a/pkgs/servers/dns/doh-proxy/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, python3Packages }: - -with python3Packages; -buildPythonApplication rec { - pname = "doh-proxy"; - version = "0.0.9"; - - src = python3Packages.fetchPypi { - inherit pname version; - sha256 = "1fxzxipzdvk75yrcr78mpdz8lwpisba67lk4jcwxdnkv6997dwfp"; - }; - - nativeBuildInputs = [ pytest-runner flake8]; - - propagatedBuildInputs = [ - aioh2 - dnspython - aiohttp-remotes - ]; - - checkInputs = [ - asynctest - unittest-data-provider - pytest - pytest-cov - pytest-aiohttp - ]; - - # attempts to resolve address - checkPhase = '' - pytest -k 'not servers' - ''; - - meta = with lib; { - homepage = "https://facebookexperimental.github.io/doh-proxy/"; - description = "A proof of concept DNS-Over-HTTPS proxy"; - license = licenses.bsd3; - maintainers = [ maintainers.qyliss ]; - }; -} diff --git a/pkgs/tools/X11/xdg-utils/default.nix b/pkgs/tools/X11/xdg-utils/default.nix index f10510051edb..7d01ee59b3ef 100644 --- a/pkgs/tools/X11/xdg-utils/default.nix +++ b/pkgs/tools/X11/xdg-utils/default.nix @@ -1,9 +1,7 @@ -{ lib, stdenv, fetchgit, fetchFromGitHub +{ lib, stdenv, fetchFromGitLab, fetchFromGitHub , file, libxslt, docbook_xml_dtd_412, docbook_xsl, xmlto , w3m, gnugrep, gnused, coreutils, xset, perlPackages -, mimiSupport ? false, gawk ? null }: - -assert mimiSupport -> gawk != null; +, mimiSupport ? false, gawk }: let # A much better xdg-open @@ -24,8 +22,10 @@ stdenv.mkDerivation rec { pname = "xdg-utils"; version = "unstable-2020-10-21"; - src = fetchgit { - url = "https://gitlab.freedesktop.org/xdg/${pname}.git"; + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "xdg"; + repo = "xdg-utils"; rev = "d11b33ec7f24cfb1546f6b459611d440013bdc72"; sha256 = "sha256-8PtXfI8hRneEpnUvIV3M+6ACjlkx0w/NEiJFdGbbHnQ="; }; diff --git a/pkgs/tools/misc/melody/default.nix b/pkgs/tools/misc/melody/default.nix new file mode 100644 index 000000000000..7dfc7eab4fd8 --- /dev/null +++ b/pkgs/tools/misc/melody/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchCrate, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "melody"; + version = "0.13.9"; + + src = fetchCrate { + pname = "melody_cli"; + inherit version; + sha256 = "1vqiciridm0pbh5yf42p2jfis908p6r9q3jaqy2hx3f5aggbf09q"; + }; + + cargoSha256 = "1gf2km06qzvc0xv4vfxm6vdp3c5lgcjwwl92f4frga3cx51vbrzh"; + + meta = with lib; { + description = "Language that compiles to regular expressions"; + homepage = "https://github.com/yoav-lavi/melody"; + license = licenses.mit; + maintainers = with maintainers; [ jyooru ]; + }; +} diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix index 494fb946ea6e..61cb7bd6382d 100644 --- a/pkgs/tools/networking/nebula/default.nix +++ b/pkgs/tools/networking/nebula/default.nix @@ -13,8 +13,6 @@ buildGoModule rec { vendorSha256 = "5Yv2t5vdUNCcCo2KAm1xCkRVrt6gIasKHLqH7VVPDuU="; - doCheck = false; - subPackages = [ "cmd/nebula" "cmd/nebula-cert" ]; ldflags = [ "-X main.Build=${version}" ]; diff --git a/pkgs/tools/networking/openntpd/default.nix b/pkgs/tools/networking/openntpd/default.nix index e6703c748fce..e1497ab08527 100644 --- a/pkgs/tools/networking/openntpd/default.nix +++ b/pkgs/tools/networking/openntpd/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { sha256 = "0ijsylc7a4jlpxsqa0jq1w1c7333id8pcakzl7a5749ria1xp0l5"; }; - prePatch = '' + postPatch = '' sed -i '20i#include ' src/ntpd.h sed -i '19i#include ' src/log.c ''; @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { ]; meta = with lib; { - homepage = "http://www.openntpd.org/"; + homepage = "https://www.openntpd.org/"; license = licenses.bsd3; description = "OpenBSD NTP daemon (Debian port)"; platforms = platforms.all; diff --git a/pkgs/tools/networking/smartdns/default.nix b/pkgs/tools/networking/smartdns/default.nix index fd4cdbaf977d..399aeefd9c3d 100644 --- a/pkgs/tools/networking/smartdns/default.nix +++ b/pkgs/tools/networking/smartdns/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "smartdns"; - version = "36"; + version = "36.1"; src = fetchFromGitHub { owner = "pymumu"; repo = pname; rev = "Release${version}"; - sha256 = "sha256-sjrRPmTJRCUnMrA08M/VdYhL7/OfQY30/t1loLPSrlQ="; + sha256 = "sha256-5pAt7IjgbCCGaHeSoQvuoc6KPD9Yn5iXL1CAawgBeY0="; }; buildInputs = [ openssl ]; diff --git a/pkgs/tools/text/runiq/default.nix b/pkgs/tools/text/runiq/default.nix index 6d7bb5e7eb0b..7b1e99978a45 100644 --- a/pkgs/tools/text/runiq/default.nix +++ b/pkgs/tools/text/runiq/default.nix @@ -2,14 +2,14 @@ rustPlatform.buildRustPackage rec { pname = "runiq"; - version = "1.2.1"; + version = "1.2.2"; src = fetchCrate { inherit pname version; - sha256 = "0xhd1z8mykxg9kiq8nw5agy1jxfk414czq62xm1s13ssig3h7jqj"; + sha256 = "sha256-WPQgTQICZ0DFr+7D99UGMx+I78376IC6iIJ3tCsj0Js="; }; - cargoSha256 = "1g4yfz5xq9lqwh0ggyn8kn8bnzrqfmh7kx455md5ranrqqh0x5db"; + cargoSha256 = "sha256-QKtrd690eoPXyd5CQg5/yAiTDk297y60XaUdoeFAe0c="; meta = with lib; { description = "An efficient way to filter duplicate lines from input, à la uniq"; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 09208dd45f3f..6f9aadf4b76a 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -310,6 +310,7 @@ mapAliases ({ docbook5_xsl = throw "'docbook5_xsl' has been renamed to/replaced by 'docbook_xsl_ns'"; # Converted to throw 2022-02-22 docbookrx = throw "docbookrx has been removed since it was unmaintained"; # Added 2021-01-12 docbook_xml_xslt = throw "'docbook_xml_xslt' has been renamed to/replaced by 'docbook_xsl'"; # Converted to throw 2022-02-22 + doh-proxy = throw "doh-proxy has been removed because upstream abandoned it and its depedencies where removed."; # Added 2022-03-30 docker_compose = throw "'docker_compose' has been renamed to/replaced by 'docker-compose'"; # Converted to throw 2022-02-22 dolphinEmu = dolphin-emu; # Added 2021-11-10 dolphinEmuMaster = dolphin-emu-beta; # Added 2021-11-10 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b746e502f249..88a1aa43d99f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21211,8 +21211,6 @@ with pkgs; dex2jar = callPackage ../development/tools/java/dex2jar { }; - doh-proxy = callPackage ../servers/dns/doh-proxy { }; - doh-proxy-rust = callPackage ../servers/dns/doh-proxy-rust { inherit (darwin.apple_sdk.frameworks) Security; }; @@ -24771,6 +24769,8 @@ with pkgs; jnetmap = callPackage ../applications/networking/jnetmap {}; + join-desktop = callPackage ../applications/misc/join-desktop { }; + libbitcoin = callPackage ../tools/misc/libbitcoin/libbitcoin.nix { boost = boost175; # fatal error: 'boost/interprocess/detail/posix_time_types_wrk.hpp' file not found }; @@ -27499,6 +27499,8 @@ with pkgs; melmatcheq.lv2 = callPackage ../applications/audio/melmatcheq.lv2 { }; + melody = callPackage ../tools/misc/melody { }; + melonDS = libsForQt5.callPackage ../applications/emulators/melonDS { }; meme-image-generator = callPackage ../applications/graphics/meme-image-generator { }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index f259b7cc7f68..cbbde9c8802c 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -33,6 +33,7 @@ in ### Deprecated aliases - for backward compatibility mapAliases ({ + aioh2 = throw "aioh2 has been removed because it is abandoned and broken."; # Added 2022-03-30 anyjson = throw "anyjson has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18 asyncio-nats-client = nats-py; # added 2022-02-08 bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 78c579c3c6ba..b675f9355377 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -289,8 +289,6 @@ in { aiogithubapi = callPackage ../development/python-modules/aiogithubapi { }; - aioh2 = callPackage ../development/python-modules/aioh2 { }; - aioharmony = callPackage ../development/python-modules/aioharmony { }; aiohomekit = callPackage ../development/python-modules/aiohomekit { };