mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
Merge staging-next into staging
This commit is contained in:
commit
997d0d965a
14 changed files with 187 additions and 36 deletions
|
|
@ -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 = {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
57
nixos/tests/docker-autoprune.nix
Normal file
57
nixos/tests/docker-autoprune.nix
Normal 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")
|
||||
'';
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 = ''
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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 = [ "." ];
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 = [
|
||||
|
|
|
|||
|
|
@ -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 = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue