about summary refs log tree commit diff
path: root/pkgs/by-name/ne
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ne')
-rw-r--r--pkgs/by-name/ne/nemo-emblems/package.nix41
-rw-r--r--pkgs/by-name/ne/nemo-fileroller/package.nix54
-rw-r--r--pkgs/by-name/ne/nemo-python/load-extensions-from-env.patch27
-rw-r--r--pkgs/by-name/ne/nemo-python/package.nix66
-rw-r--r--pkgs/by-name/ne/nemo-python/python-path.patch13
-rw-r--r--pkgs/by-name/ne/nemo-with-extensions/package.nix55
-rw-r--r--pkgs/by-name/ne/nemo/load-extensions-from-env.patch40
-rw-r--r--pkgs/by-name/ne/nemo/package.nix97
-rw-r--r--pkgs/by-name/ne/neocities-cli/Gemfile2
-rw-r--r--pkgs/by-name/ne/neocities-cli/Gemfile.lock48
-rw-r--r--pkgs/by-name/ne/neocities-cli/gemset.nix169
-rw-r--r--pkgs/by-name/ne/neocities-cli/package.nix22
-rw-r--r--pkgs/by-name/ne/neocities/Gemfile.lock3
-rw-r--r--pkgs/by-name/ne/neocities/gemset.nix108
-rw-r--r--pkgs/by-name/ne/neocities/package.nix7
-rw-r--r--pkgs/by-name/ne/neothesia/package.nix1
-rw-r--r--pkgs/by-name/ne/neovide/package.nix10
-rw-r--r--pkgs/by-name/ne/neovide/skia-externals.json12
-rw-r--r--pkgs/by-name/ne/neovim-gtk/collect-box.patch12
-rw-r--r--pkgs/by-name/ne/neovim-gtk/package.nix2
-rw-r--r--pkgs/by-name/ne/neovim-unwrapped/package.nix16
-rw-r--r--pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix20
-rw-r--r--pkgs/by-name/ne/nerdfetch/package.nix4
-rw-r--r--pkgs/by-name/ne/netbird-dashboard/package.nix2
-rw-r--r--pkgs/by-name/ne/netclient/package.nix6
-rw-r--r--pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock567
-rw-r--r--pkgs/by-name/ne/netease-cloud-music-gtk/package.nix14
-rw-r--r--pkgs/by-name/ne/netscanner/package.nix6
-rw-r--r--pkgs/by-name/ne/neural-amp-modeler-lv2/package.nix2
-rw-r--r--pkgs/by-name/ne/neverest/package.nix8
-rw-r--r--pkgs/by-name/ne/next-ls/package.nix54
-rw-r--r--pkgs/by-name/ne/nextpnr/package.nix4
-rw-r--r--pkgs/by-name/ne/nexus/nexus-bin.patch48
-rw-r--r--pkgs/by-name/ne/nexus/nexus-vm-opts.patch14
-rw-r--r--pkgs/by-name/ne/nexus/package.nix70
-rw-r--r--pkgs/by-name/ne/nexusmods-app/package.nix161
-rw-r--r--pkgs/by-name/ne/nezha-agent/package.nix6
37 files changed, 1110 insertions, 681 deletions
diff --git a/pkgs/by-name/ne/nemo-emblems/package.nix b/pkgs/by-name/ne/nemo-emblems/package.nix
new file mode 100644
index 0000000000000..a0bff1d11f666
--- /dev/null
+++ b/pkgs/by-name/ne/nemo-emblems/package.nix
@@ -0,0 +1,41 @@
+{ python3
+, lib
+, fetchFromGitHub
+, cinnamon-translations
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "nemo-emblems";
+  version = "6.2.1";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "nemo-extensions";
+    rev = "nemo-emblems-${version}";
+    hash = "sha256-HfWZntG+SHrzkN4fa3qYj9+fM6zF32qFquL/InoUi/k=";
+  };
+
+  format = "setuptools";
+
+  sourceRoot = "${src.name}/nemo-emblems";
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "/usr/share" "share"
+
+    substituteInPlace nemo-extension/nemo-emblems.py \
+      --replace "/usr/share/locale" "${cinnamon-translations}/share/locale"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/linuxmint/nemo-extensions/tree/master/nemo-emblems";
+    description = "Change a folder or file emblem in Nemo";
+    longDescription = ''
+      Nemo extension that allows you to change folder or file emblems.
+      When adding this to nemo-with-extensions you also need to add nemo-python.
+    '';
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
+}
diff --git a/pkgs/by-name/ne/nemo-fileroller/package.nix b/pkgs/by-name/ne/nemo-fileroller/package.nix
new file mode 100644
index 0000000000000..2a279c926fe29
--- /dev/null
+++ b/pkgs/by-name/ne/nemo-fileroller/package.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, meson
+, pkg-config
+, ninja
+, glib
+, gtk3
+, nemo
+, file-roller
+, cinnamon-translations
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nemo-fileroller";
+  version = "6.2.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "nemo-extensions";
+    rev = version;
+    sha256 = "sha256-qghGgd+OWYiXvcGUfgiQT6rR4mJPAOfOtYB3lWLg4iA=";
+  };
+
+  sourceRoot = "${src.name}/nemo-fileroller";
+
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    ninja
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    nemo
+  ];
+
+  postPatch = ''
+    substituteInPlace src/nemo-fileroller.c \
+      --replace "file-roller" "${lib.getExe file-roller}" \
+      --replace "GNOMELOCALEDIR" "${cinnamon-translations}/share/locale"
+  '';
+
+  PKG_CONFIG_LIBNEMO_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/${nemo.extensiondir}";
+
+  meta = with lib; {
+    homepage = "https://github.com/linuxmint/nemo-extensions/tree/master/nemo-fileroller";
+    description = "Nemo file roller extension";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
+}
diff --git a/pkgs/by-name/ne/nemo-python/load-extensions-from-env.patch b/pkgs/by-name/ne/nemo-python/load-extensions-from-env.patch
new file mode 100644
index 0000000000000..ad9a4abdc387f
--- /dev/null
+++ b/pkgs/by-name/ne/nemo-python/load-extensions-from-env.patch
@@ -0,0 +1,27 @@
+diff --git a/src/nemo-python.c b/src/nemo-python.c
+index 8d2acdb..900811b 100644
+--- a/src/nemo-python.c
++++ b/src/nemo-python.c
+@@ -255,6 +255,7 @@ nemo_module_initialize(GTypeModule *module)
+ {
+ 	gchar *user_extensions_dir;
+ 	const gchar *env_string;
++	const gchar *python_extensiondir;
+ 
+ 	env_string = g_getenv("NEMO_PYTHON_DEBUG");
+ 	if (env_string != NULL)
+@@ -269,8 +270,12 @@ nemo_module_initialize(GTypeModule *module)
+ 
+ 	all_types = g_array_new(FALSE, FALSE, sizeof(GType));
+ 
+-	// Look in the new global path, $DATADIR/nemo-python/extensions
+-	nemo_python_load_dir(module, PYTHON_EXTENSION_DIR);
++	// Look in NEMO_PYTHON_EXTENSION_DIR
++	python_extensiondir = g_getenv("NEMO_PYTHON_EXTENSION_DIR");
++	if (python_extensiondir == NULL) {
++		python_extensiondir = PYTHON_EXTENSION_DIR;
++	}
++	nemo_python_load_dir(module, python_extensiondir);
+ 
+ 	// Look in XDG_DATA_DIR, ~/.local/share/nemo-python/extensions
+ 	user_extensions_dir = g_build_filename(g_get_user_data_dir(), 
diff --git a/pkgs/by-name/ne/nemo-python/package.nix b/pkgs/by-name/ne/nemo-python/package.nix
new file mode 100644
index 0000000000000..867000c8d71d2
--- /dev/null
+++ b/pkgs/by-name/ne/nemo-python/package.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, meson
+, pkg-config
+, ninja
+, glib
+, gtk3
+, nemo
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nemo-python";
+  version = "6.2.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "nemo-extensions";
+    rev = version;
+    sha256 = "sha256-qghGgd+OWYiXvcGUfgiQT6rR4mJPAOfOtYB3lWLg4iA=";
+  };
+
+  sourceRoot = "${src.name}/nemo-python";
+
+  patches = [
+    # Load extensions from NEMO_PYTHON_EXTENSION_DIR environment variable
+    # https://github.com/NixOS/nixpkgs/issues/78327
+    ./load-extensions-from-env.patch
+
+    # Pick up all passthru.nemoPythonExtensionDeps via nemo-with-extensions wrapper
+    ./python-path.patch
+  ];
+
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    ninja
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    nemo
+    python3
+    python3.pkgs.pygobject3
+  ];
+
+  postPatch = ''
+    # Tries to load libpython3.so via g_module_open ().
+    substituteInPlace meson.build \
+      --replace "get_option('prefix'), get_option('libdir')" "'${python3}/lib'"
+  '';
+
+  PKG_CONFIG_LIBNEMO_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/${nemo.extensiondir}";
+
+  passthru.nemoPythonExtensionDeps = [ python3.pkgs.pygobject3 ];
+
+  meta = with lib; {
+    homepage = "https://github.com/linuxmint/nemo-extensions/tree/master/nemo-python";
+    description = "Python bindings for the Nemo extension library";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
+}
diff --git a/pkgs/by-name/ne/nemo-python/python-path.patch b/pkgs/by-name/ne/nemo-python/python-path.patch
new file mode 100644
index 0000000000000..62a6a7043076c
--- /dev/null
+++ b/pkgs/by-name/ne/nemo-python/python-path.patch
@@ -0,0 +1,13 @@
+diff --git a/src/nemo-python.c b/src/nemo-python.c
+index 8d2acdb..ee24143 100644
+--- a/src/nemo-python.c
++++ b/src/nemo-python.c
+@@ -197,7 +197,7 @@ nemo_python_init_python (void)
+ 	}
+ 	
+ 	debug("Sanitize the python search path");
+-	PyRun_SimpleString("import sys; sys.path = [path for path in sys.path if path]");
++	PyRun_SimpleString("import sys; import os; sys.path = [path for path in sys.path if path]; sys.path += os.getenv(\"NEMO_PYTHON_SEARCH_PATH\").split(os.pathsep)");
+ 	if (PyErr_Occurred())
+ 	{
+ 		PyErr_Print();
diff --git a/pkgs/by-name/ne/nemo-with-extensions/package.nix b/pkgs/by-name/ne/nemo-with-extensions/package.nix
new file mode 100644
index 0000000000000..2c97367695eea
--- /dev/null
+++ b/pkgs/by-name/ne/nemo-with-extensions/package.nix
@@ -0,0 +1,55 @@
+{ symlinkJoin
+, lib
+, makeWrapper
+, folder-color-switcher
+, nemo
+, nemo-emblems
+, nemo-fileroller
+, nemo-python
+, python3
+, extensions ? [ ]
+, useDefaultExtensions ? true
+}:
+
+let
+  selectedExtensions = extensions ++ lib.optionals useDefaultExtensions [
+    # We keep this in sync with a default Mint installation
+    # Right now (only) nemo-share is missing
+    folder-color-switcher
+    nemo-emblems
+    nemo-fileroller
+    nemo-python
+  ];
+  nemoPythonExtensionsDeps = lib.concatMap (x: x.nemoPythonExtensionDeps or []) selectedExtensions;
+in
+symlinkJoin {
+  name = "nemo-with-extensions-${nemo.version}";
+
+  paths = [ nemo ] ++ selectedExtensions;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    for f in $(find $out/bin/ $out/libexec/ -type l -not -path "*/.*"); do
+      wrapProgram "$f" \
+        --set "NEMO_EXTENSION_DIR" "$out/${nemo.extensiondir}" \
+        --set "NEMO_PYTHON_EXTENSION_DIR" "$out/share/nemo-python/extensions" \
+        --set "NEMO_PYTHON_SEARCH_PATH" "${python3.pkgs.makePythonPath nemoPythonExtensionsDeps}"
+    done
+
+    # Don't populate the same nemo actions twice when having this globally installed
+    # https://github.com/NixOS/nixpkgs/issues/190781#issuecomment-1365601853
+    rm -r $out/share/nemo/actions
+
+    # Point to wrapped binary in all service files
+    for file in "share/dbus-1/services/nemo.FileManager1.service" \
+      "share/dbus-1/services/nemo.service"
+    do
+      rm "$out/$file"
+      substitute "${nemo}/$file" "$out/$file" \
+        --replace "${nemo}" "$out"
+    done
+  '';
+
+  meta = builtins.removeAttrs nemo.meta [ "name" "outputsToInstall" "position" ];
+}
diff --git a/pkgs/by-name/ne/nemo/load-extensions-from-env.patch b/pkgs/by-name/ne/nemo/load-extensions-from-env.patch
new file mode 100644
index 0000000000000..610b3490cac31
--- /dev/null
+++ b/pkgs/by-name/ne/nemo/load-extensions-from-env.patch
@@ -0,0 +1,40 @@
+diff --git a/libnemo-private/nemo-module.c b/libnemo-private/nemo-module.c
+index 92bcff5..ecadcd8 100644
+--- a/libnemo-private/nemo-module.c
++++ b/libnemo-private/nemo-module.c
+@@ -209,11 +209,16 @@ void
+ nemo_module_setup (void)
+ {
+ 	static gboolean initialized = FALSE;
++	const gchar *extensiondir = NULL;
+ 
+ 	if (!initialized) {
+ 		initialized = TRUE;
+ 		
+-		load_module_dir (NEMO_EXTENSIONDIR);
++		extensiondir = g_getenv ("NEMO_EXTENSION_DIR");
++		if (extensiondir == NULL) {
++			extensiondir = NEMO_EXTENSIONDIR;
++		}
++		load_module_dir (extensiondir);
+ 
+ 		eel_debug_call_at_shutdown (free_module_objects);
+ 	}
+diff --git a/src/nemo-extensions-list.c b/src/nemo-extensions-list.c
+index 944fc5f..983c396 100644
+--- a/src/nemo-extensions-list.c
++++ b/src/nemo-extensions-list.c
+@@ -129,7 +129,12 @@ module_get_extensions_for_type (GType type)
+ int
+ main (int argc, char *argv[])
+ {
+-    populate_from_directory (NEMO_EXTENSIONDIR);
++    const gchar *extensiondir = NULL;
++    extensiondir = g_getenv ("NEMO_EXTENSION_DIR");
++    if (extensiondir == NULL) {
++        extensiondir = NEMO_EXTENSIONDIR;
++    }
++    populate_from_directory (extensiondir);
+ 
+     GList *nd_providers;
+     GList *l;
diff --git a/pkgs/by-name/ne/nemo/package.nix b/pkgs/by-name/ne/nemo/package.nix
new file mode 100644
index 0000000000000..e5dece818fe2f
--- /dev/null
+++ b/pkgs/by-name/ne/nemo/package.nix
@@ -0,0 +1,97 @@
+{ fetchFromGitHub
+, glib
+, gobject-introspection
+, meson
+, ninja
+, pkg-config
+, lib
+, stdenv
+, wrapGAppsHook3
+, libxml2
+, gtk3
+, gvfs
+, cinnamon-desktop
+, xapp
+, libexif
+, json-glib
+, exempi
+, intltool
+, shared-mime-info
+, cinnamon-translations
+, libgsf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nemo";
+  version = "6.2.8";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-1GJLsUlptwXcZUWIOztskV0nHA9BnPmnVeTgUwJ+QDQ=";
+  };
+
+  patches = [
+    # Load extensions from NEMO_EXTENSION_DIR environment variable
+    # https://github.com/NixOS/nixpkgs/issues/78327
+    ./load-extensions-from-env.patch
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  buildInputs = [
+    glib
+    gtk3
+    cinnamon-desktop
+    libxml2
+    xapp
+    libexif
+    exempi
+    gvfs
+    libgsf
+    json-glib
+  ];
+
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    ninja
+    wrapGAppsHook3
+    intltool
+    shared-mime-info
+    gobject-introspection
+  ];
+
+  mesonFlags = [
+    # use locales from cinnamon-translations
+    "--localedir=${cinnamon-translations}/share/locale"
+  ];
+
+  postInstall = ''
+    # This fixes open as root and handles nemo-with-extensions well.
+    # https://github.com/NixOS/nixpkgs/issues/297570
+    substituteInPlace $out/share/polkit-1/actions/org.nemo.root.policy \
+      --replace-fail "$out/bin/nemo" "/run/current-system/sw/bin/nemo"
+  '';
+
+  preFixup = ''
+    # Used for some non-fd.o icons (e.g. xapp-text-case-symbolic)
+    gappsWrapperArgs+=(
+      --prefix XDG_DATA_DIRS : "${xapp}/share"
+    )
+  '';
+
+  # Taken from libnemo-extension.pc.
+  passthru.extensiondir = "lib/nemo/extensions-3.0";
+
+  meta = with lib; {
+    homepage = "https://github.com/linuxmint/nemo";
+    description = "File browser for Cinnamon";
+    license = [ licenses.gpl2 licenses.lgpl2 ];
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+    mainProgram = "nemo";
+  };
+}
+
diff --git a/pkgs/by-name/ne/neocities-cli/Gemfile b/pkgs/by-name/ne/neocities-cli/Gemfile
deleted file mode 100644
index f9e464079d0f0..0000000000000
--- a/pkgs/by-name/ne/neocities-cli/Gemfile
+++ /dev/null
@@ -1,2 +0,0 @@
-source 'https://rubygems.org'
-gem 'neocities'
diff --git a/pkgs/by-name/ne/neocities-cli/Gemfile.lock b/pkgs/by-name/ne/neocities-cli/Gemfile.lock
deleted file mode 100644
index 91b35afca94d2..0000000000000
--- a/pkgs/by-name/ne/neocities-cli/Gemfile.lock
+++ /dev/null
@@ -1,48 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    equatable (0.5.0)
-    httpclient-fixcerts (2.8.5)
-    necromancer (0.4.0)
-    neocities (0.0.18)
-      httpclient-fixcerts (~> 2.8, >= 2.8.5)
-      pastel (~> 0.7, = 0.7.2)
-      rake (~> 12.3, >= 12.3.1)
-      tty-prompt (~> 0.12, = 0.12.0)
-      tty-table (~> 0.10, = 0.10.0)
-    pastel (0.7.2)
-      equatable (~> 0.5.0)
-      tty-color (~> 0.4.0)
-    rake (12.3.3)
-    strings (0.1.8)
-      strings-ansi (~> 0.1)
-      unicode-display_width (~> 1.5)
-      unicode_utils (~> 1.4)
-    strings-ansi (0.2.0)
-    tty-color (0.4.3)
-    tty-cursor (0.4.0)
-    tty-prompt (0.12.0)
-      necromancer (~> 0.4.0)
-      pastel (~> 0.7.0)
-      tty-cursor (~> 0.4.0)
-      wisper (~> 1.6.1)
-    tty-screen (0.6.5)
-    tty-table (0.10.0)
-      equatable (~> 0.5.0)
-      necromancer (~> 0.4.0)
-      pastel (~> 0.7.2)
-      strings (~> 0.1.0)
-      tty-screen (~> 0.6.4)
-    unicode-display_width (1.8.0)
-    unicode_utils (1.4.0)
-    wisper (1.6.1)
-
-PLATFORMS
-  ruby
-  x86_64-linux
-
-DEPENDENCIES
-  neocities
-
-BUNDLED WITH
-   2.5.5
diff --git a/pkgs/by-name/ne/neocities-cli/gemset.nix b/pkgs/by-name/ne/neocities-cli/gemset.nix
deleted file mode 100644
index 573cee83eed2f..0000000000000
--- a/pkgs/by-name/ne/neocities-cli/gemset.nix
+++ /dev/null
@@ -1,169 +0,0 @@
-{
-  equatable = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "1sjm9zjakyixyvsqziikdrsqfzis6j3fq23crgjkp6fwkfgndj7x";
-      type = "gem";
-    };
-    version = "0.5.0";
-  };
-  httpclient-fixcerts = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "1zfszylh51y8ic8sbff3mwf30jb0gj270r5nxkcm1ydxad19w6sl";
-      type = "gem";
-    };
-    version = "2.8.5";
-  };
-  necromancer = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "0v9nhdkv6zrp7cn48xv7n2vjhsbslpvs0ha36mfkcd56cp27pavz";
-      type = "gem";
-    };
-    version = "0.4.0";
-  };
-  neocities = {
-    dependencies =
-      [ "httpclient-fixcerts" "pastel" "rake" "tty-prompt" "tty-table" ];
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "1hfvy4gc7rzxkgl2dbrjs2fqzi5mphmr22rjfhk6n0i3bd0wazbw";
-      type = "gem";
-    };
-    version = "0.0.18";
-  };
-  pastel = {
-    dependencies = [ "equatable" "tty-color" ];
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "1yf30d9kzpm96gw9kwbv31p0qigwfykn8qdis5950plnzgc1vlp1";
-      type = "gem";
-    };
-    version = "0.7.2";
-  };
-  rake = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "1cvaqarr1m84mhc006g3l1vw7sa5qpkcw0138lsxlf769zdllsgp";
-      type = "gem";
-    };
-    version = "12.3.3";
-  };
-  strings = {
-    dependencies = [ "strings-ansi" "unicode-display_width" "unicode_utils" ];
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "111876lcqrykh30w7zzkrl06d6rj9lq24y625m28674vgfxkkcz0";
-      type = "gem";
-    };
-    version = "0.1.8";
-  };
-  strings-ansi = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
-      type = "gem";
-    };
-    version = "0.2.0";
-  };
-  tty-color = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "0zz5xa6xbrj69h334d8nx7z732fz80s1a0b02b53mim95p80s7bk";
-      type = "gem";
-    };
-    version = "0.4.3";
-  };
-  tty-cursor = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "07whfm8mnp7l49s2cm2qy1snhsqq3a90sqwb71gvym4hm2kx822a";
-      type = "gem";
-    };
-    version = "0.4.0";
-  };
-  tty-prompt = {
-    dependencies = [ "necromancer" "pastel" "tty-cursor" "wisper" ];
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "1026nyqhgmgxi2nmk8xk3hca07gy5rpisjs8y6w00wnw4f01kpv0";
-      type = "gem";
-    };
-    version = "0.12.0";
-  };
-  tty-screen = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "0azpjgyhdm8ycblnx9crq3dgb2x8yg454a13n60zfpsc0n138sw1";
-      type = "gem";
-    };
-    version = "0.6.5";
-  };
-  tty-table = {
-    dependencies =
-      [ "equatable" "necromancer" "pastel" "strings" "tty-screen" ];
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "05krrj1x5pmfbz74paszrsr1316w9b9jlc4wpd9s9gpzqfzwjzcg";
-      type = "gem";
-    };
-    version = "0.10.0";
-  };
-  unicode-display_width = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
-      type = "gem";
-    };
-    version = "1.8.0";
-  };
-  unicode_utils = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
-      type = "gem";
-    };
-    version = "1.4.0";
-  };
-  wisper = {
-    groups = [ "default" ];
-    platforms = [ ];
-    source = {
-      remotes = [ "https://rubygems.org" ];
-      sha256 = "19bw0z1qw1dhv7gn9lad25hgbgpb1bkw8d599744xdfam158ms2s";
-      type = "gem";
-    };
-    version = "1.6.1";
-  };
-}
diff --git a/pkgs/by-name/ne/neocities-cli/package.nix b/pkgs/by-name/ne/neocities-cli/package.nix
deleted file mode 100644
index 546c29918082c..0000000000000
--- a/pkgs/by-name/ne/neocities-cli/package.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib
-, bundlerApp
-, bundlerUpdateScript
-}:
-
-bundlerApp {
-  pname = "neocities";
-  gemdir = ./.;
-  exes = [ "neocities" ];
-
-  passthru.updateScript = bundlerUpdateScript "neocities";
-
-  meta = with lib; {
-    description = "Neocities Gem - A CLI and library for using the Neocities web site API";
-    homepage = "https://github.com/neocities/neocities-ruby";
-    license = licenses.mit;
-    mainProgram = "neocities";
-    maintainers = with maintainers; [ dawoox ];
-    platforms = platforms.unix;
-  };
-}
-
diff --git a/pkgs/by-name/ne/neocities/Gemfile.lock b/pkgs/by-name/ne/neocities/Gemfile.lock
index 3c49da1d033b0..91b35afca94d2 100644
--- a/pkgs/by-name/ne/neocities/Gemfile.lock
+++ b/pkgs/by-name/ne/neocities/Gemfile.lock
@@ -39,9 +39,10 @@ GEM
 
 PLATFORMS
   ruby
+  x86_64-linux
 
 DEPENDENCIES
   neocities
 
 BUNDLED WITH
-   2.1.4
+   2.5.5
diff --git a/pkgs/by-name/ne/neocities/gemset.nix b/pkgs/by-name/ne/neocities/gemset.nix
index bb5b696cd14d4..573cee83eed2f 100644
--- a/pkgs/by-name/ne/neocities/gemset.nix
+++ b/pkgs/by-name/ne/neocities/gemset.nix
@@ -1,164 +1,166 @@
 {
   equatable = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "1sjm9zjakyixyvsqziikdrsqfzis6j3fq23crgjkp6fwkfgndj7x";
       type = "gem";
     };
     version = "0.5.0";
   };
   httpclient-fixcerts = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "1zfszylh51y8ic8sbff3mwf30jb0gj270r5nxkcm1ydxad19w6sl";
       type = "gem";
     };
     version = "2.8.5";
   };
   necromancer = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "0v9nhdkv6zrp7cn48xv7n2vjhsbslpvs0ha36mfkcd56cp27pavz";
       type = "gem";
     };
     version = "0.4.0";
   };
   neocities = {
-    dependencies = ["httpclient-fixcerts" "pastel" "rake" "tty-prompt" "tty-table"];
-    groups = ["default"];
-    platforms = [];
+    dependencies =
+      [ "httpclient-fixcerts" "pastel" "rake" "tty-prompt" "tty-table" ];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "1hfvy4gc7rzxkgl2dbrjs2fqzi5mphmr22rjfhk6n0i3bd0wazbw";
       type = "gem";
     };
     version = "0.0.18";
   };
   pastel = {
-    dependencies = ["equatable" "tty-color"];
-    groups = ["default"];
-    platforms = [];
+    dependencies = [ "equatable" "tty-color" ];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "1yf30d9kzpm96gw9kwbv31p0qigwfykn8qdis5950plnzgc1vlp1";
       type = "gem";
     };
     version = "0.7.2";
   };
   rake = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "1cvaqarr1m84mhc006g3l1vw7sa5qpkcw0138lsxlf769zdllsgp";
       type = "gem";
     };
     version = "12.3.3";
   };
   strings = {
-    dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
-    groups = ["default"];
-    platforms = [];
+    dependencies = [ "strings-ansi" "unicode-display_width" "unicode_utils" ];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "111876lcqrykh30w7zzkrl06d6rj9lq24y625m28674vgfxkkcz0";
       type = "gem";
     };
     version = "0.1.8";
   };
   strings-ansi = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
       type = "gem";
     };
     version = "0.2.0";
   };
   tty-color = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "0zz5xa6xbrj69h334d8nx7z732fz80s1a0b02b53mim95p80s7bk";
       type = "gem";
     };
     version = "0.4.3";
   };
   tty-cursor = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "07whfm8mnp7l49s2cm2qy1snhsqq3a90sqwb71gvym4hm2kx822a";
       type = "gem";
     };
     version = "0.4.0";
   };
   tty-prompt = {
-    dependencies = ["necromancer" "pastel" "tty-cursor" "wisper"];
-    groups = ["default"];
-    platforms = [];
+    dependencies = [ "necromancer" "pastel" "tty-cursor" "wisper" ];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "1026nyqhgmgxi2nmk8xk3hca07gy5rpisjs8y6w00wnw4f01kpv0";
       type = "gem";
     };
     version = "0.12.0";
   };
   tty-screen = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "0azpjgyhdm8ycblnx9crq3dgb2x8yg454a13n60zfpsc0n138sw1";
       type = "gem";
     };
     version = "0.6.5";
   };
   tty-table = {
-    dependencies = ["equatable" "necromancer" "pastel" "strings" "tty-screen"];
-    groups = ["default"];
-    platforms = [];
+    dependencies =
+      [ "equatable" "necromancer" "pastel" "strings" "tty-screen" ];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "05krrj1x5pmfbz74paszrsr1316w9b9jlc4wpd9s9gpzqfzwjzcg";
       type = "gem";
     };
     version = "0.10.0";
   };
   unicode-display_width = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
       type = "gem";
     };
     version = "1.8.0";
   };
   unicode_utils = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
       type = "gem";
     };
     version = "1.4.0";
   };
   wisper = {
-    groups = ["default"];
-    platforms = [];
+    groups = [ "default" ];
+    platforms = [ ];
     source = {
-      remotes = ["https://rubygems.org"];
+      remotes = [ "https://rubygems.org" ];
       sha256 = "19bw0z1qw1dhv7gn9lad25hgbgpb1bkw8d599744xdfam158ms2s";
       type = "gem";
     };
diff --git a/pkgs/by-name/ne/neocities/package.nix b/pkgs/by-name/ne/neocities/package.nix
index 5950d1ba92b27..0907d14a2144c 100644
--- a/pkgs/by-name/ne/neocities/package.nix
+++ b/pkgs/by-name/ne/neocities/package.nix
@@ -2,6 +2,7 @@
 , bundlerApp
 , bundlerUpdateScript
 }:
+
 bundlerApp {
   pname = "neocities";
   gemdir = ./.;
@@ -10,10 +11,12 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "neocities";
 
   meta = with lib; {
-    description = "The Neocities CLI, written in Ruby";
+    description = "CLI and library for interacting with the Neocities API";
     homepage = "https://github.com/neocities/neocities-ruby";
     license = licenses.mit;
-    maintainers = with maintainers; [ infinidoge ];
     mainProgram = "neocities";
+    maintainers = with maintainers; [ dawoox ];
+    platforms = platforms.unix;
   };
 }
+
diff --git a/pkgs/by-name/ne/neothesia/package.nix b/pkgs/by-name/ne/neothesia/package.nix
index 9169d9cabaf2b..fbf3624ee0f63 100644
--- a/pkgs/by-name/ne/neothesia/package.nix
+++ b/pkgs/by-name/ne/neothesia/package.nix
@@ -51,6 +51,7 @@ rustPlatform.buildRustPackage {
   postInstall = ''
     wrapProgram $out/bin/neothesia --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ wayland libxkbcommon vulkan-loader xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrender ]}"
     install -Dm 644 flatpak/com.github.polymeilex.neothesia.desktop $out/share/applications/com.github.polymeilex.neothesia.desktop
+    install -Dm 644 flatpak/com.github.polymeilex.neothesia.png $out/share/icons/hicolor/256x256/apps/com.github.polymeilex.neothesia.png
   '';
 
   env = {
diff --git a/pkgs/by-name/ne/neovide/package.nix b/pkgs/by-name/ne/neovide/package.nix
index 4c4dfab2fe1dc..232bc4664eeaf 100644
--- a/pkgs/by-name/ne/neovide/package.nix
+++ b/pkgs/by-name/ne/neovide/package.nix
@@ -26,16 +26,16 @@
 
 rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
   pname = "neovide";
-  version = "0.13.1";
+  version = "0.13.3";
 
   src = fetchFromGitHub {
     owner = "neovide";
     repo = "neovide";
     rev = version;
-    hash = "sha256-vN4LwJdVU0OWBuG7omDYY3Q6QZ2pTyCxWxFzv9Z1/6I=";
+    hash = "sha256-u10JxMvXC/FIobeolWJElBZuCiJ3xIUg4F0vLom7/S0=";
   };
 
-  cargoHash = "sha256-TiGEAwNXBNTXVU/CyKrUkjy8eIypYiLtoTyjskMpWvs=";
+  cargoHash = "sha256-j8++watC7RBc1zn8m7Jg0Zl/iKXSrld+q62GiaLxGCo=";
 
   SKIA_SOURCE_DIR =
     let
@@ -43,8 +43,8 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
         owner = "rust-skia";
         repo = "skia";
         # see rust-skia:skia-bindings/Cargo.toml#package.metadata skia
-        rev = "m124-0.72.3";
-        hash = "sha256-zlHUJUXukE4CsXwwmVl3KHf9mnNPT8lC/ETEE15Gb4s=";
+        rev = "m126-0.74.2";
+        hash = "sha256-4l6ekAJy+pG27hBGT6A6LLRwbsyKinJf6PP6mMHwaAs=";
       };
       # The externals for skia are taken from skia/DEPS
       externals = linkFarm "skia-externals" (lib.mapAttrsToList
diff --git a/pkgs/by-name/ne/neovide/skia-externals.json b/pkgs/by-name/ne/neovide/skia-externals.json
index 9a71fd62899ff..d1ca67f74235a 100644
--- a/pkgs/by-name/ne/neovide/skia-externals.json
+++ b/pkgs/by-name/ne/neovide/skia-externals.json
@@ -11,8 +11,8 @@
   },
   "icu": {
     "url": "https://chromium.googlesource.com/chromium/deps/icu.git",
-    "rev": "a0718d4f121727e30b8d52c7a189ebf5ab52421f",
-    "sha256": "sha256-BI3f/gf9GNDvSfXWeRHKBvznSz4mjXY8rM24kK7QvOM="
+    "rev": "364118a1d9da24bb5b770ac3d762ac144d6da5a4",
+    "sha256": "sha256-frsmwYMiFixEULsE91x5+p98DvkyC0s0fNupqjoRnvg="
   },
   "zlib": {
     "url": "https://chromium.googlesource.com/chromium/src/third_party/zlib",
@@ -21,8 +21,8 @@
   },
   "harfbuzz": {
     "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
-    "rev": "c053e8f29257814e11ad61493dbbe29f27656de4",
-    "sha256": "sha256-D8DNcZH/oiJqWvfWFHvQ8AwQ3OrMwyZdfGmZ5y30Hvg="
+    "rev": "b74a7ecc93e283d059df51ee4f46961a782bcdb8",
+    "sha256": "sha256-/ZYsusWvLzBk5fym3ndVVEplyAdWFf7d4twBvwQVioY="
   },
   "wuffs": {
     "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -31,7 +31,7 @@
   },
   "libpng": {
     "url": "https://skia.googlesource.com/third_party/libpng.git",
-    "rev": "144b348e072a78e8130ed0acc452c9f039a67bf2",
-    "sha256": "sha256-eTF7q7hR4S1OqV2oPQKmcHujA5Od4rGMc5879kT0SkE="
+    "rev": "ed217e3e601d8e462f7fd1e04bed43ac42212429",
+    "sha256": "sha256-Mo1M8TuVaoSIb7Hy2u6zgjZ1DKgpmgNmGRP6dGg/aTs="
   }
 }
diff --git a/pkgs/by-name/ne/neovim-gtk/collect-box.patch b/pkgs/by-name/ne/neovim-gtk/collect-box.patch
new file mode 100644
index 0000000000000..0264637e9bb15
--- /dev/null
+++ b/pkgs/by-name/ne/neovim-gtk/collect-box.patch
@@ -0,0 +1,12 @@
+diff -ru a/src/ui.rs b/src/ui.rs
+--- a/src/ui.rs
++++ b/src/ui.rs
+@@ -385,7 +386,7 @@
+                     files_list
+                         .iter()
+                         .map(|f| misc::escape_filename(f))
+-                        .collect::<Box<_>>()
++                        .collect::<Box<[_]>>()
+                         .join(" ")
+                 ));
+             } else {
diff --git a/pkgs/by-name/ne/neovim-gtk/package.nix b/pkgs/by-name/ne/neovim-gtk/package.nix
index eebb980f85cb5..7b8504ebe09a0 100644
--- a/pkgs/by-name/ne/neovim-gtk/package.nix
+++ b/pkgs/by-name/ne/neovim-gtk/package.nix
@@ -26,6 +26,8 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = [ gdk-pixbuf gtk4 pango vte-gtk4 ];
 
+  patches = [ ./collect-box.patch ];
+
   postInstall = ''
     make PREFIX=$out install-resources
   '';
diff --git a/pkgs/by-name/ne/neovim-unwrapped/package.nix b/pkgs/by-name/ne/neovim-unwrapped/package.nix
index bd25ac1c36f84..b40ffac4a3a67 100644
--- a/pkgs/by-name/ne/neovim-unwrapped/package.nix
+++ b/pkgs/by-name/ne/neovim-unwrapped/package.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs:
     (nvim-lpeg-dylib ps)
     luabitop
     mpack
-  ] ++ lib.optionals finalAttrs.doCheck [
+  ] ++ lib.optionals finalAttrs.finalPackage.doCheck [
     luv
     coxpcall
     busted
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs:
 
 in {
     pname = "neovim-unwrapped";
-    version = "0.10.0";
+    version = "0.10.1";
 
     __structuredAttrs = true;
 
@@ -74,7 +74,7 @@ in {
       owner = "neovim";
       repo = "neovim";
       rev = "v${finalAttrs.version}";
-      hash = "sha256-FCOipXHkAbkuFw9JjEpOIJ8BkyMkjkI0Dp+SzZ4yZlw=";
+      hash = "sha256-OsHIacgorYnB/dPbzl1b6rYUzQdhTtsJYLsFLJxregk=";
     };
 
     patches = [
@@ -105,7 +105,7 @@ in {
       tree-sitter
       unibilium
     ] ++ lib.optionals stdenv.isDarwin [ libiconv CoreServices ]
-      ++ lib.optionals finalAttrs.doCheck [ glibcLocales procps ]
+      ++ lib.optionals finalAttrs.finalPackage.doCheck [ glibcLocales procps ]
     ;
 
     doCheck = false;
@@ -188,7 +188,7 @@ in {
 
     separateDebugInfo = true;
 
-    meta = with lib; {
+    meta = {
       description = "Vim text editor fork focused on extensibility and agility";
       longDescription = ''
         Neovim is a project that seeks to aggressively refactor Vim in order to:
@@ -205,8 +205,8 @@ in {
       # Contributions committed after b17d96 are licensed under Apache 2.0 unless
       # those contributions were copied from Vim (identified in the commit logs
       # by the vim-patch token). See LICENSE for details."
-      license = with licenses; [ asl20 vim ];
-      maintainers = with maintainers; [ manveru rvolosatovs ];
-      platforms   = platforms.unix;
+      license = with lib.licenses; [ asl20 vim ];
+      maintainers = with lib.maintainers; [ manveru rvolosatovs ];
+      platforms   = lib.platforms.unix;
     };
   })
diff --git a/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix b/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
index e4d4dd60e2eb2..ddc8b61d4b3ef 100644
--- a/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
+++ b/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
@@ -2,8 +2,8 @@
 
 {
   c.src = fetchurl {
-    url = "https://github.com/tree-sitter/tree-sitter-c/archive/v0.21.0.tar.gz";
-    hash = "sha256:6f0f5d1b71cf8ffd8a37fb638c6022fa1245bd630150b538547d52128ce0ea7e";
+    url = "https://github.com/tree-sitter/tree-sitter-c/archive/v0.21.3.tar.gz";
+    hash = "sha256:75a3780df6114cd37496761c4a7c9fd900c78bee3a2707f590d78c0ca3a24368";
   };
   lua.src = fetchurl {
     url = "https://github.com/tree-sitter-grammars/tree-sitter-lua/archive/v0.1.0.tar.gz";
@@ -14,20 +14,12 @@
     hash = "sha256:9f856f8b4a10ab43348550fa2d3cb2846ae3d8e60f45887200549c051c66f9d5";
   };
   vimdoc.src = fetchurl {
-    url = "https://github.com/neovim/tree-sitter-vimdoc/archive/v2.5.1.tar.gz";
-    hash = "sha256:063645096504b21603585507c41c6d8718ff3c11b2150c5bfc31e8f3ee9afea3";
+    url = "https://github.com/neovim/tree-sitter-vimdoc/archive/v3.0.0.tar.gz";
+    hash = "sha256:a639bf92bf57bfa1cdc90ca16af27bfaf26a9779064776dd4be34c1ef1453f6c";
   };
   query.src = fetchurl {
-    url = "https://github.com/tree-sitter-grammars/tree-sitter-query/archive/v0.3.0.tar.gz";
-    hash = "sha256:f878ff37abcb83250e31a6569e997546f3dbab74dcb26683cb2d613f7568cfc0";
-  };
-  python.src = fetchurl {
-    url = "https://github.com/tree-sitter/tree-sitter-python/archive/v0.21.0.tar.gz";
-    hash = "sha256:720304a603271fa89e4430a14d6a81a023d6d7d1171b1533e49c0ab44f1e1c13";
-  };
-  bash.src = fetchurl {
-    url = "https://github.com/tree-sitter/tree-sitter-bash/archive/v0.21.0.tar.gz";
-    hash = "sha256:f0515efda839cfede851adb24ac154227fbc0dfb60c6c11595ecfa9087d43ceb";
+    url = "https://github.com/tree-sitter-grammars/tree-sitter-query/archive/v0.4.0.tar.gz";
+    hash = "sha256:d3a423ab66dc62b2969625e280116678a8a22582b5ff087795222108db2f6a6e";
   };
   markdown.src = fetchurl {
     url = "https://github.com/MDeiml/tree-sitter-markdown/archive/v0.2.3.tar.gz";
diff --git a/pkgs/by-name/ne/nerdfetch/package.nix b/pkgs/by-name/ne/nerdfetch/package.nix
index 35f74f1b52cdd..659cc3deb9c3e 100644
--- a/pkgs/by-name/ne/nerdfetch/package.nix
+++ b/pkgs/by-name/ne/nerdfetch/package.nix
@@ -5,13 +5,13 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "nerdfetch";
-  version = "8.1.2";
+  version = "8.2.1";
 
   src = fetchFromGitHub {
     owner = "ThatOneCalculator";
     repo = "NerdFetch";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-hKs/Of6GIQ9Xtav7VfL+2DzMNpgUoDk5C/2lqldd/So=";
+    hash = "sha256-9S7mS+lUCT8/Q65fqlrnTksuK3mhynPX+jWPaV8U8Dg=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/by-name/ne/netbird-dashboard/package.nix b/pkgs/by-name/ne/netbird-dashboard/package.nix
index dcacab7f55859..f8a6ecb8291a0 100644
--- a/pkgs/by-name/ne/netbird-dashboard/package.nix
+++ b/pkgs/by-name/ne/netbird-dashboard/package.nix
@@ -30,6 +30,6 @@ buildNpmPackage rec {
     description = "NetBird Management Service Web UI Panel";
     homepage = "https://github.com/netbirdio/dashboard";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/by-name/ne/netclient/package.nix b/pkgs/by-name/ne/netclient/package.nix
index 5b2dc7b8024ee..0173274aa02d7 100644
--- a/pkgs/by-name/ne/netclient/package.nix
+++ b/pkgs/by-name/ne/netclient/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "netclient";
-  version = "0.24.2";
+  version = "0.24.3";
 
   src = fetchFromGitHub {
     owner = "gravitl";
     repo = "netclient";
     rev = "v${version}";
-    hash = "sha256-7+r2fuFNVvOC0Zl1kqAiAh9C3qqhg7KGrbnOp4Jk+Is=";
+    hash = "sha256-EwkjU4MICkCuJJ7a39dKPTuugELprHQUIyXqwmJpev8=";
   };
 
-  vendorHash = "sha256-eTiNBs8xcfrth/E44URhD8uSgdoXZT1+MD3H24dzI1A=";
+  vendorHash = "sha256-R/aHXZ0BM2gWouUIezYf63SMqT8vjH2ZhOItgu6RBb4=";
 
   buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
     ++ lib.optional stdenv.isLinux libX11;
diff --git a/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock b/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
index 2e116556b7744..f107fcb949908 100644
--- a/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
+++ b/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
@@ -9,6 +9,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
+name = "adler2"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
+
+[[package]]
 name = "aho-corasick"
 version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -34,9 +40,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.14"
+version = "0.6.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -49,33 +55,33 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.7"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
+checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
+checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.3"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
+checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
 dependencies = [
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.3"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
+checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
 dependencies = [
  "anstyle",
  "windows-sys 0.52.0",
@@ -89,12 +95,12 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "async-broadcast"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
+checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e"
 dependencies = [
  "event-listener 5.3.1",
- "event-listener-strategy 0.5.2",
+ "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
 ]
@@ -117,16 +123,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
 dependencies = [
  "concurrent-queue",
- "event-listener-strategy 0.5.2",
+ "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0"
+checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
 dependencies = [
  "async-task",
  "concurrent-queue",
@@ -148,9 +154,9 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.2"
+version = "2.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
+checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
 dependencies = [
  "async-lock",
  "cfg-if",
@@ -158,29 +164,29 @@ dependencies = [
  "futures-io",
  "futures-lite 2.3.0",
  "parking",
- "polling 3.7.0",
+ "polling 3.7.3",
  "rustix",
  "slab",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "async-lock"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
 dependencies = [
- "event-listener 4.0.3",
- "event-listener-strategy 0.4.0",
+ "event-listener 5.3.1",
+ "event-listener-strategy",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-process"
-version = "2.2.2"
+version = "2.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d"
+checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374"
 dependencies = [
  "async-channel 2.3.1",
  "async-io",
@@ -193,7 +199,7 @@ dependencies = [
  "futures-lite 2.3.0",
  "rustix",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -209,9 +215,9 @@ dependencies = [
 
 [[package]]
 name = "async-signal"
-version = "0.2.6"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda"
+checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
 dependencies = [
  "async-io",
  "async-lock",
@@ -222,7 +228,7 @@ dependencies = [
  "rustix",
  "signal-hook-registry",
  "slab",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -233,9 +239,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
 
 [[package]]
 name = "async-trait"
-version = "0.1.80"
+version = "0.1.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
+checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -274,9 +280,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.5.0"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
 
 [[package]]
 name = "block"
@@ -314,9 +320,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
+checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31"
 
 [[package]]
 name = "byteorder"
@@ -326,9 +332,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.6.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
 
 [[package]]
 name = "cairo-rs"
@@ -336,7 +342,7 @@ version = "0.19.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "cairo-sys-rs",
  "glib",
  "libc",
@@ -362,9 +368,12 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
 
 [[package]]
 name = "cc"
-version = "1.0.98"
+version = "1.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48"
+dependencies = [
+ "shlex",
+]
 
 [[package]]
 name = "cfg-expr"
@@ -384,9 +393,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "cfg_aliases"
-version = "0.1.1"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
 
 [[package]]
 name = "chrono"
@@ -399,7 +408,7 @@ dependencies = [
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -410,9 +419,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "colorchoice"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
+checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
 
 [[package]]
 name = "concurrent-queue"
@@ -453,15 +462,15 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.12"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
 dependencies = [
  "libc",
 ]
@@ -508,9 +517,9 @@ dependencies = [
 
 [[package]]
 name = "curl-sys"
-version = "0.4.72+curl-8.6.0"
+version = "0.4.74+curl-8.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea"
+checksum = "8af10b986114528fcdc4b63b6f5f021b7057618411046a4de2ba0f0149a097bf"
 dependencies = [
  "cc",
  "libc",
@@ -543,9 +552,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
 
 [[package]]
 name = "encoding_rs"
@@ -564,9 +573,9 @@ checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
 
 [[package]]
 name = "enumflags2"
-version = "0.7.9"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -574,9 +583,9 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.9"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -585,9 +594,9 @@ dependencies = [
 
 [[package]]
 name = "env_filter"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab"
 dependencies = [
  "log",
  "regex",
@@ -595,9 +604,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.11.3"
+version = "0.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
+checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d"
 dependencies = [
  "anstream",
  "anstyle",
@@ -630,17 +639,6 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
-version = "4.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener"
 version = "5.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
@@ -652,16 +650,6 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
-dependencies = [
- "event-listener 4.0.3",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener-strategy"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
@@ -706,12 +694,12 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.30"
+version = "1.0.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
+checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666"
 dependencies = [
  "crc32fast",
- "miniz_oxide",
+ "miniz_oxide 0.8.0",
 ]
 
 [[package]]
@@ -846,9 +834,9 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.19.2"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
+checksum = "624eaba126021103c7339b2e179ae4ee8cdab842daab419040710f38ed9f8699"
 dependencies = [
  "gdk-pixbuf-sys",
  "gio",
@@ -858,9 +846,9 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.19.5"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fdbf021f8b9d19e30fb9ea6d6e5f2b6a712fe4645417c69f86f6ff1e1444a8f"
+checksum = "4efa05a4f83c8cc50eb4d883787b919b85e5f1d8dd10b5a1df53bf5689782379"
 dependencies = [
  "gio-sys",
  "glib-sys",
@@ -944,9 +932,9 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.19.5"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be548be810e45dd31d3bbb89c6210980bb7af9bca3ea1292b5f16b75f8e394a7"
+checksum = "4c49f117d373ffcc98a35d114db5478bc223341cff53e39a5d6feced9e2ddffe"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -962,9 +950,9 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.19.5"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4bdbef451b0f0361e7f762987cc6bebd5facab1d535e85a3cf1115dfb08db40"
+checksum = "2cd743ba4714d671ad6b6234e8ab2a13b42304d0e13ab7eba1dcdd78a7d6d4ef"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -975,11 +963,11 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.19.7"
+version = "0.19.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e52355166df21c7ed16b6a01f615669c7911ed74e27ef60eba339c0d2da12490"
+checksum = "39650279f135469465018daae0ba53357942a5212137515777d5fdca74984a44"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "futures-channel",
  "futures-core",
  "futures-executor",
@@ -997,9 +985,9 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.19.7"
+version = "0.19.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70025dbfa1275cf7d0531c3317ba6270dae15d87e63342229d638246ff45202e"
+checksum = "4429b0277a14ae9751350ad9b658b1be0abb5b54faa5bcdf6e74a3372582fad7"
 dependencies = [
  "heck",
  "proc-macro-crate",
@@ -1010,9 +998,9 @@ dependencies = [
 
 [[package]]
 name = "glib-sys"
-version = "0.19.5"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "767d23ead9bbdfcbb1c2242c155c8128a7d13dde7bf69c176f809546135e2282"
+checksum = "5c2dc18d3a82b0006d470b13304fbbb3e0a9bd4884cf985a60a7ed733ac2c4a5"
 dependencies = [
  "libc",
  "system-deps",
@@ -1020,9 +1008,9 @@ dependencies = [
 
 [[package]]
 name = "gobject-sys"
-version = "0.19.5"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3787b0bfacca12bb25f8f822b0dbee9f7e4a86e6469a29976d332d2c14c945b"
+checksum = "2e697e252d6e0416fd1d9e169bda51c0f1c926026c39ca21fbe8b1bb5c3b8b9e"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1031,9 +1019,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-rs"
-version = "0.19.2"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
+checksum = "f5fb86031d24d9ec0a2a15978fc7a65d545a2549642cf1eb7c3dda358da42bcf"
 dependencies = [
  "glib",
  "graphene-sys",
@@ -1042,9 +1030,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-sys"
-version = "0.19.5"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60e7381afdd7be43bd10a89d3b6741d162aabbca3a8db73505afb6a3aea59d"
+checksum = "2f530e0944bccba4b55065e9c69f4975ad691609191ebac16e13ab8e1f27af05"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1085,9 +1073,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer"
-version = "0.22.5"
+version = "0.22.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56b59fdce2dfacda226d4b1b71ce4700b2f04228909b52252c197d8e30bd54a6"
+checksum = "5ca0b90646bb67fccf80d228f5333f2a0745526818ccefbf5a97326c76d30e4d"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -1110,9 +1098,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base"
-version = "0.22.0"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "514c71195b53c7eced4842b66ca9149833e41cf6a1d949e45e2ca4a4fa929850"
+checksum = "39d55668b23fc69f1843daa42b43d289c00fe38e9586c5453b134783d2dd75a3"
 dependencies = [
  "atomic_refcell",
  "cfg-if",
@@ -1124,9 +1112,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base-sys"
-version = "0.22.5"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d8d11de9d94072657f2e9ca294b72326874a1e53de9f45613a9bf00773a5938"
+checksum = "5448abb00c197e3ad306710293bf757303cbeab4036b5ccad21c7642b8bf00c9"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1137,9 +1125,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-play"
-version = "0.22.0"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04cd4315d97f8f38a6a6fdaad27d51cc67fd132785816091ad9985e197d2c052"
+checksum = "495d23636d87581ba42810f72f90a710dd03bd14199e74132e828425b13f0722"
 dependencies = [
  "glib",
  "gstreamer",
@@ -1150,9 +1138,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-play-sys"
-version = "0.22.5"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bdd875021fecd478d0ee3b787dc3fd41be86f83692c59344af2db6251028b3c"
+checksum = "80b4bb761b930472fe0e16ca3d0d92244e94c4a41e2182861c895b082e090400"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1164,9 +1152,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sys"
-version = "0.22.5"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4975a75279a9cf658bac1798dcf57100c6ec89fca7886572c8250ea4d94b76bd"
+checksum = "71f147e7c6bc9313d5569eb15da61f6f64026ec69791922749de230583a07286"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1176,9 +1164,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-video"
-version = "0.22.5"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a7900a4c4d7a48bd73405fb23289d2604c5efe483eb224cbe252d6a7517a6d5"
+checksum = "25acba301f86b02584a642de0f224317be2bd0ceec3acda49a0ef111cbced98c"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -1193,9 +1181,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-video-sys"
-version = "0.22.5"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cbe811de2cc60da42eb6d374a106bb5446e8fcd2134a97319dd2b8cc11450c7"
+checksum = "f2ec210495f94cabaa45d08003081b550095c2d4ab12d5320f64856a91f3f01c"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1271,9 +1259,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.9"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
 
 [[package]]
 name = "hex"
@@ -1371,9 +1359,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.6"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -1390,9 +1378,9 @@ dependencies = [
 
 [[package]]
 name = "is_terminal_polyfill"
-version = "1.70.0"
+version = "1.70.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
 
 [[package]]
 name = "isahc"
@@ -1439,18 +1427,18 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "js-sys"
-version = "0.3.69"
+version = "0.3.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "lazy_static"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
 
 [[package]]
 name = "libadwaita"
@@ -1486,9 +1474,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.155"
+version = "0.2.158"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
 
 [[package]]
 name = "libnghttp2-sys"
@@ -1502,9 +1490,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.18"
+version = "1.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e"
+checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647"
 dependencies = [
  "cc",
  "libc",
@@ -1533,9 +1521,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.21"
+version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 
 [[package]]
 name = "malloc_buf"
@@ -1548,9 +1536,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.7.2"
+version = "2.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
 
 [[package]]
 name = "memoffset"
@@ -1569,19 +1557,28 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
+checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
 dependencies = [
  "adler",
  "simd-adler32",
 ]
 
 [[package]]
-name = "mpris-server"
+name = "miniz_oxide"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc8408a42f7325f9217576c25dd3066d2741ed6a5b962e189493d83c440ca475"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
+dependencies = [
+ "adler2",
+]
+
+[[package]]
+name = "mpris-server"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "058bc2227727af394f34aa51da3e36aeecf2c808f39315d35f754872660750ae"
 dependencies = [
  "async-channel 2.3.1",
  "futures-channel",
@@ -1598,8 +1595,8 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0"
 
 [[package]]
 name = "netease-cloud-music-api"
-version = "1.3.2"
-source = "git+https://gitee.com/gmg137/netease-cloud-music-api.git?tag=1.3.2#4ea470a0e3b4f2a310a70ca485f60d3f6a643c03"
+version = "1.4.0"
+source = "git+https://gitee.com/gmg137/netease-cloud-music-api.git?tag=1.4.0#137a77d2ffb84fd9710f4599bfdc6e65875865f4"
 dependencies = [
  "anyhow",
  "base64",
@@ -1616,7 +1613,7 @@ dependencies = [
 
 [[package]]
 name = "netease-cloud-music-gtk4"
-version = "2.4.0"
+version = "2.4.1"
 dependencies = [
  "anyhow",
  "async-channel 2.3.1",
@@ -1639,11 +1636,11 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.28.0"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "cfg-if",
  "cfg_aliases",
  "libc",
@@ -1721,11 +1718,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "openssl"
-version = "0.10.64"
+version = "0.10.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1753,9 +1750,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.102"
+version = "0.9.103"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
+checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
 dependencies = [
  "cc",
  "libc",
@@ -1784,9 +1781,9 @@ dependencies = [
 
 [[package]]
 name = "pango"
-version = "0.19.5"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "504ce6e805439ea2c6791168fe7ef8e3da0c1b2ef82c44bc450dbc330592920d"
+checksum = "3f0d328648058085cfd6897c9ae4272884098a926f3a833cd50c8c73e6eccecd"
 dependencies = [
  "gio",
  "glib",
@@ -1796,9 +1793,9 @@ dependencies = [
 
 [[package]]
 name = "pango-sys"
-version = "0.19.5"
+version = "0.19.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4829555bdbb83692ddeaf5a6927fb2d025c8131e5ecaa4f7619fff6985d3505"
+checksum = "ff03da4fa086c0b244d4a4587d3e20622a3ecdb21daea9edf66597224c634ba0"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1858,9 +1855,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "piper"
-version = "0.2.2"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf"
+checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
 dependencies = [
  "atomic-waker",
  "fastrand 2.1.0",
@@ -1883,7 +1880,7 @@ dependencies = [
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide",
+ "miniz_oxide 0.7.4",
 ]
 
 [[package]]
@@ -1904,9 +1901,9 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.7.0"
+version = "3.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3"
+checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
@@ -1914,7 +1911,7 @@ dependencies = [
  "pin-project-lite",
  "rustix",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -1925,9 +1922,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
 name = "ppv-lite86"
-version = "0.2.17"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
+dependencies = [
+ "zerocopy",
+]
 
 [[package]]
 name = "proc-macro-crate"
@@ -1940,9 +1940,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.84"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
 dependencies = [
  "unicode-ident",
 ]
@@ -2021,9 +2021,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.4"
+version = "1.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2033,9 +2033,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.6"
+version = "0.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2044,9 +2044,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.3"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
 
 [[package]]
 name = "rustc_version"
@@ -2063,7 +2063,7 @@ version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -2093,18 +2093,18 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.203"
+version = "1.0.208"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.203"
+version = "1.0.208"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2113,11 +2113,12 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.117"
+version = "1.0.125"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed"
 dependencies = [
  "itoa",
+ "memchr",
  "ryu",
  "serde",
 ]
@@ -2135,9 +2136,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.6"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
 dependencies = [
  "serde",
 ]
@@ -2154,6 +2155,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
 name = "signal-hook-registry"
 version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2212,9 +2219,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "syn"
-version = "2.0.66"
+version = "2.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2236,9 +2243,9 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.14"
+version = "0.12.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
 
 [[package]]
 name = "temp-dir"
@@ -2248,30 +2255,31 @@ checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
 
 [[package]]
 name = "tempfile"
-version = "3.10.1"
+version = "3.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
 dependencies = [
  "cfg-if",
  "fastrand 2.1.0",
+ "once_cell",
  "rustix",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.61"
+version = "1.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.61"
+version = "1.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2311,9 +2319,9 @@ dependencies = [
 
 [[package]]
 name = "tinyvec"
-version = "1.6.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
 dependencies = [
  "tinyvec_macros",
 ]
@@ -2326,21 +2334,21 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "toml"
-version = "0.8.13"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.13",
+ "toml_edit 0.22.20",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.6"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
 dependencies = [
  "serde",
 ]
@@ -2358,15 +2366,15 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.13"
+version = "0.22.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
+checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.9",
+ "winnow 0.6.18",
 ]
 
 [[package]]
@@ -2462,9 +2470,9 @@ dependencies = [
 
 [[package]]
 name = "url"
-version = "2.5.0"
+version = "2.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
 dependencies = [
  "form_urlencoded",
  "idna 0.5.0",
@@ -2485,9 +2493,9 @@ checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
 
 [[package]]
 name = "utf8parse"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
 
 [[package]]
 name = "vcpkg"
@@ -2503,9 +2511,9 @@ checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
-version = "0.9.4"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
 
 [[package]]
 name = "waker-fn"
@@ -2521,19 +2529,20 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
 dependencies = [
  "cfg-if",
+ "once_cell",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
 dependencies = [
  "bumpalo",
  "log",
@@ -2546,9 +2555,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2556,9 +2565,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2569,9 +2578,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
 
 [[package]]
 name = "winapi"
@@ -2601,7 +2610,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -2619,7 +2628,16 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -2639,18 +2657,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.5",
- "windows_aarch64_msvc 0.52.5",
- "windows_i686_gnu 0.52.5",
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
  "windows_i686_gnullvm",
- "windows_i686_msvc 0.52.5",
- "windows_x86_64_gnu 0.52.5",
- "windows_x86_64_gnullvm 0.52.5",
- "windows_x86_64_msvc 0.52.5",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
 ]
 
 [[package]]
@@ -2661,9 +2679,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -2673,9 +2691,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -2685,15 +2703,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
 
 [[package]]
 name = "windows_i686_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -2703,9 +2721,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -2715,9 +2733,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -2727,9 +2745,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -2739,9 +2757,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
 
 [[package]]
 name = "winnow"
@@ -2754,28 +2772,28 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.6.9"
+version = "0.6.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86c949fede1d13936a99f14fafd3e76fd642b556dd2ce96287fbe2e0151bfac6"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "xdg-home"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
+checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6"
 dependencies = [
  "libc",
- "winapi",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "zbus"
-version = "4.2.2"
+version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "989c3977a7aafa97b12b9a35d21cdcff9b0d2289762b14683f45d66b1ba6c48f"
+checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -2811,9 +2829,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "4.2.2"
+version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fe9de53245dcf426b7be226a4217dd5e339080e5d46e64a02d6e5dcbf90fca1"
+checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -2834,10 +2852,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "zerocopy"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
+dependencies = [
+ "byteorder",
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
 name = "zvariant"
-version = "4.1.1"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7"
+checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe"
 dependencies = [
  "endi",
  "enumflags2",
@@ -2848,9 +2887,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "4.1.1"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8"
+checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -2861,9 +2900,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant_utils"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786"
+checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix b/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
index 276756f5789af..11910a380f402 100644
--- a/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
+++ b/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
@@ -18,19 +18,19 @@
 
 stdenv.mkDerivation rec {
   pname = "netease-cloud-music-gtk";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "gmg137";
     repo = "netease-cloud-music-gtk";
     rev = version;
-    hash = "sha256-uoC9J09U2aI1dhaKc3TxIyFwRrPRxDrzaV+RyoZ6mKo=";
+    hash = "sha256-5pIt6VBeNiQbKbffTPa0VJzO8pYGnfonpNpdtkaCwGI=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "netease-cloud-music-api-1.3.2" = "sha256-QRz9Sdu+0I7SwujoTBKWPQMjPDdX8ZyVlFwMw9pM7UY=";
+      "netease-cloud-music-api-1.4.0" = "sha256-M/7jvrCndgl9lhmzTrNhQor9CBkWTFjfkVxQPW3ed7Q=";
     };
   };
 
@@ -62,12 +62,12 @@ stdenv.mkDerivation rec {
     gst-plugins-ugly
   ]);
 
-  meta = with lib; {
+  meta = {
     description = "Rust + GTK based netease cloud music player";
     homepage = "https://github.com/gmg137/netease-cloud-music-gtk";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ diffumist aleksana ];
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ diffumist aleksana ];
     mainProgram = "netease-cloud-music-gtk4";
-    platforms = platforms.linux;
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/by-name/ne/netscanner/package.nix b/pkgs/by-name/ne/netscanner/package.nix
index e1d81cf5a9149..516ca5aa11ec9 100644
--- a/pkgs/by-name/ne/netscanner/package.nix
+++ b/pkgs/by-name/ne/netscanner/package.nix
@@ -6,7 +6,7 @@
 }:
 let
   pname = "netscanner";
-  version = "0.5.1";
+  version = "0.5.2";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage {
     owner = "Chleba";
     repo = "netscanner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iRVmazOiUvpl29A0Ju0e2mzFRJtQD7ViY22Jai005nY=";
+    hash = "sha256-gVwI5dGQqSQf2wR7oKMTRIqseUbAEDTTuQ51S6dvEFw=";
   };
 
-  cargoHash = "sha256-oH+rU8IZwC8aZ320bIehddPq/+9IYQs+AlZe94LHNYk=";
+  cargoHash = "sha256-30VSeBbaVWVEO14eUx28HSymfkCxH0IZmEN4cnJ9wIk=";
 
   postFixup = ''
     wrapProgram $out/bin/netscanner \
diff --git a/pkgs/by-name/ne/neural-amp-modeler-lv2/package.nix b/pkgs/by-name/ne/neural-amp-modeler-lv2/package.nix
index a414dc2e65d4f..f9fd98c29e8b2 100644
--- a/pkgs/by-name/ne/neural-amp-modeler-lv2/package.nix
+++ b/pkgs/by-name/ne/neural-amp-modeler-lv2/package.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchFromGitHub {
     owner = "mikeoliphant";
-    repo = finalAttrs.pname;
+    repo = "neural-amp-modeler-lv2";
     rev = finalAttrs.version;
     fetchSubmodules = true;
     hash = "sha256-sRZngmivNvSWcjkIqcqjjaIgXFH8aMq+/caNroXmzIk=";
diff --git a/pkgs/by-name/ne/neverest/package.nix b/pkgs/by-name/ne/neverest/package.nix
index 04e68b52841f6..9b51e9715906f 100644
--- a/pkgs/by-name/ne/neverest/package.nix
+++ b/pkgs/by-name/ne/neverest/package.nix
@@ -5,8 +5,8 @@
 , pkg-config
 , darwin
 , installShellFiles
-, installShellCompletions ? stdenv.hostPlatform == stdenv.buildPlatform
-, installManPages ? stdenv.hostPlatform == stdenv.buildPlatform
+, installShellCompletions ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
+, installManPages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
 , notmuch
 , buildNoDefaultFeatures ? false
 , buildFeatures ? []
@@ -23,12 +23,12 @@ rustPlatform.buildRustPackage rec {
 
   src = fetchFromSourcehut {
     owner = "~soywod";
-    repo = "${pname}-cli";
+    repo = "neverest-cli";
     rev = "v${version}";
     hash = "sha256-3PSJyhxrOCiuHUeVHO77+NecnI5fN5EZfPhYizuYvtE=";
   };
 
-  cargoSha256 = "i5or8oBtjGqOfTfwB7dYXn/OPgr5WEWNEvC0WdCCG+c=";
+  cargoHash = "sha256-i5or8oBtjGqOfTfwB7dYXn/OPgr5WEWNEvC0WdCCG+c=";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optional (installManPages || installShellCompletions) installShellFiles;
diff --git a/pkgs/by-name/ne/next-ls/package.nix b/pkgs/by-name/ne/next-ls/package.nix
new file mode 100644
index 0000000000000..662c289d0a1a6
--- /dev/null
+++ b/pkgs/by-name/ne/next-ls/package.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+
+  beam_minimal,
+  fetchFromGitHub,
+}:
+
+let
+  beamPackages = beam_minimal.packages.erlang_27;
+  elixir = beamPackages.elixir_1_17;
+in
+
+beamPackages.mixRelease rec {
+  pname = "next-ls";
+  version = "0.23.1";
+
+  src = fetchFromGitHub {
+    owner = "elixir-tools";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jI7/BcS9CimCQskXd7Cq3EGPuc9l4L7Gre8hor58ags=";
+  };
+
+  mixFodDeps = beamPackages.fetchMixDeps {
+    inherit src version elixir;
+    pname = "next-ls-deps";
+    hash = "sha256-4Rt5Q0fX+fbncvxyXdpIhgEvn9VYX/QDxDdnbanT21Q=";
+  };
+
+  inherit elixir;
+  inherit (beamPackages) erlang;
+
+  removeCookie = false;
+
+  # replace installPhase to change release target
+  installPhase = ''
+    runHook preInstall
+
+    mix release --no-deps-check --path $out plain
+    makeWrapper $out/bin/plain $out/bin/nextls --add-flags "eval \"System.no_halt(true); Application.ensure_all_started(:next_ls)\""
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.elixir-tools.dev/next-ls/";
+    changelog = "https://github.com/elixir-tools/next-ls/releases/tag/v${version}";
+    description = "The language server for Elixir that just works";
+    license = licenses.mit;
+    mainProgram = "nextls";
+    maintainers = [ maintainers.adamcstephens ];
+    platforms = beamPackages.erlang.meta.platforms;
+  };
+}
diff --git a/pkgs/by-name/ne/nextpnr/package.nix b/pkgs/by-name/ne/nextpnr/package.nix
index 49c86cfc2ab3b..9b00d388b5784 100644
--- a/pkgs/by-name/ne/nextpnr/package.nix
+++ b/pkgs/by-name/ne/nextpnr/package.nix
@@ -40,10 +40,10 @@ stdenv.mkDerivation rec {
   sourceRoot = main_src.name;
 
   nativeBuildInputs
-     = [ cmake ]
+     = [ cmake python3 ]
     ++ (lib.optional enableGui wrapQtAppsHook);
   buildInputs
-     = [ boostPython python3 eigen python3Packages.apycula ]
+     = [ boostPython eigen python3Packages.apycula ]
     ++ (lib.optional enableGui qtbase)
     ++ (lib.optional stdenv.cc.isClang llvmPackages.openmp);
 
diff --git a/pkgs/by-name/ne/nexus/nexus-bin.patch b/pkgs/by-name/ne/nexus/nexus-bin.patch
new file mode 100644
index 0000000000000..14bcc973aae74
--- /dev/null
+++ b/pkgs/by-name/ne/nexus/nexus-bin.patch
@@ -0,0 +1,48 @@
+diff --git a/bin/nexus b/bin/nexus
+index d06cb44..37c606e 100755
+--- a/bin/nexus
++++ b/bin/nexus
+@@ -88,7 +88,7 @@ create_db_entry() {
+   fi
+   db_new_file=${db_file}_new
+   if [ -f "$db_file" ]; then
+-    awk '$2 != "'"$test_dir"'" {print $0}' $db_file > $db_new_file
++    awk '$2 != "'"$test_dir"'" {print $scriptname}' $db_file > $db_new_file
+     rm "$db_file"
+     mv "$db_new_file" "$db_file"
+   fi
+@@ -246,7 +246,7 @@ read_vmoptions() {
+ 
+ unpack_file() {
+   if [ -f "$1" ]; then
+-    jar_file=`echo "$1" | awk '{ print substr($0,1,length-5) }'`
++    jar_file=`echo "$1" | awk '{ print substr($scriptname,1,length-5) }'`
+     bin/unpack200 -r "$1" "$jar_file"
+ 
+     if [ $? -ne 0 ]; then
+@@ -377,9 +377,14 @@ fi
+ 
+ old_pwd=`pwd`
+ 
+-progname=`basename "$0"`
+-linkdir=`dirname "$0"`
++scriptname=$0
+ 
++if [ ! -z "$ALTERNATIVE_NAME" ]; then
++  scriptname=`dirname "$0"`"/"$ALTERNATIVE_NAME
++fi
++
++progname=`basename "$scriptname"`
++linkdir=`dirname "$scriptname"`
+ cd "$linkdir"
+ prg="$progname"
+ 
+@@ -590,7 +595,7 @@ return_code=$?
+ 
+     ;;
+     *)
+-        echo "Usage: $0 {start|stop|run|run-redirect|status|restart|force-reload}"
++        echo "Usage: $scriptname {start|stop|run|run-redirect|status|restart|force-reload}"
+         exit 1
+     ;;
+ esac
diff --git a/pkgs/by-name/ne/nexus/nexus-vm-opts.patch b/pkgs/by-name/ne/nexus/nexus-vm-opts.patch
new file mode 100644
index 0000000000000..744b4b96a56bb
--- /dev/null
+++ b/pkgs/by-name/ne/nexus/nexus-vm-opts.patch
@@ -0,0 +1,14 @@
+diff --git a/bin/nexus b/bin/nexus
+index e7ed3fb..8db766b 100755
+--- a/bin/nexus
++++ b/bin/nexus
+@@ -440,7 +440,8 @@ add_class_path "$app_home/lib/boot/org.apache.karaf.diagnostic.boot-4.0.9.jar"
+ add_class_path "$app_home/lib/boot/org.apache.karaf.jaas.boot-4.0.9.jar"
+ 
+ vmoptions_val=""
+-read_vmoptions "$prg_dir/$progname.vmoptions"
++VM_OPTS=${VM_OPTS_FILE:-"$prg_dir/$progname.vmoptions"}
++read_vmoptions "$VM_OPTS"
+ INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $vmoptions_val"
+ 
+ 
diff --git a/pkgs/by-name/ne/nexus/package.nix b/pkgs/by-name/ne/nexus/package.nix
new file mode 100644
index 0000000000000..68822ba5dcb84
--- /dev/null
+++ b/pkgs/by-name/ne/nexus/package.nix
@@ -0,0 +1,70 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+  makeWrapper,
+  jre_headless,
+  gawk,
+  nixosTests,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nexus";
+  version = "3.69.0-02";
+
+  src = fetchurl {
+    url = "https://download.sonatype.com/nexus/3/nexus-${version}-unix.tar.gz";
+    hash = "sha256-7sgLPuM93mFEPlTd3qJY+FGVHErvgcTGJWwSBcqBgWI=";
+  };
+
+  preferLocalBuild = true;
+
+  sourceRoot = "${pname}-${version}";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  patches = [
+    ./nexus-bin.patch
+    ./nexus-vm-opts.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace bin/nexus.vmoptions \
+      --replace-fail ../sonatype-work /var/lib/sonatype-work \
+      --replace-fail etc/karaf $out/etc/karaf \
+      --replace-fail =. =$out
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -rfv * .install4j $out
+    rm -fv $out/bin/nexus.bat
+
+    wrapProgram $out/bin/nexus \
+      --set JAVA_HOME ${jre_headless} \
+      --set ALTERNATIVE_NAME "nexus" \
+      --prefix PATH "${lib.makeBinPath [ gawk ]}"
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    inherit (nixosTests) nexus;
+  };
+
+  meta = {
+    description = "Repository manager for binary software components";
+    homepage = "https://www.sonatype.com/products/sonatype-nexus-oss";
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    license = lib.licenses.epl10;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [
+      aespinosa
+      ironpinguin
+      luftmensch-luftmensch
+      zaninime
+    ];
+  };
+}
diff --git a/pkgs/by-name/ne/nexusmods-app/package.nix b/pkgs/by-name/ne/nexusmods-app/package.nix
index c331fad8a7f9c..875f17e876bb6 100644
--- a/pkgs/by-name/ne/nexusmods-app/package.nix
+++ b/pkgs/by-name/ne/nexusmods-app/package.nix
@@ -1,26 +1,21 @@
-{ _7zz
-, buildDotnetModule
-, copyDesktopItems
-, desktop-file-utils
-, dotnetCorePackages
-, fetchFromGitHub
-, fontconfig
-, lib
-, libICE
-, libSM
-, libX11
-, nexusmods-app
-, runCommand
-, enableUnfree ? false # Set to true to support RAR format mods
+{
+  _7zz,
+  buildDotnetModule,
+  copyDesktopItems,
+  desktop-file-utils,
+  dotnetCorePackages,
+  fetchFromGitHub,
+  fontconfig,
+  lib,
+  libICE,
+  libSM,
+  libX11,
+  nexusmods-app,
+  runCommand,
+  pname ? "nexusmods-app",
 }:
-let
-  _7zzWithOptionalUnfreeRarSupport = _7zz.override {
-    inherit enableUnfree;
-  };
-in
 buildDotnetModule rec {
-  pname = "nexusmods-app";
-
+  inherit pname;
   version = "0.4.1";
 
   src = fetchFromGitHub {
@@ -31,11 +26,15 @@ buildDotnetModule rec {
     hash = "sha256-FzQphMhiC1g+6qmk/R1v4rq2ldy35NcaWm0RR1UlwLA=";
   };
 
-  projectFile = "NexusMods.App.sln";
+  # If the whole solution is published, there seems to be a race condition where
+  # it will sometimes publish the wrong version of a dependent assembly, for
+  # example: Microsoft.Extensions.Hosting.dll 6.0.0 instead of 8.0.0.
+  # https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/7.0/solution-level-output-no-longer-valid
+  # TODO: do something about this in buildDotnetModule
+  projectFile = "src/NexusMods.App/NexusMods.App.csproj";
+  testProjectFile = "NexusMods.App.sln";
 
-  nativeBuildInputs = [
-    copyDesktopItems
-  ];
+  nativeBuildInputs = [ copyDesktopItems ];
 
   nugetDeps = ./deps.nix;
 
@@ -48,12 +47,15 @@ buildDotnetModule rec {
   '';
 
   postPatch = ''
-    ln --force --symbolic "${lib.getExe _7zzWithOptionalUnfreeRarSupport}" src/ArchiveManagement/NexusMods.FileExtractor/runtimes/linux-x64/native/7zz
+    ln --force --symbolic "${lib.getExe _7zz}" src/ArchiveManagement/NexusMods.FileExtractor/runtimes/linux-x64/native/7zz
+
+    # for some reason these tests fail (intermittently?) with a zero timestamp
+    touch tests/NexusMods.UI.Tests/WorkspaceSystem/*.verified.png
   '';
 
   makeWrapperArgs = [
-    "--prefix PATH : ${lib.makeBinPath [desktop-file-utils]}"
-    "--set APPIMAGE $out/bin/${meta.mainProgram}" # Make associating with nxm links work on Linux
+    "--prefix PATH : ${lib.makeBinPath [ desktop-file-utils ]}"
+    "--set APPIMAGE ${placeholder "out"}/bin/${meta.mainProgram}" # Make associating with nxm links work on Linux
   ];
 
   runtimeDeps = [
@@ -63,52 +65,62 @@ buildDotnetModule rec {
     libX11
   ];
 
-  executables = [
-    nexusmods-app.meta.mainProgram
-  ];
+  executables = [ meta.mainProgram ];
 
   doCheck = true;
 
   dotnetTestFlags = [
     "--environment=USER=nobody"
-    (lib.strings.concatStrings [
+    (
       "--filter="
-      (lib.strings.concatStrings (lib.strings.intersperse "&" ([
-        "Category!=Disabled"
-        "FlakeyTest!=True"
-        "RequiresNetworking!=True"
-        "FullyQualifiedName!=NexusMods.UI.Tests.ImageCacheTests.Test_LoadAndCache_RemoteImage"
-        "FullyQualifiedName!=NexusMods.UI.Tests.ImageCacheTests.Test_LoadAndCache_ImageStoredFile"
-      ] ++ lib.optionals (! enableUnfree) [
-        "FullyQualifiedName!=NexusMods.Games.FOMOD.Tests.FomodXmlInstallerTests.InstallsFilesSimple_UsingRar"
-       ])))
-    ])
+      + lib.strings.concatStringsSep "&" (
+        [
+          "Category!=Disabled"
+          "FlakeyTest!=True"
+          "RequiresNetworking!=True"
+          "FullyQualifiedName!=NexusMods.UI.Tests.ImageCacheTests.Test_LoadAndCache_RemoteImage"
+          "FullyQualifiedName!=NexusMods.UI.Tests.ImageCacheTests.Test_LoadAndCache_ImageStoredFile"
+        ]
+        ++ lib.optionals (!_7zz.meta.unfree) [
+          "FullyQualifiedName!=NexusMods.Games.FOMOD.Tests.FomodXmlInstallerTests.InstallsFilesSimple_UsingRar"
+        ]
+      )
+    )
   ];
 
   passthru = {
-    tests = {
-      serve = runCommand "${pname}-test-serve" { } ''
-        ${nexusmods-app}/bin/${nexusmods-app.meta.mainProgram}
-        touch $out
-      '';
-      help = runCommand "${pname}-test-help" { } ''
-        ${nexusmods-app}/bin/${nexusmods-app.meta.mainProgram} --help
-        touch $out
-      '';
-      associate-nxm = runCommand "${pname}-test-associate-nxm" { } ''
-        ${nexusmods-app}/bin/${nexusmods-app.meta.mainProgram} associate-nxm
-        touch $out
-      '';
-      list-tools = runCommand "${pname}-test-list-tools" { } ''
-        ${nexusmods-app}/bin/${nexusmods-app.meta.mainProgram} list-tools
-        touch $out
-      '';
-    };
+    tests =
+      let
+        runTest =
+          name: script:
+          runCommand "${pname}-test-${name}"
+            {
+              # TODO: use finalAttrs when buildDotnetModule has support
+              nativeBuildInputs = [ nexusmods-app ];
+            }
+            ''
+              ${script}
+              touch $out
+            '';
+      in
+      {
+        serve = runTest "serve" ''
+          NexusMods.App
+        '';
+        help = runTest "help" ''
+          NexusMods.App --help
+        '';
+        associate-nxm = runTest "associate-nxm" ''
+          NexusMods.App associate-nxm
+        '';
+        list-tools = runTest "list-tools" ''
+          NexusMods.App list-tools
+        '';
+      };
     updateScript = ./update.bash;
   };
 
   meta = {
-    description = "Game mod installer, creator and manager";
     mainProgram = "NexusMods.App";
     homepage = "https://github.com/Nexus-Mods/NexusMods.App";
     changelog = "https://github.com/Nexus-Mods/NexusMods.App/releases/tag/${src.rev}";
@@ -118,5 +130,32 @@ buildDotnetModule rec {
       MattSturgeon
     ];
     platforms = lib.platforms.linux;
+    description = "Game mod installer, creator and manager";
+    longDescription = ''
+      A mod installer, creator and manager for all your popular games.
+
+      Currently experimental and undergoing active development,
+      new releases may include breaking changes!
+
+      ${
+        if _7zz.meta.unfree then
+          ''
+            This "unfree" variant includes support for mods packaged as RAR archives.
+          ''
+        else
+          ''
+            It is strongly recommended that you use the "unfree" variant of this package,
+            which provides support for mods packaged as RAR archives.
+
+            You can also enable unrar support manually, by overriding the `_7zz` used:
+
+            ```nix
+            pkgs.nexusmods-app.override {
+              _7zz = pkgs._7zz-rar;
+            }
+            ```
+          ''
+      }
+    '';
   };
 }
diff --git a/pkgs/by-name/ne/nezha-agent/package.nix b/pkgs/by-name/ne/nezha-agent/package.nix
index f96b06f2e9278..629b906d822e3 100644
--- a/pkgs/by-name/ne/nezha-agent/package.nix
+++ b/pkgs/by-name/ne/nezha-agent/package.nix
@@ -7,16 +7,16 @@
 }:
 buildGoModule rec {
   pname = "nezha-agent";
-  version = "0.17.2";
+  version = "0.18.5";
 
   src = fetchFromGitHub {
     owner = "nezhahq";
     repo = "agent";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PUBomSo11URCCJB/qFeSHSS3pw/vvcgDBo9Kc0lJQLE=";
+    hash = "sha256-LmWfs3aL+1lsX4ix2FjDP5g+A0wgcfziXdw5SaKlAdk=";
   };
 
-  vendorHash = "sha256-wVZWP8yvazxs8sG47MTOlWzKwjsZO/b7PN987fwWEaY=";
+  vendorHash = "sha256-frPAhiexFSt+KobMbf32h8xv7HMcPl5koEgSs8Nz3cs=";
 
   ldflags = [
     "-s"