From eb6e74f2ee4df5deebc0a41df65db1d81347a6ec Mon Sep 17 00:00:00 2001 From: vasilito Date: Thu, 9 Jul 2026 15:00:32 +0300 Subject: [PATCH] fix: redox-drm lockfile collisions + missing relibc ENOTTY import - Add redox-scheme symlink in recipes/core/base/ to resolve path collision when daemon workspace resolves ../redox-scheme from the recipe copy location - Remove redundant libredox direct dep from redox-drm Cargo.toml (arrives transitively through daemon; direct dep creates lockfile collision) - Align redox-drm's redox-scheme path to recipes/core/base/redox-scheme symlink to match daemon's workspace resolution path - Fix missing ENOTTY import in relibc src/header/sys_ioctl/redox/mod.rs --- local/recipes/gpu/redox-drm/source/Cargo.toml | 14 ++++++++++---- local/sources/relibc | 2 +- recipes/core/base/redox-scheme | 1 + 3 files changed, 12 insertions(+), 5 deletions(-) create mode 120000 recipes/core/base/redox-scheme diff --git a/local/recipes/gpu/redox-drm/source/Cargo.toml b/local/recipes/gpu/redox-drm/source/Cargo.toml index 0a94795e74..4b75f11a86 100644 --- a/local/recipes/gpu/redox-drm/source/Cargo.toml +++ b/local/recipes/gpu/redox-drm/source/Cargo.toml @@ -7,10 +7,16 @@ description = "DRM scheme daemon for Redox OS — provides GPU modesetting and b [dependencies] redox-driver-sys = { version = "0.3", path = "../../../drivers/redox-driver-sys/source" } linux-kpi = { version = "0.3", path = "../../../drivers/linux-kpi/source" } -libredox = { path = "../../../../../local/sources/libredox" } +# libredox arrives transitively through daemon; keeping a direct dep +# here would collide with daemon's workspace resolution path +# (recipes/core/base/libredox symlink). The redox-drm source does not +# use libredox directly — it's only needed as a transitive dependency. redox_syscall = { path = "../../../../../local/sources/syscall", features = ["std"] } syscall04 = { package = "redox_syscall", version = "0.4" } -redox-scheme = { path = "../../../../../local/sources/redox-scheme" } +# Use the recipe-location symlink path to match daemon's workspace +# resolution, avoiding lockfile collision between +# local/sources/redox-scheme and recipes/core/base/redox-scheme +redox-scheme = { path = "../../../../../recipes/core/base/redox-scheme" } daemon = { path = "../../../../../recipes/core/base/source/daemon" } log = "0.4" thiserror = "2" @@ -20,6 +26,6 @@ getrandom = "0.2" [patch.crates-io] redox-driver-sys = { path = "../../../drivers/redox-driver-sys/source" } linux-kpi = { path = "../../../drivers/linux-kpi/source" } -libredox = { path = "../../../../../local/sources/libredox" } -redox-scheme = { path = "../../../../../local/sources/redox-scheme" } +# libredox omitted — resolved through daemon workspace transitive dep +redox-scheme = { path = "../../../../../recipes/core/base/redox-scheme" } redox_syscall = { path = "../../../../../local/sources/syscall" } diff --git a/local/sources/relibc b/local/sources/relibc index 74367d1542..1c2af6a0e6 160000 --- a/local/sources/relibc +++ b/local/sources/relibc @@ -1 +1 @@ -Subproject commit 74367d1542d4fbcc94d5982a3898716e4cf0d00b +Subproject commit 1c2af6a0e60b75446420c4d1466e28e228bd1fdd diff --git a/recipes/core/base/redox-scheme b/recipes/core/base/redox-scheme new file mode 120000 index 0000000000..80ac12acb7 --- /dev/null +++ b/recipes/core/base/redox-scheme @@ -0,0 +1 @@ +../../../local/sources/redox-scheme \ No newline at end of file