Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot] 2026-05-14 12:38:44 +00:00 committed by GitHub
commit 997d0d965a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 187 additions and 36 deletions

View file

@ -157,6 +157,14 @@ in
Whether to periodically prune Docker resources. If enabled, a
systemd timer will run `docker system prune -f`
as specified by the `dates` option.
NOTE: by default this does not prune volumes. Anonymous volumes
can be pruned by passing "--volumes" to [autoPrune.flags](#opt-virtualisation.docker.autoPrune.flags).
To prune all volumes (not just anonymous ones) [`autoPrune.allVolumes.enable`](#opt-virtualisation.docker.autoPrune.allVolumes.enable)
must be used.
See [upstream documentation](https://docs.docker.com/reference/cli/docker/system/prune/#description) for further information.
'';
};
@ -206,6 +214,28 @@ in
system was powered down.
'';
};
allVolumes = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to periodically prune all Docker volumes when auto pruning other docker resources
by running {command}`docker volume prune --force --all`
To prune only anonymous volumes, instead pass `--volumes` to `autoPrune.flags`
'';
};
flags = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "--filter=label=<label>" ];
description = ''
Any additional flags passed to {command}`docker volume prune --force --all`.
'';
};
};
};
package = mkPackageOption pkgs "docker" { };
@ -312,15 +342,29 @@ in
serviceConfig = {
Type = "oneshot";
ExecStart = utils.escapeSystemdExecArgs (
[
(lib.getExe cfg.package)
"system"
"prune"
"-f"
]
++ cfg.autoPrune.flags
);
ExecStart = [
(utils.escapeSystemdExecArgs (
[
(lib.getExe cfg.package)
"system"
"prune"
"-f"
]
++ cfg.autoPrune.flags
))
]
++ (optionals cfg.autoPrune.allVolumes.enable [
(utils.escapeSystemdExecArgs (
[
(lib.getExe cfg.package)
"volume"
"prune"
"--force"
"--all"
]
++ cfg.autoPrune.allVolumes.flags
))
]);
};
startAt = optional cfg.autoPrune.enable cfg.autoPrune.dates;
@ -342,6 +386,10 @@ in
-> config.hardware.graphics.enable32Bit or false;
message = "Option enableNvidia on x86_64 requires 32-bit support libraries";
}
{
assertion = cfg.autoPrune.allVolumes.enable -> cfg.autoPrune.enable;
message = "Option autoPrune.allVolumes.enable requires autoPrune.enable";
}
];
virtualisation.docker.daemon.settings = {

View file

@ -468,6 +468,7 @@ in
dnsdist = import ./dnsdist.nix { inherit pkgs runTest; };
doas = runTest ./doas.nix;
docker = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./docker.nix;
docker-autoprune = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./docker-autoprune.nix;
docker-registry = runTest ./docker-registry.nix;
docker-rootless = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./docker-rootless.nix;
docker-tools = runTestOn [ "x86_64-linux" ] ./docker-tools.nix;

View file

@ -0,0 +1,57 @@
# This test validates the docker autoprune service, testing whether
# the default configuration cleans up images, while leaving volumes intact
# and whether the allVolumes option enables cleaning up volumes as well
{ pkgs, ... }:
{
name = "docker";
nodes = {
prune =
{ pkgs, ... }:
{
virtualisation.docker = {
enable = true;
package = pkgs.docker;
autoPrune = {
enable = true;
};
};
};
prunevolumes =
{ pkgs, ... }:
{
virtualisation.docker = {
enable = true;
package = pkgs.docker;
autoPrune = {
enable = true;
allVolumes.enable = true;
};
};
};
};
testScript = ''
start_all()
with subtest("Check whether autoPrune works. Volumes should be left unpruned."):
prune.wait_for_unit("sockets.target")
prune.succeed("docker network create testnetwork")
prune.succeed("docker network list --format json | grep testnetwork")
prune.succeed("docker volume create testvolume")
prune.succeed("docker volume list --format json | grep testvolume")
prune.succeed("systemctl start -v docker-prune")
prune.fail("docker network list --format json | grep testnetwork")
# the volume has been left alone
prune.succeed("docker volume list --format json | grep testvolume")
with subtest("Check whether autoPrune including volumes works"):
prunevolumes.wait_for_unit("sockets.target")
prunevolumes.succeed("docker volume create testvolume")
prunevolumes.succeed("docker volume list --format json | grep testvolume")
prunevolumes.succeed("systemctl start -v docker-prune")
prunevolumes.fail("docker volume list --format json | grep testvolume")
'';
}

View file

@ -1,7 +1,7 @@
{
"branch": "main",
"commit_hash": "af923e30d1d24f1f4a4f5cb8308065173c1d9539",
"commit_message": "version: bump to 0.55.0",
"date": "2026-05-09",
"tag": "v0.55.0"
"branch": "v0.55.1-b",
"commit_hash": "a47147bc095e5b3be3eb8bd04f0ac242b968cd4d",
"commit_message": "[gha] Nix: update inputs",
"date": "2026-05-13",
"tag": "v0.55.1"
}

View file

@ -83,14 +83,14 @@ let
in
customStdenv.mkDerivation (finalAttrs: {
pname = "hyprland" + optionalString debug "-debug";
version = "0.55.0";
version = "0.55.1";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "hyprland";
fetchSubmodules = true;
tag = "v${finalAttrs.version}";
hash = "sha256-ZfsIYDDOjeAU8MxMyUitBAZgCgYAm1T8rTGbe8ujC/I=";
hash = "sha256-tjoO+3kzYCAJKJCzmh7R4Hzz7zBQKYoCrSSHMeKXxsA=";
};
postPatch = ''

View file

@ -13,18 +13,18 @@
}:
buildGo126Module (finalAttrs: {
pname = "pocket-id";
version = "2.6.2";
version = "2.7.0";
src = fetchFromGitHub {
owner = "pocket-id";
repo = "pocket-id";
tag = "v${finalAttrs.version}";
hash = "sha256-xuAG1vpeUEvh0VPOPYNAIWWzmX2AMurLLiQ26Qn1VmM=";
hash = "sha256-rWU1jldmdtXDcHrFty/Pmll1xFUQnLFF12j833M05rQ=";
};
sourceRoot = "${finalAttrs.src.name}/backend";
vendorHash = "sha256-4AJA34zj+i412b0N0btb9LZ32ip9KaQtPIBEvLjmvHs=";
vendorHash = "sha256-nr9L7FVUQYzn+bLtvqKGsYydVCjW/fl53Od9lzRv8gk=";
env.CGO_ENABLED = 0;
ldflags = [
@ -65,7 +65,7 @@ buildGo126Module (finalAttrs: {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-aciRc302PGUmiLptVlnuLnPc9h+IB0GlPSN7YWTNCEQ=";
hash = "sha256-DVNzFFHMMasKEx+adAhisE32qtirBhJlfMHKrOVl1dM=";
};
env.BUILD_OUTPUT_PATH = "dist";

View file

@ -17,7 +17,7 @@
buildGoModule (finalAttrs: {
pname = "rclone";
version = "1.74.0";
version = "1.74.1";
outputs = [
"out"
@ -28,10 +28,10 @@ buildGoModule (finalAttrs: {
owner = "rclone";
repo = "rclone";
tag = "v${finalAttrs.version}";
hash = "sha256-nYtUPC7qaX0mvg4AtCIkDT6v7y0zZPn02XnR7lNhtio=";
hash = "sha256-KbaOIrz7v3NheTcPQ8ZoZP5HSAY/THmywLxU3WdD4xA=";
};
vendorHash = "sha256-fRUHQ0cTggHn6rJY4QiFgFBdQYAQ/cD0feUTstp2jMg=";
vendorHash = "sha256-snYmkzE+ao8Qxz4uA04LFPWqzf601EtnTk/LAeYNhyk=";
subPackages = [ "." ];

View file

@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "web-eid-app";
version = "2.8.0";
version = "2.9.0";
src = fetchFromGitHub {
owner = "web-eid";
repo = "web-eid-app";
rev = "v${version}";
hash = "sha256-J0ZUE22zHAYST4GttfBMXQ4ibO7bGuO2ZMBJdO0GsMw=";
hash = "sha256-OZ5U/4UWtVvmHutx/BMLsGOImRlpkm9Hxk0SRvozaFM=";
fetchSubmodules = true;
};

View file

@ -3410,3 +3410,42 @@ with haskellLib;
];
}
)
# 2026-04-01: IHP packages need hasql >= 1.10 (via hasql-mapping).
# The scope renames hasql-stack attrs to the 1.10 line and unmarks
# hasql-mapping, which only builds against hasql >= 1.10 and so stays
# broken at the top level. dontCheck for tests that need a live
# PostgreSQL lives in configuration-nix.nix on the versioned attrs.
// (
let
ihpHasqlScope = self: super: {
hasql = doDistribute super.hasql_1_10_3;
hasql-dynamic-statements = doDistribute super.hasql-dynamic-statements_0_5_1;
hasql-notifications = doDistribute super.hasql-notifications_0_2_5_0;
hasql-pool = doDistribute super.hasql-pool_1_4_2;
hasql-transaction = doDistribute super.hasql-transaction_1_2_2;
postgresql-binary = doDistribute super.postgresql-binary_0_15_0_1;
text-builder = doDistribute super.text-builder_1_0_0_5;
hasql-mapping = doDistribute (unmarkBroken super.hasql-mapping);
postgresql-simple-postgresql-types = doDistribute (
unmarkBroken super.postgresql-simple-postgresql-types
);
};
ihpPackages = [
"ihp"
"ihp-datasync"
"ihp-graphql"
"ihp-hspec"
"ihp-ide"
"ihp-job-dashboard"
"ihp-migrate"
"ihp-pglistener"
"ihp-ssc"
"ihp-typed-sql"
];
in
lib.genAttrs ihpPackages (
name: haskellLib.doDistribute (haskellLib.unmarkBroken (super.${name}.overrideScope ihpHasqlScope))
)
)

View file

@ -134,8 +134,6 @@ self: super:
+ (oldAttrs.preCompileBuildDriver or "");
}) super.llvm-hs;
sym = markBroken super.sym;
yesod-core = overrideCabal (drv: {
# Allow access to local networking when the Darwin sandbox is enabled, so yesod-core can
# run tests that access localhost.

View file

@ -1553,6 +1553,14 @@ builtins.intersectAttrs super {
# only test suite is testcontainers/docker-based
postgresql-simple-postgresql-types = dontCheck super.postgresql-simple-postgresql-types;
# hasql 1.10 stack used by IHP — tests need a live PostgreSQL / docker
hasql_1_10_3 = dontCheck super.hasql_1_10_3;
hasql-dynamic-statements_0_5_1 = dontCheck super.hasql-dynamic-statements_0_5_1;
hasql-notifications_0_2_5_0 = dontCheck super.hasql-notifications_0_2_5_0;
hasql-pool_1_4_2 = dontCheck super.hasql-pool_1_4_2;
hasql-transaction_1_2_2 = dontCheck super.hasql-transaction_1_2_2;
postgresql-binary_0_15_0_1 = dontCheck super.postgresql-binary_0_15_0_1;
users-postgresql-simple = lib.pipe super.users-postgresql-simple [
(addTestToolDepends [
pkgs.postgresql

View file

@ -13,13 +13,13 @@
}:
php.buildComposerProject2 (finalAttrs: {
pname = "composer";
version = "2.9.7";
version = "2.9.8";
src = fetchFromGitHub {
owner = "composer";
repo = "composer";
tag = finalAttrs.version;
hash = "sha256-cmz5YaxfykkUlF7Ai0Yu8L6sfNePmx3v24g6131+/RM=";
hash = "sha256-g9r6l0qjpAxVw0q3wbrUstnq2lISMSLgr13FsjcnHDQ=";
};
nativeBuildInputs = [
@ -33,7 +33,7 @@ php.buildComposerProject2 (finalAttrs: {
inherit (finalAttrs.passthru) pharHash;
};
vendorHash = "sha256-yMT32j3Qt4X0IbE1Mmge7PjVjVVrA4fvJm8O/8sz/V4=";
vendorHash = "sha256-GNu1BMKPi0SKH6+456NPnAVuNOk2ylONogtLygdi1y8=";
postInstall = ''
wrapProgram $out/bin/composer \
@ -55,7 +55,7 @@ php.buildComposerProject2 (finalAttrs: {
# use together with the version from this package to keep the
# bootstrap phar file up-to-date together with the end user composer
# package.
passthru.pharHash = "sha256-08aAHqbl3SkdDxSSlaTQ8VOadNUjGVj+j9qoiaSX5s8=";
passthru.pharHash = "sha256-WbLFDhDK+g2O/Bnt6aMm14LwlsZ0omuvmM8ELOI96JA=";
meta = {
changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}";

View file

@ -40,14 +40,14 @@
buildPythonPackage rec {
pname = "mitmproxy";
version = "12.2.2";
version = "12.2.3";
pyproject = true;
src = fetchFromGitHub {
owner = "mitmproxy";
repo = "mitmproxy";
tag = "v${version}";
hash = "sha256-WhWXybzBuI7hB54TuqxOmOoHUUIqf0uiC8+KDbvbqgA=";
hash = "sha256-YgM8GjWmWKxOZcahR3+9XO2Xyfu9v8rNgxKn/2oL35Y=";
};
pythonRelaxDeps = [

View file

@ -39299,10 +39299,10 @@ with self;
YAMLSyck = buildPerlPackage {
pname = "YAML-Syck";
version = "1.36";
version = "1.45";
src = fetchurl {
url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.36.tar.gz";
hash = "sha256-Tc2dmzsM48ZaL/K5tMb/+LZJ/fJDv9fhiJVDvs25GlI=";
url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.45.tar.gz";
hash = "sha256-8t4a+08MVsNubVJgqgvSyPGOTYUAnc9YQiBOoqf7w98=";
};
env.NIX_CFLAGS_COMPILE = "-std=gnu11";
meta = {