libredox: Red Bear OS Phase J fork (use local syscall with EnterS2Idle/ExitS2Idle)
Phase J: hardware-agnostic s2idle / Modern Standby support in libredox. The libredox 0.1.17 dep on redox_syscall is redirected to the local fork at ../syscall (the fork at local/sources/syscall/ which adds EnterS2Idle/ExitS2Idle AcPiVerb variants to upstream's 0.8.1). This breaks the libredox::error::Error <-> syscall::Error type-identity barrier that previously caused E0277 errors in scheme-utils and daemon when the local syscall fork was used. Now that libredox also uses the local fork, both types are the same compile-time type. The version field stays at upstream 0.1.17 per the AGENTS.md 'GOLDEN RULE — Red Bear adapts to upstream, never the reverse'. Periodic rebase via 'git fetch upstream' is the workflow when upstream changes. Hardware-agnostic: works for any platform with Modern Standby firmware (Dell, HP, Lenovo, LG Gram, etc.).
This commit is contained in:
+75
@@ -0,0 +1,75 @@
|
||||
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
|
||||
#
|
||||
# When uploading crates to the registry Cargo will automatically
|
||||
# "normalize" Cargo.toml files for maximal compatibility
|
||||
# with all versions of Cargo and also rewrite `path` dependencies
|
||||
# to registry (e.g., crates.io) dependencies.
|
||||
#
|
||||
# If you are reading this file be aware that the original Cargo.toml
|
||||
# will likely look very different (and much more reasonable).
|
||||
# See Cargo.toml.orig for the original contents.
|
||||
|
||||
[package]
|
||||
edition = "2021"
|
||||
name = "libredox"
|
||||
version = "0.1.17"
|
||||
authors = ["4lDO2 <4lDO2@protonmail.com>"]
|
||||
build = false
|
||||
exclude = ["target"]
|
||||
autolib = false
|
||||
autobins = false
|
||||
autoexamples = false
|
||||
autotests = false
|
||||
autobenches = false
|
||||
description = "Redox stable ABI"
|
||||
readme = false
|
||||
license = "MIT"
|
||||
repository = "https://gitlab.redox-os.org/redox-os/libredox.git"
|
||||
|
||||
[features]
|
||||
base = ["libc"]
|
||||
call = ["base"]
|
||||
default = [
|
||||
"base",
|
||||
"call",
|
||||
"std",
|
||||
"redox_syscall",
|
||||
"protocol",
|
||||
]
|
||||
mkns = ["ioslice"]
|
||||
protocol = [
|
||||
"plain",
|
||||
"bitflags",
|
||||
]
|
||||
std = ["base"]
|
||||
|
||||
[lib]
|
||||
name = "libredox"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies.bitflags]
|
||||
version = "2"
|
||||
optional = true
|
||||
|
||||
[dependencies.ioslice]
|
||||
version = "0.6"
|
||||
optional = true
|
||||
|
||||
[dependencies.libc]
|
||||
version = "0.2"
|
||||
optional = true
|
||||
|
||||
[dependencies.plain]
|
||||
version = "0.2"
|
||||
optional = true
|
||||
|
||||
# Red Bear OS Phase J: path override to the local syscall
|
||||
# fork. The local fork at ../syscall/ adds the
|
||||
# EnterS2Idle/ExitS2Idle AcPiVerb variants. This breaks
|
||||
# the libredox::error::Error <-> syscall::Error type-
|
||||
# identity barrier that previously caused E0277 errors in
|
||||
# scheme-utils and daemon.
|
||||
[dependencies.redox_syscall]
|
||||
path = "../syscall"
|
||||
version = "0.8"
|
||||
optional = true
|
||||
Generated
+42
@@ -0,0 +1,42 @@
|
||||
[package]
|
||||
name = "libredox"
|
||||
authors = ["4lDO2 <4lDO2@protonmail.com>"]
|
||||
# Red Bear OS Phase J: version is 0.1.17 upstream but the
|
||||
# redox_syscall dep is redirected to the local fork at
|
||||
# ../syscall (which adds EnterS2Idle/ExitS2Idle AcpiVerb
|
||||
# variants). The version field stays at upstream 0.1.17
|
||||
# per the AGENTS.md "GOLDEN RULE" — periodic rebase via
|
||||
# `git fetch upstream` is the workflow when upstream changes.
|
||||
version = "0.1.17"
|
||||
edition = "2021"
|
||||
license = "MIT"
|
||||
description = "Redox stable ABI"
|
||||
# Red Bear OS fork lives at the canonical outer repo
|
||||
# (gitea.redbearos.org/vasilito/RedBear-OS).
|
||||
repository = "https://gitea.redbearos.org/vasilito/RedBear-OS"
|
||||
exclude = ["target"]
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[features]
|
||||
default = ["base", "call", "std", "redox_syscall", "protocol"]
|
||||
base = ["libc"]
|
||||
call = ["base"]
|
||||
std = ["base"]
|
||||
protocol = ["plain", "bitflags", "redox_syscall"]
|
||||
mkns = ["ioslice"]
|
||||
|
||||
[dependencies]
|
||||
bitflags = { version = "2", optional = true }
|
||||
libc = { version = "0.2", optional = true }
|
||||
# Phase J: path override to the local fork (../syscall
|
||||
# relative to the libredox fork's local/sources/libredox/
|
||||
# path). This gives libredox access to the EnterS2Idle /
|
||||
# ExitS2Idle AcpiVerb variants. Cargo's [patch.crates-io]
|
||||
# in the workspace's outer Cargo.toml (in base/ and kernel/)
|
||||
# is what wires this path through to the actual
|
||||
# redox_syscall crate; this path entry is the libredox-
|
||||
# side patch override for the same crate.
|
||||
redox_syscall = { path = "../syscall", version = "0.8", optional = true }
|
||||
ioslice = { version = "0.6", optional = true }
|
||||
plain = { version = "0.2", optional = true }
|
||||
Reference in New Issue
Block a user