Merge master into staging-nixos
This commit is contained in:
@@ -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";
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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" ]; };
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 [ ])
|
||||
)
|
||||
|
||||
-49
@@ -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
|
||||
|
||||
-33
@@ -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
|
||||
|
||||
-32
@@ -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
|
||||
|
||||
@@ -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
|
||||
;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
})
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 |
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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";
|
||||
|
||||
@@ -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 ]}"
|
||||
)
|
||||
'';
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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; {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 { };
|
||||
};
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
|
||||
@@ -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 ++ [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user