Files
RedBear-OS/local/recipes/tui/tlc/source/Cargo.toml
T
vasilito 0ec7bd46bb Phase 3: GPU 3D drivers + Phase 1-2 stability fixes — full rollup
ROLLUP of all Phase 1-3 work on branch 0.3.0, targeting a production-ready
console + full graphical desktop under Intel and Virgl/VirtIO-GPU.

=== Phase 1 — Stability ===
 - fbcond: Enter key handler (scancode 0x1C→\n), display map buffering,
   control-char filter in all 7 keymaps, write_event assert
 - build-redbear.sh: auto-rebuild-prefix when fork timestamps are newer
   than prefix/x86_64-unknown-redox/sysroot (was warning-only). Added
   configurable REDBEAR_SKIP_PREFIX_REBUILD guard.
 - build-redbear.sh: set explicit keymap '-K us' in console activation
 - config/redbear-device-services.toml: remove spurious init.d service
   files for redbear-acmd/ecmd/usbaudiod. These USB device daemons are
   spawned dynamically by pcid-spawner, not as boot-time init services.
   Starting them without args panicked the boot flow.
 - relibc: grantpt/unlockpt/ptsname (then deduplicated against stdlib)
 - userutils: cherry-pick upstream getty commit 2834434 (standard C
   ptsname/grantpt/unlockpt)
 - base fork: Russian (ЙЦУКЕН) keymap + inputd control-char filter
   (K_ESC/K_BKSP/K_ENTER → \0, commit 73e44d81 in submodule/base)

=== Phase 2 — Login & Console ===
 - login.rs: restored to 0.2.5-known-good liner-based prompt
 - redbear-upower: removed tokio full/signal features → protection fault fix
 - redbear-power: excluded temporarily (being fixed in other session)
 - tlc version: updated to 0.3.0

=== Phase 3 — GPU/3D Drivers (commit 0898332f7a) ===
Intel i915: FULLY implemented — real ring buffer + MMIO command
submission via GEM DMA → GGTT → i915 render ring, with hardware
head-pointer polling (2M iterations, 50µs backoff). Zero stubs.

VirtIO GPU/Virgl (VirtioTransport): 11 VIRTGPU ioctls (GETPARAM,
GET_CAPS, RESOURCE_CREATE, RESOURCE_INFO, CONTEXT_INIT, EXECBUFFER,
WAIT, TRANSFER_TO_HOST, TRANSFER_FROM_HOST, MAP, CREATE_BLOB) ported
from Linux 7.1 virtgpu_ioctl.c and virtgpu_vq.c.
 - driver.rs: 8 virgl_* trait methods (default Unsupported)
 - scheme.rs: 11 ioctl constants + 8 wire structures + dispatch
 - virtio/transport.rs: PCI capability discovery, feature negotiation,
   control+cursor virtqueue setup, vring descriptor building
 - virtio/mod.rs: real implementations for all 8 virgl_* methods
 - intel/mod.rs: explicit virgl Unsupported stubs

Other changes from active sessions: Cargo.toml version bumps, linux-kpi
headers, libpciaccess recipe, mesa/recipe.toml, kf6 patches, expat,
driver-manager, redbear-sessiond, redbear-compositor, cub, tlc, and
many other local recipes.
2026-07-09 20:29:28 +03:00

169 lines
4.3 KiB
TOML

[package]
name = "tlc"
version = "0.3.0"
edition = "2021"
description = "Twilight Commander — file manager with ratatui TUI"
license = "MIT"
repository = "https://gitea.redbearos.org/vasilito/RedBear-OS"
[[bin]]
name = "tlc"
path = "src/main.rs"
[[bin]]
name = "tlc-pty-login"
path = "src/bin/tlc_pty_login.rs"
[[bin]]
name = "tlcedit"
path = "src/bin/tlcedit.rs"
[[bin]]
name = "tlcview"
path = "src/bin/tlcview.rs"
[lib]
name = "tlc"
path = "src/lib.rs"
[dependencies]
# TUI
ratatui = { version = "0.30", default-features = false, features = ["termion"] }
termion = "4"
# Shared TUI palette
redbear-tui-theme = { path = "../../../tui/redbear-tui-theme/source", default-features = false }
# Text
unicode-width = "0.2"
unicode-segmentation = "1"
unicode-general-category = "1"
# Serialization (config files, hotlist, macros)
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
# Error handling
anyhow = "1"
thiserror = "1"
rustix = { version = "1.1", features = ["event", "process", "pty", "termios", "fs", "stdio"] }
libc = "0.2"
# CLI parsing
clap = { version = "4", features = ["derive"] }
# Logging
log = "0.4"
env_logger = "0.11"
# Filesystem
walkdir = "2"
same-file = "1"
tempfile = "3"
notify = { version = "6", optional = true }
directories = "5"
# SFTP (pure Rust)
russh = { version = "0.44", optional = true }
russh-sftp = { version = "2.0.0-beta.5", optional = true }
russh-keys = { version = "0.44", optional = true }
# FTP
suppaftp = { version = "6", optional = true }
# Archive VFS
tar = { version = "0.4", optional = true }
zip = { version = "2", default-features = false, optional = true }
redox_syscall = { path = "../../../../../local/sources/syscall" }
# Syntax highlighting
syntect = { version = "5", default-features = false, features = ["default-onig", "regex-onig"], optional = true }
# Date/time
chrono = "0.4"
# Regex
regex = "1"
# Compression (for viewer's gz/bz2 support)
flate2 = "1"
bzip2 = { version = "0.6", optional = true }
xz2 = { version = "0.1", optional = true }
# Memory-mapped file access (for viewer >100 MiB files)
memmap2 = "0.9"
# i18n (optional)
rust-i18n = { version = "3", optional = true }
# Random (for connection IDs)
rand = "0.8"
# Hashing (for file highlight rules)
sha2 = "0.10"
# Bitflags
bitflags = { version = "2", features = ["serde"] }
# Async (optional, for VFS)
tokio = { version = "1", optional = true, default-features = false }
async-trait = { version = "0.1", optional = true }
[features]
# Each "non-default" feature below is a real, optional capability:
# - tar/zip enable the archive VFS backends
# - sftp/ftp enable the remote VFS backends
# - syntect enable the editor syntax highlighter
# - i18n enable the rust-i18n catalogue loader
# - watcher enable filesystem-watcher (notify)
# - bzip2 enable bzip2 (viewer + tar VFS)
# - xz2 enable xz (viewer + tar VFS)
# - async-vfs enable the async VFS dispatcher
#
# The default build pulls in everything that has no C build
# dependency. `syntect` is in defaults because Oniguruma's pure-Rust
# port (`onig` feature) avoids a C toolchain requirement; if a
# future default adds a C dep, drop it from `default` and require
# the user to opt in.
default = ["tar", "zip", "syntect", "i18n", "watcher"]
sftp = ["dep:russh", "dep:russh-sftp", "dep:russh-keys", "dep:async-trait", "tokio/net", "tokio/io-util", "tokio/time", "tokio/rt-multi-thread", "tokio/macros"]
ftp = ["dep:suppaftp"]
tar = ["dep:tar"]
zip = ["dep:zip"]
syntect = ["dep:syntect"]
i18n = ["rust-i18n"]
watcher = ["notify"]
async-vfs = ["dep:tokio", "dep:async-trait", "tokio/net", "tokio/io-util", "tokio/time", "tokio/rt-multi-thread", "tokio/macros"]
bzip2 = ["dep:bzip2"]
xz2 = ["dep:xz2"]
[dev-dependencies]
tempfile = "3"
predicates = "3"
assert_cmd = "2"
serde_yaml = "0.9"
[target.'cfg(target_os = "redox")'.dependencies]
libredox = { path = "../../../../../local/sources/libredox" }
redox_event = "0.4.6"
redox_syscall = { path = "../../../../../local/sources/syscall", features = ["std"] }
redox_termios = "0.1.3"
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
strip = true
panic = "abort"
[profile.dev]
opt-level = 1
[patch.crates-io]
libredox = { path = "../../../../../local/sources/libredox" }
redox_syscall = { path = "../../../../../local/sources/syscall" }