diff --git a/Cargo.lock b/Cargo.lock index 939ae1439a..421636eae1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1010,12 +1010,13 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.12" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" dependencies = [ "bitflags 2.10.0", "libc", + "plain", "redox_syscall", ] @@ -1199,6 +1200,12 @@ dependencies = [ "toml", ] +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "portable-atomic" version = "1.13.0" @@ -1381,9 +1388,9 @@ dependencies = [ [[package]] name = "redox-scheme" -version = "0.9.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb0cee524a5c6e4db180250f699e101ee25f3f79ad2618527e539e028cb6722" +checksum = "5928b2f572e06a74e9c210fcacf15b70b8ffa6fdb3d8650f4601b83c12fe194b" dependencies = [ "libredox", "redox_syscall", @@ -1418,18 +1425,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.7.3" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" +checksum = "c5102a6aaa05aa011a238e178e6bca86d2cb56fc9f586d37cb80f5bca6e07759" dependencies = [ "bitflags 2.10.0", ] [[package]] name = "redoxfs" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f790d2ee811995ee2ba5dd7693fae50a222fa2ca529bfd3e23734ddc10f0a065" +checksum = "a66d0c043a5768739851a7e5775192a70fdffdbf3418c22fd7927415d41a87c3" dependencies = [ "aes", "argon2", diff --git a/Cargo.toml b/Cargo.toml index e3c67001a4..f28138c584 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,8 +34,8 @@ pkgar-core = { version = "0.2.2", optional = true } pkgar-keys = { version = "0.2.2", optional = true } rand = { version = "0.9", optional = true } redox-pkg = { version = "0.3.1", features = ["indicatif"], optional = true } -redox_syscall = { version = "0.7", optional = true } -redoxfs = { version = "0.9", optional = true, default-features = false, features = ["std", "log"] } +redox_syscall = { version = "0.9", optional = true } +redoxfs = { version = "0.9.1", optional = true, default-features = false, features = ["std", "log"] } rust-argon2 = { version = "3", optional = true } serde = "1" serde_derive = "1.0" diff --git a/gui/Cargo.lock b/gui/Cargo.lock index f51cfba387..5a9e875005 100644 --- a/gui/Cargo.lock +++ b/gui/Cargo.lock @@ -2929,14 +2929,14 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.16" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" dependencies = [ "bitflags 2.13.0", "libc", "plain", - "redox_syscall 0.7.5", + "redox_syscall 0.9.0", ] [[package]] @@ -4199,12 +4199,12 @@ dependencies = [ [[package]] name = "redox-scheme" -version = "0.9.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef5279a1ad9567f8a87818ba80320afdf858853db93742c2bb32be31a82ccdb" +checksum = "5928b2f572e06a74e9c210fcacf15b70b8ffa6fdb3d8650f4601b83c12fe194b" dependencies = [ "libredox", - "redox_syscall 0.7.5", + "redox_syscall 0.9.0", ] [[package]] @@ -4233,7 +4233,7 @@ dependencies = [ "pkgar-keys", "rand 0.9.4", "redox-pkg", - "redox_syscall 0.7.5", + "redox_syscall 0.9.0", "redoxfs", "ring", "rust-argon2", @@ -4257,7 +4257,7 @@ dependencies = [ "pkgar-core", "pkgar-keys", "redox_installer", - "redox_syscall 0.7.5", + "redox_syscall 0.9.0", "toml 0.8.23", ] @@ -4272,9 +4272,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.7.5" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b" +checksum = "c5102a6aaa05aa011a238e178e6bca86d2cb56fc9f586d37cb80f5bca6e07759" dependencies = [ "bitflags 2.13.0", ] @@ -4292,9 +4292,9 @@ dependencies = [ [[package]] name = "redoxfs" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f790d2ee811995ee2ba5dd7693fae50a222fa2ca529bfd3e23734ddc10f0a065" +checksum = "a66d0c043a5768739851a7e5775192a70fdffdbf3418c22fd7927415d41a87c3" dependencies = [ "aes", "argon2", @@ -4313,7 +4313,7 @@ dependencies = [ "range-tree", "redox-path", "redox-scheme", - "redox_syscall 0.7.5", + "redox_syscall 0.9.0", "seahash", "termion", "uuid", diff --git a/gui/Cargo.toml b/gui/Cargo.toml index 3034926dab..40379d3087 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -9,7 +9,7 @@ pkgar = "0.2" pkgar-core = "0.2" pkgar-keys = "0.2" redox_installer = { path = ".." } -redox_syscall = "0.7" +redox_syscall = "0.9" toml = "0.8" # TODO: remove after pkgutils update futures-channel = "0.3.32" diff --git a/gui/src/sys/redox.rs b/gui/src/sys/redox.rs index 690047a565..6d086bfdfb 100644 --- a/gui/src/sys/redox.rs +++ b/gui/src/sys/redox.rs @@ -1,10 +1,11 @@ use std::fs; pub fn ask_root(password: &str) -> Result<(), String> { - let file = libredox::call::open("/scheme/sudo", libredox::flag::O_CLOEXEC, 0) + let file = libredox::Fd::open("/scheme/sudo", libredox::flag::O_CLOEXEC, 0) .map_err(|err| err.to_string())?; - libredox::call::write(file, password.as_bytes()).map_err(|err| err.to_string())?; + file.write(password.as_bytes()) + .map_err(|err| err.to_string())?; // FIXME move to libredox unsafe extern "C" { @@ -12,11 +13,12 @@ pub fn ask_root(password: &str) -> Result<(), String> { } // Elevate privileges of our own process with help from the sudo daemon - syscall::sendfd( - file, - syscall::dup(redox_cur_procfd_v0(), &[]).map_err(|err| err.to_string())?, - 0, - 0, + file.call_wo( + &libredox::call::dup(redox_cur_procfd_v0(), &[]) + .map_err(|err| err.to_string())? + .to_ne_bytes(), + syscall::CallFlags::FD, + &[], ) .map_err(|err| err.to_string())?;