Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-07-26 00:17:52 +00:00
committed by GitHub
69 changed files with 762 additions and 175 deletions
+2
View File
@@ -163,6 +163,8 @@ Nixpkgs fetchers can make use of a http(s) proxy. Each fetcher will automaticall
The environment variable `NIX_SSL_CERT_FILE` is also inherited in fetchers, and can be used to provide a custom certificate bundle to fetchers. This is usually required for a https proxy to work without certificate validation errors.
To use a temporary Tor instance as a proxy for fetching from `.onion` addresses, add `nativeBuildInputs = [ tor.proxyHook ];` to the fetcher parameters.
[]{#fetchurl}
## `fetchurl` {#sec-pkgs-fetchers-fetchurl}
+1
View File
@@ -1648,6 +1648,7 @@
./services/web-apps/part-db.nix
./services/web-apps/pds.nix
./services/web-apps/peering-manager.nix
./services/web-apps/peertube-runner.nix
./services/web-apps/peertube.nix
./services/web-apps/pgpkeyserver-lite.nix
./services/web-apps/photoprism.nix
@@ -766,6 +766,7 @@ in
restartTriggers = [ config.environment.etc."ssh/sshd_config".source ];
serviceConfig = {
Type = "notify-reload";
Restart = "always";
ExecStart = lib.concatStringsSep " " [
(lib.getExe' cfg.package "sshd")
@@ -0,0 +1,256 @@
{
lib,
pkgs,
config,
...
}:
let
cfg = config.services.peertube-runner;
settingsFormat = pkgs.formats.toml { };
configFile = settingsFormat.generate "config.toml" cfg.settings;
env = {
NODE_ENV = "production";
XDG_CONFIG_HOME = "/var/lib/peertube-runner";
XDG_CACHE_HOME = "/var/cache/peertube-runner";
# peertube-runner makes its IPC socket in $XDG_DATA_HOME.
XDG_DATA_HOME = "/run/peertube-runner";
};
in
{
options.services.peertube-runner = {
enable = lib.mkEnableOption "peertube-runner";
package = lib.mkPackageOption pkgs [ "peertube" "runner" ] { };
user = lib.mkOption {
type = lib.types.str;
default = "prunner";
example = "peertube-runner";
description = "User account under which peertube-runner runs.";
};
group = lib.mkOption {
type = lib.types.str;
default = "prunner";
example = "peertube-runner";
description = "Group under which peertube-runner runs.";
};
settings = lib.mkOption {
type = settingsFormat.type;
default = { };
example = lib.literalExpression ''
{
jobs.concurrency = 4;
ffmpeg = {
threads = 0; # Let ffmpeg automatically choose.
nice = 5;
};
transcription.model = "large-v3";
}
'';
description = ''
Configuration for peertube-runner.
See available configuration options at https://docs.joinpeertube.org/maintain/tools#configuration.
'';
};
instancesToRegister = lib.mkOption {
type =
with lib.types;
attrsOf (submodule {
options = {
url = lib.mkOption {
type = lib.types.str;
example = "https://mypeertubeinstance.com";
description = "URL of the PeerTube instance.";
};
registrationTokenFile = lib.mkOption {
type = lib.types.path;
example = "/run/secrets/my-peertube-instance-registration-token";
description = ''
Path to a file containing a registration token for the PeerTube instance.
See how to generate registration tokens at https://docs.joinpeertube.org/admin/remote-runners#manage-remote-runners.
'';
};
runnerName = lib.mkOption {
type = lib.types.str;
example = "Transcription";
description = "Runner name declared to the PeerTube instance.";
};
runnerDescription = lib.mkOption {
type = with lib.types; nullOr str;
default = null;
example = "Runner for video transcription";
description = "Runner description declared to the PeerTube instance.";
};
};
});
default = { };
example = {
personal = {
url = "https://mypeertubeinstance.com";
registrationTokenFile = "/run/secrets/my-peertube-instance-registration-token";
runnerName = "Transcription";
runnerDescription = "Runner for video transcription";
};
};
description = "PeerTube instances to register this runner with.";
};
enabledJobTypes = lib.mkOption {
type = with lib.types; nonEmptyListOf str;
default = [
"vod-web-video-transcoding"
"vod-hls-transcoding"
"vod-audio-merge-transcoding"
"live-rtmp-hls-transcoding"
"video-studio-transcoding"
"video-transcription"
];
example = [ "video-transcription" ];
description = "Job types that this runner will execute.";
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
assertion = !(cfg.settings ? registeredInstances);
message = ''
`services.peertube-runner.settings.registeredInstances` cannot be used.
Instead, registered instances can be configured with `services.peertube-runner.instancesToRegister`.
'';
}
];
warnings = lib.optional (cfg.instancesToRegister == { }) ''
`services.peertube-runner.instancesToRegister` is empty.
Instances cannot be manually registered using the command line.
'';
services.peertube-runner.settings = {
transcription = lib.mkIf (lib.elem "video-transcription" cfg.enabledJobTypes) {
engine = lib.mkDefault "whisper-ctranslate2";
enginePath = lib.mkDefault (lib.getExe pkgs.whisper-ctranslate2);
};
};
environment.systemPackages = [
(pkgs.writeShellScriptBin "peertube-runner" ''
${lib.concatMapAttrsStringSep "\n" (name: value: ''export ${name}="${toString value}"'') env}
if [[ "$USER" == ${cfg.user} ]]; then
exec ${lib.getExe' cfg.package "peertube-runner"} "$@"
else
echo "This has to be run with the \`${cfg.user}\` user. Ex: \`sudo -u ${cfg.user} peertube-runner\`"
fi
'')
];
systemd.services.peertube-runner = {
description = "peertube-runner daemon";
after = [
"network.target"
(lib.mkIf config.services.peertube.enable "peertube.service")
];
wantedBy = [ "multi-user.target" ];
environment = env;
path = [ pkgs.ffmpeg-headless ];
script = ''
config_dir=$XDG_CONFIG_HOME/peertube-runner-nodejs/default
mkdir -p $config_dir
config_file=$config_dir/config.toml
cp -f --no-preserve=mode,ownership ${configFile} $config_file
${lib.optionalString ((lib.length (lib.attrNames cfg.instancesToRegister)) > 0) ''
# Temp config directory for registration commands
temp_dir=$(mktemp --directory)
temp_config_dir=$temp_dir/peertube-runner-nodejs/default
mkdir -p $temp_config_dir
temp_config_file=$temp_config_dir/config.toml
mkdir -p $STATE_DIRECTORY/runner_tokens
${lib.concatMapAttrsStringSep "\n" (instanceName: instance: ''
runner_token_file=$STATE_DIRECTORY/runner_tokens/${instanceName}
# Register any currenctly unregistered instances.
if [ ! -f $runner_token_file ] || [[ $(cat $runner_token_file) != ptrt-* ]]; then
# Server has to be running for registration.
XDG_CONFIG_HOME=$temp_dir ${lib.getExe' cfg.package "peertube-runner"} server &
XDG_CONFIG_HOME=$temp_dir ${lib.getExe' cfg.package "peertube-runner"} register \
--url ${lib.escapeShellArg instance.url} \
--registration-token "$(cat ${instance.registrationTokenFile})" \
--runner-name ${lib.escapeShellArg instance.runnerName} \
${lib.optionalString (
instance.runnerDescription != null
) ''--runner-description ${lib.escapeShellArg instance.runnerDescription}''}
# Kill the server
kill $!
${lib.getExe pkgs.yq-go} -e ".registeredInstances[0].runnerToken" \
$temp_config_file > $runner_token_file
rm $temp_config_file
fi
echo "
[[registeredInstances]]
url = \"${instance.url}\"
runnerToken = \"$(cat $runner_token_file)\"
runnerName = \"${instance.runnerName}\"
${lib.optionalString (
instance.runnerDescription != null
) ''runnerDescription = \"${instance.runnerDescription}\"''}
" >> $config_file
'') cfg.instancesToRegister}
''}
# Don't allow changes that won't persist.
chmod 440 $config_file
systemd-notify --ready
exec ${lib.getExe' cfg.package "peertube-runner"} server ${
lib.concatMapStringsSep " " (jobType: "--enable-job ${jobType}") cfg.enabledJobTypes
}
'';
serviceConfig = {
Type = "notify";
NotifyAccess = "all"; # for systemd-notify
Restart = "always";
RestartSec = 5;
SyslogIdentifier = "prunner";
User = cfg.user;
Group = cfg.group;
StateDirectory = "peertube-runner";
StateDirectoryMode = "0700";
CacheDirectory = "peertube-runner";
CacheDirectoryMode = "0700";
RuntimeDirectory = "peertube-runner";
RuntimeDirectoryMode = "0700";
ProtectSystem = "full";
NoNewPrivileges = true;
ProtectHome = true;
CapabilityBoundingSet = "~CAP_SYS_ADMIN";
};
};
users.users = lib.mkIf (cfg.user == "prunner") {
${cfg.user} = {
isSystemUser = true;
group = cfg.group;
};
};
users.groups = lib.mkIf (cfg.group == "prunner") {
${cfg.group} = { };
};
};
meta.maintainers = lib.teams.ngi.members;
}
+73 -14
View File
@@ -1,8 +1,15 @@
import ../make-test-python.nix (
{ pkgs, ... }:
{ lib, pkgs, ... }:
let
domain = "peertube.local";
port = 9000;
url = "http://${domain}:${toString port}";
password = "zw4SqYVdcsXUfRX8aaFX";
registrationTokenFile = "/etc/peertube-runner-registration-token";
in
{
name = "peertube";
meta.maintainers = with pkgs.lib.maintainers; [ izorkin ];
meta.maintainers = with lib.maintainers; [ izorkin ] ++ lib.teams.ngi.members;
nodes = {
database = {
@@ -53,7 +60,7 @@ import ../make-test-python.nix (
environment = {
etc = {
"peertube/password-init-root".text = ''
PT_INITIAL_ROOT_PASSWORD=zw4SqYVdcsXUfRX8aaFX
PT_INITIAL_ROOT_PASSWORD=${password}
'';
"peertube/secrets-peertube".text = ''
063d9c60d519597acef26003d5ecc32729083965d09181ef3949200cbe5f09ee
@@ -77,14 +84,14 @@ import ../make-test-python.nix (
];
};
extraHosts = ''
192.168.2.11 peertube.local
192.168.2.11 ${domain}
'';
firewall.allowedTCPPorts = [ 9000 ];
firewall.allowedTCPPorts = [ port ];
};
services.peertube = {
enable = true;
localDomain = "peertube.local";
localDomain = domain;
enableWebHttps = false;
serviceEnvironmentFile = "/etc/peertube/password-init-root";
@@ -132,9 +139,28 @@ import ../make-test-python.nix (
];
};
extraHosts = ''
192.168.2.11 peertube.local
192.168.2.11 ${domain}
'';
};
services.peertube-runner = {
enable = true;
# Don't pull in unneeded dependencies.
enabledJobTypes = [ "video-studio-transcoding" ];
instancesToRegister = {
testServer1 = {
inherit url registrationTokenFile;
runnerName = "I'm a test!!!";
};
testServer2 = {
inherit url registrationTokenFile;
runnerName = "I'm also a test...";
runnerDescription = "Even more testing?!?!";
};
};
};
# Will be manually started in test script.
systemd.services.peertube-runner.wantedBy = lib.mkForce [ ];
};
};
@@ -149,16 +175,49 @@ import ../make-test-python.nix (
database.wait_for_open_port(31638)
server.wait_for_unit("peertube.service")
server.wait_for_open_port(9000)
server.wait_for_open_port(${toString port})
# Check if PeerTube is running
client.succeed("curl --fail http://peertube.local:9000/api/v1/config/about | jq -r '.instance.name' | grep 'PeerTube\ Test\ Server'")
client.succeed("curl --fail ${url}/api/v1/config/about | jq -r '.instance.name' | grep 'PeerTube Test Server'")
# Check PeerTube CLI version
client.succeed('peertube-cli auth add -u "http://peertube.local:9000" -U "root" --password "zw4SqYVdcsXUfRX8aaFX"')
client.succeed('peertube-cli auth list | grep "http://peertube.local:9000"')
client.succeed('peertube-cli auth del "http://peertube.local:9000"')
client.fail('peertube-cli auth list | grep "http://peertube.local:9000"')
# PeerTube CLI
client.succeed('peertube-cli auth add -u "${url}" -U "root" --password "${password}"')
client.succeed('peertube-cli auth list | grep "${url}"')
client.succeed('peertube-cli auth del "${url}"')
client.fail('peertube-cli auth list | grep "${url}"')
# peertube-runner
access_token = client.succeed(
'peertube-cli get-access-token --url "${url}" --username "root" --password "${password}"'
).strip()
# Generate registration token.
client.succeed(f"curl --fail -X POST -H 'Authorization: Bearer {access_token}' ${url}/api/v1/runners/registration-tokens/generate")
# Get registration token, and put it where `registrationTokenFile` from the
# peertube-runner module points to.
client.succeed(
f"curl --fail -H 'Authorization: Bearer {access_token}' ${url}/api/v1/runners/registration-tokens" \
" | jq --raw-output '.data[0].registrationToken'" \
" > ${registrationTokenFile}"
)
client.systemctl("start peertube-runner.service")
client.wait_for_unit("peertube-runner.service")
runner_command = "sudo -u prunner peertube-runner"
client.succeed(f'{runner_command} list-registered | grep "I\'m a test!!!"')
client.succeed(f'{runner_command} list-registered | grep "I\'m also a test..."')
client.succeed(f'{runner_command} list-registered | grep "Even more testing?!?!"')
# Service should still work once instances are already registered.
client.systemctl("restart peertube-runner.service")
client.wait_for_unit("peertube-runner.service")
# Cleanup
client.shutdown()
server.shutdown()
+13
View File
@@ -157,6 +157,19 @@ lib.makeOverridable (
"GIT_PROXY_COMMAND"
"NIX_GIT_SSL_CAINFO"
"SOCKS_SERVER"
# This is a parameter intended to be set by setup hooks or preFetch
# scripts that want per-URL control over HTTP proxies used by Git
# (if per-URL control isn't needed, `http_proxy` etc. will
# suffice). It must be a whitespace-separated (with backslash as an
# escape character) list of pairs like this:
#
# http://domain1/path1 proxy1 https://domain2/path2 proxy2
#
# where the URLs are as documented in the `git-config` manual page
# under `http.<url>.*`, and the proxies are as documented on the
# same page under `http.proxy`.
"FETCHGIT_HTTP_PROXIES"
];
inherit preferLocalBuild meta allowedRequisites;
@@ -126,6 +126,11 @@ init_remote(){
echo "$sparseCheckout" | git sparse-checkout set --stdin ${nonConeMode:+--no-cone}
fi
( [ -n "$http_proxy" ] && clean_git config --global http.proxy "$http_proxy" ) || true
local proxy_pairs i
read -a proxy_pairs <<< "${FETCHGIT_HTTP_PROXIES:-}"
for ((i = 1; i < ${#proxy_pairs[@]}; i += 2)); do
clean_git config --global "http.${proxy_pairs[$i - 1]}.proxy" "${proxy_pairs[$i]}"
done
}
# Return the reference of an hash if it exists on the remote repository.
+3 -3
View File
@@ -40,20 +40,20 @@
stdenv.mkDerivation (finalAttrs: {
pname = "389-ds-base";
version = "3.1.2";
version = "3.1.3";
src = fetchFromGitHub {
owner = "389ds";
repo = "389-ds-base";
rev = "389-ds-base-${finalAttrs.version}";
hash = "sha256-FIx+ZW3K5KevU+wAiwPbDAQ6q7rPFEHFa+5eKqtgzpQ=";
hash = "sha256-hRTK9xBu8v8+SGa/3IB8Alh/aGUiRRn2LmYOvXy0Yd4=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src;
sourceRoot = "${finalAttrs.src.name}/src";
name = "389-ds-base-${finalAttrs.version}";
hash = "sha256-8A2xnJI22mjupX5FVsvRa5RfWyOE+VLH2aJwBHjDOME=";
hash = "sha256-pNzMQjeBpmzFg6oWCxhLDmKGUKIW6jGmZQWai5Yunjc=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -13,13 +13,13 @@
buildGoModule (finalAttrs: {
pname = "anubis";
version = "1.21.0";
version = "1.21.3";
src = fetchFromGitHub {
owner = "TecharoHQ";
repo = "anubis";
tag = "v${finalAttrs.version}";
hash = "sha256-FKX8E32unAKK8e/Nlrj24FU1amc7AJw28hzmZDbIcIc=";
hash = "sha256-CMFd9che+D1ot1Iqk0VcJmna0xIqHlRIvNnzYo+q+RU=";
};
vendorHash = "sha256-cWkC3Bqut5h3hHh5tPIPeHMnkwoqKMnG1x40uCtUIwI=";
@@ -34,7 +34,7 @@ buildGoModule (finalAttrs: {
pname = "anubis-xess";
inherit (finalAttrs) version src;
npmDepsHash = "sha256-jvYmAbbMRy8fK2Y0YC0UJGhNRLzk1kjzGvRbqhWFzS4=";
npmDepsHash = "sha256-NJMUXGXcaY8l1WIbvCn+aIknVuagR7X8gRkme9xpYQ0=";
buildPhase = ''
runHook preBuild
+3 -3
View File
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage rec {
pname = "bootc";
version = "1.5.0";
version = "1.5.1";
useFetchCargoVendor = true;
cargoHash = "sha256-3/Ngq6ZHPoE9BMychv+Jg0LhtJrY8GPrFYu7lRvX1+k=";
cargoHash = "sha256-+FxydTK0Dmcj+doHMSoTgiues7Rrwxv/D+BOq4siKCk=";
doInstallCheck = true;
src = fetchFromGitHub {
owner = "bootc-dev";
repo = "bootc";
rev = "v${version}";
hash = "sha256-1u4pBiySYzudFVf4bayQ7FbXf4EjA4v1+AOX9E+tjyA=";
hash = "sha256-LmhgCiVFbhrePV/A/FaNjD7VytUZqSm9VDU+1z0O98U=";
};
nativeBuildInputs = [ pkg-config ];
+3 -3
View File
@@ -14,17 +14,17 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-lambda";
version = "1.8.5";
version = "1.8.6";
src = fetchFromGitHub {
owner = "cargo-lambda";
repo = "cargo-lambda";
tag = "v${version}";
hash = "sha256-iYfm7/XbLThtEo+zSW8sn7T6XEhzyiVKy6/cisshc+Y=";
hash = "sha256-ocFD2FK1nlEJ8xXhDSxpSKYU8oZk/QwfojveypVt1GU=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-mCD3Szbl5BXknTWJhm2xlcIV0aKczsEi8yRDA4erTYc=";
cargoHash = "sha256-yE0pr7RZb015d51QtwVNfqXd8yEETvDdKJ5M7Oqc4Ds=";
nativeCheckInputs = [ cacert ];
+3 -3
View File
@@ -13,17 +13,17 @@
rustPlatform.buildRustPackage rec {
pname = "tauri";
version = "2.7.0";
version = "2.7.1";
src = fetchFromGitHub {
owner = "tauri-apps";
repo = "tauri";
tag = "tauri-cli-v${version}";
hash = "sha256-nEt4xoVHozqxWnyrXTn7XDgH2HYCzrfqBgt71+goYms=";
hash = "sha256-0J55AvAvvqTVls4474GcgLPBtSC+rh8cXVKluMjAVBE=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-av5UF0MgKnTwEX4dHhekvj2tz/BOZyUbs1YqLwx28Cw=";
cargoHash = "sha256-nkY1ydc2VewRwY+B5nR68mz8Ff3FK1KoHE4dLzNtPkY=";
nativeBuildInputs = [ pkg-config ];
+3 -3
View File
@@ -8,7 +8,7 @@
buildGoModule rec {
pname = "consul";
version = "1.21.2";
version = "1.21.3";
# Note: Currently only release tags are supported, because they have the Consul UI
# vendored. See
@@ -22,7 +22,7 @@ buildGoModule rec {
owner = "hashicorp";
repo = "consul";
tag = "v${version}";
hash = "sha256-ejslKLoZFxNKQiV9AH+djRIN1lUC4WvUBkaVOENsHwM=";
hash = "sha256-mWwDAlHbG0L/9xNAmUxAj2S5dDaWZaah/OWPndBRRWE=";
};
# This corresponds to paths with package main - normally unneeded but consul
@@ -32,7 +32,7 @@ buildGoModule rec {
"connect/certgen"
];
vendorHash = "sha256-Bmuc/nNNztd0wZqpLrFv4FZ/1CZ2lN1Bhob+grJJC8w=";
vendorHash = "sha256-jb/oUcqMHNBlDgqYNDai2Q9ChA98JGXwFHWNxnrMpaU=";
doCheck = false;
+2 -2
View File
@@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "exploitdb";
version = "2025-07-17";
version = "2025-07-23";
src = fetchFromGitLab {
owner = "exploit-database";
repo = "exploitdb";
tag = finalAttrs.version;
hash = "sha256-RxK983lsfEHKCG9lG7EBVgpS3XJ3NC0LjsgDF8dVcn8=";
hash = "sha256-wnYqtWtqvy5SsgHSDIzxNpnhXMT4WIVwWh2woW4eLhw=";
};
nativeBuildInputs = [ makeWrapper ];
+2 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "faudio";
version = "25.06";
version = "25.07";
src = fetchFromGitHub {
owner = "FNA-XNA";
repo = "FAudio";
tag = finalAttrs.version;
hash = "sha256-wIFUOOpI/kUeXjodHwt1KZ30ooSYEGrZ8XSW0zOm3xk=";
hash = "sha256-ZMU3ntvnUHbeWQ5k5ZSnSLBABGm/F/rSAUM4blorpts=";
};
nativeBuildInputs = [ cmake ];
+2 -2
View File
@@ -1,6 +1,6 @@
import ./generic.nix {
version = "12.0.0";
hash = "sha256-8cokjK9fbxd9lm+5oDoMll9f7ejiVzMNuDgC0Pk1pbM=";
version = "12.0.1";
hash = "sha256-MBk5QHjnyMXmQDIbMuehjcGN/PUN1ViRtIi1pJGHlW0=";
npmDepsHash = "sha256-kq2AV1D0xA4Csm8XUTU5D0iCmyuajcnwlLdPjJ/mj1g=";
vendorHash = "sha256-B9menPCDUOYHPCS0B5KpxuE03FdFXmA8XqkiYEAxs5Y=";
lts = false;
+23 -8
View File
@@ -10,6 +10,7 @@
gettext,
glib,
glibcLocales,
gobject-introspection,
gtest,
guile,
gwenhywfar,
@@ -24,12 +25,17 @@
perlPackages,
pkg-config,
swig,
webkitgtk_4_0,
webkitgtk_4_1,
wrapGAppsHook3,
python3,
replaceVars,
}:
let
py = python3.withPackages (
ps: with ps; [
pygobject3.out
]
);
in
stdenv.mkDerivation rec {
pname = "gnucash";
version = "5.11";
@@ -43,6 +49,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
cmake
gettext
gobject-introspection
makeWrapper
wrapGAppsHook3
pkg-config
@@ -69,8 +76,8 @@ stdenv.mkDerivation rec {
libxml2
libxslt
swig
webkitgtk_4_0
python3
webkitgtk_4_1
py
]
++ (with perlPackages; [
JSONParse
@@ -151,11 +158,16 @@ stdenv.mkDerivation rec {
# Perl wrapping
dontWrapGApps = true;
# gnucash is wrapped using the args constructed for wrapGAppsHook3.
# We could not find the python entrypoint and somehow it is used from PATH,
# so force to use the one with all dependencies
# gnc-fq-* are cli utils written in Perl hence the extra wrapping
postFixup = ''
wrapProgram $out/bin/gnucash "''${gappsWrapperArgs[@]}"
wrapProgram $out/bin/gnucash-cli "''${gappsWrapperArgs[@]}"
wrapProgram $out/bin/gnucash \
--prefix PATH : ${lib.makeBinPath [ py ]} \
"''${gappsWrapperArgs[@]}"
wrapProgram $out/bin/gnucash-cli \
--prefix PATH : ${lib.makeBinPath [ py ]} \
"''${gappsWrapperArgs[@]}"
wrapProgram $out/bin/finance-quote-wrapper \
--prefix PERL5LIB : "${
@@ -165,6 +177,9 @@ stdenv.mkDerivation rec {
FinanceQuote
]
}"
chmod +x $out/share/gnucash/python/pycons/*.py
patchShebangs $out/share/gnucash/python/pycons/*.py
'';
passthru.updateScript = ./update.sh;
+8 -2
View File
@@ -43,8 +43,10 @@
libmsgraph,
python3,
gsettings-desktop-schemas,
googleSupport ? false, # dependency on vulnerable libsoup versions
}:
assert googleSupport -> gnomeSupport;
stdenv.mkDerivation (finalAttrs: {
pname = "gvfs";
version = "1.57.2";
@@ -106,8 +108,10 @@ stdenv.mkDerivation (finalAttrs: {
glib-networking # TLS support
gnome-online-accounts
libsecret
libgdata
libmsgraph
]
++ lib.optionals googleSupport [
libgdata
];
mesonFlags = [
@@ -130,9 +134,11 @@ stdenv.mkDerivation (finalAttrs: {
"-Dgcr=false"
"-Dgoa=false"
"-Dkeyring=false"
"-Dgoogle=false"
"-Donedrive=false"
]
++ lib.optionals (!googleSupport) [
"-Dgoogle=false"
]
++ lib.optionals (avahi == null) [
"-Ddnssd=false"
]
@@ -15,14 +15,14 @@ let
dashboardIcons = fetchFromGitHub {
owner = "homarr-labs";
repo = "dashboard-icons";
rev = "51a2ae7b101c520bcfb5b44e5ddc99e658bc1e21"; # Until 2025-01-06
hash = "sha256-rKXeMAhHV0Ax7mVFyn6hIZXm5RFkbGakjugU0DG0jLM=";
rev = "f222c55843b888a82e9f2fe2697365841cbe6025"; # Until 2025-07-11
hash = "sha256-VOWQh8ZadsqNInoXcRKYuXfWn5MK0qJpuYEWgM7Pny8=";
};
installLocalIcons = ''
mkdir -p $out/share/homepage/public/icons
cp ${dashboardIcons}/png/* $out/share/homepage/public/icons
cp ${dashboardIcons}/svg/* $out/share/homepage/public/icons
cp -r --no-preserve=mode ${dashboardIcons}/png/. $out/share/homepage/public/icons
cp -r --no-preserve=mode ${dashboardIcons}/svg/. $out/share/homepage/public/icons
cp ${dashboardIcons}/LICENSE $out/share/homepage/public/icons/
'';
in
+2 -2
View File
@@ -8,7 +8,7 @@
}:
let
version = "1.11.2";
version = "1.12.0";
in
stdenv.mkDerivation {
pname = "libcpr";
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
owner = "libcpr";
repo = "cpr";
rev = version;
hash = "sha256-nKX9AYVC4e3B+vOzXWZu8S4I5BNpKnqkFJ2e8bVAUE4=";
hash = "sha256-OkOyh2ibt/jX/Dc+TB1uSlWtzEhdSQwHVN96oCOh2yM=";
};
nativeBuildInputs = [ cmake ];
+3 -3
View File
@@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "overpush";
version = "0.4.3";
version = "0.4.5";
src = fetchFromGitHub {
owner = "mrusme";
repo = "overpush";
tag = "v${finalAttrs.version}";
hash = "sha256-Bs5Mlpod7bIQxekadU6xBhgC8nchli+BvxEH6NeMOKw=";
hash = "sha256-6tSptrvlaljKMUawGD3Bk1LBwge/Awvvudpr+juuuQQ=";
};
vendorHash = "sha256-wsuztFwEfluUxL2RjMP7Y+JtxQHr5oLwHkAL8UIHyVQ=";
vendorHash = "sha256-KUfGc4vFfw59mwqR840cbL4ubBH1i+sIniHU0CDCKTg=";
env.CGO_ENABLED = "0";
+10 -10
View File
@@ -1,12 +1,12 @@
# Generated by ./update.sh - do not update manually!
# Last updated: 2025-07-18
# Last updated: 2025-07-25
{ fetchurl }:
let
any-darwin = {
version = "6.9.75-2025-07-10";
version = "6.9.77-2025-07-24";
src = fetchurl {
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Mac/QQ_6.9.75_250710_01.dmg";
hash = "sha256-ejplu4I5PRBdwMrgDZ51WS+qN1GKc5qHqMToIvgR6og=";
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Mac/QQ_6.9.77_250724_01.dmg";
hash = "sha256-ZHpFH5PPDaVtbEZsb+1fyoscWuPYedTrIaoqhnsXRlc=";
};
};
in
@@ -14,17 +14,17 @@ in
aarch64-darwin = any-darwin;
x86_64-darwin = any-darwin;
aarch64-linux = {
version = "3.2.18-2025-07-10";
version = "3.2.18-2025-07-24";
src = fetchurl {
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.18_250710_arm64_01.deb";
hash = "sha256-37HEXpLyeIjgXsAonNjS3YaIwk4It2LDy6Yj4lqK94Q=";
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.18_250724_arm64_01.deb";
hash = "sha256-j+ouSBfryrRXQbyC4ZDyrKPLqJVw67tGjlHdKel5Br4=";
};
};
x86_64-linux = {
version = "3.2.18-2025-07-10";
version = "3.2.18-2025-07-24";
src = fetchurl {
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.18_250710_amd64_01.deb";
hash = "sha256-P023rIalPAgBXZqJvnCgEHqTumWm+dhaUefzuR/4aoU=";
url = "https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.18_250724_amd64_01.deb";
hash = "sha256-HHFUXAv6oWsipBYECLNFJG8OMQ7fxjruA210w/oFFok=";
};
};
}
+3 -3
View File
@@ -8,16 +8,16 @@
buildNpmPackage rec {
pname = "repomix";
version = "1.1.0";
version = "1.2.0";
src = fetchFromGitHub {
owner = "yamadashy";
repo = "repomix";
tag = "v${version}";
hash = "sha256-kqbVQCXLxcDYtKJt34gzhvgXdpF786uk5N2j2W4pcRg=";
hash = "sha256-WLL9EBC7YQ3MH0/J/a18j3GsHBkJdS4+bucIenq0UwU=";
};
npmDepsHash = "sha256-Ewyfhx1VwbUVM045KcDvgTzTCEVEssMVQrNbbnwnz+8=";
npmDepsHash = "sha256-LEd0Wo0dgmCvEYB8yyqtVuyhDsUQAaHxvCl9nNVOVME=";
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
+2 -2
View File
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "terramate";
version = "0.14.0";
version = "0.14.1";
src = fetchFromGitHub {
owner = "terramate-io";
repo = "terramate";
rev = "v${version}";
hash = "sha256-op8mwCofnktV+kkvh4mO5tfLrynlxGbQzOxq6JR7HbE=";
hash = "sha256-75tx0LQwAUdox7qIkedPH956DAx0l6f+9M+6VgYDosQ=";
};
vendorHash = "sha256-u9eXi7FjMsXm0H0y7Gs/Wu2I8tp4rRLxtjUxrrHJkEU=";
+15 -1
View File
@@ -19,6 +19,7 @@
nixosTests,
writeShellScript,
versionCheckHook,
makeSetupHook,
}:
let
@@ -111,8 +112,21 @@ stdenv.mkDerivation (finalAttrs: {
versionCheckProgramArg = "--version";
passthru = {
tests.tor = nixosTests.tor;
tests = {
inherit (nixosTests) tor;
proxyHook = callPackage ./proxy-hook-tests.nix {
tor = finalAttrs.finalPackage;
};
};
updateScript = callPackage ./update.nix { };
proxyHook = makeSetupHook {
name = "tor-proxy-hook";
substitutions = {
grep = lib.getExe gnugrep;
tee = lib.getExe' coreutils "tee";
tor = lib.getExe finalAttrs.finalPackage;
};
} ./proxy-hook.sh;
};
meta = {
+45
View File
@@ -0,0 +1,45 @@
{
testers,
fetchFromGitLab,
fetchgit,
fetchurl,
fetchzip,
linkFarm,
tor,
}:
let
domain = "eweiibe6tdjsdprb4px6rqrzzcsi22m4koia44kc5pcjr7nec2rlxyad.onion";
rev = "933c5491db00c703d5d8264fdabd5a5b10aff96f";
hash = "sha256-o6Wpso8GSlQH39GpH3IXZyrVhdP8pEYFxLDq9a7yHX0=";
in
linkFarm "tor-proxy-hook-tests" {
fetchgit = testers.invalidateFetcherByDrvHash fetchgit {
name = "fetchgit-tor-source";
url = "http://${domain}/tpo/core/tor";
inherit rev hash;
nativeBuildInputs = [ tor.proxyHook ];
};
fetchzip = testers.invalidateFetcherByDrvHash fetchzip {
name = "fetchzip-tor-source";
url = "http://${domain}/tpo/core/tor/-/archive/${rev}/tor-${rev}.zip";
inherit hash;
nativeBuildInputs = [ tor.proxyHook ];
};
fetchurl = testers.invalidateFetcherByDrvHash fetchurl {
name = "fetchurl-tor-source";
url = "http://${domain}/tpo/core/tor/-/raw/${rev}/Cargo.lock";
hash = "sha256-oX4WbsscLADgJ5o+czpueyAih7ic0u4lZQs7y1vMA3A=";
nativeBuildInputs = [ tor.proxyHook ];
};
fetchFromGitLab = testers.invalidateFetcherByDrvHash fetchFromGitLab {
name = "gitlab-tor-source";
protocol = "http";
owner = "tpo/core";
repo = "tor";
inherit domain rev hash;
nativeBuildInputs = [ tor.proxyHook ];
};
}
+19
View File
@@ -0,0 +1,19 @@
_setupTorProxy(){
local torSocket=$NIX_BUILD_TOP/.tor.sock
local torPort=unix:$torSocket
exec {tor_fd}< <(@tor@ --DataDirectory "$NIX_BUILD_TOP/.tor" --SocksPort "$torPort")
exitHooks+=("kill '$!'")
# Wait for Tor to start
read < <(<&$tor_fd- @tee@ /dev/fd/2 | @grep@ -m 1 -F 'Bootstrapped 100% (done): Done')
export ALL_PROXY="socks5h://localhost$torSocket"
# A Git repository may have submodules that fetch from clearnet URLs, so
# for better performance, use Tor only for onion addresses. (fetchgit
# doesn't respect ALL_PROXY, so this doesn't conflict.)
export FETCHGIT_HTTP_PROXIES="http://*.onion $ALL_PROXY ${FETCHGIT_HTTP_PROXIES-}"
}
postHooks+=(_setupTorProxy)
+2 -2
View File
@@ -23,13 +23,13 @@ assert lib.elem lineEditingLibrary [
];
stdenv.mkDerivation (finalAttrs: {
pname = "trealla";
version = "2.78.0";
version = "2.78.24";
src = fetchFromGitHub {
owner = "trealla-prolog";
repo = "trealla";
rev = "v${finalAttrs.version}";
hash = "sha256-CJ1/Qbt6osuJZNuKiEaGEsDztVo8hTNOv6XvUQyWbFU=";
hash = "sha256-0OCb/U09b7DNd3bOEszuVH7gA0cRVqoWS7/HRZRFCIs=";
};
postPatch = ''
+3 -3
View File
@@ -14,14 +14,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ty";
version = "0.0.1-alpha.15";
version = "0.0.1-alpha.16";
src = fetchFromGitHub {
owner = "astral-sh";
repo = "ty";
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-7aOFRrnj4WFTuQWcOgdSU3w9KWwRbpPj3K6g4y0JPo0=";
hash = "sha256-hpDzl1TJRCfr5l76HwK90WAbAgeDR48eRNs9knj87lk=";
};
# For Darwin platforms, remove the integration test for file notifications,
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
cargoBuildFlags = [ "--package=ty" ];
cargoHash = "sha256-vhsXYqU3Y5xGDLE/AVkVIY4eweHbyR/E3RvGoHG+1ZE=";
cargoHash = "sha256-/SoF87aZHypzEsetgmALmNTheEH/CodZEPW2I5+F/a4=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -6,12 +6,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "unrar";
version = "7.1.8";
version = "7.1.9";
src = fetchzip {
url = "https://www.rarlab.com/rar/unrarsrc-${finalAttrs.version}.tar.gz";
stripRoot = false;
hash = "sha256-0A6GAuAOJuP6bcNsfhNe7zALGu3nkqa3Q16FphXwT7A=";
hash = "sha256-CkeE97RcEyCwOX4NKZG2d63ZvxsYFN8Y1swJ9ODb8sk=";
};
sourceRoot = finalAttrs.src.name;
+2 -2
View File
@@ -14,7 +14,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "wdisplays";
version = "1.1.1";
version = "1.1.3";
nativeBuildInputs = [
meson
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "artizirk";
repo = "wdisplays";
rev = finalAttrs.version;
sha256 = "sha256-dtvP930ChiDRT60xq6xBDU6k+zHnkrAkxkKz2FxlzRs=";
sha256 = "sha256-KabaW2BH4zAS0xWkzCM8YaAnP/hkZL7Wq3EARantRis=";
};
meta = with lib; {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "chmod.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-26";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "7c174cc0ae1e07876218868e5e0917308201c081";
hash = "sha256-RE93ZNlG6CRGZz7YByXtO0mifduh6MMGls6J9IYwaFA=";
};
meta = {
+3 -3
View File
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "git.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-07-05";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "cbc4450a6c238114362e3c2fbca355166c2a2202";
hash = "sha256-otD7zmm/Juh68D2czRhtU7CZFIaMgADxuo8p68cS7fk=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "glow.yazi";
version = "0-unstable-2025-04-15";
version = "0-unstable-2025-06-13";
src = fetchFromGitHub {
owner = "Reledia";
repo = "glow.yazi";
rev = "2da96e3ffd9cd9d4dd53e0b2636f83ff69fe9af0";
hash = "sha256-4krck4U/KWmnl32HWRsblYW/biuqzDPysrEn76buRck=";
rev = "bd3eaa58c065eaf216a8d22d64c62d8e0e9277e9";
hash = "sha256-mzW/ut/LTEriZiWF8YMRXG9hZ70OOC0irl5xObTNO40=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "jump-to-char.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "86d28e4fb4f25f36cc501b8cb0badb37a6b14263";
hash = "sha256-m/gJTDm0cVkIdcQ1ZJliPqBhNKoCW1FciLkuq7D1mxo=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "lsar.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "86d28e4fb4f25f36cc501b8cb0badb37a6b14263";
hash = "sha256-m/gJTDm0cVkIdcQ1ZJliPqBhNKoCW1FciLkuq7D1mxo=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "mactag.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-07-02";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "e5f00e2716fd177b0ca0d313f1a6e64f01c12760";
hash = "sha256-DLcmzCmITybWrYuBpTyswtoGUimpagkyeVUWmbKjarY=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "mediainfo.yazi";
version = "25.5.31-unstable-2025-06-05";
version = "25.5.31-unstable-2025-07-19";
src = fetchFromGitHub {
owner = "boydaihungst";
repo = "mediainfo.yazi";
rev = "a7d1aa69a1a107e64540c17f19ac94be1366769f";
hash = "sha256-HUD8Sv1C4gzZRvSEIYqcmm+A0mBYDuwZHCNH26kipS0=";
rev = "f89605ce7ca33181ee6770e641d80ec4673093e0";
hash = "sha256-NloChkZWKo9JL636d+G7vgEY/HX24udngYftw/Ydzk4=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "mime-ext.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "86d28e4fb4f25f36cc501b8cb0badb37a6b14263";
hash = "sha256-m/gJTDm0cVkIdcQ1ZJliPqBhNKoCW1FciLkuq7D1mxo=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "mount.yazi";
version = "25.5.28-unstable-2025-06-11";
version = "25.5.31-unstable-2025-07-02";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "c1d638374c76655896c06e9bc91cdb39857b7f15";
hash = "sha256-cj2RjeW4/9ZRCd/H4PxrIQWW9kSOxtdi72f+8o13aPI=";
rev = "e5f00e2716fd177b0ca0d313f1a6e64f01c12760";
hash = "sha256-DLcmzCmITybWrYuBpTyswtoGUimpagkyeVUWmbKjarY=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "ouch.yazi";
version = "0-unstable-2025-06-10";
version = "0-unstable-2025-07-13";
src = fetchFromGitHub {
owner = "ndtoan96";
repo = "ouch.yazi";
rev = "1ee69a56da3c4b90ec8716dd9dd6b82e7a944614";
hash = "sha256-4KZeDkMXlhUV0Zh+VGBtz9kFPGOWCexYVuKUSCN463o=";
rev = "0742fffea5229271164016bf96fb599d861972db";
hash = "sha256-C0wG8NQ+zjAMfd+J39Uvs3K4U6e3Qpo1yLPm2xcsAaI=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "piper.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-21";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "f9b3f8876eaa74d8b76e5b8356aca7e6a81c0fb7";
hash = "sha256-EoIrbyC7WgRzrEtvso2Sr6HnNW91c5E+RZGqnjEi6Zo=";
rev = "3d1efb706924112daed986a4eef634e408bad65e";
hash = "sha256-GgEg1A5sxaH7hR1CUOO9WV21kH8B2YUGAtOapcWLP7Y=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "projects.yazi";
version = "0-unstable-2025-06-03";
version = "0-unstable-2025-06-19";
src = fetchFromGitHub {
owner = "MasouShizuka";
repo = "projects.yazi";
rev = "7037dd5eee184ccb7725bdc9f7ea6faa188420d5";
hash = "sha256-Lc0MeiAuPgJTq4ojNw9hwxqPJ74S4ymn4uPTkxGeZGc=";
rev = "a5e33db284ab580de7b549e472bba13a5ba7c7b9";
hash = "sha256-4VD1OlzGgyeB1jRgPpI4aWnOCHNZQ9vhh40cbU80Les=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "relative-motions.yazi";
version = "25.5.28-unstable-2025-06-05";
version = "25.5.28-unstable-2025-07-09";
src = fetchFromGitHub {
owner = "dedukun";
repo = "relative-motions.yazi";
rev = "2e3b6172e6226e0db96aea12d09dea2d2e443fea";
hash = "sha256-v0e06ieBKNmt9DATdL7R4AyVFa9DlNBwpfME3LHozLA=";
rev = "a603d9ea924dfc0610bcf9d3129e7cba605d4501";
hash = "sha256-9i6x/VxGOA3bB3FPieB7mQ1zGaMK5wnMhYqsq4CvaM4=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "restore.yazi";
version = "25.5.31-unstable-2025-06-05";
version = "25.5.31-unstable-2025-07-11";
src = fetchFromGitHub {
owner = "boydaihungst";
repo = "restore.yazi";
rev = "b7c33766e0bc4bbbb99e8e934be90e3beb881d29";
hash = "sha256-qtthY7eySqXoA3TARubZF0SsYkkLEgkjdtPUxR5ro0I=";
rev = "84f1921806c49b7b20af26cbe57cb4fd286142e2";
hash = "sha256-pEQZ/2Z4XVYlfzqtCz51bIgE9KzkDF/qyX8vThhlWGI=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "smart-enter.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "86d28e4fb4f25f36cc501b8cb0badb37a6b14263";
hash = "sha256-m/gJTDm0cVkIdcQ1ZJliPqBhNKoCW1FciLkuq7D1mxo=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "smart-filter.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-07-23";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "de53d90cb2740f84ae595f93d0c4c23f8618a9e4";
hash = "sha256-ixZKOtLOwLHLeSoEkk07TB3N57DXoVEyImR3qzGUzxQ=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "smart-paste.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "86d28e4fb4f25f36cc501b8cb0badb37a6b14263";
hash = "sha256-m/gJTDm0cVkIdcQ1ZJliPqBhNKoCW1FciLkuq7D1mxo=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "starship.yazi";
version = "25.4.8-unstable-2025-06-01";
version = "25.4.8-unstable-2025-07-08";
src = fetchFromGitHub {
owner = "Rolv-Apneseth";
repo = "starship.yazi";
rev = "6a0f3f788971b155cbc7cec47f6f11aebbc148c9";
hash = "sha256-q1G0Y4JAuAv8+zckImzbRvozVn489qiYVGFQbdCxC98=";
rev = "a63550b2f91f0553cc545fd8081a03810bc41bc0";
hash = "sha256-PYeR6fiWDbUMpJbTFSkM57FzmCbsB4W4IXXe25wLncg=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "toggle-pane.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "a54b96a3f21495ab3659e45d5354bcc8413be15c";
hash = "sha256-TtVaWazkk2xnomhJFinElbUsXUKAbDDhLEVq5Ah3nAk=";
rev = "86d28e4fb4f25f36cc501b8cb0badb37a6b14263";
hash = "sha256-m/gJTDm0cVkIdcQ1ZJliPqBhNKoCW1FciLkuq7D1mxo=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "vcs-files.yazi";
version = "25.5.28-unstable-2025-05-28";
version = "25.5.31-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "d642bfb0822eb0c3c5c891ab0f4b6f897a2083cb";
hash = "sha256-WF2b9t0VPGNP3QXgr/GMDFcSh5bsXC7KKd2ICL4WDHo=";
rev = "86d28e4fb4f25f36cc501b8cb0badb37a6b14263";
hash = "sha256-m/gJTDm0cVkIdcQ1ZJliPqBhNKoCW1FciLkuq7D1mxo=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkYaziPlugin {
pname = "yatline.yazi";
version = "0-unstable-2025-06-11";
version = "25.5.31-unstable-2025-06-12";
src = fetchFromGitHub {
owner = "imsi32";
repo = "yatline.yazi";
rev = "73bce63ffb454ea108a96f316e2a8c2e16a35262";
hash = "sha256-pIaqnxEGKiWvtFZJm0e7GSbbIc2qaTCB+czHLcVuVzY=";
rev = "88bd1c58357d472fe7e8daf9904936771fc49795";
hash = "sha256-RkQKZQAa5U9eMWk1Q0doueJZiuP4elUJ0dM1XKLSnDo=";
};
meta = {
+3 -3
View File
@@ -7,15 +7,15 @@
buildNpmPackage rec {
pname = "zwave-js-ui";
version = "10.8.0";
version = "10.10.0";
src = fetchFromGitHub {
owner = "zwave-js";
repo = "zwave-js-ui";
tag = "v${version}";
hash = "sha256-/YXt5yvlYdslxtc6dVGJXsgoMMmIXt8lRoYPn6nNjYY=";
hash = "sha256-75B/3hBD2FfLRcbBbj+uB43dd7Wiaipy8prBEcwSB6Y=";
};
npmDepsHash = "sha256-qQJ/TCaRvdaKok1ud4MzrM8dtYjlNpESxiN/sJbPexY=";
npmDepsHash = "sha256-8WEUicgztCi6eK7vri3cOKjDgMx2DIcJTIGp0WTNiDc=";
passthru.tests.zwave-js-ui = nixosTests.zwave-js-ui;
@@ -139,5 +139,31 @@ stdenv.mkDerivation rec {
"libsoup-2.4"
"libsoup-gnome-2.4"
];
knownVulnerabilities = [
''
libsoup 2 is EOL, with many known unfixed CVEs.
The last release happened 2023-10-11,
with few security backports since and no stable release.
Vulnerabilities likely include (incomplete list):
- CVE-2025-4948: https://gitlab.gnome.org/GNOME/libsoup/-/issues/449
- CVE-2025-46421: https://gitlab.gnome.org/GNOME/libsoup/-/issues/439
- CVE-2025-32914: https://gitlab.gnome.org/GNOME/libsoup/-/issues/436
- CVE-2025-32913: https://gitlab.gnome.org/GNOME/libsoup/-/issues/435
- CVE-2025-32912: https://gitlab.gnome.org/GNOME/libsoup/-/issues/434
- CVE-2025-32911: https://gitlab.gnome.org/GNOME/libsoup/-/issues/433
- CVE-2025-32910: https://gitlab.gnome.org/GNOME/libsoup/-/issues/432
- CVE-2025-32909: https://gitlab.gnome.org/GNOME/libsoup/-/issues/431
- CVE-2025-32907: https://gitlab.gnome.org/GNOME/libsoup/-/issues/428
- CVE-2025-32053: https://gitlab.gnome.org/GNOME/libsoup/-/issues/426
- CVE-2025-32052: https://gitlab.gnome.org/GNOME/libsoup/-/issues/425
- CVE-2025-32050: https://gitlab.gnome.org/GNOME/libsoup/-/issues/424
- CVE-2024-52531: https://gitlab.gnome.org/GNOME/libsoup/-/issues/423
- CVE-2025-2784: https://gitlab.gnome.org/GNOME/libsoup/-/issues/422
These vulnerabilities were fixed in libsoup 3,
with the vulnerable code present in libsoup 2 versions.
''
];
};
}
@@ -0,0 +1,40 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
hatchling,
pytestCheckHook,
regex,
}:
buildPythonPackage rec {
pname = "backrefs";
version = "5.9";
pyproject = true;
src = fetchFromGitHub {
owner = "facelessuser";
repo = "backrefs";
tag = version;
hash = "sha256-W75JLoBn990PoO3Ej3nb3BjOGm0c71o8hDDBUFWr8i4=";
};
build-system = [
hatchling
];
pythonImportsCheck = [ "backrefs" ];
nativeCheckInputs = [
pytestCheckHook
regex
];
meta = {
description = "Wrapper around re or regex that adds additional back references";
homepage = "https://github.com/facelessuser/backrefs";
changelog = "https://github.com/facelessuser/backrefs/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ drupol ];
};
}
@@ -24,14 +24,14 @@
buildPythonPackage rec {
pname = "bayesian-optimization";
version = "3.0.0";
version = "3.0.1";
pyproject = true;
src = fetchFromGitHub {
owner = "bayesian-optimization";
repo = "BayesianOptimization";
tag = "v${version}";
hash = "sha256-ruMxuMTXVpS5oaZk994xIjgUnhpybrvhvy69nvU5feE=";
hash = "sha256-dq5R0/gqjSzQPAmYvtByJ6gT8pOiXcezfYlKpFLnryk=";
};
build-system = [ poetry-core ];
@@ -16,7 +16,6 @@
dask,
dask-awkward,
dask-histogram,
fsspec-xrootd,
hist,
lz4,
matplotlib,
@@ -42,14 +41,14 @@
buildPythonPackage rec {
pname = "coffea";
version = "2025.7.1";
version = "2025.7.2";
pyproject = true;
src = fetchFromGitHub {
owner = "CoffeaTeam";
repo = "coffea";
tag = "v${version}";
hash = "sha256-GtofpITO9QcwFcKyVTz7clquJy2tBTlkf3IR1cXlklM=";
hash = "sha256-MSCJRjw4bbQQAA39fOQAJ9qfRXO/hUrLeXZMRVGd2Zc=";
};
build-system = [
@@ -70,7 +69,6 @@ buildPythonPackage rec {
dask
dask-awkward
dask-histogram
fsspec-xrootd
hist
lz4
matplotlib
@@ -11,14 +11,14 @@
buildPythonPackage rec {
pname = "gocardless-pro";
version = "3.1.0";
version = "3.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "gocardless";
repo = "gocardless-pro-python";
tag = "v${version}";
hash = "sha256-NbUgntDZnre6raLGhC2NIY1DctaYInSk5JvsTRDO/dQ=";
hash = "sha256-nSgOHc4Y8wes2lYWWdhxkGXiXUaRnpaj1/gnmeA7dXA=";
};
build-system = [ setuptools ];
@@ -8,13 +8,13 @@
buildPythonPackage rec {
pname = "jianpu-ly";
version = "1.859";
version = "1.860";
pyproject = true;
src = fetchPypi {
inherit version;
pname = "jianpu_ly";
hash = "sha256-+DMaFEf8LfXMujmq1eKQO2/8L1lqQ2Idc5UuN7saIP4=";
hash = "sha256-lUsQMNYQVuZ0Ob007hrSigGLWuyFehLEdm112V3PLXI=";
};
dependencies = [ lilypond ];
@@ -9,13 +9,13 @@
buildPythonPackage rec {
pname = "llama-index-instrumentation";
version = "0.2.0";
version = "0.3.0";
pyproject = true;
src = fetchPypi {
pname = "llama_index_instrumentation";
inherit version;
hash = "sha256-roMzUiSH4iozcykkqaCN+0VvVJk8XJfYNA2zxiC3bxM=";
hash = "sha256-d3QcHZhh6tCA5vmDUGJZcUiNHgRr7ekc7J4M4vY+o0o=";
};
pythonRelaxDeps = [ "pydantic" ];
@@ -10,13 +10,13 @@
buildPythonPackage rec {
pname = "llama-index-workflows";
version = "1.1.0";
version = "1.2.0";
pyproject = true;
src = fetchPypi {
pname = "llama_index_workflows";
inherit version;
hash = "sha256-/wAdNiEAv8KjNTzF8lKKCttSJF5jIZGoa0vdrN5ytq8=";
hash = "sha256-9rGfAaNAoa+x0v0ihcnc40bjBKOq5RnmEDBZ9a+yYJ8=";
};
pythonRelaxDeps = [ "pydantic" ];
@@ -0,0 +1,45 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pkgs, # Only for pkgs.plantuml,
setuptools,
httplib2,
}:
buildPythonPackage rec {
pname = "mkdocs-build-plantuml";
version = "1.11.0";
pyproject = true;
src = fetchFromGitHub {
owner = "christo-ph";
repo = "mkdocs_build_plantuml";
tag = version;
hash = "sha256-cbyxvWBIV+v81m+xGZZsUypkM1uuj4ADMUrAYlc/XBI=";
};
# There's only one substitution, no patch is needed.
postPatch = ''
substituteInPlace mkdocs_build_plantuml_plugin/plantuml.py \
--replace-fail '/usr/local/bin/plantuml' '${lib.getExe pkgs.plantuml}'
'';
build-system = [ setuptools ];
dependencies = [
httplib2
];
pythonImportsCheck = [ "mkdocs_build_plantuml_plugin" ];
# No tests available
doCheck = false;
meta = {
description = "MkDocs plugin to help generate your plantuml images locally or remotely as files (NOT inline)";
homepage = "https://github.com/christo-ph/mkdocs_build_plantuml";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ drupol ];
};
}
@@ -1,6 +1,7 @@
{
lib,
babel,
backrefs,
buildPythonPackage,
cairosvg,
colorama,
@@ -20,7 +21,6 @@
pillow,
pygments,
pymdown-extensions,
pythonOlder,
regex,
requests,
trove-classifiers,
@@ -28,16 +28,14 @@
buildPythonPackage rec {
pname = "mkdocs-material";
version = "9.6.4";
version = "9.6.15";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "squidfunk";
repo = "mkdocs-material";
tag = version;
hash = "sha256-Di+m06LuS5mXzvmz8Cvby49HguUPbXEJf9PnR8fQ5jw=";
hash = "sha256-EksLvPl/VfGSufdqgWlQTd6kz07/pTIAOz7hMBdy8Ro=";
};
nativeBuildInputs = [
@@ -49,6 +47,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
babel
backrefs
colorama
jinja2
markdown
@@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "mktestdocs";
version = "0.2.3";
version = "0.2.5";
pyproject = true;
src = fetchFromGitHub {
owner = "koaning";
repo = "mktestdocs";
tag = version;
hash = "sha256-egLlgq0lQOk0cPBly01zQ0rkl7D7Rf/bZ4en5oG+wlE=";
hash = "sha256-OiOkU/qfxeLbCT1QywA1rGSwe9Ja8tENTmBo93vo0vc=";
};
build-system = [ setuptools ];
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "roadlib";
version = "1.3.1";
version = "1.4.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-RI6gUqCaOeLesIwHtsASEkTtdRxLCAP6+C5Yj8mBb2o=";
hash = "sha256-xiWX16bnEhy7Ykn0nEXpXLJJ5rsZrr2rYmu6WE5XhaQ=";
};
build-system = [ setuptools ];
+3 -3
View File
@@ -1,8 +1,8 @@
{
"1.21": {
"sha1": "6e64dcabba3c01a7271b4fa6bd898483b794c59b",
"url": "https://piston-data.mojang.com/v1/objects/6e64dcabba3c01a7271b4fa6bd898483b794c59b/server.jar",
"version": "1.21.6",
"sha1": "05e4b48fbc01f0385adb74bcff9751d34552486c",
"url": "https://piston-data.mojang.com/v1/objects/05e4b48fbc01f0385adb74bcff9751d34552486c/server.jar",
"version": "1.21.7",
"javaVersion": 21
},
"1.20": {
+40
View File
@@ -238,6 +238,26 @@ in
};
};
dotbar = mkTmuxPlugin rec {
pluginName = "dotbar";
version = "0.3.0";
src = fetchFromGitHub {
owner = "vaaleyard";
repo = "tmux-dotbar";
tag = version;
hash = "sha256-n9k18pJnd5mnp9a7VsMBmEHDwo3j06K6/G6p7/DTyIY=";
};
meta = {
homepage = "https://github.com/vaaleyard/tmux-dotbar";
downloadPage = "https://github.com/vaaleyard/tmux-dotbar";
description = "Simple and minimalist status bar for tmux";
changelog = "https://github.com/vaaleyard/tmux-dotbar/releases/tag/${version}";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ FKouhai ];
};
};
extrakto = mkTmuxPlugin {
pluginName = "extrakto";
version = "0-unstable-2024-08-25";
@@ -356,6 +376,26 @@ in
};
};
harpoon = mkTmuxPlugin {
pluginName = "harpoon";
rtpFilePath = "harpoon.tmux";
version = "0.4.0";
src = fetchFromGitHub {
owner = "chaitanyabsprip";
repo = "tmux-harpoon";
rev = "v0.4.0";
hash = "sha256-+IakWkPoQFhIQ4m/98NVYWe5tFKmtfKBnPXZcfU9iOk=";
};
meta = {
homepage = "https://github.com/Chaitanyabsprip/tmux-harpoon";
downloadPage = "https://github.com/Chaitanyabsprip/tmux-harpoon";
description = "Tool to bookmark session supporting auto create for sessions";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ FKouhai ];
};
};
jump = mkTmuxPlugin {
pluginName = "jump";
version = "2020-06-26";
+4
View File
@@ -1635,6 +1635,8 @@ self: super: with self; {
backports-tarfile = callPackage ../development/python-modules/backports-tarfile { };
backrefs = callPackage ../development/python-modules/backrefs { };
backtesting = callPackage ../development/python-modules/backtesting { };
bacpypes = callPackage ../development/python-modules/bacpypes { };
@@ -9273,6 +9275,8 @@ self: super: with self; {
mkdocs-backlinks = callPackage ../development/python-modules/mkdocs-backlinks { };
mkdocs-build-plantuml = callPackage ../development/python-modules/mkdocs-build-plantuml { };
mkdocs-drawio-exporter = callPackage ../development/python-modules/mkdocs-drawio-exporter { };
mkdocs-drawio-file = callPackage ../development/python-modules/mkdocs-drawio-file { };
-1
View File
@@ -168,7 +168,6 @@ in
util-linux = linux;
util-linuxMinimal = linux;
w3m = all;
webkitgtk_4_0 = linux;
wget = all;
which = all;
wirelesstools = linux;