Files
RedBear-OS/Cargo.toml.orig
T
vasilito d87746b279 libredox: bump to 0.1.18 + backport redox_fcntl_v0 + add Phase J acpi module
Three changes in one commit, all interrelated:

1. Bump version 0.1.17 -> 0.1.18 to match upstream. Reason:
   recipes/core/redoxfs/source requires libredox = "0.1.18",
   and the kernel's [patch.crates-io] override forces this local
   fork to be used in the kernel compilation. If the local fork
   stays at 0.1.17, the linker fails with undefined references
   to symbols added in 0.1.18 (redox_fcntl_v0 in particular).

2. Backport the 0.1.18 additions to src/lib.rs:
   - fn redox_fcntl_v0 extern declaration
   - pub fn fcntl() on Fd and as a free function
   - O_CLOEXEC and F_DUPFD_CLOEXEC constants
   All backports are purely additive; the existing Phase J
   path override (path = "../syscall") is preserved.

3. Re-apply the actual Phase J work to libredox that was
   missing from commit d01da35 ("Phase J fork"):
   - pub mod acpi re-exporting AcPiVerb from redox_syscall
   The commit message of d01da35 implied it added AcPiVerb
   re-exports but in fact only added the path override and
   version bump. This re-export is what gives acpid / kstop /
   redbear-power / redbear-acmd access to the symbolic
   EnterS2Idle / ExitS2Idle / SetS3WakingVector / EnterS3
   names instead of hardcoded integer discriminants.

After this commit, redoxfs links cleanly against the local
libredox 0.1.18 and the kernel's per-cpu run queues / futex
sharding work remains intact.
2026-07-02 07:55:04 +03:00

43 lines
1.6 KiB
TOML

[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.18"
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 }