Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-05-14 12:39:16 +00:00
committed by GitHub
11 changed files with 140 additions and 34 deletions
+57 -9
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 = {
+1
View File
@@ -467,6 +467,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;
+57
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")
'';
}
+5 -5
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"
}
+2 -2
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 = ''
+4 -4
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";
+3 -3
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 = [ "." ];
+2 -2
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;
};
@@ -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}";
@@ -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 = [
+3 -3
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 = {