Files
RedBear-OS/local/recipes/libs/libudev/recipe.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

61 lines
2.0 KiB
TOML

# libudev — Red Bear real implementation backed by the scheme:udev producer
# (driven by udev-shim). Provides the libudev.so / UDev::UDev surface that KWin
# links against for tablet/input device enumeration. Hotplug event delivery is
# bounded by the current scheme:udev protocol (no kernel netlink link on Redox).
[source]
path = "source"
[build]
template = "custom"
script = """
DYNAMIC_INIT
mkdir -p "${COOKBOOK_STAGE}/usr/include"
mkdir -p "${COOKBOOK_STAGE}/usr/lib/cmake/UDev"
mkdir -p "${COOKBOOK_STAGE}/usr/lib/pkgconfig"
cp "${COOKBOOK_SOURCE}/include/libudev.h" "${COOKBOOK_STAGE}/usr/include/libudev.h"
x86_64-unknown-redox-gcc \
-shared \
-fPIC \
-std=c11 \
-Wall \
-Wextra \
-Wl,-soname,libudev.so \
-I"${COOKBOOK_SOURCE}/include" \
-o "${COOKBOOK_STAGE}/usr/lib/libudev.so" \
"${COOKBOOK_SOURCE}/libudev.c"
cat > "${COOKBOOK_STAGE}/usr/lib/cmake/UDev/UDevConfig.cmake" << 'EOF'
set(UDev_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../include")
set(UDev_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/../../../lib/libudev.so")
set(UDev_VERSION "0.3.0")
if(NOT TARGET UDev::UDev)
add_library(UDev::UDev SHARED IMPORTED)
set_target_properties(UDev::UDev PROPERTIES
IMPORTED_LOCATION "${UDev_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${UDev_INCLUDE_DIRS}"
)
endif()
set(UDev_FOUND TRUE)
EOF
cat > "${COOKBOOK_STAGE}/usr/lib/pkgconfig/libudev.pc" << 'EOF'
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: libudev
Description: Real scheme:udev-backed libudev provider for Red Bear
Version: 0.3.0
Libs: -L${libdir} -ludev
Cflags: -I${includedir}
EOF
"""
[package]
version = "0.3.0"
description = "libudev — real scheme:udev-backed libudev.so for Red Bear. Full enumerate / device / monitor / list-entry API in 1314 lines of C backed by /scheme/udev/devices plus udev-shim. Provides UDev::UDev CMake target, libudev.pc, and libudev.h for KWin tablet/input discovery. Hotplug event delivery remains bounded by scheme:udev semantics."