about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2024-06-24 00:03:38 +0000
committerGitHub <noreply@github.com>2024-06-24 00:03:38 +0000
commitfca5c19283f5e09512443c6daf6f463d031afcfa (patch)
tree184534ff4d8729fe347e07e1934adb89610b2b34 /pkgs
parent56e59031d2f75ceaa1c4d5d48f35c75473d86cc9 (diff)
parent761210ff4fad1dd465530430e6dfc186affe47fe (diff)
Merge staging-next into staging
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix6
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix20
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix20
-rw-r--r--pkgs/applications/editors/emacs/sources.nix6
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh13
-rw-r--r--pkgs/by-name/al/alertmanager-webhook-logger/package.nix33
-rw-r--r--pkgs/by-name/gp/gpsprune/package.nix4
-rw-r--r--pkgs/by-name/mi/miru/darwin.nix33
-rw-r--r--pkgs/by-name/mi/miru/linux.nix31
-rw-r--r--pkgs/by-name/mi/miru/package.nix43
-rw-r--r--pkgs/by-name/so/solo5/package.nix6
-rw-r--r--pkgs/development/python-modules/textual/default.nix4
-rw-r--r--pkgs/development/tools/language-servers/csharp-ls/default.nix4
-rw-r--r--pkgs/servers/home-assistant/custom-components/default.nix2
-rw-r--r--pkgs/servers/home-assistant/custom-components/spook/default.nix38
-rw-r--r--pkgs/servers/home-assistant/custom-components/spook/remove-sub-integration-symlink-hack.patch109
-rw-r--r--pkgs/servers/janus-gateway/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/alertmanager.nix3
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix8
-rw-r--r--pkgs/servers/monitoring/prometheus/pushgateway.nix9
-rw-r--r--pkgs/servers/monitoring/thanos/default.nix2
-rw-r--r--pkgs/tools/misc/panoply/default.nix4
22 files changed, 348 insertions, 54 deletions
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
index 8d25c1ec2c2f1..1ba0ea1519b06 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
@@ -4453,10 +4453,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.7pre0.20240521.135840";
+        version = "9.7pre0.20240530.133120";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-9.7pre0.20240521.135840.tar";
-          sha256 = "06j7kjbpd390i0kqvvnlkpdzqkwiicbdgjymif338l0qx2kl4sg5";
+          url = "https://elpa.gnu.org/devel/org-9.7pre0.20240530.133120.tar";
+          sha256 = "sha256-DuuLDBJKI2LwC0PH9PtujcPvaqaKLWYij+KzP1U7o9M=";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix
index 00f50233d50f1..9550969adbbe2 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix
@@ -64,6 +64,26 @@ self: let
         '';
       });
 
+      org = super.org.overrideAttrs (old: {
+        dontUnpack = false;
+        patches = old.patches or [ ] ++ [
+          # security fix backported from 9.7.5
+          (pkgs.fetchpatch {
+            url = "https://git.savannah.gnu.org/cgit/emacs/org-mode.git/patch/?id=f4cc61636947b5c2f0afc67174dd369fe3277aa8";
+            hash = "sha256-bGgsnTSn6SMu1J8P2BfJjrKx2845FCsUB2okcIrEjDg=";
+            stripLen = 1;
+          })
+        ];
+        postPatch = old.postPatch or "" + "\n" + ''
+          pushd ..
+          local content_directory=${old.ename}-${old.version}
+          src=$PWD/$content_directory.tar
+          tar --create --verbose --file=$src $content_directory
+          popd
+        '';
+        dontBuild = true;
+      });
+
       pq = super.pq.overrideAttrs (old: {
         buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.postgresql ];
       });
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
index 18a0a36fc06cb..a3d729b636eee 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
@@ -141,6 +141,26 @@ self: let
         };
       });
 
+      org = super.org.overrideAttrs (old: {
+        dontUnpack = false;
+        patches = old.patches or [ ] ++ [
+          # security fix backported from 9.7.5
+          (pkgs.fetchpatch {
+            url = "https://git.savannah.gnu.org/cgit/emacs/org-mode.git/patch/?id=f4cc61636947b5c2f0afc67174dd369fe3277aa8";
+            hash = "sha256-bGgsnTSn6SMu1J8P2BfJjrKx2845FCsUB2okcIrEjDg=";
+            stripLen = 1;
+          })
+        ];
+        postPatch = old.postPatch or "" + "\n" + ''
+          pushd ..
+          local content_directory=${old.ename}-${old.version}
+          src=$PWD/$content_directory.tar
+          tar --create --verbose --file=$src $content_directory
+          popd
+        '';
+        dontBuild = true;
+      });
+
       plz = super.plz.overrideAttrs (
         old: {
           dontUnpack = false;
diff --git a/pkgs/applications/editors/emacs/sources.nix b/pkgs/applications/editors/emacs/sources.nix
index e1bea448e5856..da243044b689a 100644
--- a/pkgs/applications/editors/emacs/sources.nix
+++ b/pkgs/applications/editors/emacs/sources.nix
@@ -93,6 +93,12 @@ in
         url = "https://gitweb.gentoo.org/proj/emacs-patches.git/plain/emacs/28.2/12_all_org-remote-unsafe.patch?id=af40e12cb742510e5d40a06ffc6dfca97e340dd6";
         hash = "sha256-b6WU1o3PfDV/6BTPfPNUFny6oERJCNsDrvflxX3Yvek=";
       })
+
+      # security fix from Emacs 29.4
+      (fetchpatch {
+        url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=c645e1d8205f0f0663ec4a2d27575b238c646c7c";
+        hash = "sha256-G+gGQx5w3KuWMotR1n/sYYL8WyAABYW3fUPeffMMs38=";
+      })
     ];
   });
 
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh
index f9aba29a43555..a9701f2898b27 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh
@@ -1,3 +1,12 @@
+# For compatibility, convert makeWrapperArgs to an array unless we are using
+# structured attributes. That is, we ensure that makeWrapperArgs is always an
+# array.
+# See https://github.com/NixOS/nixpkgs/blob/858f4db3048c5be3527e183470e93c1a72c5727c/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh#L1-L3
+# and https://github.com/NixOS/nixpkgs/pull/313005#issuecomment-2175482920
+if [[ -z $__structuredAttrs ]]; then
+    makeWrapperArgs=( ${makeWrapperArgs-} )
+fi
+
 # First argument is the executable you want to wrap,
 # the second is the destination for the wrapper.
 wrapDotnetProgram() {
@@ -17,10 +26,8 @@ dotnetFromEnv'
 
     if [[ -n $__structuredAttrs ]]; then
         local -r dotnetRuntimeDepsArray=( "${dotnetRuntimeDeps[@]}" )
-        local -r makeWrapperArgsArray=( "${makeWrapperArgs[@]}" )
     else
         local -r dotnetRuntimeDepsArray=($dotnetRuntimeDeps)
-        local -r makeWrapperArgsArray=($makeWrapperArgs)
     fi
 
     local dotnetRuntimeDepsFlags=()
@@ -49,7 +56,7 @@ dotnetFromEnv'
         "${dotnetRuntimeDepsFlags[@]}" \
         "${dotnetRootFlagsArray[@]}" \
         "${gappsWrapperArgs[@]}" \
-        "${makeWrapperArgsArray[@]}"
+        "${makeWrapperArgs[@]}"
 
     echo "installed wrapper to "$2""
 }
diff --git a/pkgs/by-name/al/alertmanager-webhook-logger/package.nix b/pkgs/by-name/al/alertmanager-webhook-logger/package.nix
new file mode 100644
index 0000000000000..e04759dda7d37
--- /dev/null
+++ b/pkgs/by-name/al/alertmanager-webhook-logger/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, nixosTests
+}:
+
+buildGoModule rec {
+  pname = "alertmanager-webhook-logger";
+  version = "1.0";
+  rev = "${version}";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "tomtom-international";
+    repo = "alertmanager-webhook-logger";
+    hash = "sha256-mJbpDiTwUsFm0lDKz8UE/YF6sBvcSSR6WWLrfKvtri4=";
+  };
+
+  vendorHash = "sha256-gKtOoM9TuEIHgvSjZhqWmdexG2zDjlPuM0HjjP52DOI=";
+
+  doCheck = true;
+
+  passthru.tests = { inherit (nixosTests.prometheus) alertmanager; };
+
+  meta = with lib; {
+    description = "Generates (structured) log messages from Prometheus AlertManager webhook notifier";
+    mainProgram = "alertmanager-webhook-logger";
+    homepage = "https://github.com/tomtom-international/alertmanager-webhook-logger";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jpds ];
+  };
+}
diff --git a/pkgs/by-name/gp/gpsprune/package.nix b/pkgs/by-name/gp/gpsprune/package.nix
index 10975337b66e2..20b5dc15d6ce4 100644
--- a/pkgs/by-name/gp/gpsprune/package.nix
+++ b/pkgs/by-name/gp/gpsprune/package.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gpsprune";
-  version = "24.1";
+  version = "24.2";
 
   src = fetchurl {
     url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
-    sha256 = "sha256-k7aRuz/FOqQe2C0luiUwoFxnIvgM6opwsGZV7+hxJSM=";
+    sha256 = "sha256-wGg7WPj61yx7zMBIdH9ls18BnD1R713U5Vgc/kL9qYs=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/by-name/mi/miru/darwin.nix b/pkgs/by-name/mi/miru/darwin.nix
new file mode 100644
index 0000000000000..af841bb43bbd6
--- /dev/null
+++ b/pkgs/by-name/mi/miru/darwin.nix
@@ -0,0 +1,33 @@
+{
+  stdenvNoCC,
+  fetchurl,
+  unzip,
+  makeWrapper,
+
+  pname,
+  version,
+  meta,
+}:
+stdenvNoCC.mkDerivation rec {
+  inherit pname version meta;
+
+  src = fetchurl {
+    url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/mac-Miru-${version}-mac.zip";
+    hash = "sha256-OakGB5Fz1Tlxa/Uu7xHlKoEF9VRfWFQ9CjsR0eCRyQw=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [
+    unzip
+    makeWrapper
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/{bin,Applications}
+    cp -r Miru.app $out/Applications/
+    makeWrapper $out/Applications/Miru.app/Contents/MacOS/Miru $out/bin/miru
+    runHook postInstall
+  '';
+}
diff --git a/pkgs/by-name/mi/miru/linux.nix b/pkgs/by-name/mi/miru/linux.nix
new file mode 100644
index 0000000000000..f86aee30bfd1e
--- /dev/null
+++ b/pkgs/by-name/mi/miru/linux.nix
@@ -0,0 +1,31 @@
+{
+  fetchurl,
+  appimageTools,
+
+  pname,
+  version,
+  meta,
+}:
+
+appimageTools.wrapType2 rec {
+  inherit pname version meta;
+
+  src = fetchurl {
+    url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/linux-Miru-${version}.AppImage";
+    name = "${pname}-${version}.AppImage";
+    sha256 = "sha256-aPutbJthUhZtBYkYuUB5v88OdhOrcnqw4AhnepfO1B4=";
+  };
+
+  extraInstallCommands =
+    let
+      contents = appimageTools.extractType2 { inherit pname version src; };
+    in
+    ''
+      mkdir -p "$out/share/applications"
+      mkdir -p "$out/share/lib/miru"
+      cp -r ${contents}/{locales,resources} "$out/share/lib/miru"
+      cp -r ${contents}/usr/* "$out"
+      cp "${contents}/${pname}.desktop" "$out/share/applications/"
+      substituteInPlace $out/share/applications/${pname}.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+    '';
+}
diff --git a/pkgs/by-name/mi/miru/package.nix b/pkgs/by-name/mi/miru/package.nix
index 75eb7b4823c5e..eeb1b0688dbc3 100644
--- a/pkgs/by-name/mi/miru/package.nix
+++ b/pkgs/by-name/mi/miru/package.nix
@@ -1,39 +1,22 @@
-{ lib
-, fetchurl
-, appimageTools
+{
+  stdenv,
+  lib,
+  callPackage,
 }:
-
-appimageTools.wrapType2 rec {
+let
   pname = "miru";
   version = "5.1.4";
-
-  src = fetchurl {
-    url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/linux-Miru-${version}.AppImage";
-    name = "${pname}-${version}.AppImage";
-    sha256 = "sha256-aPutbJthUhZtBYkYuUB5v88OdhOrcnqw4AhnepfO1B4=";
-  };
-
-  extraInstallCommands =
-    let
-      contents = appimageTools.extractType2 { inherit pname version src; };
-    in
-    ''
-      mkdir -p "$out/share/applications"
-      mkdir -p "$out/share/lib/miru"
-      cp -r ${contents}/{locales,resources} "$out/share/lib/miru"
-      cp -r ${contents}/usr/* "$out"
-      cp "${contents}/${pname}.desktop" "$out/share/applications/"
-      substituteInPlace $out/share/applications/${pname}.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
-    '';
-
   meta = with lib; {
     description = "Stream anime torrents, real-time with no waiting for downloads";
     homepage = "https://miru.watch";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers.d4ilyrun ];
+    maintainers = with maintainers; [
+      d4ilyrun
+      matteopacini
+    ];
     mainProgram = "miru";
 
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" ] ++ platforms.darwin;
     sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
 
     longDescription = ''
@@ -49,4 +32,8 @@ appimageTools.wrapType2 rec {
       instead of flat out closing MPV.
     '';
   };
-}
+in
+if stdenv.isDarwin then
+  callPackage ./darwin.nix { inherit pname version meta; }
+else
+  callPackage ./linux.nix { inherit pname version meta; }
diff --git a/pkgs/by-name/so/solo5/package.nix b/pkgs/by-name/so/solo5/package.nix
index 57ccd1e24b2bf..1ca866c81e5e2 100644
--- a/pkgs/by-name/so/solo5/package.nix
+++ b/pkgs/by-name/so/solo5/package.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, dosfstools, libseccomp, makeWrapper, mtools, parted
-, pkg-config, qemu, syslinux, util-linux }:
+, pkg-config, qemu_test, syslinux, util-linux }:
 
 let
   version = "0.8.1";
@@ -55,10 +55,12 @@ in stdenv.mkDerivation {
   '';
 
   doCheck = stdenv.hostPlatform.isLinux;
-  nativeCheckInputs = [ util-linux qemu ];
+  nativeCheckInputs = [ util-linux qemu_test ];
   checkPhase = ''
     runHook preCheck
     patchShebangs tests
+    substituteInPlace scripts/virtio-run/solo5-virtio-run.sh \
+      --replace " -no-acpi" ""
     ./tests/bats-core/bats ./tests/tests.bats
     runHook postCheck
   '';
diff --git a/pkgs/development/python-modules/textual/default.nix b/pkgs/development/python-modules/textual/default.nix
index c6a677f4c65a7..ea00817ab76de 100644
--- a/pkgs/development/python-modules/textual/default.nix
+++ b/pkgs/development/python-modules/textual/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "textual";
-  version = "0.68.0";
+  version = "0.70.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "Textualize";
     repo = "textual";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nxQVxe7lXMcxyqh4SWcQ/A6eQcEzkSshKmpweHpn7JE=";
+    hash = "sha256-nOgiMT+q2pc94Q6g3MvKQVhGJYSGNnoE+5/foK62zLM=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/tools/language-servers/csharp-ls/default.nix b/pkgs/development/tools/language-servers/csharp-ls/default.nix
index eb8c6cd2bb31b..0972bac8c8486 100644
--- a/pkgs/development/tools/language-servers/csharp-ls/default.nix
+++ b/pkgs/development/tools/language-servers/csharp-ls/default.nix
@@ -8,9 +8,9 @@ in
 
 buildDotnetGlobalTool rec {
   pname = "csharp-ls";
-  version = "0.13.0";
+  version = "0.14.0";
 
-  nugetSha256 = "sha256-hhgMwDk3mT7E07REqZduTuEnS7D1tCgdxqN+MLNo9EI=";
+  nugetSha256 = "sha256-agcx7VPIqGhl3NzdGLPwXYJsRuvSjL4SdbNg9vFjIh4=";
 
   dotnet-sdk = sdk_8_0;
   dotnet-runtime = sdk_8_0;
diff --git a/pkgs/servers/home-assistant/custom-components/default.nix b/pkgs/servers/home-assistant/custom-components/default.nix
index d0323d2549890..3a1184016f3ef 100644
--- a/pkgs/servers/home-assistant/custom-components/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/default.nix
@@ -48,6 +48,8 @@
 
   smartthinq-sensors = callPackage ./smartthinq-sensors {};
 
+  spook = callPackage ./spook {};
+
   tuya_local = callPackage ./tuya_local {};
 
   waste_collection_schedule = callPackage ./waste_collection_schedule {};
diff --git a/pkgs/servers/home-assistant/custom-components/spook/default.nix b/pkgs/servers/home-assistant/custom-components/spook/default.nix
new file mode 100644
index 0000000000000..280f7b9491b2a
--- /dev/null
+++ b/pkgs/servers/home-assistant/custom-components/spook/default.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildHomeAssistantComponent,
+  fetchFromGitHub,
+  pillow,
+  fnv-hash-fast,
+  psutil-home-assistant,
+  sqlalchemy,
+}:
+buildHomeAssistantComponent rec {
+  owner = "frenck";
+  domain = "spook";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    inherit owner;
+    repo = domain;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ChHsevryWuim8BEFqXVkCOW9fGMrt5vol+B2SreMUws=";
+  };
+
+  patches = [./remove-sub-integration-symlink-hack.patch];
+
+  dependencies = [
+    pillow
+    fnv-hash-fast
+    psutil-home-assistant
+    sqlalchemy
+  ];
+
+  meta = {
+    changelog = "https://github.com/frenck/spook/releases/tag/v${version}";
+    description = "Toolbox for Home Assistant";
+    homepage = "https://spook.boo/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [kkoniuszy];
+  };
+}
diff --git a/pkgs/servers/home-assistant/custom-components/spook/remove-sub-integration-symlink-hack.patch b/pkgs/servers/home-assistant/custom-components/spook/remove-sub-integration-symlink-hack.patch
new file mode 100644
index 0000000000000..4756e4a2c389a
--- /dev/null
+++ b/pkgs/servers/home-assistant/custom-components/spook/remove-sub-integration-symlink-hack.patch
@@ -0,0 +1,109 @@
+diff --git a/custom_components/spook/__init__.py b/custom_components/spook/__init__.py
+index 213fb2c..c7dc299 100644
+--- a/custom_components/spook/__init__.py
++++ b/custom_components/spook/__init__.py
+@@ -23,8 +23,6 @@ from .templating import SpookTemplateFunctionManager
+ from .util import (
+     async_ensure_template_environments_exists,
+     async_forward_setup_entry,
+-    link_sub_integrations,
+-    unlink_sub_integrations,
+ )
+
+ if TYPE_CHECKING:
+@@ -34,48 +32,6 @@ if TYPE_CHECKING:
+
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
+     """Set up from a config entry."""
+-    # Symlink all sub integrations from Spook to the parent integrations folder
+-    # if one is missing, we have to restart Home Assistant.
+-    # This is a workaround for the fact that Home Assistant doesn't support
+-    # sub integrations.
+-    if await hass.async_add_executor_job(link_sub_integrations, hass):
+-        LOGGER.debug("Newly symlinked sub integrations, restarting Home Assistant")
+-
+-        @callback
+-        def _restart(_: Event | None = None) -> None:
+-            """Restart Home Assistant."""
+-            hass.data["homeassistant_stop"] = asyncio.create_task(
+-                hass.async_stop(RESTART_EXIT_CODE),
+-            )
+-
+-        # User asked to restart Home Assistant in the config flow.
+-        if hass.data.get(DOMAIN) == "Boo!":
+-            _restart()
+-            return False
+-
+-        # Should be OK to restart. Better to do it before anything else started.
+-        if hass.state == CoreState.starting:
+-            _restart()
+-            return False
+-
+-        # If all other fails, but we are not running yet... wait for it.
+-        if hass.state == CoreState.not_running:
+-            # Listen to both... just in case.
+-            hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, _restart)
+-            hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STARTED, _restart)
+-            return False
+-
+-        LOGGER.info(
+-            "Home Assistant needs to be restarted in for Spook to complete setting up",
+-        )
+-        ir.async_create_issue(
+-            hass=hass,
+-            domain=DOMAIN,
+-            issue_id="restart_required",
+-            is_fixable=True,
+-            severity=ir.IssueSeverity.WARNING,
+-            translation_key="restart_required",
+-        )
+
+     # Ensure template environments exists
+     async_ensure_template_environments_exists(hass)
+@@ -120,4 +76,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
+
+ async def async_remove_entry(hass: HomeAssistant, _: ConfigEntry) -> None:
+     """Remove a config entry."""
+-    await hass.async_add_executor_job(unlink_sub_integrations, hass)
+diff --git a/custom_components/spook/util.py b/custom_components/spook/util.py
+index 32e9bd2..845d463 100644
+--- a/custom_components/spook/util.py
++++ b/custom_components/spook/util.py
+@@ -104,37 +104,6 @@ async def async_forward_platform_entry_setups_to_ectoplasm(
+     )
+
+
+-def link_sub_integrations(hass: HomeAssistant) -> bool:
+-    """Link Spook sub integrations."""
+-    LOGGER.debug("Linking up Spook sub integrations")
+-
+-    changes = False
+-    for manifest in Path(__file__).parent.rglob("integrations/*/manifest.json"):
+-        LOGGER.debug("Linking Spook sub integration: %s", manifest.parent.name)
+-        dest = Path(hass.config.config_dir) / "custom_components" / manifest.parent.name
+-        if not dest.exists():
+-            src = (
+-                Path(hass.config.config_dir)
+-                / "custom_components"
+-                / DOMAIN
+-                / "integrations"
+-                / manifest.parent.name
+-            )
+-            dest.symlink_to(src)
+-            changes = True
+-    return changes
+-
+-
+-def unlink_sub_integrations(hass: HomeAssistant) -> None:
+-    """Unlink Spook sub integrations."""
+-    LOGGER.debug("Unlinking Spook sub integrations")
+-    for manifest in Path(__file__).parent.rglob("integrations/*/manifest.json"):
+-        LOGGER.debug("Unlinking Spook sub integration: %s", manifest.parent.name)
+-        dest = Path(hass.config.config_dir) / "custom_components" / manifest.parent.name
+-        if dest.exists():
+-            dest.unlink()
+-
+-
+ @callback
+ def async_ensure_template_environments_exists(hass: HomeAssistant) -> None:
+     """Ensure default template environments exist.
diff --git a/pkgs/servers/janus-gateway/default.nix b/pkgs/servers/janus-gateway/default.nix
index 2fe617dea43b0..8a08962f646bb 100644
--- a/pkgs/servers/janus-gateway/default.nix
+++ b/pkgs/servers/janus-gateway/default.nix
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "janus-gateway";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "meetecho";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BS6ErS2Wi8pOy8oFmVnbujYPwClxX8e+GL4CcqvOL9E=";
+    sha256 = "sha256-3o9XxxTlWppq1mFgIUjstUFz6bT44mvBJa4FBgcc4Pc=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config gengetopt ];
diff --git a/pkgs/servers/monitoring/prometheus/alertmanager.nix b/pkgs/servers/monitoring/prometheus/alertmanager.nix
index ba1c35ee294d3..1db975f591d98 100644
--- a/pkgs/servers/monitoring/prometheus/alertmanager.nix
+++ b/pkgs/servers/monitoring/prometheus/alertmanager.nix
@@ -3,6 +3,7 @@
 , buildGoModule
 , fetchFromGitHub
 , installShellFiles
+, nixosTests
 }:
 
 buildGoModule rec {
@@ -39,6 +40,8 @@ buildGoModule rec {
     installShellCompletion amtool.zsh
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus) alertmanager; };
+
   meta = with lib; {
     description = "Alert dispatcher for the Prometheus monitoring system";
     homepage = "https://github.com/prometheus/alertmanager";
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index f7cc47311ef23..9229eb4546a2a 100644
--- a/pkgs/servers/monitoring/prometheus/default.nix
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -31,10 +31,10 @@
 }:
 
 let
-  version = "2.52.0";
+  version = "2.53.0";
   webUiStatic = fetchurl {
     url = "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-web-ui-${version}.tar.gz";
-    hash = "sha256-/HTNDu/msUFLiqbD5ryVPlDOqfAT+8MEGNusmu3xH1w=";
+    hash = "sha256-oGhVpr47+blG7udu4Pcd+4Ndn0U+R47i69nheauDDoo=";
   };
 in
 buildGoModule rec {
@@ -47,10 +47,10 @@ buildGoModule rec {
     owner = "prometheus";
     repo = "prometheus";
     rev = "v${version}";
-    hash = "sha256-7HLSSls1aMZ6Zju2F9dArTFsCSESxDxWQ1a0QgD5Nxo=";
+    hash = "sha256-clI8/P6Gdl8WSK1DsXUj+M9f/h35GX961QtpyvGNxUY=";
   };
 
-  vendorHash = "sha256-IzYYfB8cvvQAsOqEREVaCe80V3hhhmOEYsl9E9NJq20=";
+  vendorHash = "sha256-0TR0jFEY+ls8C9EJEhSl2vX5VVZqZ8jGWDUalOddUPM=";
 
   excludedPackages = [ "documentation/prometheus-mixin" ];
 
diff --git a/pkgs/servers/monitoring/prometheus/pushgateway.nix b/pkgs/servers/monitoring/prometheus/pushgateway.nix
index c47019aeada72..cc8e11ade6355 100644
--- a/pkgs/servers/monitoring/prometheus/pushgateway.nix
+++ b/pkgs/servers/monitoring/prometheus/pushgateway.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, testers, prometheus-pushgateway }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests, testers, prometheus-pushgateway }:
 
 buildGoModule rec {
   pname = "pushgateway";
@@ -23,8 +23,11 @@ buildGoModule rec {
     "-X github.com/prometheus/common/version.BuildDate=19700101-00:00:00"
   ];
 
-  passthru.tests.version = testers.testVersion {
-    package = prometheus-pushgateway;
+  passthru.tests = {
+    inherit (nixosTests.prometheus) pushgateway;
+    version = testers.testVersion {
+      package = prometheus-pushgateway;
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/monitoring/thanos/default.nix b/pkgs/servers/monitoring/thanos/default.nix
index d3e797a1c34c4..ce4a75cea75b7 100644
--- a/pkgs/servers/monitoring/thanos/default.nix
+++ b/pkgs/servers/monitoring/thanos/default.nix
@@ -37,7 +37,7 @@ buildGoModule rec {
   passthru = {
     updateScript = nix-update-script { };
     tests = {
-      inherit (nixosTests) prometheus;
+      inherit (nixosTests) thanos;
       version = testers.testVersion {
         command = "thanos --version";
         package = thanos;
diff --git a/pkgs/tools/misc/panoply/default.nix b/pkgs/tools/misc/panoply/default.nix
index d2a04e3c38f7e..2aef5a0788a8d 100644
--- a/pkgs/tools/misc/panoply/default.nix
+++ b/pkgs/tools/misc/panoply/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "panoply";
-  version = "5.4.1";
+  version = "5.4.3";
 
   src = fetchurl {
     url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
-    sha256 = "sha256-C/9kFWDpv4bzqpsUcGpZn7P+fqU6teU39HibYhhva3o=";
+    sha256 = "sha256-xey1Og0TEMgCc9Me/np7BGnUNYTz98gMFzLm2IcQHtw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];