Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-10-19 06:05:29 +00:00
committed by GitHub
19 changed files with 198 additions and 54 deletions

View File

@@ -421,6 +421,11 @@ Check that two paths have the same contents.
: A message that is printed last if the file system object contents at the two paths don't match exactly. : A message that is printed last if the file system object contents at the two paths don't match exactly.
`checkMetadata` (boolean)
: Whether to fail on metadata differences, such as permissions or ownership.
Defaults to `true`.
:::{.example #ex-testEqualContents-toyexample} :::{.example #ex-testEqualContents-toyexample}
# Check that two paths have the same contents # Check that two paths have the same contents

View File

@@ -116,7 +116,7 @@ in
}) })
] ]
else else
previousAttrs.patches or null; previousAttrs.patches or [ ];
preBuild = preBuild =
if applyOrgRoamMissingPatch then if applyOrgRoamMissingPatch then
previousAttrs.preBuild or "" previousAttrs.preBuild or ""
@@ -129,7 +129,7 @@ in
popd popd
'' ''
else else
previousAttrs.preBuild or null; previousAttrs.preBuild or "";
} }
); );

View File

@@ -18,7 +18,7 @@ rec {
if predicate finalAttrs previousAttrs then if predicate finalAttrs previousAttrs then
previousAttrs.packageRequires or [ ] ++ packageRequires previousAttrs.packageRequires or [ ] ++ packageRequires
else else
previousAttrs.packageRequires or null; previousAttrs.packageRequires or [ ];
} }
); );
@@ -89,7 +89,7 @@ rec {
if predicate finalAttrs previousAttrs then if predicate finalAttrs previousAttrs then
previousAttrs.nativeBuildInputs or [ ] ++ [ pkgs.writableTmpDirAsHomeHook ] previousAttrs.nativeBuildInputs or [ ] ++ [ pkgs.writableTmpDirAsHomeHook ]
else else
previousAttrs.nativeBuildInputs or null; previousAttrs.nativeBuildInputs or [ ];
} }
); );
} }

View File

@@ -830,7 +830,7 @@ let
rm --recursive --verbose etc/elisp/screenshot rm --recursive --verbose etc/elisp/screenshot
'' ''
else else
previousAttrs.preBuild or null; previousAttrs.preBuild or "";
} }
); );
@@ -897,7 +897,7 @@ let
rm --verbose --force test-bpr.el rm --verbose --force test-bpr.el
'' ''
else else
previousAttrs; previousAttrs.preBuild or "";
} }
); );
@@ -991,7 +991,7 @@ let
}) })
] ]
else else
previousAttrs.patches or null; previousAttrs.patches or [ ];
} }
) )
); );
@@ -1055,7 +1055,7 @@ let
'' ''
+ previousAttrs.preBuild or "" + previousAttrs.preBuild or ""
else else
previousAttrs.preBuild or null; previousAttrs.preBuild or "";
} }
); );
@@ -1221,7 +1221,7 @@ let
rm --verbose packages/javascript/test-suppport.el rm --verbose packages/javascript/test-suppport.el
'' ''
else else
previousAttrs.preBuild or null; previousAttrs.preBuild or "";
} }
); );
@@ -1392,7 +1392,7 @@ let
}) })
] ]
else else
previousAttrs.patches or null; previousAttrs.patches or [ ];
} }
); );
@@ -1543,7 +1543,7 @@ let
}) })
] ]
else else
previousAttrs.patches or null; previousAttrs.patches or [ ];
} }
); );
@@ -1561,7 +1561,7 @@ let
'' ''
+ previousAttrs.preBuild or "" + previousAttrs.preBuild or ""
else else
previousAttrs.preBuild or null; previousAttrs.preBuild or "";
} }
); );

View File

@@ -12,12 +12,12 @@
pkgs, pkgs,
}: }:
let let
version = "0.0.27-unstable-2025-10-12"; version = "0.0.27-unstable-2025-10-18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yetone"; owner = "yetone";
repo = "avante.nvim"; repo = "avante.nvim";
rev = "f092bb3ec0acf87b838e082209b6a7eddcbf5940"; rev = "cc7a41262e4dc38003b7578c3553a75c0ec4b8d2";
hash = "sha256-zKDp9It/VgUD8BN5ktTmfbQX0s3SBo20T8no8nwsyfY="; hash = "sha256-L6fOo3OPfMtClmyGW1Bn7YDJtuTKO6F66D1oYsii5so=";
}; };
avante-nvim-lib = rustPlatform.buildRustPackage { avante-nvim-lib = rustPlatform.buildRustPackage {
pname = "avante-nvim-lib"; pname = "avante-nvim-lib";

View File

@@ -9,11 +9,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fetchmail"; pname = "fetchmail";
version = "6.5.6"; version = "6.5.7";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz"; url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz";
hash = "sha256-7BDg4OqkFzE1WTee3nbHRhR2bYOLOUcLZkdIY6ppDas="; hash = "sha256-c+trHUIbWYaGatSmt3fBFAo5AFKYxjv4R95TeXbL+9s=";
}; };
buildInputs = [ buildInputs = [

View File

@@ -57,6 +57,7 @@
actual, actual,
expected, expected,
postFailureMessage ? null, postFailureMessage ? null,
checkMetadata ? true,
}: }:
runCommand "equal-contents-${lib.strings.toLower assertion}" runCommand "equal-contents-${lib.strings.toLower assertion}"
{ {
@@ -66,12 +67,13 @@
expected expected
postFailureMessage postFailureMessage
; ;
excludeMetadata = if checkMetadata then "no" else "yes";
nativeBuildInputs = [ diffoscopeMinimal ]; nativeBuildInputs = [ diffoscopeMinimal ];
} }
'' ''
echo "Checking:" echo "Checking:"
printf '%s\n' "$assertion" printf '%s\n' "$assertion"
if ! diffoscope --no-progress --text-color=always --exclude-directory-metadata=no -- "$actual" "$expected" if ! diffoscope --no-progress --text-color=always --exclude-directory-metadata="$excludeMetadata" -- "$actual" "$expected"
then then
echo echo
echo 'Contents must be equal, but were not!' echo 'Contents must be equal, but were not!'

View File

@@ -19,17 +19,17 @@
let let
deltachat-rpc-server' = deltachat-rpc-server.overrideAttrs rec { deltachat-rpc-server' = deltachat-rpc-server.overrideAttrs rec {
version = "2.20.0"; version = "2.22.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "chatmail"; owner = "chatmail";
repo = "core"; repo = "core";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-QPKy88c/GLeazGCjNYHj5kOxwiuvjJ/+pM4SQ4TZ1sw="; hash = "sha256-DKqqdcG3C7/RF/wz2SqaiPUjZ/7vMFJTR5DIGTXjoTY=";
}; };
cargoDeps = rustPlatform.fetchCargoVendor { cargoDeps = rustPlatform.fetchCargoVendor {
pname = "chatmail-core"; pname = "chatmail-core";
inherit version src; inherit version src;
hash = "sha256-2Js4VQsXf1ApRq9Vf1xwX/1BXiFUQgykvofb2ykOdcc="; hash = "sha256-x71vytk9ytIhHlRR0lDhDcIaDNJGDdPwb6fkB1SI+NQ=";
}; };
}; };
electron = electron_37; electron = electron_37;
@@ -37,19 +37,19 @@ let
in in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "deltachat-desktop"; pname = "deltachat-desktop";
version = "2.20.0"; version = "2.22.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "deltachat"; owner = "deltachat";
repo = "deltachat-desktop"; repo = "deltachat-desktop";
tag = "v${finalAttrs.version}"; tag = "v${finalAttrs.version}";
hash = "sha256-tzRk4IwMm3qDzQtGKezkiRbnNSF7EabMYMHXMrrDW8w="; hash = "sha256-IEYfdA1rGg452pZVWW/XuIsNffyhAlI9qyGwcnksgAs=";
}; };
pnpmDeps = pnpm.fetchDeps { pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src; inherit (finalAttrs) pname version src;
fetcherVersion = 1; fetcherVersion = 1;
hash = "sha256-423I4ZXekDyqIY39hEUo7/hLthb3gjnvQHnVknZQFnI="; hash = "sha256-fEzp+nrfLakmtUsPef0HG6tZGn5/q+271YwVyBkFKJw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@@ -8,16 +8,16 @@
buildGoModule rec { buildGoModule rec {
pname = "files-cli"; pname = "files-cli";
version = "2.15.111"; version = "2.15.121";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "files-cli"; repo = "files-cli";
owner = "files-com"; owner = "files-com";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-M6SVLloMn/6AmIpfZ0Ib0yUQ33hC9MFjbFTxOlN7kqs="; hash = "sha256-Lf+kWLmCMbP0FIPxmtroakv1RayqTqMrFhYpVBoHqiA=";
}; };
vendorHash = "sha256-fxh9YOO0xnYo04HwJyctspipSXgWcDoUu40UwhDf8Uk="; vendorHash = "sha256-GygNBB7ydaq11vU2wY9i/ZHmmLomMDKr4cJSdpcEoxk=";
ldflags = [ ldflags = [
"-s" "-s"

View File

@@ -42,11 +42,14 @@ buildGoModule (finalAttrs: {
doCheck = !stdenv.hostPlatform.isDarwin; doCheck = !stdenv.hostPlatform.isDarwin;
checkFlags = [ checkFlags =
# https://github.com/dundee/gdu/issues/371 let
"-skip=TestStoredAnalyzer" skippedTests = [
"-skip=TestAnalyzePathWithIgnoring" "TestStoredAnalyzer" # https://github.com/dundee/gdu/issues/371
]; "TestAnalyzePathWithIgnoring"
];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
doInstallCheck = true; doInstallCheck = true;

View File

@@ -18,18 +18,18 @@
rustPlatform.buildRustPackage (finalAttrs: { rustPlatform.buildRustPackage (finalAttrs: {
pname = "lux-cli"; pname = "lux-cli";
version = "0.18.2"; version = "0.18.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lumen-oss"; owner = "lumen-oss";
repo = "lux"; repo = "lux";
tag = "v${finalAttrs.version}"; tag = "v${finalAttrs.version}";
hash = "sha256-Lqw6U14fhkz4ZgSH0OBICvuj2ZJWo7p0dwhpn7szu2A="; hash = "sha256-Ut9MSHl2eE4krf5yLpXdAxPARFuHP+cG8HlY7DqmETw=";
}; };
buildAndTestSubdir = "lux-cli"; buildAndTestSubdir = "lux-cli";
cargoHash = "sha256-Dx6nmB8kmCKNzXVTROI+NIxvvCboACSOLUU1BCLnTUw="; cargoHash = "sha256-I730Fq9F46aLGeEwMmbeOXIkFWNvskmBl+NuPDfx/ss=";
nativeInstallCheckInputs = [ nativeInstallCheckInputs = [
versionCheckHook versionCheckHook

View File

@@ -27,13 +27,13 @@
rustPlatform.buildRustPackage (finalAttrs: { rustPlatform.buildRustPackage (finalAttrs: {
pname = "ruffle"; pname = "ruffle";
version = "0.2.0-nightly-2025-10-12"; version = "0.2.0-nightly-2025-10-18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ruffle-rs"; owner = "ruffle-rs";
repo = "ruffle"; repo = "ruffle";
tag = lib.strings.removePrefix "0.2.0-" finalAttrs.version; tag = lib.strings.removePrefix "0.2.0-" finalAttrs.version;
hash = "sha256-QJ1Mz1CR/2NIKiNA7DfjYrurHAtQxvZephJQCLxbmwc="; hash = "sha256-rFgaquwcQK2U+1qSlxI+VT5OJPftbj4pcMJih71Gl2A=";
}; };
postPatch = postPatch =
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
"OpenH264Version(${major}, ${minor}, ${patch})" "OpenH264Version(${major}, ${minor}, ${patch})"
''; '';
cargoHash = "sha256-zFmGusWYN0PJ+3Q89JMixehWYigYqmWZCG+lgyLkUhE="; cargoHash = "sha256-6Q3KBrrfL50AkFkDuxXWKqPtc2ClI3j1WpE/x9ASOJk=";
cargoBuildFlags = lib.optional withRuffleTools "--workspace"; cargoBuildFlags = lib.optional withRuffleTools "--workspace";
env = env =

View File

@@ -23,9 +23,9 @@
mkXfceDerivation { mkXfceDerivation {
category = "xfce"; category = "xfce";
pname = "thunar"; pname = "thunar";
version = "4.20.5"; version = "4.20.6";
sha256 = "sha256-Q8gzXRR2ZO98rbHhxnf472d8rGOLqEv7WP6LDONRgS0="; sha256 = "sha256-Ll1mJEkkxYGASWQ2z7GRiubNjggqeHXzgGSXQK+10qs=";
nativeBuildInputs = [ nativeBuildInputs = [
docbook_xsl docbook_xsl

View File

@@ -16,13 +16,13 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "qodeassist-plugin"; pname = "qodeassist-plugin";
version = "0.7.0"; version = "0.7.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Palm1r"; owner = "Palm1r";
repo = "QodeAssist"; repo = "QodeAssist";
tag = "v${finalAttrs.version}"; tag = "v${finalAttrs.version}";
hash = "sha256-XzxuElQQxR2dK7KD0QHUAb7qyizUBhPvGDv3OvnAQjc="; hash = "sha256-QDs9li8WH27aITe48cxRWaqd0mFCmZcBeb34LadeGmk=";
}; };
dontWrapQtApps = true; dontWrapQtApps = true;

View File

@@ -1,7 +1,6 @@
{ {
lib, lib,
buildPythonPackage, buildPythonPackage,
pythonOlder,
fetchFromGitHub, fetchFromGitHub,
flit-core, flit-core,
numpy, numpy,
@@ -11,24 +10,18 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "castepxbin"; pname = "castepxbin";
version = "0.3.0"; version = "0.3.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zhubonan"; owner = "zhubonan";
repo = "castepxbin"; repo = "castepxbin";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-6kumVnm4PLRxuKO6Uz0iHzfYuu21hFC7EPRsc3S1kxE="; hash = "sha256-M+OoKr9ODIp47gt64hf47A1PblyZpBzulKI7nEm8hdo=";
}; };
build-system = [ flit-core ]; build-system = [ flit-core ];
pythonRelaxDeps = [
"numpy"
];
dependencies = [ dependencies = [
numpy numpy
scipy scipy
@@ -36,10 +29,11 @@ buildPythonPackage rec {
nativeCheckInputs = [ pytestCheckHook ]; nativeCheckInputs = [ pytestCheckHook ];
meta = with lib; { meta = {
changelog = "https://github.com/zhubonan/castepxbin/releases/tag/${src.tag}";
description = "Collection of readers for CASTEP binary outputs"; description = "Collection of readers for CASTEP binary outputs";
homepage = "https://github.com/zhubonan/castepxbin"; homepage = "https://github.com/zhubonan/castepxbin";
license = licenses.mit; license = lib.licenses.mit;
maintainers = with maintainers; [ dotlambda ]; maintainers = with lib.maintainers; [ dotlambda ];
}; };
} }

View File

@@ -2,9 +2,11 @@
lib, lib,
buildPythonPackage, buildPythonPackage,
callPackages,
fetchFromGitHub, fetchFromGitHub,
pythonOlder, pythonOlder,
keymap-drawer,
nix-update-script, nix-update-script,
pcpp, pcpp,
platformdirs, platformdirs,
@@ -59,6 +61,12 @@ buildPythonPackage {
versionCheckProgram = "${placeholder "out"}/bin/keymap"; versionCheckProgram = "${placeholder "out"}/bin/keymap";
versionCheckProgramArg = "--version"; versionCheckProgramArg = "--version";
passthru.tests = callPackages ./tests {
# Explicitly pass the correctly scoped package.
# The top-level package will still resolve to itself, because the way
# `toPythonApplication` interacts with scopes is weird.
inherit keymap-drawer;
};
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script { };
meta = { meta = {

View File

@@ -0,0 +1,89 @@
{
lib,
fetchFromGitHub,
runCommand,
stdenv,
testers,
keymap-drawer,
yamllint,
}:
let
runKeymapDrawer =
name:
runCommand "keymap-drawer-${name}" {
nativeBuildInputs = [ keymap-drawer ];
};
MattSturgeon-example = fetchFromGitHub {
owner = "MattSturgeon";
repo = "glove80-config";
rev = "d55267dd26593037256b35a5d6ebba0f75541da5";
hash = "sha256-MV6cNpgHBuaGvpu2aR1aBNMpwPnDqOSbGf+2ykxocP4=";
nonConeMode = true;
sparseCheckout = [
"config"
"img"
];
};
# MattSturgeon's example requires MDI icons
mdi = fetchFromGitHub {
owner = "Templarian";
repo = "MaterialDesign-SVG";
tag = "v7.4.47";
hash = "sha256-NoSSRT1ID38MT70IZ+7h/gMVCNsjNs3A2RX6ePGwuQ0=";
};
in
{
dump-config = runKeymapDrawer "dump-config" ''
keymap dump-config --output "$out"
if [ ! -s "$out" ]; then
>&2 echo 'Expected `dump-config` to have content.'
exit 1
fi
${lib.getExe yamllint} --strict --config-data relaxed "$out"
'';
parse-zmk = testers.testEqualContents {
assertion = "keymap parse --zmk-keymap produces expected YAML";
expected = "${MattSturgeon-example}/img/glove80.yaml";
actual = runKeymapDrawer "parse" ''
keymap \
--config ${MattSturgeon-example}/config/keymap_drawer.yaml \
parse --zmk-keymap ${MattSturgeon-example}/config/glove80.keymap \
--output "$out"
'';
checkMetadata = stdenv.buildPlatform.isLinux;
};
draw = testers.testEqualContents {
assertion = "keymap draw produces expected SVG";
expected = "${MattSturgeon-example}/img/glove80.svg";
actual = runKeymapDrawer "draw" ''
${lib.optionalString stdenv.buildPlatform.isLinux ''
export XDG_CACHE_HOME="$PWD/cache"
glyphs="$XDG_CACHE_HOME/keymap-drawer/glyphs"
''}
${lib.optionalString stdenv.buildPlatform.isDarwin ''
export HOME="$PWD/home"
glyphs="$HOME/Library/Caches/keymap-drawer/glyphs"
''}
mkdir -p "$glyphs"
# Unpack MDI icons into the cache
for file in ${mdi}/svg/*
do
ln -s "$file" "$glyphs/mdi:$(basename "$file")"
done
keymap \
--config ${MattSturgeon-example}/config/keymap_drawer.yaml \
draw ${MattSturgeon-example}/img/glove80.yaml \
--output "$out"
'';
checkMetadata = stdenv.buildPlatform.isLinux;
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
buildPythonPackage,
pytestCheckHook,
fetchFromGitHub,
hatchling,
python-memcached,
}:
buildPythonPackage rec {
pname = "uhashring";
version = "2.4";
pyproject = true;
src = fetchFromGitHub {
owner = "ultrabug";
repo = "uhashring";
tag = version;
hash = "sha256-6zNPExbcwTUne0lT8V6xp2Gf6J1VgG7Q93qizVOAc+k=";
};
build-system = [
hatchling
];
pythonImportsCheck = [
"uhashring"
];
nativeCheckInputs = [
pytestCheckHook
python-memcached
];
meta = {
description = "Full featured consistent hashing python library compatible with ketama";
homepage = "https://github.com/ultrabug/uhashring";
changelog = "https://github.com/ultrabug/uhashring/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ typedrat ];
};
}

View File

@@ -19497,6 +19497,8 @@ self: super: with self; {
uharfbuzz = callPackage ../development/python-modules/uharfbuzz { }; uharfbuzz = callPackage ../development/python-modules/uharfbuzz { };
uhashring = callPackage ../development/python-modules/uhashring { };
uhi = callPackage ../development/python-modules/uhi { }; uhi = callPackage ../development/python-modules/uhi { };
uiprotect = callPackage ../development/python-modules/uiprotect { }; uiprotect = callPackage ../development/python-modules/uiprotect { };