From d04913e51bddaec8803dd85c763076714de66b1f Mon Sep 17 00:00:00 2001 From: Dmitry Kovba Date: Tue, 4 Nov 2025 18:40:46 -0800 Subject: [PATCH 1/3] Set the default `PATH` --- vminitd/Sources/vminitd/Server+GRPC.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vminitd/Sources/vminitd/Server+GRPC.swift b/vminitd/Sources/vminitd/Server+GRPC.swift index 9b9d9228..5284d769 100644 --- a/vminitd/Sources/vminitd/Server+GRPC.swift +++ b/vminitd/Sources/vminitd/Server+GRPC.swift @@ -1141,6 +1141,10 @@ extension Initd { seenSuppGids.insert($0).inserted } + if !process.env.contains(where: { $0.hasPrefix("PATH=") }) { + process.env.append("PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin") + } + if !process.env.contains(where: { $0.hasPrefix("HOME=") }) { process.env.append("HOME=\(parsedUser.home)") } From 37a84fc77948743b473916b7d97ae6d1db9b930e Mon Sep 17 00:00:00 2001 From: Dmitry Kovba Date: Tue, 4 Nov 2025 19:33:38 -0800 Subject: [PATCH 2/3] Fix the bug in retrieving the `PATH` value --- Sources/ContainerizationOS/Path.swift | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Sources/ContainerizationOS/Path.swift b/Sources/ContainerizationOS/Path.swift index 21a93a4f..8f32533b 100644 --- a/Sources/ContainerizationOS/Path.swift +++ b/Sources/ContainerizationOS/Path.swift @@ -72,10 +72,8 @@ public struct Path { guard let env = env else { return nil } - return env.first(where: { path in - let split = path.split(separator: "=") - return split.count == 2 && split[0] == "PATH" - }) + return env.first(where: { $0.hasPrefix("PATH=") }) + .map { String($0.dropFirst(5)) } } // findExec returns true if the provided path is an executable From f559982378b39b23c8707b119f648c8f8ac44a92 Mon Sep 17 00:00:00 2001 From: Dmitry Kovba Date: Wed, 5 Nov 2025 13:13:21 -0800 Subject: [PATCH 3/3] Reduce code duplication --- vminitd/Sources/vminitd/Server+GRPC.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vminitd/Sources/vminitd/Server+GRPC.swift b/vminitd/Sources/vminitd/Server+GRPC.swift index 5284d769..0000b3d8 100644 --- a/vminitd/Sources/vminitd/Server+GRPC.swift +++ b/vminitd/Sources/vminitd/Server+GRPC.swift @@ -1142,7 +1142,7 @@ extension Initd { } if !process.env.contains(where: { $0.hasPrefix("PATH=") }) { - process.env.append("PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin") + process.env.append("PATH=\(LinuxProcessConfiguration.defaultPath)") } if !process.env.contains(where: { $0.hasPrefix("HOME=") }) {