mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-21 16:11:22 +00:00
{k3s,nixos/kubernetes}: use util-linux.withPatches (#409332)
This commit is contained in:
@@ -336,7 +336,10 @@ in
|
||||
[
|
||||
gitMinimal
|
||||
openssh
|
||||
util-linux
|
||||
# TODO (#409339): remove this patch. We had to add it to avoid a mass rebuild
|
||||
# for the 25.05 release. Once the staging cycle referenced in the above PR completes,
|
||||
# switch back to plain util-linux.
|
||||
util-linux.withPatches
|
||||
iproute2
|
||||
ethtool
|
||||
thin-provisioning-tools
|
||||
|
||||
@@ -333,16 +333,10 @@ let
|
||||
}).overrideAttrs
|
||||
overrideContainerdAttrs;
|
||||
|
||||
# TODO (#405952): remove this patch. We had to add it to avoid a mass rebuild
|
||||
# for the 25.05 release. Once the above PR is merged, switch back to plain util-linuxMinimal.
|
||||
k3sUtilLinux = util-linuxMinimal.overrideAttrs (prev: {
|
||||
patches =
|
||||
prev.patches or [ ]
|
||||
++ lib.singleton (fetchpatch {
|
||||
url = "https://github.com/util-linux/util-linux/commit/7dbfe31a83f45d5aef2b508697e9511c569ffbc8.patch";
|
||||
hash = "sha256-bJqpZiPli5Pm/XpDA445Ab5jesXrlcnaO6e4V0B3rSw=";
|
||||
});
|
||||
});
|
||||
# TODO (#409339): remove this patch. We had to add it to avoid a mass rebuild
|
||||
# for the 25.05 release. Once the staging cycle referenced in the above PR completes,
|
||||
# switch back to plain util-linuxMinimal.
|
||||
k3sUtilLinux = util-linuxMinimal.withPatches;
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "k3s";
|
||||
|
||||
39
pkgs/by-name/ut/util-linux/fix-mount-regression.patch
Normal file
39
pkgs/by-name/ut/util-linux/fix-mount-regression.patch
Normal file
@@ -0,0 +1,39 @@
|
||||
From 7dbfe31a83f45d5aef2b508697e9511c569ffbc8 Mon Sep 17 00:00:00 2001
|
||||
From: Karel Zak <kzak@redhat.com>
|
||||
Date: Mon, 24 Mar 2025 14:31:05 +0100
|
||||
Subject: [PATCH] libmount: fix --no-canonicalize regression
|
||||
|
||||
Fixes: https://github.com/util-linux/util-linux/issues/3474
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
---
|
||||
libmount/src/context.c | 3 ---
|
||||
sys-utils/mount.8.adoc | 2 +-
|
||||
2 files changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libmount/src/context.c b/libmount/src/context.c
|
||||
index 0323cb23d34..15a8ad3bbd0 100644
|
||||
--- a/libmount/src/context.c
|
||||
+++ b/libmount/src/context.c
|
||||
@@ -530,9 +530,6 @@ int mnt_context_is_xnocanonicalize(
|
||||
assert(cxt);
|
||||
assert(type);
|
||||
|
||||
- if (mnt_context_is_nocanonicalize(cxt))
|
||||
- return 1;
|
||||
-
|
||||
ol = mnt_context_get_optlist(cxt);
|
||||
if (!ol)
|
||||
return 0;
|
||||
diff --git a/sys-utils/mount.8.adoc b/sys-utils/mount.8.adoc
|
||||
index 4f23f8d1f0e..5103b91c578 100644
|
||||
--- a/sys-utils/mount.8.adoc
|
||||
+++ b/sys-utils/mount.8.adoc
|
||||
@@ -756,7 +756,7 @@ Allow to make a target directory (mountpoint) if it does not exist yet. The opti
|
||||
*X-mount.nocanonicalize*[**=**_type_]::
|
||||
Allows disabling of canonicalization for mount source and target paths. By default, the `mount` command resolves all paths to their absolute paths without symlinks. However, this behavior may not be desired in certain situations, such as when binding a mount over a symlink, or a symlink over a directory or another symlink. The optional argument _type_ can be either "source" or "target" (mountpoint). If no _type_ is specified, then canonicalization is disabled for both types. This mount option does not affect the conversion of source tags (e.g. LABEL= or UUID=) and fstab processing.
|
||||
+
|
||||
-The command line option *--no-canonicalize* overrides this mount option and affects all path and tag conversions in all situations, but it does not modify flags for open_tree syscalls.
|
||||
+The command-line option *--no-canonicalize* overrides this mount option and affects all path and tag conversions in all situations, but for backward compatibility, it does not modify open_tree syscall flags and does not allow the bind-mount over a symlink use case.
|
||||
+
|
||||
Note that *mount*(8) still sanitizes and canonicalizes the source and target paths specified on the command line by non-root users, regardless of the X-mount.nocanonicalize setting.
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
let
|
||||
isMinimal = cryptsetupSupport == false && !nlsSupport && !ncursesSupport && !systemdSupport;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalPackage: rec {
|
||||
pname = "util-linux" + lib.optionalString isMinimal "-minimal";
|
||||
version = "2.41";
|
||||
|
||||
@@ -200,6 +200,18 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
# TODO (#409339): Remove this hack. We had to add it to avoid a mass rebuild
|
||||
# for the 25.05 release to fix Kubernetes. Once the staging cycle referenced
|
||||
# in the above PR completes, this passthru and all consumers of it should go away.
|
||||
withPatches = finalPackage.overrideAttrs (prev: {
|
||||
patches = lib.unique (
|
||||
prev.patches or [ ]
|
||||
++ [
|
||||
./fix-mount-regression.patch
|
||||
]
|
||||
);
|
||||
});
|
||||
|
||||
updateScript = gitUpdater {
|
||||
# No nicer place to find latest release.
|
||||
url = "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git";
|
||||
@@ -237,4 +249,4 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
priority = 6; # lower priority than coreutils ("kill") and shadow ("login" etc.) packages
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user