Merge branch 'init_rework5' into 'main'

Convert all service definitions to toml

See merge request redox-os/base!138
This commit is contained in:
Jeremy Soller
2026-02-26 09:56:59 -07:00
19 changed files with 141 additions and 200 deletions
Generated
+28 -34
View File
@@ -86,7 +86,7 @@ version = "0.0.1"
dependencies = [
"acpi",
"serde",
"toml 0.7.8",
"toml",
]
[[package]]
@@ -1133,6 +1133,7 @@ dependencies = [
"libredox",
"serde",
"serde_json",
"toml",
]
[[package]]
@@ -1526,7 +1527,7 @@ dependencies = [
"pico-args",
"redox_syscall 0.7.1",
"serde",
"toml 0.5.11",
"toml",
]
[[package]]
@@ -2162,11 +2163,11 @@ dependencies = [
[[package]]
name = "serde_spanned"
version = "0.6.9"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
dependencies = [
"serde",
"serde_core",
]
[[package]]
@@ -2387,47 +2388,43 @@ dependencies = [
[[package]]
name = "toml"
version = "0.5.11"
version = "1.0.3+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
checksum = "c7614eaf19ad818347db24addfa201729cf2a9b6fdfd9eb0ab870fcacc606c0c"
dependencies = [
"serde",
]
[[package]]
name = "toml"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
dependencies = [
"serde",
"indexmap",
"serde_core",
"serde_spanned",
"toml_datetime",
"toml_edit",
"toml_parser",
"toml_writer",
"winnow",
]
[[package]]
name = "toml_datetime"
version = "0.6.11"
version = "1.0.0+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e"
dependencies = [
"serde",
"serde_core",
]
[[package]]
name = "toml_edit"
version = "0.19.15"
name = "toml_parser"
version = "1.0.9+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4"
dependencies = [
"indexmap",
"serde",
"serde_spanned",
"toml_datetime",
"winnow",
]
[[package]]
name = "toml_writer"
version = "1.0.6+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
[[package]]
name = "twox-hash"
version = "1.6.3"
@@ -2873,12 +2870,9 @@ dependencies = [
[[package]]
name = "winnow"
version = "0.5.40"
version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
dependencies = [
"memchr 2.8.0",
]
checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
[[package]]
name = "wit-bindgen"
@@ -2991,7 +2985,7 @@ dependencies = [
"serde_json",
"smallvec 1.15.1",
"thiserror 1.0.69",
"toml 0.5.11",
"toml",
]
[[package]]
+1 -1
View File
@@ -11,4 +11,4 @@ edition = "2021"
[dependencies]
acpi = { git = "https://github.com/jackpot51/acpi.git" }
serde = { version = "1.0", features = ["derive"] }
toml = "0.7.3"
toml = "1"
+1 -1
View File
@@ -11,7 +11,7 @@ log.workspace = true
pico-args = "0.5"
redox_syscall.workspace = true
serde = { version = "1", features = ["derive"] }
toml = "0.5"
toml = "1"
config = { path = "../../config" }
common = { path = "../common" }
+1 -1
View File
@@ -26,7 +26,7 @@ serde = { version = "1", features = ["derive"] }
serde_json = "1"
smallvec = { version = "1", features = ["serde"] }
thiserror = "1"
toml = "0.5"
toml = "1"
common = { path = "../../common" }
daemon = { path = "../../../daemon" }
+8 -13
View File
@@ -1,13 +1,8 @@
{
"unit": {
"default_dependencies": false,
"requires_weak": ["00_randd.service"]
},
"service": {
"cmd": "ramfs",
"args": ["logging"],
"type": {
"scheme": "logging"
}
}
}
[unit]
default_dependencies = false
requires_weak = ["00_randd.service"]
[service]
cmd = "ramfs"
args = ["logging"]
type = { scheme = "logging" }
+7 -12
View File
@@ -1,12 +1,7 @@
{
"unit": {
"description": "/dev/null",
"default_dependencies": false
},
"service": {
"cmd": "nulld",
"type": {
"scheme": "null"
}
}
}
[unit]
description = "/dev/null"
default_dependencies = false
[service]
cmd = "nulld"
type = { scheme = "null" }
+8 -15
View File
@@ -1,15 +1,8 @@
{
"unit": {
"description": "/dev/rand",
"default_dependencies": false
},
"service": {
"cmd": "randd",
"args": [
"rand"
],
"type": {
"scheme": "rand"
}
}
}
[unit]
description = "/dev/random"
default_dependencies = false
[service]
cmd = "randd"
args = ["rand"]
type = { scheme = "rand" }
+7 -10
View File
@@ -1,10 +1,7 @@
{
"unit": {
"description": "Set time from realtime clock",
"default_dependencies": false
},
"service": {
"cmd": "rtcd",
"type": "oneshot"
}
}
[unit]
description = "Set time from realtime clock"
default_dependencies = false
[service]
cmd = "rtcd"
type = "oneshot"
+10 -13
View File
@@ -1,13 +1,10 @@
{
"unit": {
"description": "Services that relibc needs to function",
"default_dependencies": false,
"requires_weak": [
"00_nulld.service",
"00_randd.service",
"00_rtcd.service",
"00_zerod.service",
"00_logging_ramfs.service"
]
}
}
[unit]
description = "Services that relibc needs to function"
default_dependencies = false
requires_weak = [
"00_nulld.service",
"00_randd.service",
"00_rtcd.service",
"00_zerod.service",
"00_logging_ramfs.service",
]
+7 -12
View File
@@ -1,12 +1,7 @@
{
"unit": {
"description": "/dev/zero",
"default_dependencies": false
},
"service": {
"cmd": "zerod",
"type": {
"scheme": "zero"
}
}
}
[unit]
description = "/dev/zero"
default_dependencies = false
[service]
cmd = "zerod"
type = { scheme = "zero" }
+6 -11
View File
@@ -1,11 +1,6 @@
{
"unit": {
"description": "VT input and graphics multiplexer"
},
"service": {
"cmd": "inputd",
"type": {
"scheme": "input"
}
}
}
[unit]
description = "VT input and graphics multiplexer"
[service]
cmd = "inputd"
type = { scheme = "input" }
+7 -10
View File
@@ -1,10 +1,7 @@
{
"_comment": "Needs to start before drivers to ensure it gets priority when redoxfs searches for disks",
"unit": {
"description": "Live disk"
},
"service": {
"cmd": "lived",
"type": "notify"
}
}
# Needs to start before drivers to ensure it gets priority when redoxfs searches for disks
[unit]
description = "Live disk"
[service]
cmd = "lived"
type = "notify"
+7 -12
View File
@@ -1,12 +1,7 @@
{
"unit": {
"description": "Graphical bootlog",
"requires_weak": ["10_inputd.service", "20_vesad.service"]
},
"service": {
"cmd": "fbbootlogd",
"type": {
"scheme": "fbbootlog"
}
}
}
[unit]
description = "Graphical bootlog"
requires_weak = ["10_inputd.service", "20_vesad.service"]
[service]
cmd = "fbbootlogd"
type = { scheme = "fbbootlog" }
+8 -13
View File
@@ -1,13 +1,8 @@
{
"unit": {
"description": "Framebuffer text console",
"requires_weak": ["10_inputd.service", "20_vesad.service"]
},
"service": {
"cmd": "fbcond",
"args": ["2"],
"type": {
"scheme": "fbcon"
}
}
}
[unit]
description = "Framebuffer text console"
requires_weak = ["10_inputd.service", "20_vesad.service"]
[service]
cmd = "fbcond"
args = ["2"]
type = { scheme = "fbcon" }
+8 -11
View File
@@ -1,11 +1,8 @@
{
"unit": {
"description": "Graphics subsystem",
"requires_weak": [
"10_inputd.service",
"20_vesad.service",
"20_fbbootlogd.service",
"20_fbcond.service"
]
}
}
[unit]
description = "Graphics subsystem"
requires_weak = [
"10_inputd.service",
"20_vesad.service",
"20_fbbootlogd.service",
"20_fbcond.service",
]
+14 -19
View File
@@ -1,19 +1,14 @@
{
"unit": {
"description": "Bootloader framebuffer handler",
"requires_weak": [
"10_inputd.service"
]
},
"service": {
"cmd": "vesad",
"inherit_envs": [
"FRAMEBUFFER_ADDR",
"FRAMEBUFFER_VIRT",
"FRAMEBUFFER_WIDTH",
"FRAMEBUFFER_HEIGHT",
"FRAMEBUFFER_STRIDE"
],
"type": "notify"
}
}
[unit]
description = "Bootloader framebuffer handler"
requires_weak = ["10_inputd.service"]
[service]
cmd = "vesad"
inherit_envs = [
"FRAMEBUFFER_ADDR",
"FRAMEBUFFER_VIRT",
"FRAMEBUFFER_WIDTH",
"FRAMEBUFFER_HEIGHT",
"FRAMEBUFFER_STRIDE",
]
type = "notify"
+6 -9
View File
@@ -1,9 +1,6 @@
{
"unit": {
"requires_weak": ["50_rootfs"]
},
"switchroot": {
"prefix": "/usr",
"etcdir": "/etc"
}
}
[unit]
requires_weak = ["50_rootfs"]
[switchroot]
prefix = "/usr"
etcdir = "/etc"
+1
View File
@@ -8,6 +8,7 @@ license = "MIT"
libredox.workspace = true
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "1"
config = { path = "../config" }
daemon = { path = "../daemon" }
+6 -3
View File
@@ -149,7 +149,8 @@ impl Unit {
)
}
Some("service") => {
let service: SerializedService = serde_json::from_str(&config)?;
let service: SerializedService = toml::from_str(&config)
.map_err(|err| io::Error::new(io::ErrorKind::InvalidData, err))?;
(
service.unit,
UnitKind::Service {
@@ -159,11 +160,13 @@ impl Unit {
)
}
Some("target") => {
let target: SerializedTarget = serde_json::from_str(&config)?;
let target: SerializedTarget = toml::from_str(&config)
.map_err(|err| io::Error::new(io::ErrorKind::InvalidData, err))?;
(target.unit, UnitKind::Target {}, vec![])
}
Some("switchroot") => {
let switchroot: SerializedSwitchRoot = serde_json::from_str(&config)?;
let switchroot: SerializedSwitchRoot = toml::from_str(&config)
.map_err(|err| io::Error::new(io::ErrorKind::InvalidData, err))?;
(
switchroot.unit,
UnitKind::SwitchRoot {