diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix index 496a86337f80..7a914cee49b9 100644 --- a/pkgs/applications/editors/vscode/vscodium.nix +++ b/pkgs/applications/editors/vscode/vscodium.nix @@ -26,11 +26,11 @@ let hash = { - x86_64-linux = "sha256-+aMcRAM1mOu2rLCVGtkygGgM/8VNeteM66BOlmQCIpA="; - x86_64-darwin = "sha256-A/5l3LZn7SYNLkixNAfcb0HJlXY9dN9tjDT/KJ4Ycqk="; - aarch64-linux = "sha256-LxVKn5ld2mhsV9ya2V9zXEjtEZRAUWupMgkWXSgrL+8="; - aarch64-darwin = "sha256-jF18swYLWCtT0GerSLkT01M1sGZmkAb6bRZlRL5Bna4="; - armv7l-linux = "sha256-MlN22vWh0FiqgYQqZ1YjhAEtPRGaGv4Rz3J3LF6udts="; + x86_64-linux = "sha256-lteOBRRmAQbY1zlPaBU8wKdmtpCP4vkk5+YuQ0B5RXg="; + x86_64-darwin = "sha256-1AVMMMEVadg5NpV+xr9kyoX6bNB2uJjBbtXDJ878DvM="; + aarch64-linux = "sha256-XrY+WyRaEvczbtZWRdRhtOOzIOubM+2zvNQ8XMF8bQk="; + aarch64-darwin = "sha256-qgZTf8tWtpf1lRZL9hz3y1AAOn7zElAaCJRo4wUNYeQ="; + armv7l-linux = "sha256-mZof3m9FQrByZoUy7VtS56ePTzbSXmu2Uo1QC0Ay+nM="; } .${system} or throwSystem; @@ -41,7 +41,7 @@ callPackage ./generic.nix rec { # Please backport all compatible updates to the stable release. # This is important for the extension ecosystem. - version = "1.105.17075"; + version = "1.106.27818"; pname = "vscodium"; executableName = "codium"; diff --git a/pkgs/applications/video/kodi/addons/youtube/default.nix b/pkgs/applications/video/kodi/addons/youtube/default.nix index b15ac8656b50..834ea94e8c0d 100644 --- a/pkgs/applications/video/kodi/addons/youtube/default.nix +++ b/pkgs/applications/video/kodi/addons/youtube/default.nix @@ -10,13 +10,13 @@ buildKodiAddon rec { pname = "youtube"; namespace = "plugin.video.youtube"; - version = "7.2.0.3"; + version = "7.3.0"; src = fetchFromGitHub { owner = "anxdpanic"; repo = "plugin.video.youtube"; rev = "v${version}"; - hash = "sha256-Igw4F/6+Ewrxsz1RI4csYsHmB12bkbW+764fQvqCx+0="; + hash = "sha256-JVlIe63oyA8Re8nqLte4y5kyRENzyNg8ZJKdn9wJFwg="; }; propagatedBuildInputs = [ diff --git a/pkgs/applications/video/mpv/scripts/buildLua.nix b/pkgs/applications/video/mpv/scripts/buildLua.nix index 7e4b5b3882ce..d078790ee3cc 100644 --- a/pkgs/applications/video/mpv/scripts/buildLua.nix +++ b/pkgs/applications/video/mpv/scripts/buildLua.nix @@ -23,7 +23,7 @@ lib.makeOverridable ( extendedBy (if lib.isFunction args then args else (_: args)) ( { pname, - extraScripts ? [ ], + extraScriptsToCopy ? [ ], runtime-dependencies ? [ ], ... }@args: @@ -59,8 +59,8 @@ lib.makeOverridable ( echo "Script directory '${scriptPath}' does not contain 'main.lua'" >&2 exit 1 } - [ ${with builtins; toString (length extraScripts)} -eq 0 ] || { - echo "mpvScripts.buildLua does not support 'extraScripts'" \ + [ ${with builtins; toString (length extraScriptsToCopy)} -eq 0 ] || { + echo "mpvScripts.buildLua does not support 'extraScriptsToCopy'" \ "when 'scriptPath' is a directory" >&2 exit 1 } @@ -69,8 +69,8 @@ lib.makeOverridable ( else install -m644 -Dt "${scriptsDir}" ${escaped scriptPath} ${lib.optionalString ( - extraScripts != [ ] - ) ''cp -at "${scriptsDir}/" ${escapedList extraScripts}''} + extraScriptsToCopy != [ ] + ) ''cp -at "${scriptsDir}/" ${escapedList extraScriptsToCopy}''} fi runHook postInstall diff --git a/pkgs/applications/video/mpv/scripts/cutter.nix b/pkgs/applications/video/mpv/scripts/cutter.nix index b051c08a8547..ef18977c88a7 100644 --- a/pkgs/applications/video/mpv/scripts/cutter.nix +++ b/pkgs/applications/video/mpv/scripts/cutter.nix @@ -32,7 +32,7 @@ buildLua { ''; passthru.scriptName = "cutter.lua"; - extraScripts = [ "c_concat.sh" ]; + extraScriptsToCopy = [ "c_concat.sh" ]; postInstall = '' wrapProgram $out/share/mpv/scripts/c_concat.sh \ diff --git a/pkgs/applications/video/mpv/scripts/mpv-osc-tethys.nix b/pkgs/applications/video/mpv/scripts/mpv-osc-tethys.nix index 6f0d6bddb4a4..fe8908ba09d3 100644 --- a/pkgs/applications/video/mpv/scripts/mpv-osc-tethys.nix +++ b/pkgs/applications/video/mpv/scripts/mpv-osc-tethys.nix @@ -8,7 +8,8 @@ buildLua (finalAttrs: { version = "0-unstable-2024-08-19"; scriptPath = "osc_tethys.lua"; - extraScripts = [ "mpv_thumbnail_script_server.lua" ]; + extraScriptsToCopy = [ "mpv_thumbnail_script_server.lua" ]; + extraScriptsToLoad = [ "mpv_thumbnail_script_server.lua" ]; src = fetchFromGitHub { owner = "Zren"; diff --git a/pkgs/applications/video/mpv/scripts/quality-menu.nix b/pkgs/applications/video/mpv/scripts/quality-menu.nix index 8c6f00240c19..f08c383e6559 100644 --- a/pkgs/applications/video/mpv/scripts/quality-menu.nix +++ b/pkgs/applications/video/mpv/scripts/quality-menu.nix @@ -18,7 +18,8 @@ buildLua rec { }; passthru.updateScript = gitUpdater { rev-prefix = "v"; }; - extraScripts = lib.optional oscSupport "quality-menu-osc.lua"; + extraScriptsToCopy = lib.optional oscSupport "quality-menu-osc.lua"; + extraScriptsToLoad = lib.optional oscSupport "quality-menu-osc.lua"; meta = with lib; { description = "Userscript for MPV that allows you to change youtube video quality (ytdl-format) on the fly"; diff --git a/pkgs/applications/video/mpv/scripts/sponsorblock.nix b/pkgs/applications/video/mpv/scripts/sponsorblock.nix index 0a9dadfaa7c6..5a4ebb998d45 100644 --- a/pkgs/applications/video/mpv/scripts/sponsorblock.nix +++ b/pkgs/applications/video/mpv/scripts/sponsorblock.nix @@ -39,7 +39,7 @@ buildLua { --replace-fail 'mp.find_config_file("scripts")' "\"$out/share/mpv/scripts\"" ''; - extraScripts = [ "sponsorblock_shared" ]; + extraScriptsToCopy = [ "sponsorblock_shared" ]; passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; diff --git a/pkgs/applications/video/mpv/scripts/thumbnail.nix b/pkgs/applications/video/mpv/scripts/thumbnail.nix index a3ed87ee74a2..c84cb6f95a67 100644 --- a/pkgs/applications/video/mpv/scripts/thumbnail.nix +++ b/pkgs/applications/video/mpv/scripts/thumbnail.nix @@ -23,8 +23,8 @@ buildLua rec { dontBuild = false; scriptPath = "mpv_thumbnail_script_client_osc.lua"; - extraScripts = [ "mpv_thumbnail_script_server.lua" ]; - passthru.scriptName = "mpv_thumbnail_script_{client_osc,server}.lua"; + extraScriptsToCopy = [ "mpv_thumbnail_script_server.lua" ]; + extraScriptsToLoad = [ "mpv_thumbnail_script_server.lua" ]; meta = { description = "Lua script to show preview thumbnails in mpv's OSC seekbar"; diff --git a/pkgs/applications/video/mpv/wrapper.nix b/pkgs/applications/video/mpv/wrapper.nix index 35b19e24117a..8fc65ae11bea 100644 --- a/pkgs/applications/video/mpv/wrapper.nix +++ b/pkgs/applications/video/mpv/wrapper.nix @@ -82,12 +82,17 @@ let # For every script in the `scripts` argument, add the necessary flags to the wrapper ( script: - [ - "--add-flags" - # Here we rely on the existence of the `scriptName` passthru - # attribute of the script derivation from the `scripts` - "--script=${script}/share/mpv/scripts/${script.scriptName}" - ] + let + mkScriptArgs = script: scriptName: [ + "--add-flags" + "--script=${script}/share/mpv/scripts/${scriptName}" + ]; + in + # Here we rely on the existence of the `scriptName` passthru + # attribute of the script derivation from the `scripts` + (mkScriptArgs script script.scriptName) + # scripts might need others to be explicitly loaded + ++ (map (extraScriptName: mkScriptArgs script extraScriptName) (script.extraScriptsToLoad or [ ])) # scripts can also set the `extraWrapperArgs` passthru ++ (script.extraWrapperArgs or [ ]) ) diff --git a/pkgs/by-name/cl/clash-verge-rev/0001-core-validate-bin_path-to-prevent-RCE-in-start_clash.patch b/pkgs/by-name/cl/clash-verge-rev/0001-core-validate-bin_path-to-prevent-RCE-in-start_clash.patch deleted file mode 100644 index e01ecacee782..000000000000 --- a/pkgs/by-name/cl/clash-verge-rev/0001-core-validate-bin_path-to-prevent-RCE-in-start_clash.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 3f86afc3a14474bff39573b1806046c888203096 Mon Sep 17 00:00:00 2001 -From: wxt <3264117476@qq.com> -Date: Thu, 19 Jun 2025 15:37:16 +0800 -Subject: [PATCH 1/2] core: validate bin_path to prevent RCE in start_clash - -Add a security check in CoreManager::start_clash to ensure that the provided -binary path (`bin_path`) must be located under the current executable's -directory. This prevents potential remote code execution (RCE) attacks -caused by arbitrary binary path injection. ---- - src/service/core.rs | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/src/service/core.rs b/src/service/core.rs -index 28e1d42..21efb26 100644 ---- a/src/service/core.rs -+++ b/src/service/core.rs -@@ -7,6 +7,7 @@ use once_cell::sync::Lazy; - use std::{ - sync::{atomic::Ordering, Arc, Mutex}, - fs::File, -+ env, - }; - use log::{info, error}; - -@@ -223,6 +224,20 @@ impl CoreManager { - } - - pub fn start_clash(&self, body: StartBody) -> Result<(), String> { -+ { -+ let bin_path = std::path::Path::new(body.bin_path.as_str()); -+ let current_exe = std::env::current_exe() -+ .map_err(|e| format!("Failed to get current exe path: {}", e))?; -+ let current_dir = current_exe.parent() -+ .ok_or("Failed to get current directory")?; -+ -+ if !bin_path.starts_with(current_dir) { -+ return Err(format!( -+ "Invalid binary path for clash kernel. It must be under: {}", -+ current_dir.display() -+ )); -+ } -+ } - // 设置配置并测试 - { - info!("设置Clash运行时配置: {:?}", body); --- -2.49.0 - diff --git a/pkgs/by-name/cl/clash-verge-rev/0002-core-prevent-overwriting-existing-file-by-validating.patch b/pkgs/by-name/cl/clash-verge-rev/0002-core-prevent-overwriting-existing-file-by-validating.patch deleted file mode 100644 index b1acaf9c647d..000000000000 --- a/pkgs/by-name/cl/clash-verge-rev/0002-core-prevent-overwriting-existing-file-by-validating.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f7b094a19a47ba515d734f65754d4e57b87239c1 Mon Sep 17 00:00:00 2001 -From: wxt <3264117476@qq.com> -Date: Thu, 19 Jun 2025 15:45:44 +0800 -Subject: [PATCH 2/2] core: prevent overwriting existing file by validating its - existence - -Add a check to verify whether the specified `log_file` already exists before proceeding. -If the file exists, return an error to prevent accidental or malicious overwriting of files. -This enhances the security of log file handling by mitigating arbitrary file overwrite risks. ---- - src/service/core.rs | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/service/core.rs b/src/service/core.rs -index 21efb26..004d0f0 100644 ---- a/src/service/core.rs -+++ b/src/service/core.rs -@@ -123,6 +123,12 @@ impl CoreManager { - let config_file = config.config_file.as_str(); - let log_file = config.log_file.as_str(); - let args = vec!["-d", config_dir, "-f", config_file]; -+ { -+ let log_file_2 = std::path::Path::new(log_file); -+ if log_file_2.exists() { -+ return Err(anyhow!(format!("Log file already exists: {}", log_file_2.display()))); -+ } -+ } - - info!("正在启动mihomo: {} -d {} -f {}", bin_path, config_dir, config_file); - --- -2.49.0 - diff --git a/pkgs/by-name/cl/clash-verge-rev/0003-IPC-move-path-to-run-clash-verge-rev-service.sock.patch b/pkgs/by-name/cl/clash-verge-rev/0003-IPC-move-path-to-run-clash-verge-rev-service.sock.patch deleted file mode 100644 index 6ea69735448d..000000000000 --- a/pkgs/by-name/cl/clash-verge-rev/0003-IPC-move-path-to-run-clash-verge-rev-service.sock.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 75296a3059419b91f638ee45215e56781bfda256 Mon Sep 17 00:00:00 2001 -From: wxt <3264117476@qq.com> -Date: Sat, 28 Jun 2025 14:30:23 +0800 -Subject: [PATCH] IPC: move path to /run/clash-verge-rev/service.sock - ---- - src/service/ipc.rs | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/service/ipc.rs b/src/service/ipc.rs -index df39787..f441cd2 100644 ---- a/src/service/ipc.rs -+++ b/src/service/ipc.rs -@@ -20,7 +20,7 @@ use std::ffi::OsStr; - const IPC_SOCKET_NAME: &str = if cfg!(windows) { - r"\\.\pipe\clash-verge-service" - } else { -- "/tmp/clash-verge-service.sock" -+ "/run/clash-verge-rev/service.sock" - }; - - /// 消息时间有效期(秒) -@@ -660,4 +660,4 @@ fn handle_unix_connection_sync(mut stream: std::os::unix::net::UnixStream) -> Re - .context("写入响应内容失败")?; - - Ok(()) --} -\ No newline at end of file -+} --- -2.49.0 - diff --git a/pkgs/by-name/cl/clash-verge-rev/package.nix b/pkgs/by-name/cl/clash-verge-rev/package.nix index 28d6cb31b733..5cd94a72e5a6 100644 --- a/pkgs/by-name/cl/clash-verge-rev/package.nix +++ b/pkgs/by-name/cl/clash-verge-rev/package.nix @@ -12,32 +12,20 @@ }: let pname = "clash-verge-rev"; - version = "2.4.2"; + version = "2.4.3"; src = fetchFromGitHub { owner = "clash-verge-rev"; repo = "clash-verge-rev"; tag = "v${version}"; - hash = "sha256-HBWvk6bX0GjU/yvUejYgTQM8/IP5dYVrf30wNzgWv0s="; + hash = "sha256-GmoeOLKxdW1x6PHtslwNPVq8wDWA413NHA/VeDRb4mA="; }; - src-service = fetchFromGitHub { - owner = "clash-verge-rev"; - repo = "clash-verge-service"; - rev = "396150683e01e79740563561ae2fe2db28fb8904"; # no meaningful tags in this repo. The only way is updating manully every time. - hash = "sha256-D6U22+tJ6vxn8/BTj/PV+4SF5fvGv6KAWtu5+PNJ1SQ="; - }; - - service-cargo-hash = "sha256-54nmhQjtPLMPoRML/3rG1jipT1VC5EDgRXnKDYuLVmM="; - pnpm-hash = "sha256-neRjVL29xxbQu/XxsQjdAka71oJww40LeDusjsgsY00="; - vendor-hash = "sha256-XszXDajAdYKEUoyrHZDxxp8ICReMnSdEeKVx7JHiaU4="; + pnpm-hash = "sha256-qDwXPTfh1yOlugZe1UPUMKRyZOSagG4lX2eiFACgHRw="; + vendor-hash = "sha256-z5xVbqh+CiaTDtAx2VPQ4UjliYnV44tdp3pS8vzb1K4="; service = callPackage ./service.nix { inherit - version - src-service - service-cargo-hash - pname meta ; }; diff --git a/pkgs/by-name/cl/clash-verge-rev/service.nix b/pkgs/by-name/cl/clash-verge-rev/service.nix index 0eec8512f794..62fb4f588d49 100644 --- a/pkgs/by-name/cl/clash-verge-rev/service.nix +++ b/pkgs/by-name/cl/clash-verge-rev/service.nix @@ -1,47 +1,47 @@ { - version, rustPlatform, - src-service, - pkg-config, - openssl, - pname, - service-cargo-hash, + fetchFromGitHub, meta, + procps, }: -rustPlatform.buildRustPackage { - pname = "${pname}-service"; - inherit version meta; - src = src-service; - sourceRoot = "${src-service.name}"; +rustPlatform.buildRustPackage (finalAttrs: { + pname = "clash-verge-service-ipc"; + version = "2.0.21"; - patches = [ - # I want to keep these patches because it's not harmful. - - # Patch: Restrict bin_path in spawn_process to be under the clash-verge-service directory. - # This prevents arbitrary code execution by ensuring only trusted binaries from the Nix store are allowed to run. - ./0001-core-validate-bin_path-to-prevent-RCE-in-start_clash.patch - - # Patch: Add validation to prevent overwriting existing files. - # This mitigates arbitrary file overwrite risks by ensuring a file does not already exist before writing. - ./0002-core-prevent-overwriting-existing-file-by-validating.patch - - # Patch: move IPC directory from /tmp to /run/clash-verge-rev/service.lock - # This allows we enable ProtectSystem="strict" and PrivateTmp - ./0003-IPC-move-path-to-run-clash-verge-rev-service.sock.patch - ]; - - nativeBuildInputs = [ - pkg-config - ]; - - buildInputs = [ - openssl - ]; - - env = { - OPENSSL_NO_VENDOR = 1; + src = fetchFromGitHub { + owner = "clash-verge-rev"; + repo = "clash-verge-service-ipc"; + rev = "v${finalAttrs.version}"; + hash = "sha256-9c9fM1l31NbY//Ri50Ql60BWWgISjMWj72ABixRaXvM="; }; - cargoHash = service-cargo-hash; -} + postPatch = '' + # set socket path for service and test respectively + substituteInPlace src/lib.rs \ + --replace-fail "/tmp/verge/clash-verge-service.sock" "/run/clash-verge-rev/service.sock" \ + --replace-fail "/tmp/verge/clash-verge-service-test.sock" "$sourceRoot/clash-verge-service-test.sock" + substituteInPlace tests/test_start_permissions.rs \ + --replace-fail "owner_perm | group_perm | other_perm" "0o0755" + ''; + + cargoHash = "sha256-UbNN3uFu5anQV+3KMFPNnGrCDQTGb4uC9K83YghfQgY="; + + buildFeatures = [ + "standalone" + ]; + + nativeCheckInputs = [ + procps + ]; + # build mock_binary for tests + preCheck = '' + cargo build --features=test + ''; + checkFeatures = [ + "standalone" + "test" + "client" + ]; + inherit meta; +}) diff --git a/pkgs/by-name/cl/clash-verge-rev/unwrapped.nix b/pkgs/by-name/cl/clash-verge-rev/unwrapped.nix index 58b985d92210..0fd7f14fe7c3 100644 --- a/pkgs/by-name/cl/clash-verge-rev/unwrapped.nix +++ b/pkgs/by-name/cl/clash-verge-rev/unwrapped.nix @@ -8,6 +8,7 @@ vendor-hash, rustPlatform, + fetchpatch, cargo-tauri, jq, @@ -44,20 +45,25 @@ rustPlatform.buildRustPackage { OPENSSL_NO_VENDOR = 1; }; + patches = [ + (fetchpatch { + url = "https://github.com/clash-verge-rev/clash-verge-rev/commit/645b92bc2815fe55bbc827907bff0edbfee48674.patch"; + hash = "sha256-BH0SvVofW6YJ3e/LOHojisenMwcxYfm3gG/dbxvYBMs="; + }) + ]; + postPatch = '' # We disable the option to try to use the bleeding-edge version of mihomo # If you need a newer version, you can override the mihomo input of the wrapped package sed -i -e '/Mihomo Alpha/d' ./src/components/setting/mods/clash-core-viewer.tsx - # See service.nix for reasons - substituteInPlace src-tauri/src/core/service_ipc.rs \ - --replace-fail "/tmp/clash-verge-service.sock" "/run/clash-verge-rev/service.sock" + # Set service.sock path + substituteInPlace $cargoDepsCopy/clash_verge_service_ipc-*/src/lib.rs \ + --replace-fail "/tmp/verge/clash-verge-service.sock" "/run/clash-verge-rev/service.sock" # Set verge-mihomo.sock path - # In service mode, use /run/clash-verge-rev - # In sidecar mode, use $XDG_RUNTIME_DIR or /run/user/$UID or /tmp substituteInPlace src-tauri/src/utils/dirs.rs \ - --replace-fail '"/var/tmp", "/tmp"' '"/run/clash-verge-rev", &std::env::var("XDG_RUNTIME_DIR").unwrap_or_else(|_| std::env::var("UID").map(|uid| format!("/run/user/{}", uid)).unwrap_or_else(|_| "/tmp".to_string()))' \ - --replace-fail 'base_dir.join("verge")' 'base_dir' + --replace-fail 'once("/tmp")' 'once(&std::env::var("XDG_RUNTIME_DIR").unwrap_or_else(|_| std::env::var("UID").map(|uid| format!("/run/user/{}", uid)).unwrap_or_else(|_| "/tmp".to_string())))' \ + --replace-fail 'join("verge")' 'join("clash-verge-rev")' substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \ --replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1" @@ -80,12 +86,6 @@ rustPlatform.buildRustPackage { ' src-tauri/tauri.conf.json | sponge src-tauri/tauri.conf.json jq 'del(.bundle.externalBin)' src-tauri/tauri.linux.conf.json | sponge src-tauri/tauri.linux.conf.json - - # As a side effect of patching the service to fix the arbitrary file overwrite issue, - # we also need to update the timestamp format in the filename to the second level. - # This ensures that the Clash kernel can still be restarted within one minute without problems. - substituteInPlace src-tauri/src/utils/dirs.rs \ - --replace-fail '%Y-%m-%d-%H%M' '%Y-%m-%d-%H%M%S' ''; nativeBuildInputs = [ diff --git a/pkgs/by-name/de/deja-dup/fix-paths.patch b/pkgs/by-name/de/deja-dup/fix-paths.patch deleted file mode 100644 index c5a735b1c558..000000000000 --- a/pkgs/by-name/de/deja-dup/fix-paths.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/libdeja/duplicity/DuplicityInstance.vala -+++ b/libdeja/duplicity/DuplicityInstance.vala -@@ -114,8 +114,8 @@ internal class DuplicityInstance : Object - // We already are pretty sure we don't have other duplicities in our - // archive directories, because we use our own and we ensure we only have - // one deja-dup running at a time via DBus. - var lockfile_glob = Shell.quote(cache_dir) + "/*/lockfile.lock"; -- if (Posix.system("/bin/rm -f " + lockfile_glob) != 0) -+ if (Posix.system("@coreutils@/bin/rm -f " + lockfile_glob) != 0) - warning("Could not delete '%s'", lockfile_glob); - - Process.spawn_async_with_pipes(null, real_argv, real_envp, - SpawnFlags.SEARCH_PATH | diff --git a/pkgs/by-name/de/deja-dup/package.nix b/pkgs/by-name/de/deja-dup/package.nix index e4e3dc104bc3..9ceb043ee771 100644 --- a/pkgs/by-name/de/deja-dup/package.nix +++ b/pkgs/by-name/de/deja-dup/package.nix @@ -2,25 +2,26 @@ lib, stdenv, fetchFromGitLab, - replaceVars, meson, ninja, pkg-config, vala, gettext, itstool, + blueprint-compiler, desktop-file-utils, glib, glib-networking, gtk4, - coreutils, libsoup_3, libsecret, libadwaita, wrapGAppsHook4, libgpg-error, json-glib, + borgbackup, duplicity, + fuse, rclone, restic, nix-update-script, @@ -28,22 +29,16 @@ stdenv.mkDerivation (finalAttrs: { pname = "deja-dup"; - version = "48.4"; + version = "49.2"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "World"; repo = "deja-dup"; - rev = finalAttrs.version; - hash = "sha256-hFmuJqUHBMSsQW+a9GjI82wNOQjHt5f3rEkGUxYA6Y0="; + tag = finalAttrs.version; + hash = "sha256-yH4XX1MwPxTmKh6p27pYQBQDyeGIT+Ed9E0Y508EF7s="; }; - patches = [ - (replaceVars ./fix-paths.patch { - inherit coreutils; - }) - ]; - nativeBuildInputs = [ meson ninja @@ -51,6 +46,7 @@ stdenv.mkDerivation (finalAttrs: { vala gettext itstool + blueprint-compiler desktop-file-utils wrapGAppsHook4 ]; @@ -67,10 +63,13 @@ stdenv.mkDerivation (finalAttrs: { ]; mesonFlags = [ - "-Dduplicity_command=${lib.getExe duplicity}" - "-Drclone_command=${lib.getExe rclone}" - "-Denable_restic=true" - "-Drestic_command=${lib.getExe restic}" + # Check https://gitlab.gnome.org/World/deja-dup/-/blob/main/meson.options + (lib.mesonOption "borg_command" (lib.getExe borgbackup)) + (lib.mesonOption "duplicity_command" (lib.getExe duplicity)) + (lib.mesonOption "fusermount_command" (lib.getExe' fuse "fusermount")) + (lib.mesonOption "rclone_command" (lib.getExe rclone)) + (lib.mesonOption "restic_command" (lib.getExe restic)) + (lib.mesonEnable "packagekit" false) # packagekit-glib not packaged ]; preFixup = '' @@ -84,19 +83,19 @@ stdenv.mkDerivation (finalAttrs: { updateScript = nix-update-script { }; }; - meta = with lib; { + meta = { description = "Simple backup tool"; longDescription = '' - Déjà Dup is a simple backup tool. It hides the complexity \ - of backing up the Right Way (encrypted, off-site, and regular) \ + Déjà Dup is a simple backup tool. It hides the complexity + of backing up the Right Way (encrypted, off-site, and regular) and uses duplicity as the backend. ''; homepage = "https://apps.gnome.org/DejaDup/"; changelog = "https://gitlab.gnome.org/World/deja-dup/-/releases/${finalAttrs.version}"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ jtojnar ]; - teams = [ teams.gnome-circle ]; - platforms = platforms.linux; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ jtojnar ]; + teams = [ lib.teams.gnome-circle ]; + platforms = lib.platforms.linux; mainProgram = "deja-dup"; }; }) diff --git a/pkgs/by-name/di/diebahn/package.nix b/pkgs/by-name/di/diebahn/package.nix index 18e14e4dcfb6..9f10f9e61743 100644 --- a/pkgs/by-name/di/diebahn/package.nix +++ b/pkgs/by-name/di/diebahn/package.nix @@ -24,18 +24,18 @@ stdenv.mkDerivation rec { pname = "diebahn"; - version = "2.9.2"; + version = "2.9.3"; src = fetchFromGitLab { owner = "schmiddi-on-mobile"; repo = "railway"; tag = version; - hash = "sha256-e39FA0QKn91ZgN+SCY9kYQ6lGc8BgYgLxGj2dSUgi2Q="; + hash = "sha256-Bs+qn6QZnY37Kk7Xl4QE9k41T2W8gIvtcP4I5qLERNI="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; - hash = "sha256-UQc5Q2Wsr3YRSTjT+VWIWjOvDnS2ggvvcVPde+gjqlw="; + hash = "sha256-ijbVyVC0Vq5Olo3odzRv078CosAiIZ6KJNx0Gv5YunI="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/eu/eudic/package.nix b/pkgs/by-name/eu/eudic/package.nix index e943552d3129..a2c486582b6f 100644 --- a/pkgs/by-name/eu/eudic/package.nix +++ b/pkgs/by-name/eu/eudic/package.nix @@ -74,7 +74,8 @@ stdenv.mkDerivation (finalAttrs: { cp -r usr/share $out/share makeWrapper $out/share/eusoft-eudic/eudic $out/bin/eudic \ --inherit-argv0 \ - --set GST_PLUGIN_PATH $out/share/eusoft-eudic/gstreamer-1.0 + --set GST_PLUGIN_PATH $out/share/eusoft-eudic/gstreamer-1.0 \ + --set QT_PLUGIN_PATH $out/share/eusoft-eudic/plugins runHook postInstall ''; diff --git a/pkgs/by-name/gh/gh-gei/package.nix b/pkgs/by-name/gh/gh-gei/package.nix index 109f15e2ea78..738446828cc8 100644 --- a/pkgs/by-name/gh/gh-gei/package.nix +++ b/pkgs/by-name/gh/gh-gei/package.nix @@ -7,13 +7,13 @@ buildDotnetModule rec { pname = "gh-gei"; - version = "1.20.0"; + version = "1.21.0"; src = fetchFromGitHub { owner = "github"; repo = "gh-gei"; rev = "v${version}"; - hash = "sha256-00+yHDvDTJux2XKhJ3u1W1SrYArFGJtYusT/adC2XDE="; + hash = "sha256-hlhryJno8XpSITBv1ShhqP7jPoRtoscD/YGXIU6ubt0="; }; dotnet-sdk = dotnetCorePackages.sdk_8_0_4xx; diff --git a/pkgs/by-name/gi/gitkraken/package.nix b/pkgs/by-name/gi/gitkraken/package.nix index f5eaf100d71d..74302ee33e85 100644 --- a/pkgs/by-name/gi/gitkraken/package.nix +++ b/pkgs/by-name/gi/gitkraken/package.nix @@ -56,24 +56,24 @@ let pname = "gitkraken"; - version = "11.5.1"; + version = "11.6.0"; throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}"; srcs = { x86_64-linux = fetchzip { url = "https://api.gitkraken.dev/releases/production/linux/x64/${version}/gitkraken-amd64.tar.gz"; - hash = "sha256-ctwkU8AWCuOKFetgCIPp6npk1ZO8ozfELrRp4PR3Xjs="; + hash = "sha256-MU/WB4RsNViEulvE6fB7S4QTjjMI/50enlyCIX+xar4="; }; x86_64-darwin = fetchzip { url = "https://api.gitkraken.dev/releases/production/darwin/x64/${version}/GitKraken-v${version}.zip"; - hash = "sha256-7wXpMwFGQeLgT7ObrZ5nUd84jzVArAIQ8vgp+fYDgsw="; + hash = "sha256-Ty+eRZJ6bnBsrs1VtGem1+m9WDZZf/PgiOvFIazQF6I="; }; aarch64-darwin = fetchzip { url = "https://api.gitkraken.dev/releases/production/darwin/arm64/${version}/GitKraken-v${version}.zip"; - hash = "sha256-YkY6izRicIapNF9yMCL+YHJoxrWDdVwrcpj8N99tQCs="; + hash = "sha256-mpJNhvKIBYt3Yd+RjxSgzRP6AfnfHPRbQ0dzd5kQQIQ="; }; }; diff --git a/pkgs/by-name/gi/gitlogue/package.nix b/pkgs/by-name/gi/gitlogue/package.nix new file mode 100644 index 000000000000..fef1bced93c1 --- /dev/null +++ b/pkgs/by-name/gi/gitlogue/package.nix @@ -0,0 +1,52 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + pkg-config, + openssl, + libgit2, + libssh2, + nix-update-script, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "gitlogue"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "unhappychoice"; + repo = "gitlogue"; + tag = "v${finalAttrs.version}"; + hash = "sha256-IKCjv33I6bM5PSp1IBXEArHgNF1hV9J+Zko0uV2OPZA="; + }; + + cargoHash = "sha256-j8h+EI+vOf8nN69ROFiwuUBRi84T/QdhbdMpAMupkoM="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + openssl + libgit2 + libssh2 + ]; + + env = { + OPENSSL_NO_VENDOR = 1; + LIBGIT2_NO_VENDOR = 1; + LIBSSH2_SYS_USE_PKG_CONFIG = 1; + }; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Cinematic Git commit replay tool for the terminal"; + longDescription = '' + A cinematic Git commit replay tool for the terminal, turning your Git history into a living, animated story. + ''; + homepage = "https://github.com/unhappychoice/gitlogue"; + changelog = "https://github.com/unhappychoice/gitlogue/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.isc; + maintainers = with lib.maintainers; [ chillcicada ]; + mainProgram = "gitlogue"; + }; +}) diff --git a/pkgs/by-name/hm/hmat-oss/package.nix b/pkgs/by-name/hm/hmat-oss/package.nix index 569ec114d158..bc5974ee8a89 100644 --- a/pkgs/by-name/hm/hmat-oss/package.nix +++ b/pkgs/by-name/hm/hmat-oss/package.nix @@ -20,14 +20,15 @@ stdenv.mkDerivation (finalAttrs: { }; cmakeFlags = [ - "-DHMAT_GIT_VERSION=OFF" + (lib.cmakeBool "HMAT_GIT_VERSION" false) + # Find BLAS/LAPACK via pkg-config to avoid linking against Accelerate on Darwin. + (lib.cmakeBool "BLA_PREFER_PKGCONFIG" true) + (lib.cmakeFeature "CBLAS_INCLUDE_DIR" "${lib.getDev blas}/include") ]; nativeBuildInputs = [ cmake - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - pkg-config # used to find the LAPACK + pkg-config ]; buildInputs = [ @@ -35,8 +36,6 @@ stdenv.mkDerivation (finalAttrs: { lapack ]; - enableParallelBuilding = true; - meta = { description = "Hierarchical matrix C/C++ library"; homepage = "https://github.com/jeromerobert/hmat-oss"; diff --git a/pkgs/by-name/li/lightdm-slick-greeter/package.nix b/pkgs/by-name/li/lightdm-slick-greeter/package.nix index ca9bc2a58e27..c43509b41000 100644 --- a/pkgs/by-name/li/lightdm-slick-greeter/package.nix +++ b/pkgs/by-name/li/lightdm-slick-greeter/package.nix @@ -18,17 +18,18 @@ linkFarm, lightdm-slick-greeter, numlockx, + xapp-symbolic-icons, }: stdenv.mkDerivation rec { pname = "lightdm-slick-greeter"; - version = "2.2.2"; + version = "2.2.3"; src = fetchFromGitHub { owner = "linuxmint"; repo = "slick-greeter"; rev = version; - hash = "sha256-32H2Q/JdT5v0xrdsZfSJobJ4Dxx63LPgbiB9OKIyc1U="; + hash = "sha256-htyFH1Q8RFyvkW75NMpjajNJDzv/87k/Dr8+R5beT2w="; }; nativeBuildInputs = [ @@ -85,6 +86,7 @@ stdenv.mkDerivation rec { buildPythonPath "$out $pythonPath" gappsWrapperArgs+=( --prefix PYTHONPATH : "$program_PYTHONPATH" + --prefix XDG_DATA_DIRS : "${lib.makeSearchPath "share" [ xapp-symbolic-icons ]}" ) ''; diff --git a/pkgs/by-name/mi/mitra/package.nix b/pkgs/by-name/mi/mitra/package.nix index ccb166f46769..921ad1f4bcee 100644 --- a/pkgs/by-name/mi/mitra/package.nix +++ b/pkgs/by-name/mi/mitra/package.nix @@ -6,17 +6,17 @@ rustPlatform.buildRustPackage rec { pname = "mitra"; - version = "4.13.0"; + version = "4.13.1"; src = fetchFromGitea { domain = "codeberg.org"; owner = "silverpill"; repo = "mitra"; rev = "v${version}"; - hash = "sha256-GPePSGQ40PaLo6twejaIkksJ2CDfzQ/TYcT+4qojmBY="; + hash = "sha256-cfE+4rbM5B9+ojevkoxc1ZY3r0TY5aRV8/qhZ3h4/0A="; }; - cargoHash = "sha256-KSwfDuyh6Qy2TpjylwrKTMlQI/u3kAJuyX1IVDkuICM="; + cargoHash = "sha256-45vFKMPc73XBHCJISdab59HIkY3a0va8BGQMWsrhaZg="; # require running database doCheck = false; diff --git a/pkgs/by-name/pa/paq/package.nix b/pkgs/by-name/pa/paq/package.nix index 2111ec6d502b..13cd81fcfc6a 100644 --- a/pkgs/by-name/pa/paq/package.nix +++ b/pkgs/by-name/pa/paq/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "paq"; - version = "1.2.0"; + version = "1.3.0"; src = fetchFromGitHub { owner = "gregl83"; repo = "paq"; tag = "v${finalAttrs.version}"; - hash = "sha256-vqJxFmPKQQil0iZOSfmy09/GkI3i1PorztIQPzg0UfE="; + hash = "sha256-rx9HkPLCRiaTbTLPPKOIhFU+WoJSr0dRtkvCUFZPn58="; }; - cargoHash = "sha256-PpwYqwetylyYh6DKn2WiZrMOJmbnkv/cY5u51AVNVno="; + cargoHash = "sha256-XaP5rGEPL9Zlth0QYs736eaBPiw46u38GqmSXwnttX0="; nativeInstallCheckInputs = [ versionCheckHook ]; versionCheckProgramArg = "--version"; diff --git a/pkgs/by-name/pi/pix/package.nix b/pkgs/by-name/pi/pix/package.nix index 7a750605a441..69f2975f3144 100644 --- a/pkgs/by-name/pi/pix/package.nix +++ b/pkgs/by-name/pi/pix/package.nix @@ -30,17 +30,18 @@ desktop-file-utils, itstool, xapp, + xapp-symbolic-icons, }: stdenv.mkDerivation rec { pname = "pix"; - version = "3.4.7"; + version = "3.4.8"; src = fetchFromGitHub { owner = "linuxmint"; repo = "pix"; rev = version; - hash = "sha256-Z8JGss5DA4Lsj7fhjRztF6Y+zYjZuIbmYRo7wvwxB8k="; + hash = "sha256-zK02qhTGuYgZWHkJ6c3EVinUcojNEWwecvPjblECLkw="; }; nativeBuildInputs = [ @@ -85,7 +86,6 @@ stdenv.mkDerivation rec { patchShebangs data/gschemas/make-enums.py \ pix/make-pix-h.py \ - po/make-potfiles-in.py \ postinstall.py \ pix/make-authors-tab.py ''; @@ -95,7 +95,12 @@ stdenv.mkDerivation rec { mesonFlags = [ "-Dwebservices=false" ]; preFixup = '' - gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share") + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${ + lib.makeSearchPath "share" [ + shared-mime-info + xapp-symbolic-icons + ] + }") ''; meta = with lib; { diff --git a/pkgs/by-name/qu/quickjs/package.nix b/pkgs/by-name/qu/quickjs/package.nix index c687be6be8a2..41e949c8c5bb 100644 --- a/pkgs/by-name/qu/quickjs/package.nix +++ b/pkgs/by-name/qu/quickjs/package.nix @@ -24,7 +24,11 @@ stdenv.mkDerivation (finalAttrs: { texinfo ]; - makeFlags = [ "PREFIX=$(out)" ]; + makeFlags = [ + "CC=${stdenv.cc.targetPrefix}cc" + "AR=${stdenv.cc.targetPrefix}ar" + "PREFIX=$(out)" + ]; doInstallCheck = true; diff --git a/pkgs/by-name/re/resources/package.nix b/pkgs/by-name/re/resources/package.nix index eab66add2b3b..c0eaa188e754 100644 --- a/pkgs/by-name/re/resources/package.nix +++ b/pkgs/by-name/re/resources/package.nix @@ -17,23 +17,24 @@ libadwaita, dmidecode, util-linux, + systemd, nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "resources"; - version = "1.8.0"; + version = "1.9.0"; src = fetchFromGitHub { owner = "nokyan"; repo = "resources"; tag = "v${finalAttrs.version}"; - hash = "sha256-z4ZVj/nS4n3oqENSK87YJ8sQRnqK7c4tWzKHUD0Qw2s="; + hash = "sha256-ayptMBniaqVQwLThxTbMn5498kURjwRkC9lVPs7pryo="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-jHdEiK3nu9mN2A6biHq9Iu4bSniD74hGnKFBTt5xVDM="; + hash = "sha256-b6zWjSTkqdLaWRtMIHTLT0rEHlIxEKejYuoJkr4C3nY="; }; nativeBuildInputs = [ @@ -55,19 +56,21 @@ stdenv.mkDerivation (finalAttrs: { libadwaita ]; - postPatch = '' - substituteInPlace src/utils/memory.rs \ - --replace '"dmidecode"' '"${dmidecode}/bin/dmidecode"' - substituteInPlace src/utils/cpu.rs \ - --replace '"lscpu"' '"${util-linux}/bin/lscpu"' - substituteInPlace src/utils/memory.rs \ - --replace '"pkexec"' '"/run/wrappers/bin/pkexec"' - ''; + # Check all Command::new + runtimeDeps = [ + dmidecode + util-linux # lscpu + systemd # udevadm + ]; mesonFlags = [ (lib.mesonOption "profile" "default") ]; + preFixup = '' + gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath finalAttrs.runtimeDeps}) + ''; + passthru = { updateScript = nix-update-script { }; }; diff --git a/pkgs/by-name/st/sticky/package.nix b/pkgs/by-name/st/sticky/package.nix index 1e5910ba4e5d..666d6e24563a 100644 --- a/pkgs/by-name/st/sticky/package.nix +++ b/pkgs/by-name/st/sticky/package.nix @@ -11,18 +11,19 @@ glib, gspell, gtk3, + xapp-symbolic-icons, gitUpdater, }: stdenv.mkDerivation rec { pname = "sticky"; - version = "1.27"; + version = "1.28"; src = fetchFromGitHub { owner = "linuxmint"; repo = "sticky"; rev = version; - hash = "sha256-IuYRcvoUyY03aEclkiOmamjb/c/JaYYIoqKdcwDSY8Q="; + hash = "sha256-6CRkeJ2xuUs3viyYxnrgGFUIakK7ANyVpPZuwU486NM="; }; postPatch = '' @@ -51,14 +52,13 @@ stdenv.mkDerivation rec { python-xapp ]; - dontWrapGApps = true; - preFixup = '' buildPythonPath "$out $pythonPath" - wrapProgram $out/bin/sticky \ - --prefix PYTHONPATH : "$program_PYTHONPATH" \ - ''${gappsWrapperArgs[@]} + gappsWrapperArgs+=( + --prefix PYTHONPATH : "$program_PYTHONPATH" + --prefix XDG_DATA_DIRS : "${lib.makeSearchPath "share" [ xapp-symbolic-icons ]}" + ) ''; passthru = { diff --git a/pkgs/by-name/sw/swayidle/package.nix b/pkgs/by-name/sw/swayidle/package.nix index 30fd4cbd0407..72ca93e7d2b0 100644 --- a/pkgs/by-name/sw/swayidle/package.nix +++ b/pkgs/by-name/sw/swayidle/package.nix @@ -10,8 +10,8 @@ wayland, wayland-protocols, runtimeShell, - systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, - systemd, + systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs, + systemdLibs, }: stdenv.mkDerivation rec { @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "swaywm"; repo = "swayidle"; - rev = "v${version}"; + tag = "v${version}"; hash = "sha256-fxDwRfAXb9D6epLlyWnXpy9g8V3ovJRpQ/f3M4jxY/s="; }; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { wayland wayland-protocols ] - ++ lib.optionals systemdSupport [ systemd ]; + ++ lib.optionals systemdSupport [ systemdLibs ]; mesonFlags = [ "-Dman-pages=enabled" diff --git a/pkgs/by-name/va/valent/package.nix b/pkgs/by-name/va/valent/package.nix index 0b78dddad971..a59479fe7267 100644 --- a/pkgs/by-name/va/valent/package.nix +++ b/pkgs/by-name/va/valent/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, desktop-file-utils, + glycin-loaders, gobject-introspection, meson, ninja, @@ -10,13 +11,13 @@ wrapGAppsHook4, vala, evolution-data-server-gtk4, - gdk-pixbuf, glib, glib-networking, gnutls, gst_all_1, json-glib, libadwaita, + libglycin, libpeas2, libphonenumber, libportal-gtk4, @@ -52,7 +53,6 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ evolution-data-server-gtk4 - gdk-pixbuf glib glib-networking gnutls @@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: { gst_all_1.gst-plugins-base json-glib libadwaita + libglycin libpeas2 libphonenumber libportal-gtk4 @@ -68,9 +69,11 @@ stdenv.mkDerivation (finalAttrs: { tinysparql ]; - mesonFlags = [ - (lib.mesonBool "plugin_bluez" true) - ]; + preFixup = '' + gappsWrapperArgs+=( + --prefix XDG_DATA_DIRS : "${glycin-loaders}/share" + ) + ''; passthru.updateScript = nix-update-script { }; diff --git a/pkgs/by-name/wi/wike/package.nix b/pkgs/by-name/wi/wike/package.nix index 130c0bd46ebb..c6864bfc8d79 100644 --- a/pkgs/by-name/wi/wike/package.nix +++ b/pkgs/by-name/wi/wike/package.nix @@ -1,11 +1,10 @@ { lib, fetchFromGitHub, - python3, + python3Packages, meson, ninja, pkg-config, - pkgsCross, appstream-glib, desktop-file-utils, gobject-introspection, @@ -19,16 +18,16 @@ nix-update-script, }: -python3.pkgs.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "wike"; - version = "3.1.1"; - format = "other"; + version = "3.1.3"; + pyproject = false; # built with meson src = fetchFromGitHub { owner = "hugolabe"; repo = "Wike"; - rev = version; - hash = "sha256-Unw+r8NlfaSn/UCtdnkCCsC6xM33Qy6hQdUg/4bIG+I="; + tag = version; + hash = "sha256-+N9yhzIErFc0z/2JqEtit02GZKqo11viGCLoyQxtxBU="; }; nativeBuildInputs = [ @@ -50,7 +49,7 @@ python3.pkgs.buildPythonApplication rec { webkitgtk_6_0 ]; - propagatedBuildInputs = with python3.pkgs; [ + dependencies = with python3Packages; [ requests pygobject3 ]; @@ -64,17 +63,16 @@ python3.pkgs.buildPythonApplication rec { ''; passthru = { - tests.cross = pkgsCross.aarch64-multiplatform.wike; updateScript = nix-update-script { }; }; - meta = with lib; { + meta = { description = "Wikipedia Reader for the GNOME Desktop"; homepage = "https://github.com/hugolabe/Wike"; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ samalws ]; - teams = [ teams.gnome-circle ]; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ samalws ]; + teams = [ lib.teams.gnome-circle ]; mainProgram = "wike"; }; } diff --git a/pkgs/by-name/wl/wl-clicker/package.nix b/pkgs/by-name/wl/wl-clicker/package.nix index aa54cf4d6db7..122a36f5cc88 100644 --- a/pkgs/by-name/wl/wl-clicker/package.nix +++ b/pkgs/by-name/wl/wl-clicker/package.nix @@ -5,11 +5,12 @@ wayland-scanner, wlr-protocols, wayland, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "wl-clicker"; - version = "0.3.1"; + version = "0.4"; nativeBuildInputs = [ wayland-scanner ]; buildInputs = [ @@ -18,29 +19,31 @@ stdenv.mkDerivation (finalAttrs: { ]; src = fetchFromGitHub { - owner = "phonetic112"; + owner = "phoneticalb"; repo = "wl-clicker"; - rev = "v${finalAttrs.version}"; - hash = "sha256-HuUK1kkqIdB5SdcewJ1J8elzqrFaFWC3BRV3GgcasTU="; + tag = "v${finalAttrs.version}"; + hash = "sha256-+k3iZOv12WbqpeYbYjIXBIB4mO2DrY1pl+MJn2B+cZA="; }; - postPatch = '' - sed -i 's|/usr|${wlr-protocols}|g' Makefile - ''; + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; installPhase = '' runHook preInstall - mkdir -p $out/bin - install build/wl-clicker $out/bin/wl-clicker + install -D build/wl-clicker --target-directory="$out"/bin runHook postInstall ''; + passthru.updateScript = nix-update-script { }; + meta = { description = "Wayland autoclicker"; - longDescription = "Script for auto clicking at incredibly high speeds - user must be a part of `input` group to run."; - homepage = "https://github.com/phonetic112/wl-clicker"; + longDescription = '' + Script for auto clicking at incredibly high speeds - user must + be a part of `input` group to run. + ''; + homepage = "https://github.com/phoneticalb/wl-clicker"; license = lib.licenses.mit; maintainers = [ lib.maintainers.Flameopathic ]; mainProgram = "wl-clicker"; diff --git a/pkgs/by-name/xa/xapp-symbolic-icons/package.nix b/pkgs/by-name/xa/xapp-symbolic-icons/package.nix index f37f4125c07c..26dc86e412b5 100644 --- a/pkgs/by-name/xa/xapp-symbolic-icons/package.nix +++ b/pkgs/by-name/xa/xapp-symbolic-icons/package.nix @@ -9,13 +9,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "xapp-symbolic-icons"; - version = "1.0.1"; + version = "1.0.2"; src = fetchFromGitHub { owner = "xapp-project"; repo = "xapp-symbolic-icons"; tag = finalAttrs.version; - hash = "sha256-TOSbEcxYXuUtc0RC1Seva8uqF5qveVRq2dpG0BZmCK0="; + hash = "sha256-Z5edMCjw1/LO0+Ms5KCfFJ/iAANO2MihVZmLcJd5d3A="; }; nativeBuildInputs = [ diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix index 01d434a658ae..36d0fe878970 100644 --- a/pkgs/development/haskell-modules/make-package-set.nix +++ b/pkgs/development/haskell-modules/make-package-set.nix @@ -674,10 +674,6 @@ package-set { inherit pkgs lib callPackage; } self inherit src; nativeBuildInputs = [ buildHaskellPackages.cabal-install - - # TODO after https://github.com/haskell/cabal/issues/8352 - # remove ghc - self.ghc ]; dontUnpack = false; } diff --git a/pkgs/development/python-modules/coverage/default.nix b/pkgs/development/python-modules/coverage/default.nix index 9d262342d07a..f213f971e740 100644 --- a/pkgs/development/python-modules/coverage/default.nix +++ b/pkgs/development/python-modules/coverage/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "coverage"; - version = "7.11.3"; + version = "7.12.0"; pyproject = true; src = fetchFromGitHub { owner = "coveragepy"; repo = "coveragepy"; tag = version; - hash = "sha256-NE5lvAy7TjsQwvduYS3+qo96YOymCIyepdPYTyIe3IA="; + hash = "sha256-Geoj48/MIrI8YDdyvAz7AaSa9wY41KhW5Ret4pzpLjc="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-unordered/default.nix b/pkgs/development/python-modules/pytest-unordered/default.nix index dc5aacf40ce2..d0d85ef14cd0 100644 --- a/pkgs/development/python-modules/pytest-unordered/default.nix +++ b/pkgs/development/python-modules/pytest-unordered/default.nix @@ -3,21 +3,20 @@ buildPythonPackage, fetchFromGitHub, setuptools, - mock, pytest, pytestCheckHook, }: buildPythonPackage rec { pname = "pytest-unordered"; - version = "0.6.1"; + version = "0.7.0"; pyproject = true; src = fetchFromGitHub { owner = "utapyngo"; repo = "pytest-unordered"; tag = "v${version}"; - hash = "sha256-nANsX28+G8jcSe8X0dB6Tu3HYHd9ebGkh1AUx8Xq8HM="; + hash = "sha256-JmP2zStxIt+u7sgfRKlnBwM5q5R0GfXtiE7ZgHKtg94="; }; build-system = [ setuptools ]; @@ -25,7 +24,6 @@ buildPythonPackage rec { buildInputs = [ pytest ]; nativeCheckInputs = [ - mock pytestCheckHook ]; diff --git a/pkgs/development/python-modules/safetensors/default.nix b/pkgs/development/python-modules/safetensors/default.nix index 7a695ce0d610..a78e2939365a 100644 --- a/pkgs/development/python-modules/safetensors/default.nix +++ b/pkgs/development/python-modules/safetensors/default.nix @@ -7,6 +7,7 @@ # optional-dependencies numpy, + packaging, torch, tensorflow, flax, @@ -27,14 +28,14 @@ buildPythonPackage rec { pname = "safetensors"; - version = "0.6.2"; + version = "0.7.0"; pyproject = true; src = fetchFromGitHub { owner = "huggingface"; repo = "safetensors"; tag = "v${version}"; - hash = "sha256-IyKk29jMAbYW+16mrpqQWjnsmNFEvUwkB048AAx/Cvw="; + hash = "sha256-qLRPMJJGs3C/PNqHSszNWRoX/DdvXt68TWW0b7aI664="; }; sourceRoot = "${src.name}/bindings/python"; @@ -46,7 +47,7 @@ buildPythonPackage rec { src sourceRoot ; - hash = "sha256-+92fCILZwk/TknGXgR9lRN55WnmkgUJfCszFthstzXs="; + hash = "sha256-zNmL1Uoq/BLh6UBzMgUs/EEbzIvy7z2ylOR//Q959l4="; }; nativeBuildInputs = [ @@ -57,6 +58,7 @@ buildPythonPackage rec { optional-dependencies = lib.fix (self: { numpy = [ numpy ]; torch = self.numpy ++ [ + packaging torch ]; tensorflow = self.numpy ++ [ diff --git a/pkgs/servers/home-assistant/custom-components/moonraker/package.nix b/pkgs/servers/home-assistant/custom-components/moonraker/package.nix index 05cbc40897c3..2cb9f006e74d 100644 --- a/pkgs/servers/home-assistant/custom-components/moonraker/package.nix +++ b/pkgs/servers/home-assistant/custom-components/moonraker/package.nix @@ -2,6 +2,7 @@ lib, buildHomeAssistantComponent, fetchFromGitHub, + home-assistant, pytestCheckHook, pytest-cov-stub, pytest-homeassistant-custom-component, @@ -30,7 +31,8 @@ buildHomeAssistantComponent rec { pytest-homeassistant-custom-component pytest-cov-stub pytestCheckHook - ]; + ] + ++ home-assistant.getPackages "camera" home-assistant.python.pkgs; #skip phases with nothing to do dontConfigure = true; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index e13ae67adf8f..f67328acd3a7 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -376,7 +376,6 @@ python.pkgs.buildPythonApplication rec { dependencies = with python.pkgs; [ # Only packages required in pyproject.toml aiodns - aiofiles aiohasupervisor aiohttp aiohttp-asyncmdnsresolver @@ -396,28 +395,20 @@ python.pkgs.buildPythonApplication rec { cronsim cryptography fnv-hash-fast - ha-ffmpeg hass-nabucasa - hassil home-assistant-bluetooth - home-assistant-intents httpx ifaddr jinja2 lru-dict - mutagen - numpy orjson packaging pillow propcache psutil-home-assistant pyjwt - pymicro-vad pyopenssl - pyspeex-noise python-slugify - pyturbojpeg pyyaml requests securetar @@ -444,31 +435,36 @@ python.pkgs.buildPythonApplication rec { # upstream only tests on Linux, so do we. doCheck = stdenv.hostPlatform.isLinux; + requirementsTest = with python.pkgs; [ + # test infrastructure (selectively from requirement_test.txt) + freezegun + pytest-asyncio + pytest-aiohttp + pytest-freezer + pytest-socket + pytest-timeout + pytest-unordered + pytest-xdist + pytestCheckHook + requests-mock + respx + syrupy + ]; + nativeCheckInputs = - with python.pkgs; - [ - # test infrastructure (selectively from requirement_test.txt) - freezegun - pytest-asyncio - pytest-aiohttp - pytest-freezer - pytest-socket - pytest-timeout - pytest-unordered - pytest-xdist - pytestCheckHook - requests-mock - respx - syrupy + requirementsTest + ++ (with python.pkgs; [ # Used in tests/non_packaged_scripts/test_alexa_locales.py beautifulsoup4 # Used in tests/scripts/test_check_config.py colorlog - ] + ]) ++ lib.concatMap (component: getPackages component python.pkgs) [ # some components are needed even if tests in tests/components are disabled - "default_config" + "assist_pipeline" + "frontend" "hue" + "mobile_app" ]; pytestFlags = [ diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix index 19d31b0c774a..0ba85f3d459b 100644 --- a/pkgs/servers/home-assistant/tests.nix +++ b/pkgs/servers/home-assistant/tests.nix @@ -8,46 +8,149 @@ let # some components' tests have additional dependencies extraCheckInputs = with home-assistant.python.pkgs; { - axis = getComponentDeps "deconz"; - homeassistant_connect_zbt2 = getComponentDeps "zha"; + abode = getComponentDeps "camera"; + agent_dvr = getComponentDeps "camera"; + air_quality = getComponentDeps "camera" ++ getComponentDeps "conversation"; + alexa = getComponentDeps "cloud" ++ getComponentDeps "frontend" ++ getComponentDeps "stream"; + android_ip_webcam = getComponentDeps "camera"; + assist_pipeline = getComponentDeps "frontend"; + automation = getComponentDeps "frontend" ++ getComponentDeps "mobile_app"; + axis = getComponentDeps "camera" ++ getComponentDeps "deconz"; + blink = getComponentDeps "camera"; + bthome = getComponentDeps "frontend"; + buienradar = getComponentDeps "camera"; + camera = getComponentDeps "conversation" ++ getComponentDeps "stream"; + canary = getComponentDeps "camera"; + climate = getComponentDeps "conversation"; + color_extractor = getComponentDeps "camera" ++ getComponentDeps "conversation"; + deconz = getComponentDeps "frontend"; + demo = getComponentDeps "camera"; + device_tracker = getComponentDeps "conversation"; + dialogflow = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; + dlib_face_detect = getComponentDeps "image_processing"; + dlib_face_identify = getComponentDeps "image_processing"; + doorbird = getComponentDeps "camera"; + dremel_3d_printer = getComponentDeps "camera"; + elevenlabs = getComponentDeps "tts"; + elkm1 = getComponentDeps "frontend"; + emulated_hue = getComponentDeps "conversation" ++ [ + defusedxml + ]; + emulated_kasa = getComponentDeps "camera" ++ getComponentDeps "conversation"; + environment_canada = getComponentDeps "camera"; + esphome = getComponentDeps "camera"; + fan = getComponentDeps "conversation"; + foscam = getComponentDeps "camera"; + freebox = getComponentDeps "camera"; + fully_kiosk = getComponentDeps "camera"; gardena_bluetooth = getComponentDeps "husqvarna_automower_ble"; + geofency = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; + google_assistant = getComponentDeps "conversation"; + google_assistant_sdk = getComponentDeps "conversation" ++ getComponentDeps "frontend"; + google_cloud = getComponentDeps "tts"; + google_drive = getComponentDeps "frontend"; + google_generative_ai_conversation = getComponentDeps "ai_task"; + google_translate = getComponentDeps "tts"; govee_ble = [ ibeacon-ble ]; - hassio = getComponentDeps "homeassistant_yellow"; + gpslogger = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; + group = getComponentDeps "camera" ++ getComponentDeps "conversation"; + hassio = getComponentDeps "frontend" ++ getComponentDeps "homeassistant_yellow"; + homeassistant = getComponentDeps "camera" ++ getComponentDeps "conversation"; + homeassistant_connect_zbt2 = getComponentDeps "zha"; homeassistant_hardware = getComponentDeps "otbr" ++ getComponentDeps "zha"; homeassistant_sky_connect = getComponentDeps "zha"; homeassistant_yellow = getComponentDeps "zha"; + homekit = getComponentDeps "conversation" ++ getComponentDeps "frontend"; + homekit_controller = getComponentDeps "camera"; + http = getComponentDeps "cloud" ++ getComponentDeps "frontend"; + humidifier = getComponentDeps "conversation"; + hyperion = getComponentDeps "camera"; + ifttt = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; + image_processing = getComponentDeps "conversation"; + intent = getComponentDeps "conversation"; + light = getComponentDeps "conversation"; + local_file = getComponentDeps "camera"; + locative = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; + logbook = getComponentDeps "alexa"; lovelace = [ pychromecast ]; - onboarding = [ + lutron_caseta = getComponentDeps "frontend"; + mailgun = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; + marytts = getComponentDeps "tts"; + media_player = getComponentDeps "camera" ++ getComponentDeps "conversation"; + microsoft = getComponentDeps "tts"; + microsoft_face_detect = getComponentDeps "conversation"; + microsoft_face_identify = getComponentDeps "conversation"; + mjpeg = getComponentDeps "camera"; + mobile_app = getComponentDeps "frontend"; + motioneye = getComponentDeps "camera"; + mqtt = getComponentDeps "camera"; + nest = getComponentDeps "camera" ++ [ + av + ]; + number = getComponentDeps "conversation"; + octoprint = getComponentDeps "camera"; + ollama = getComponentDeps "ai_task"; + onboarding = getComponentDeps "tts" ++ [ pymetno radios rpi-bad-power ]; + onvif = getComponentDeps "camera"; + open_router = getComponentDeps "ai_task"; + openai_conversation = getComponentDeps "camera"; + openalpr_cloud = getComponentDeps "camera" ++ getComponentDeps "conversation"; + prosegur = getComponentDeps "camera"; + prusalink = getComponentDeps "camera"; + push = getComponentDeps "camera"; raspberry_pi = [ rpi-bad-power ]; - shelly = [ - pyswitchbot + reolink = getComponentDeps "stream"; + ring = getComponentDeps "camera"; + roku = getComponentDeps "camera"; + rss_feed_template = [ + defusedxml ]; + script = getComponentDeps "frontend" ++ getComponentDeps "mobile_app"; + sensor = getComponentDeps "camera" ++ getComponentDeps "conversation"; + shelly = getComponentDeps "frontend" ++ getComponentDeps "switchbot"; + sighthound = getComponentDeps "conversation" ++ getComponentDeps "image_processing"; + skybell = getComponentDeps "camera"; + sleep_as_android = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; songpal = [ isal ]; swiss_public_transport = getComponentDeps "cookidoo"; + switch = getComponentDeps "camera" ++ getComponentDeps "conversation"; + switch_as_x = getComponentDeps "camera" ++ getComponentDeps "conversation"; + synology_dsm = getComponentDeps "camera"; system_log = [ isal ]; + tasmota = getComponentDeps "camera"; + todo = getComponentDeps "conversation"; + traccar = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; + trafikverket_camera = getComponentDeps "camera"; + tts = getComponentDeps "conversation"; + tuya = getComponentDeps "camera"; + twilio = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera"; + unifiprotect = getComponentDeps "camera"; + universal = getComponentDeps "camera" ++ getComponentDeps "conversation"; + uvc = getComponentDeps "camera"; + voicerss = getComponentDeps "tts"; + weather = getComponentDeps "conversation"; + websocket_api = getComponentDeps "camera" ++ getComponentDeps "conversation"; xiaomi_miio = [ arrow ]; - zeroconf = [ - aioshelly - ]; - zha = [ - pydeconz - ]; + yandextts = getComponentDeps "tts"; + zeroconf = getComponentDeps "shelly"; + zha = getComponentDeps "deconz" ++ getComponentDeps "frontend"; + zwave_js = getComponentDeps "frontend"; }; extraDisabledTestPaths = { @@ -129,12 +232,12 @@ lib.listToAttrs ( dontInstall = true; nativeCheckInputs = - old.nativeCheckInputs + old.requirementsTest ++ home-assistant.getPackages component home-assistant.python.pkgs ++ extraCheckInputs.${component} or [ ]; - disabledTests = old.disabledTests or [ ] ++ extraDisabledTests.${component} or [ ]; - disabledTestPaths = old.disabledTestPaths or [ ] ++ extraDisabledTestPaths.${component} or [ ]; + disabledTests = extraDisabledTests.${component} or [ ]; + disabledTestPaths = extraDisabledTestPaths.${component} or [ ]; # components are more often racy than the core dontUsePytestXdist = true;