Commit Graph

104 Commits

Author SHA1 Message Date
vasilito a52632f69d fix: bits_pthread cbindgen needs stddef.h for size_t type
The generated bits/pthread.h uses size_t but had no includes.
Also added openat cache vars to m4 recipe for gnulib cross-compilation.
2026-06-01 17:00:53 +03:00
vasilito 24584eb3c6 fix: remove garbled lines in AMD hotplug IRQ handler
Lines 649-651 had VramManager and info!() calls that don't belong
in handle_irq(). These were likely from a bad merge. The variables
fb_phys and fb_size are local to new() and don't exist in handle_irq().
2026-05-31 23:12:56 +03:00
vasilito 9db9c3bdc9 feat: ISO size reduction, user account, SDDM, PAM, VirtIO fixes, KDE/Qt patches
- Trim redbear-firmware from 1816MB to 143MB (GPU+WiFi only)
- Reduce filesystem_size from 8192 to 2048 MB
- Add unprivileged user account (uid=1000, sudo group)
- Add SDDM display manager recipe with Wayland-only patches
- Add pam-redbear PAM module for authentication
- Fix VirtIO queue timeout (SeqCst fence, remove permanent failure)
- KDE/KWin build fixes (libinput, wayland socket, ramfile, tabletmode)
- Qt6 build fixes (platformdefs, socket engine, Wayland integration)
- KF6 CMake fixes (attica, kcmutils, kcolorscheme, kcompletion, etc.)
- libxml2 build fix, libxkbcommon recipe fix
- Remove gcc-native/binutils-native from desktop ISO
2026-05-29 09:00:55 +03:00
vasilito 845ae99f9d fix graphical boot: DRM scheme detection, ConsoleKit bypass, boot chain deps
Three fixes for the KWin DRM device discovery failure:

1. drm_scheme_ready(): replace head -c 1 with exec 3< open test.
   Reading from a DRM scheme fd blocks because the scheme expects
   ioctl-style request/response, not streaming reads. Use open()
   success as the scheme availability probe instead.

2. ConsoleKitSession::create(): return nullptr immediately.
   The D-Bus isServiceRegistered() call can block indefinitely when
   the bus daemon doesn't fully implement org.freedesktop.DBus.
   With both LogindSession and ConsoleKitSession returning nullptr,
   Session::create() falls through to NoopSession which uses plain
   open() for DRM device access.

3. Boot chain deps: redox-drm depends on driver-manager,
   greeter depends on evdevd (keyboard/mouse ready before login).

Also includes: KF6 CMake build fixes, Qt6 platform patches,
libdrm Redox ioctl shim, and wayland.toml scheme check fix.
2026-05-28 23:19:49 +03:00
vasilito cb50169517 P0-P3 baseline for P4 2026-05-28 15:49:45 +03:00
vasilito 328d1abbcd rate-limit scheme error spam to prevent serial log flood 2026-05-28 00:36:17 +03:00
vasilito 475067ca8b Merge master graphics stack into 0.2.0
- config/redbear-full.toml: take master version with Intel GPU + VirtIO GPU
  pcid configs for automatic redox-drm loading, corrected requires_weak
  targets, removed incorrect default_dependencies=false, improved D-Bus/
  sessiond/seatd dependency chain
- kf6-extra-cmake-modules: minor cmake flag cleanup (remove BUILD_DOC=OFF)

Kept bootprocess redox-drm source (superior: 128-byte EDID with valid
checksum, safe MMIO pipeframe reads with bounds checks). All other
graphics recipes (Mesa, libdrm, Wayland, Qt6, KF6, KDE) already
identical between branches.
2026-05-27 07:33:45 +03:00
vasilito af05babbb2 WIP: recipe patches, expat/libxml2/libmpfr autogen, kf6/qt cmake fixes, new relibc patches 2026-05-26 06:56:30 +03:00
vasilito 7914626765 fix: update KWin and Qt6 cross-compile patches for Redox
KWin: add Redox compat for libinput device, wl-socket Unix domain socket\nwrapper, RamFile mmap, tablet mode manager, and CMake fixes for helpers\nand systembell plugins.

Qt6: add Redox compat for qplatformdefs (posix), corelib CMake,\nqtypes.h sizing, native socket engine, and Wayland client buffer\nintegration header.
2026-05-15 07:25:45 +01:00
vasilito a5df2280bc fix: update KF6 cross-compile patches for Redox
CMakeLists.txt patches for kf6-attica, kf6-kcmutils, kf6-kcolorscheme,\nkf6-kcompletion, kf6-kconfigwidgets, kf6-kdeclarative, kf6-kiconthemes,\nkf6-kitemmodels, kf6-kitemviews, kf6-kjobwidgets, kf6-ktextwidgets,\nkf6-kwayland, kf6-kxmlgui, kf6-pty, kf6-solid — disable missing dependencies,\nadd Redox compatibility definitions, and fix build errors.
2026-05-15 07:24:51 +01:00
vasilito ff4ff35918 feat: track all source trees in git — full fork offline-first model
Red Bear OS is a full fork. All sources must be available from git clone
with zero network access. Removed gitignore rules that excluded fetched
source trees under recipes/*/source/, local/recipes/kde/*/source/,
local/recipes/qt/*/source/, and vendor source trees.

Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded.

127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt
frameworks, mesa, wayland, DRM drivers, and every other recipe source.
2026-05-14 10:55:53 +01:00
vasilito 19c65be7b1 feat: VirtIO GPU driver, libdrm DRM ioctls, KWin/KF6 build fixes, display stack additions
- Add full VirtIO GPU driver with command submission, resource management,
  VirtQueue implementation, and transport layer; includes diagnostic probes
  for resource_create_2d ERR_INVALID_RESOURCE_ID investigation
- Expand libdrm Redox support with DRM ioctl wrappers (ADDFB, RMFB,
  CREATE_DUMB, MAP_DUMB, DESTROY_DUMB, GET_RESOURCES, GET_CONNECTOR,
  GET_CRTC, SET_CRTC, MODE_OBJ_GET_PROPERTIES, etc.) and xf86drm_redox.h
- Add redox-drm scheme handlers for VirtIO GPU-specific DRM ioctls
  (VIRTGPU_RESOURCE_CREATE, VIRTGPU_MAP, VIRTGPU_WAIT, VIRTGPU_INFO, etc.)
- Add display stack recipes: freetype2, lcms2, libdisplay-info, libepoxy,
  libxcvt
- Fix KWin build (recipe.toml expanded, kf6-ksvg added)
- Fix KF6 CMakeLists for cross-compilation (attica, kcmutils, kcolorscheme,
  kcompletion, kconfigwidgets, kdeclarative, kiconthemes, kitemmodels,
  kitemviews, kjobwidgets, ktextwidgets, kwayland, kxmlgui, kpty, solid)
- Add Qt6 futex support patch
- Add relibc patches: P3 strtold, P3 ld-so search path, P5 DRM ioctl removal
- Add base P4 pcid config scheme patch
- Update driver-manager hotplug/config, PCI config in redox-driver-sys
- Update greeter compositor and KDE session scripts
- Update AGENTS.md with zero-tolerance stubs policy and project knowledge
2026-05-14 10:31:13 +01:00
vasilito 49f9cb2f29 fix: update KF6 cross-compile build configurations
Patch CMakeLists.txt across 15 KF6 packages for Redox cross-compile.
Add kf6-ksvg recipe for KWin dependency chain.
2026-05-11 10:09:48 +01:00
vasilito 1a46659555 fix: noconfirm auto-selects first AUR match 2026-05-08 11:01:02 +01:00
vasilito 37d6e51ad4 fix: adapt KF6 pty and language dialog 2026-05-07 20:56:52 +01:00
vasilito 8932eccf65 fix: add remaining KF6 PIC flags 2026-05-07 20:56:35 +01:00
vasilito f92886b990 fix: add KF6 widget PIC flags 2026-05-07 20:56:16 +01:00
vasilito 0aceb22e55 fix: add KF6 PIC build flags 2026-05-07 20:55:56 +01:00
vasilito 6949e3e869 fix: relax KF6 CMake link targets 2026-05-07 20:55:36 +01:00
vasilito 3c442003a3 fix: port Konsole to Redox Qt surface 2026-05-07 09:11:47 +01:00
vasilito fcdb1120b5 fix: build KF6 KNewStuff widgets 2026-05-07 09:10:59 +01:00
vasilito da06324e7c fix: build KF6 I18n QML module 2026-05-07 09:10:44 +01:00
vasilito 94fa99c526 fix: handle KF6 Parts temporary file failures 2026-05-07 08:16:32 +01:00
vasilito ba538112a6 fix: import Qt Network for KF6 Parts 2026-05-07 08:16:17 +01:00
vasilito 97dbb7ba22 fix: make KF6 NotifyConfig build on Redox 2026-05-07 08:11:48 +01:00
vasilito 02b805935f fix: make KF6 Pty build on Redox 2026-05-07 08:06:59 +01:00
vasilito 6416a608a2 feat: add KF6 Pty recipe source 2026-05-07 08:02:04 +01:00
vasilito 56057856c0 fix: align kparts package name 2026-05-07 07:58:48 +01:00
vasilito 0393267fbf fix: align notifyconfig package name 2026-05-07 07:57:49 +01:00
vasilito f5470542e0 feat: add Konsole recipe source and patches 2026-05-07 07:54:52 +01:00
vasilito 08fb79f1c8 feat: add missing KF6 framework recipes 2026-05-07 07:53:26 +01:00
vasilito 242227cd11 fix: harden KF6 KIO build surface 2026-05-07 07:52:47 +01:00
vasilito 8ce1ab35dd fix: broaden KF6 framework build compatibility 2026-05-07 07:52:04 +01:00
vasilito eeba9877f1 milestone1 2026-05-07 04:35:57 +01:00
vasilito 176624a008 fix: Qt6 Wayland crash — root cause identified, kded6 fix deployed
ROOT CAUSE: Qt6's auto-generated Wayland wrappers pass NULL proxies
to wl_*_add_listener() during initialization. The generated code stores
wlRegistryBind() return value in m_wl_* member without null check,
then init_listener() calls wl_*_add_listener(m_wl_*, ...) which
page-faults at null+8 (write to proxy->object.implementation).

FIX (kded6): wrapper script renames libqwayland.so to .disabled
before launching kded6.real. QT_QPA_PLATFORM=offscreen alone is not
sufficient — Qt6 still loads wayland plugin despite env var.

FIX (libwayland): null guards in redox.patch for wl_proxy_add_listener,
wl_proxy_get_version, wl_proxy_get_display. Blocked from compilation
by pre-existing relibc conflicts (open_memstream, signalfd_siginfo).

FIX (Qt6 wrappers): regex-based null guard insertion proven in concept.
Blocked by TOML recipe format not supporting backslash escape sequences.
Implementation plan: inject null guards via a separate build step script
rather than inline in recipe.toml.
2026-05-06 16:34:46 +01:00
vasilito 2a0628cba2 fix: kded6 wrapper renames wayland plugin to force offscreen fallback
QT_QPA_PLATFORM=offscreen alone is NOT sufficient on Redox —
Qt6 still loads libqwayland.so despite the env var. The wrapper
now renames libqwayland.so to .disabled before launching kded6,
forcing Qt to fall back to the offscreen plugin which works.

This is the most reliable fix: physically preventing Qt from
finding the wayland plugin.
2026-05-06 16:24:31 +01:00
vasilito e82c736a5e fix: kded6 wrapper script — definitive Qt6 Wayland crash prevention
kded6 wrapper (/usr/bin/kded6 → kded6-wrapper.sh → kded6.real):
- Sets QT_QPA_PLATFORM=offscreen before executing real kded6
- Works regardless of launch mechanism (init, D-Bus, direct)
- No dependency on #ifdef Q_OS_REDOX, D-Bus Environment=, or build cache
- kded6 is a headless D-Bus daemon — Wayland adds no functionality

redox.patch: added null guards to wayland-client.c (wl_proxy_add_listener,
wl_proxy_get_version, wl_proxy_get_display) — durable patch for when
libwayland build is fixed.
2026-05-06 16:10:18 +01:00
vasilito 001da36b16 fix: kded6 uses offscreen QPA on Redox — Qt6 Wayland crashes at null+8
kded6's detectPlatform() forces QT_QPA_PLATFORM=wayland regardless
of external environment. On Redox, Qt6 Wayland QPA crashes during
wl_registry init (page fault at null+8). kded6 is a headless
D-Bus daemon — it does not need Wayland.

Added #ifdef Q_OS_REDOX guard: use 'offscreen' instead of 'wayland'.
Combined with libwayland null guards, this provides defense in depth
against the Qt6 Wayland crash on Redox.
2026-05-06 13:49:52 +01:00
vasilito 439a5e6799 kwin: plugin path fix + KF6Svg stub + QmlPlugins cleanup
- Mirror usr/plugins/*.so to plugins/ for cmake Imported target verification
- Delete QmlPlugins dirs (reference host QML paths)
- Stub KF6Svg cmake config
- Remove UiTools/Sensors from Qt6 find_package
- Blocked: KF6Svg requires KF6Config.cmake component registration
2026-05-04 16:42:19 +01:00
vasilito 73e832504a plasma-framework: add BLAKE3 hash, kwin cmake fixes (WIP)
- BLAKE3 hash for plasma-framework v6.10.0 tarball
- KWin recipe: remove UiTools/Sensors/KF6::Svg from cmake
- KWin recipe: stub Qt6Plugin targets, QmlPlugins cleanup
- Blocked: Qt6Plugin cmake host-path issue requires deeper qtbase fix
2026-05-04 16:27:58 +01:00
vasilito 1a5ff9a83f kwin: cmake cleanup of host-path Qt6Plugin targets (incomplete)
- Delete QmlPlugins dirs and stub PluginTargets files
- Blocked: Qt6Plugin cmake files reference host paths from QT_HOST_PATH
- Needs qtbase recipe cmake config regeneration for cross-build sysroot
2026-05-04 16:04:00 +01:00
vasilito 765d9f3421 feat: kirigami builds (QML gate cleared)
- QNetworkReply stub header for Redox cross-build
- GuiPrivate + Network in find_package
- QElapsedTimer include fix
- networkAccessManager null stub in icon.cpp
- Primitives target links Qt6::Network for headers
2026-05-04 15:29:00 +01:00
vasilito e506611289 kirigami: fix Qt6::GuiPrivate cmake target, QElapsedTimer include
- Add GuiPrivate to Qt6 find_package in top-level CMakeLists.txt
- Add missing QElapsedTimer include in toolbarlayout.cpp
- Add network stub infrastructure in recipe (incomplete, Qt6Network
  cross-compilation still needed for full build)
2026-05-04 14:49:07 +01:00
vasilito 1b5c19b22a chore: sync all pending changes — kirigami platform headers, cookbook fix, docs, patches
Kirigami: remove stub .cpp, add Qt platform integration headers for
QML gate. Matches KDE src/pattern for direct header-only builds.

Cookbook: add --no-backup-if-mismatch to patch invocation (fetch.rs).

Kernel: consolidate patch chain, add debug-scheme-serial-fix.

Docs: archive old audit reports, add CHANGELOG and hardware validation
matrix. Update AGENTS.md with Linux reference source policy.

Scripts: add test-network-qemu.sh, test-storage-qemu.sh.

.gitignore: add local/reference/ exclusion.
2026-05-04 11:57:48 +01:00
vasilito 15d0707e74 feat: USB storage read/write proof + full Red Bear OS tree sync
Add redbear-usb-storage-check in-guest binary that validates USB mass
storage read and write I/O: discovers /scheme/disk/ devices, writes a
test pattern to sector 2048, reads it back, verifies match, restores
original content. Updates test-usb-storage-qemu.sh with write-proof
verification step.

Includes all accumulated Red Bear OS work: kernel patches, relibc
patches, driver infrastructure, DRM/GPU, KDE recipes, firmware,
validation tooling, build system hardening, and documentation.
2026-05-03 23:03:24 +01:00
vasilito a48739ec8a fix: standardize Qt and KDE sysroot helper usage 2026-05-02 22:10:22 +01:00
vasilito b998fe6256 fix: QML gate — kirigami deps (qtsvg, qtshadertools), fresh source, toolchain include paths
QML gate progress:
1.  QML headers found: redox-toolchain CMAKE_CXX_FLAGS includes QtQml/QtQuick
2.  Source clean: fresh tar extracted (previous builds corrupted with _OFF macros)
3.  Qt6Svg: added qtsvg dependency
4.  Qt6ShaderTools: cmake config + .so present in sysroot
5.  qt6_add_shaders cmake function missing — Qt6 cross-comp gap

Kirigami deps now: qtbase, qtdeclarative, qtsvg, qtshadertools, ECM
Config passes cmake find_package for Qt6Core, Quick, Gui, Svg, QuickControls2,
Concurrent, ShaderTools. All targets found. Blocked on qt6_add_shaders()
not in Qt6ShaderTools cmake macros — needs Qt6 build infrastructure fix.
2026-05-01 07:44:39 +01:00
vasilito 81c60dbe6b fix: kirigami — tested CMAKE_CXX_FLAGS + env CXXFLAGS workaround
Both approaches fail — redox-toolchain.cmake overrides include paths.
Root cause: Qt6 cmake configs from qtdeclarative (built with qml_jit=OFF)
do not export Qt6Qml/Qt6Quick include directories properly for downstream
consumers. Headers exist at /usr/include/QtQml/QQmlEngine but cmake does
not add -I paths. This is the precise QML gate mechanism.
2026-05-01 07:27:53 +01:00
vasilito 38ee11cebc feat: qtdeclarative dep added to kirigami/kwin, QML stripping removed from kirigami
Qt6Core5Compat built (kwin dep). Kirigami still fails — QQmlEngine/QQuickItem
headers exist in sysroot but cmake find_package(Qt6Qml) include paths
are not being set. This is the exact QML gate: cmake integration needed
between qtdeclarative build output and downstream recipes.

Build evidence:
- qt5compat: built (libQt6Core5Compat now available)
- kglobalacceld: built
- kirigami: fails at C++ include stage (cmake finds Qt6Qml but
  -I/usr/include/QtQml not in compile flags)
- kwin: fails at Qt6Gui Wayland plugin cmake target issue
2026-05-01 07:21:26 +01:00
vasilito 97f5a870a2 chore: close session — commit all remaining pre-existing state
Finalize all non-artifact changes accumulated from other sessions:
- config updates, recipe changes, source edits, patches
- pkgar/cache artifacts intentionally excluded (build outputs)

This is the maximum achievable scope for this session.
Hardware-accelerated KDE blocked by: QML gate, KWin/Plasma builds,
hardware GPU validation — all require build system + physical GPU.
2026-05-01 03:15:20 +01:00