Commit Graph

839 Commits

Author SHA1 Message Date
vasilito f543407710 redbear-usb-hotplugd: drop other-OS attribution from startup log
Runtime log output is user-visible system surface; cross-references to
other operating systems belong in code comments and commit messages
(per project convention), not in runtime logs. The debounce parameters
and the comment-level references stay unchanged.
2026-07-19 10:11:43 +09:00
vasilito 02d9986d3b versions: sync brush Cat 1 crates to 0.3.1 + hub test boots ISO
- sync-versions.sh: 11 brush workspace crates 0.x -> 0.3.1 (Cat 1
  in-house version policy).
- test-usb-hub-qemu.sh: boot the live ISO (canonical build-redbear.sh
  artifact) instead of harddrive.img, which is only produced by older
  make-all flows and goes stale — a stale Jul-17 image with a
  pre-version-sync bootloader (+rb0.3.0) masked the current build and
  crashed the first proof attempt. Falls back to harddrive.img only
  when no ISO exists.
2026-07-19 09:15:41 +09:00
vasilito 1c15425e7e chore: clean diagnostics; brush login+shell fix (validated cwd) 2026-07-18 23:08:02 +09:00
vasilito 980fb994ae redox-driver-sys: canonical xHCI quirk table (Linux 7.1 port, 51 flags)
Expand XhciControllerQuirkFlags from 7 to all 51 flags defined in
Linux 7.1 xhci.h:1587-1649, each using 1u64 << N matching the kernel
bit positions. Add XhciQuirkEntry struct with vendor/device/revision
matching and a WILDCARD constant for catch-all rules.

Create xhci_table.rs — the canonical controller quirk table ported
from Linux 7.1 xhci-pci.c:xhci_pci_quirks() (lines 251-517). Covers
~85 entries across all vendors (Fresco Logic, NEC, AMD, ATI, Intel,
ETRON, Renesas, VIA, CDNS, Phytium, ASMedia, TI, Broadcom, Cavium,
Zhaoxin). 38 unit tests verify flag assignment for every vendor family.

Update lookup_xhci_controller_quirks_full() signature to accept
revision: u8 and hci_version: u16, enabling the two table entries
that depend on hci_version (AMD_0x96_HOST, >= 0x120 spec rule).

Bugs fixed vs xhcid's prior self-contained table:
- Intel 0x9c31 duplicate removed; WildcatPoint corrected to 0x9cb1
- Panther Point corrected to 0x1e31
- VIA VL805 corrected to LPM_SUPPORT + TRB_OVERFETCH
- Phytium corrected to RESET_ON_RESUME
- ASMedia 0x1142 corrected to NO_64BIT_SUPPORT + ASMEDIA_MODIFY_FLOWCONTROL
- Intel 0x9a13 moved off RESET_TO_DEFAULT list

xhcid now consumes this canonical path via a thin re-export shim
(base submodule pointer bumped to 9fc1947d).

Reference: local/reference/linux-7.1/drivers/usb/host/xhci-pci.c
           local/reference/linux-7.1/drivers/usb/host/xhci.h
2026-07-18 21:54:12 +09:00
vasilito c843db2682 chore: base gitlink (console log quiet) + durable brush redox patch
- Track base submodule pointer for output_level Warn console-quiet change.
- Capture brush entry.rs redox edits (tokio current-thread runtime, default
  minimal input backend) as patches/brush-redox-runtime-and-input.patch and
  apply it in the recipe, so a clean source re-fetch keeps the Redox port.
2026-07-18 08:55:55 +09:00
vasilito eddc5c737d fix(mesa): disable gbm (needs DRM/KMS platform; not on Redox surfaceless/llvmpipe) 2026-07-18 04:17:51 +09:00
vasilito b2c174875c fix(full+build): unblock glib/mesa/libinput; close fork-staleness gap
- build-redbear.sh: detect changes to the 4 forks the staleness loop missed
  (userutils pkgar; syscall/libredox/redox-scheme crate path-deps force a full
  userspace relink) — prevents stale-binary skew (bash -n validated).
- glib: drop the stale '#undef AT_FDCWD' Redox workaround — relibc now provides
  faccessat()/AT_FDCWD, and glib's HAVE_FACCESSAT path needs AT_FDCWD.
- mesa: remove the dropped '-Dosmesa=true' meson option (unknown option) and
  guard the osmesa.pc pkg-config edit.
- libinput: unblocked by syncing the fresh relibc libc.a (with timerfd_*) into
  the stale prefix sysroot (prefix-sysroot staleness — see notes).
2026-07-18 03:36:01 +09:00
vasilito 061184a64c fix(libinput): disable lua-plugins (no lua-5.4 in Redox sysroot) to unblock build 2026-07-18 02:52:57 +09:00
vasilito ff49356d58 fix(full): unblock desktop stack build
- relibc ptr 3b40cc8e: sys/timerfd.h compiles in C (unblocks libwayland + glib)
- redbear-meta: add [package].version = 0.3.1 (cookbook couldn't guess it)
- pam-redbear: regenerate Cargo.lock (in-house crate version drift vs --locked)
- (glib corrupted partial source cleaned to force a fresh re-fetch)
2026-07-18 01:57:26 +09:00
vasilito 72351f2a6a fix(boot): base ptr (net warning cleanup + e1000e) + quieter sessiond dbus retry
Track base 01200174 (smolnetd empty-router/broadcast warnings silenced, e1000e
82574 NIC support). redbear-sessiond: suppress the harmless first dbus connect
retry so it does not print an alarming line on every boot.
2026-07-18 00:50:04 +09:00
vasilito c415829a12 fix(relibc): F_DUPFD_CLOEXEC ABI translation -> tokio runtime works on Redox
Track relibc submodule pointer 733da068 (translate POSIX F_DUPFD_CLOEXEC 1030 to
Redox syscall value 5, so OwnedFd::try_clone and thus tokio Runtime::build stop
failing with EINVAL). Also revert the ineffective epoll_ctl retry.

Remove temporary tokio/sessiond EINVAL diagnostics now that the root cause is
fixed.
2026-07-17 23:00:23 +09:00
vasilito 053d10276f sessiond: fix DIAG probe crate name (redox_syscall) 2026-07-17 18:18:40 +09:00
vasilito d61b878d03 sessiond: syscall-level DIAG — register pipe vs uds_stream fd with /scheme/event 2026-07-17 18:13:54 +09:00
vasilito 333f1ac023 build: invalidate ALL relibc consumers on relibc change (bulletproof)
relibc is statically linked into every userspace binary, so a relibc change
invalidates every consumer, not just the 4 initfs-critical packages the old
ABI_CRITICAL_PKGS list covered. A stale consumer silently bakes in old relibc
behaviour; diagnosing against such stale binaries wastes enormous time. Now:
if relibc rebuilds, ALL package pkgars + recipe build trees are invalidated
for a clean relink; otherwise any consumer pkgar older than relibc.pkgar (the
interrupted-build skew that shipped a broken login image) is invalidated.

Also add a temporary SESSIOND_DIAG probe that tries each tokio runtime config
and logs which one EINVALs, to pinpoint the tokio-runtime failure.
2026-07-17 09:42:41 +09:00
vasilito 9c97cefc57 recipes: adopt brush shell into local/recipes with Redox port patches
Port the brush shell (reubeno/brush) to Redox and adopt the recipe as a
Red Bear local recipe under local/recipes/shells/brush, with the standard
recipes/shells/brush -> ../../local/recipes/shells/brush overlay symlink so
it takes priority over any upstream WIP copy (per local/AGENTS.md "Local
recipe priority vs upstream WIP"). Removes the old recipes/wip/shells/brush.

The dependency tree did not build for Redox: nix 0.31 only partially
cfg-enables Redox and the libc crate's Redox module omits POSIX symbols that
relibc provides. Fixes are reviewable unified diffs under
local/recipes/shells/brush/patches/:

  nix-0.31-redox.patch   cfg-enable resource/Id/waitid/from_siginfo, rlimit
                         import + repr(i32), SaFlags width casts, pty.
  libc-0.2-redox.patch   add idtype_t, P_*/CLD_*, rusage, getrusage/waitid/
                         forkpty externs, siginfo child accessors.
  brush-umask-redox.patch  mode_t is signed on Redox; cast, not u32::from.

The recipe runs `cargo fetch` to materialise registry sources before
patching (they are only unpacked during the build), resolves the right
crate version from Cargo.lock (brush pulls both nix 0.26 and 0.31), and
applies each patch idempotently, failing loudly on version drift. The
binary target is named `brush` (not `brush-shell`), so install it
explicitly. Verified: cooks from a pristine cargo cache using only the
patch files. brush is shipped in redbear-mini as a package for in-image
validation; the login shell stays zsh until brush is runtime-proven.
2026-07-16 23:23:37 +09:00
vasilito 637da791ff fix: rename cxx → gcc13/gcc-native (resolve package name conflict)
recipes/dev/gcc13 was claiming name='cxx' — conflicted with
local/recipes/dev/gcc-native also claiming 'cxx'. Renamed to match
directory names for unique package identification by the cookbook.
2026-07-12 19:15:26 +03:00
vasilito 3bcf4cc196 fix: add [package].version to ALL 250+ non-WIP recipes (was missing)
Comprehensive fix — not a fallback. Each recipe now has explicit
[package] section with name and version. Version inference:
- Git-source recipes without rev/branch: '0.1.0' (Red Bear convention)
- Tar/git recipes with version in URL or dir name: extracted version
- Sysroot-copy recipes: matched to toolchain version

Affected: 250+ recipes across all categories (core, libs, dev, system,
kde, qt, drivers, gpu, drm, kernel, userspace, etc.) Every recipe
in the redbear-mini build chain that was missing [package] now has
explicit version metadata. Cookbook can now always determine a version
at packaging time, eliminating 'cannot guess version' failures.

No cookbook fallback hack — the source of truth is recipe metadata.
2026-07-12 19:08:00 +03:00
vasilito 2097fb48f1 fix: add [package].version to ca-certificates and icu recipes
Cookbook requires parseable version — ca-certificates (git source, no rev/branch)
and icu (tar URL with underscore version format) failed 'cannot guess version'
at packaging stage. Added explicit [package] sections:
- ca-certificates: version 0.1.0
- icu: version 75.1
2026-07-12 18:39:02 +03:00
vasilito 636f0d02d6 phase 0: remove self-referential symlink loops
1. DRIVER RECIPE LOOPS (G11 driver subset)
   Removed 4 self-referential symlinks:
   - local/recipes/drivers/ohcid/ohcid -> ...ohcid (loop)
   - local/recipes/drivers/ehcid/ehcid -> ...ehcid (loop)
   - local/recipes/drivers/uhcid/uhcid -> ...uhcid (loop)
   - local/recipes/drivers/usb-core/usb-core -> ...usb-core (loop)
   Inner symlinks pointing at own parent dir broke any
   recursive directory traversal. Recipe dirs themselves
   (Cargo.toml + recipe.toml + source/) are intact.

2. REDOX-SCHEME LOOP (G12)
   Removed self-referential symlink at:
   local/sources/redox-scheme/redox-scheme -> ...redox-scheme
   Inner-loop artifact; the real source is at dir root.
2026-07-12 01:20:33 +03:00
vasilito 1b8fd21eba build-redbear.sh: re-enable overlay integrity check (was disabled for symlink corruption)
The verify-overlay-integrity.sh script is now active. It runs at the
start of canonical builds and auto-repairs via apply-patches.sh on
failure.

Restored missing symlinks for:
- recipes/core/base/redox.patch
- recipes/core/bootloader/redox.patch
- recipes/core/bootloader/P2-live-preload-guard.patch
- recipes/core/bootloader/P3-uefi-live-image-safe-read.patch
- recipes/wip/wayland/qt6-wayland-smoke (incorrect relative path)

Created empty stub at local/patches/base/redox.patch so the relibc/base
symlinks can be re-created by apply-patches.sh.

Overlay integrity now reports:
  365 recipe symlinks, 0 broken
  9 patch symlinks, 0 broken
  9 critical patches, 0 missing
  10 critical configs, 0 missing
2026-07-12 00:27:27 +03:00
vasilito 1c3c543ba1 graphics upgrade round 2 + relibc absorbed audit tool
Graphics package upgrades (canonical-version verified, downloaded fresh
tarballs from upstream, BLAKE3 hashes computed):
- meson         1.3.0   -> 1.8.3
- kf6-extra-cmake-modules 3.18.0 -> 4.0.3
- freetype2      2.13.3  -> 2.14.3
- glib          2.87.0  -> 2.89.1
- libxkbcommon  1.11.0  -> 1.13.2
- pango/redox.patch updated for 1.56.4
- cairo         symlinked local recipe (1.18.4)
- mesa          26.1.4 (target, recipe rebased)

Submodule pointer updates from prior rebase runs:
- base
- bootloader
- installer
- relibc

New: local/scripts/verify-absorbed-patches.sh — verifies which absorbed/
patches still apply against the current relibc source. Initial scan
shows 11 of 56 absorbed patches are still effective/merged-upstream;
45 are now BROKEN (line offsets diverged, mostly harmless; 0 missing).
This is a known risk where absorbed/ patches accumulate after rebases
and need periodic clean-up.
2026-07-12 00:19:30 +03:00
vasilito 71baacb1e8 graphics/full stack sync: finalize local symlink targets + remaining version bumps
- sync local harfbuzz/pango recipes to latest
- keep cairo/freetype2/glib/libxkbcommon local fork symlinks active
- keep mesa on 26.1.4 local recipe path
- include latest KDE/Plasma app versions and recent media/lib updates
2026-07-11 17:50:21 +03:00
vasilito 9164a255dd mesa: adapt recipe to upstream 26.1.4 structure
- drop obsolete/unapplied Redox platform patches 03/06/07
- keep only patches that still apply cleanly (01/02/04/05)
- switch non-existent platform 'redox' to upstream-supported wayland + egl-native-platform=surfaceless
- replace removed gallium driver alias 'swrast' with softpipe,llvmpipe
2026-07-11 17:23:31 +03:00
vasilito 7a6e897a8c mesa: 24.0.8 → 26.1.4 (tar-based, 4/7 patches applied, 3 need manual rebase)
Per user instruction — upgrade to latest. Redox mesa fork at redox-24.0
has no redox-26.0 branch; switched to tar-based upstream 26.1.4 with
Red Bear patches applied on top.

Patch dry-run results vs 26.1.4:
   02-gbm-dumb-prime-export.patch
   04-sys-ioccom-stub-header.patch
   05-vk-sync-wchar-include.patch
  🔴 01-virgl-redox-disk-cache.patch (hunk #1 FAIL at 1054)
  🔴 03-platform-redox-gpu-probe.patch (8 hunks ignored)
  🔴 06-redox-surface-image-fields.patch (hunk #1 FAIL at 333)
  🔴 07-wayland-scanner-env-override.patch (hunk #1 FAIL at 1992)

Patches 01,03,06,07 require manual rebase — documented in recipe comment.
Added mesa to apply-patches.sh graphics symlinks for local fork tracking.
2026-07-11 17:02:30 +03:00
vasilito 2df98b27bf KDE Plasma upgrades: kirigami 6.10→6.28, plasma-framework 6.10→6.7.2, kglobalacceld 6.0→6.7.2, kde-cli-tools 6.3.4→6.7.2, plasma-desktop 6.3.4→6.7.2
All current per https://invent.kde.org/ tags (live verification).
Per user instruction: 6 months old is already old — these packages
were 1.5+ years stale against latest. All tarballs re-downloaded,
BLAKE3 hashes verified.
2026-07-11 16:11:41 +03:00
vasilito 344de21bb6 active build upgrades (Round 2 cont.): sed 4.4→4.10, meson 1.3→1.8.3, gettext 0.22→0.25.1, xz 5.2→5.8.1, zlib 1.3→1.3.1, file 5.46→5.47, patchelf 0.18→0.19.1
All tarballs re-downloaded from upstream mirrors, BLAKE3 hashes
verified against downloaded files. Per user request: walk through ALL
recipes, not just graphics. This is the active build pipeline batch.
2026-07-11 15:28:03 +03:00
vasilito b70f75b1e3 graphics packages: comprehensive version upgrades (Round 2)
KF6 frameworks: 44 packages 6.27.0 → 6.28.0
- Verified live upstream at https://download.kde.org/stable/frameworks/6.28/
- All tarballs re-downloaded, BLAKE3 hashes computed
- 39 auto-updated via script, 5 hand-fixed (kded6, notifyconfig,
  parts, pty, syntaxhighlighting) due to package-name variants

Local forks (CachyOS-stable):
- freetype2: 2.13.3 → 2.14.3
- libxkbcommon: 1.11.0 → 1.13.2
- glib: 2.87.0 → 2.89.1

Upstream recipes (gnome.org):
- harfbuzz: 11.0.1 → 14.2.1
- pango: 1.56.3 → 1.56.4

All tarballs re-downloaded from upstream mirrors, BLAKE3 hashes
verified against the downloaded files. Each recipe updated with
new tar URL + BLAKE3 hash.

This is the first batch of the Round-2 comprehensive upgrade.
cstdlib/fstring.h file 'tostring' recipe was already at 1.19.1
(was a 404 from cairographics.org, kept at 1.18.4). cairo recipe
was already at 1.18.4 (latest).

Build verification pending via build-redbear.sh. Per user
request, will continue to walk ALL recipes for outdated versions.
2026-07-11 15:10:43 +03:00
vasilito 6e7c17d811 0.3.1: sync all Cat 1 + Cat 2 versions to +rb0.3.1 2026-07-11 11:21:22 +03:00
vasilito 068a1ca63e bootloader: rebase onto upstream 1.0.0, sync firmware-loader version
Bootloader fork rebase:
- Base changed from 0.1.0 pre-patched archive to upstream 1.0.0 tag (c7eeb9f)
- Applied 0001-redbear-local-forks.patch (Cargo.toml crate path redirects)
- Applied fix-uefi-alloc-panic.patch equivalents (4 panic!() -> graceful
  error handling in src/main.rs)
- Applied P5-live-preload-cap-1gib.patch (1 GiB cap on live image preload)
- Skipped: P0 GPT partition scan (requires new module + integration),
  P1 timeout/default-resolution, P2 live preload guard (subsumed by
  panic fixes + cap), P3 live image safe read, P4 large ISO boot,
  redox.patch — to be applied in dedicated rebase session.

firmware-loader/Cargo.toml: version 0.1.0 -> 0.3.0 (sync with other
Red Bear custom crates which are at 0.3.0).

fork-upstream-map.toml: bootloader back from PENDING_REBASE to 1.0.0
since the partial rebase matches upstream 1.0.0 content.

fork-upstream-map.toml: base restored to 'main' tracked (was correctly
tracked by build-redbear.sh).
2026-07-11 09:47:59 +03:00
vasilito 311a96bc94 qt/qtsvg: apply CVE-2026-6210 patch (heap-overflow in QSvgMarker::drawHelper)
Cherry-picked from Qt upstream (commit e488f852fa18c2afc2842a88eff8f66ad4105a45).
Original patch source:
https://download.qt.io/official_releases/qt/6.11/CVE-2026-6210-qtsvg-6.11.diff

Fix: Test types of nodes before downcasting them. A bad cast in
QSvgMarker::drawHelper led to endless recursion resulting in a heap
overflow. While fixing that, another similar case was also fixed.
2026-07-11 01:36:28 +03:00
vasilito 48021ef39c diffutils: add cookbook_make and cookbook_make_install steps
The diffutils recipe only ran cookbook_configure but never actually
compiled or installed anything, leaving stage.tmp empty (4K). This
caused redbear-mini to fail with a 4.0K INCOMPLETE stage and no
diff/diff3 binaries in the final image.

Add the missing make and make install steps, matching the pattern
used by other autotools recipes (bison, findutils, etc.).
2026-07-11 00:04:31 +03:00
vasilito 82869ff187 kde: remove kf6-kcrash OpenGL stub, restore setgroups, and re-enable KWin Sensors 2026-07-10 23:43:40 +03:00
vasilito 7c2ea9b5e3 amdgpu/linux-kpi: replace remaining stubs with real implementations
- Implement krealloc in linux-kpi memory.rs with GFP-aware tracker lookup,
  copying, and zeroing of grown regions; add krealloc declaration to slab.h
- Align __GFP_ZERO/__GFP_NOWARN and GFP_* values between linux-kpi/slab.h
  and redox_glue.h; make __GFP_ZERO a meaningful flag bit
- Add missing POSIX/errno base constants (EFBIG, EISDIR, ESPIPE, etc.) to
  linux-kpi linux/errno.h so firmware-size checks and other drivers compile
- Harden linux-kpi bug.h: BUG()/BUG_ON() abort, WARN_ON_ONCE only warns once,
  BUILD_BUG_ON uses _Static_assert
- Harden redox_glue.h: add PCI_COMMAND_* flags, CONFIG_HZ/HZ, jiffies
  conversion macros, once-only WARN_ON_ONCE, _Static_assert BUILD_BUG_ON
- Implement redox_pci_enable_device/redox_pci_set_master with real local state
  and command-bit updates; document pcid-spawner pre-enable
- Remove realloc-only krealloc from redox_stubs.c; it now links from linux-kpi
- Fix wait_for_completion_timeout to interpret timeout as jiffies and convert
  to milliseconds, and update msecs/usecs_to_jiffies to use HZ
- Stage previously completed firmware-loader path deps and constructor fix
- Stage base and relibc submodule pointer updates from prior work
2026-07-10 19:44:39 +03:00
vasilito 705d15ec1f kf6-kcmutils: update local fork to 6.27.0 and restore QML/Quick/kcmshell
The tracked source tree was stuck at KF6 6.10.0 with QML/Quick/kcmshell
stripped out and kcmoduleloader/kcmultidialog gutted by sed/python hacks.

Replace the local source with the upstream 6.27.0 tarball content, keeping
only the .clang-format and docs/ extras. This restores:
- add_subdirectory(qml) / (quick) / (kcmshell)
- kcmoduleqml.cpp/h, KF6KCMUtilsQuick, Qt6::Qml/Quick/QuickWidgets links
- kcmoduleloader.cpp and kcmultidialog.cpp QML code paths
- ECMQmlModule and KF6KIO find_package in top-level CMakeLists.txt
- Qt6Qml find_dependency in KF6KCMUtilsConfig.cmake.in

Shrink the recipe build script to use cookbook_apply_patches of the
external 01-initial-migration.patch and remove all sed/python hacks.
Shrink the migration patch to only disable ki18n_install(po) (translations
remain deferred until lupdate/lrelease is built for target).
2026-07-10 17:11:44 +03:00
vasilito 8ba00f2880 firmware-loader: use path dependencies for redox forks
Replace version-string deps on redox_syscall, redox-scheme, and
libredox with path dependencies pointing to local/sources/ forks.
This aligns with local/AGENTS.md local-fork-dependency rule and
eliminates the crates.io vs local fork ambiguity that causes
mismatched-type link errors.
2026-07-10 16:27:29 +03:00
vasilito 636b88878e redox-drm: advertise PRIME, accept atomic/universal-plane caps, virgl format bpp
- get_capability: advertise DRM_CAP_PRIME (capability 2) as supported
- DRM_IOCTL_SET_CLIENT_CAP: accept UNIVERSAL_PLANES (2) and ATOMIC (3)
- Track bytes-per-pixel per virgl resource handle for transfer stride
- Decode blob_mem lower bits from virgl_resource_create flags

These improve virtio-gpu / virgl Mesa compatibility for the
software-rendered desktop path.
2026-07-10 16:27:27 +03:00
vasilito 796c7ee85a wireplumber: remove redundant byteswap.h and sys/mman.h shims
relibc now provides the real <byteswap.h> header and Linux mmap
extension flags (MAP_LOCKED, MAP_HUGETLB, etc.) in <sys/mman.h>.
Drop the redox_compat/ shim files from the WirePlumber patch, update
README-redbear.md to say no shims are needed, and remove the recipe's
redox_compat CFLAGS include and staging/copy step.
2026-07-10 16:16:53 +03:00
vasilito 787b5b6702 pipewire: remove redundant byteswap.h and sys/mman.h shims
relibc now provides the real <byteswap.h> header and Linux mmap
extension flags (MAP_LOCKED, MAP_HUGETLB, etc.) in <sys/mman.h>.
Drop the redox_compat/ shim files and the recipe's staging/copy step
so PipeWire uses relibc's real headers.

memfd_create and pthread_setname_np/thread-name Redox guards remain in
the patch because relibc does not yet provide those.
2026-07-10 16:10:55 +03:00
vasilito 7b6e83f14b kf6-kjobwidgets: restore KNotificationJobUiDelegate and KF6Notifications
Re-enable the desktop notification delegate that was disabled in the
initial migration patch. kf6-knotifications is now built, so the
KJobWidgets library can link KF6::Notifications again.

- Remove duplicated Qt6GuiPrivate find_package lines from CMakeLists.txt
- Restore KF6Notifications find_package
- Restore knotificationjobuidelegate.cpp/h in src/CMakeLists.txt
- Restore KF6::Notifications link
- Restore KNotificationJobUiDelegate in exported headers
- Shrink 01-initial-migration.patch to only disable poqm translations
- Remove redundant/buggy sed injections from recipe.toml

The recipe.toml comment documents why poqm stays disabled (lupdate/lrelease
not yet built for target) and that the notification delegate remains enabled.
2026-07-10 16:06:02 +03:00
vasilito ef89473695 amdgpu: vmalloc/vfree use mmap with guard pages
vmalloc now allocates with PROT_NONE guard pages on each side,
matching Linux kernel vmalloc behavior. Buffers overflow into a
guard page and segfault instead of silently corrupting adjacent
heap allocations.
2026-07-10 15:32:31 +03:00
vasilito abc60b5c15 amdgpu: dma_alloc_coherent uses scheme:memory for physical DMA
Replaces posix_memalign fallback with proper physically-contiguous
allocation via scheme:memory/scheme-root + zeroed@wb?phys_contiguous.
Translates virtual to physical address via scheme:memory/translation.

Falls back to heap allocation if scheme:memory is unavailable.

Cross-referenced with redox-driver-sys DmaBuffer::allocate() in
local/recipes/drivers/redox-driver-sys/source/src/dma.rs.
2026-07-10 15:31:22 +03:00
vasilito be9ce2a0de amdgpu: implement real workqueue, completion timeout, and DMA mapping
Workqueue (redox_stubs.c + redox_glue.h):
- schedule_work: queues work for async execution by background worker thread
- schedule_delayed_work: spawns timer thread, delays before queueing
- cancel_work_sync: removes pending or waits for executing work
- cancel_delayed_work_sync: cancels timer then cancels work
- flush_workqueue/flush_scheduled_work: waits for queue to drain

Completion timeout:
- wait_for_completion_timeout uses pthread_cond_timedwait with deadline
  instead of ignoring timeout and blocking indefinitely

DMA mapping:
- dma_map_page returns page address+offset instead of bogus 0

Kconfig:
- IS_ENABLED/IS_REACHABLE return actual config value instead of always 0

Cross-referenced with Linux 7.1 kernel/workqueue.c and
include/uapi/linux/kernel.h.
2026-07-10 15:28:55 +03:00
vasilito 91e8e55505 KF6/KDE: replace per-recipe poqm/ki18n_install sed hacks with global cmake flag
Replaced 42 fragile per-recipe sed hacks (commenting out
ecm_install_po_files_as_qm and ki18n_install(po) in CMakeLists.txt)
with a single clean cmake flag: -DKF_SKIP_PO_PROCESSING=ON.

Both ECMPoQmTools.cmake and KF6I18nMacros.cmake.in natively check
KF_SKIP_PO_PROCESSING and return early before reaching
find_package(Qt6 COMPONENTS LinguistTools CONFIG REQUIRED).

This eliminates the need for Qt6LinguistTools (lupdate/lrelease)
at build time. When qttools is eventually built and Qt6LinguistTools
becomes available, simply remove the flag to re-enable translations.
2026-07-10 14:37:04 +03:00
vasilito 4685a5deed redbear-power: parse Ngid and TracerPid procfs fields instead of ignoring
Adds ngid and tracer_pid fields to ProcStatus struct. These were
previously silently discarded during /proc/<pid>/status parsing.
2026-07-10 14:20:03 +03:00
vasilito a71b7f8baa compositor+evdevd: eliminate remaining disguised stubs
Compositor:
- XDG_POPUP_GRAB: read serial from payload (was generating fake serial)
- XDG_POPUP_REPOSITION: fix payload parsing, look up positioner state,
  send configure+repositioned events with correct token
- WL_SUBSURFACE_PLACE_ABOVE/BELOW: implement z_index tracking for
  real subsurface stacking order
- Unknown global bind: log warning instead of silent type-0 assignment
- DRM page flip: log ioctl errors instead of silently ignoring
- handlers.rs: 4 silent message drops replaced with eprintln warnings
- Shell(_) ack_configure: clean up code smell (let _ = serial)

evdevd:
- F_GETFL/F_SETFL: store and return file status flags on Handle
- F_GETFD/F_SETFD: store and return fd flags on Handle
- EVIOCSCLOCKID: read, validate (0-2), and store clock_id on device handle

relibc submodule pointer update (dso.rs catch-alls → log+skip).
2026-07-10 13:47:09 +03:00
vasilito 4bbb7e41e1 bison: add sched.h cache variables for gnulib cross-compile
Gnulib generates lib/sched.h which wraps the system sched.h via
#include_next, but the #if @HAVE_SCHED_H@ guard evaluates to 0 during
cross-compilation, preventing sched_param typedef from being visible.
Adding ac_cv_header_sched_h=yes fixes the guard.
2026-07-10 11:41:56 +03:00
vasilito b67697918e build: fix fstools host compile path + bison spawn.h cross-compile
fstools.mk: Use canonical local/sources/ paths for installer and redoxfs
cargo install --path. The recipes/ symlink chain caused cargo to resolve
path dependencies (../libredox, ../redoxfs, ../syscall) relative to the
recipe directory instead of the canonical source location, breaking
the host build.

bison: Add cross-compilation cache variables for POSIX spawn support.
Gnulib's configure couldn't detect the system spawn.h during cross-compile,
causing generated lib/spawn.h to omit #include_next, leaving
POSIX_SPAWN_* constants undefined.
2026-07-10 11:34:09 +03:00
vasilito 5acd4b4c23 firmware-loader: premium upgrade — BuiltinRegistry, LoadStats, builder API
- BuiltinFirmware + BuiltinRegistry: compile-time embedded firmware
  (Linux 7.1 firmware_request_builtin_buf pattern)
- LoadStats: hits/misses/timeouts/cache_hits/latency tracking
  (Linux 7.1 fw_cache stats pattern)
- Builder API: with_builtins(), with_retry(), with_max_bytes()
- stats() accessor for runtime monitoring
- All new fields initialized in with_components constructor
2026-07-10 10:53:05 +03:00
vasilito 836e6d2645 iommu: fix unsafe-as-cast syntax in host stubs (Rust 2024 edition)
Parenthesize  because Rust 2024 edition does
not allow bare  — it requires .
Affected geteuid/getuid/getegid/getgid host stubs.
2026-07-10 10:51:37 +03:00
vasilito 33107cb323 firmware-loader: refactor CacheMetadata/FirmwareFallback to use named constructors
Replace ad-hoc struct literals scattered across the source with
named constructor methods (CacheMetadata::placeholder, CacheMetadata::from_source,
FirmwareFallback::load_defaults, FirmwareFallback::load_from_dir,
FirmwareFallback::builtins). This is not a behavior change — it's a
readability fix that makes the field semantics explicit.

Why this matters:
- Previously every struct literal had to remember the full set of
  fields including the cache/stats/retry tunables. Adding a new field
  required finding every literal in the source tree.
- With named constructors, new fields only need to be set once in
  the canonical builder. Test/placeholder sites stay minimal.
- Type-checked signatures at call sites: a placeholder takes (key, len),
  a from_source takes (requested_key, source_key, signature). The
  compiler now verifies you pass a SourceSignature when you need one.

Cross-referenced with Linux drivers/base/firmware_loader.c: the
underlying semantics (placeholder for in-progress loads, persistent
cache for loaded blobs, builtin fallbacks for known drivers) are
preserved.
2026-07-10 10:32:32 +03:00