Commit Graph

331 Commits

Author SHA1 Message Date
vasilito f3cbc48bfd Add BLAKE3 hash to GRUB source, remove redundant chain module
Add blake3 checksum for grub-2.12.tar.xz for recipe integrity
verification. Remove the chain module from grub-mkimage — the
chainloader command is built-in in GRUB 2.12, no separate module
needed. Image shrinks from 540 KiB to 512 KiB. Update module table
and size estimate in GRUB integration plan.
2026-04-17 22:27:12 +01:00
vasilito 6c361066e2 Fix GRUB reassessment findings: clean-build gap, validation, robustness
- Add grub package to redbear-full-grub.toml so make all works from
  a clean tree (the installer needs grub.efi before it runs)
- Fix stat -f%z (macOS-only) to stat -c%s (Linux) in GRUB recipe
- Normalize bootloader config value to lowercase in install_inner so
  bootloader = "GRUB" from config files is accepted
- Add bad-cluster marker (0x0FFFFFF7) check in fat_tool.py
  _next_cluster to prevent potential infinite loops on degraded media
- Fix file handle leak in fat_tool.py if _read_bpb raises
- Clean up temp directory in fetch_bootloaders on error
- Update AGENTS.md with GRUB recipe and installer documentation
- Update GRUB plan with clean-build prerequisite note
2026-04-17 22:21:08 +01:00
vasilito 1341c9077a Regenerate installer patch with GRUB quality fixes 2026-04-17 22:03:27 +01:00
vasilito 4c6788f2f9 Harden GRUB recipe with error guards and host-tool verification
Add || exit 1 to all critical build steps (mkdir, cd, touch, configure,
make, grub-mkimage) so failures surface immediately instead of silently
continuing. Verify gcc/make/bison/flex are present before starting the
build. Update grub.cfg help text to reference fat_tool.py instead of
unavailable mtools.
2026-04-17 22:02:47 +01:00
vasilito f522c8fcff Fix WIP grub symlink path depth (3 levels, not 4)
The symlink from recipes/wip/services/grub was using ../../../../local/
which goes above the repo root. Fixed to ../../../local/ which correctly
resolves from recipes/wip/services/ to local/recipes/core/grub.
2026-04-17 21:49:39 +01:00
vasilito a03483c956 Fix GRUB bootloader lookup, eliminate duplicate recipe, harden recipe build
install-grub.sh now searches both recipes/core/bootloader/target and
local/recipes/core/bootloader/target for the Redox bootloader artifact.

The WIP grub recipe (recipes/wip/services/grub) is now a full directory
symlink to local/recipes/core/grub instead of just recipe.toml, ensuring
COOKBOOK_RECIPE resolves to a directory that contains grub.cfg. This also
eliminates the duplicate recipe warning from the cookbook.

The GRUB recipe now fails hard (exit 1) if grub.cfg is missing instead of
just warning.
2026-04-17 21:45:38 +01:00
vasilito a100fc32d5 Add GRUB recipe symlinks to apply-patches overlay script
Ensures recipes/core/grub and the WIP conflict redirect are created
by apply-patches.sh, so a fresh sync-upstream + apply-patches cycle
preserves the GRUB integration.
2026-04-17 21:37:23 +01:00
vasilito 950f8715cb Fix INSTALLER_OPTS clobbering warning in GRUB docs
INSTALLER_OPTS replaces the default --cookbook=. value, so the docs
now show the full invocation with --cookbook=. included and recommend
using the config file approach instead.
2026-04-17 21:37:11 +01:00
vasilito 5b651c4462 Fix install-grub.sh to source Redox bootloader from cookbook artifacts
The script now reads the Redox bootloader from the cookbook's bootloader
package output instead of extracting it from the ESP. This makes it
idempotent — previously, rerunning after GRUB install would copy GRUB
itself into EFI/REDBEAR/redbear.efi because ESP's BOOTX64.EFI was GRUB.
2026-04-17 21:36:59 +01:00
vasilito 1b7578132e Add fail-hard validation for GRUB bootloader mode in installer
When bootloader = "grub" is set, the installer now:
- Rejects unknown bootloader values (only "redox" and "grub" accepted)
- Enforces minimum efi_partition_size of 8 MiB for GRUB mode
- Fails with a clear error if grub.efi or grub.cfg are missing from
  the GRUB package output instead of silently falling back
2026-04-17 21:36:44 +01:00
vasilito c230776cc9 Update GRUB plan with Phase 2 testing instructions
Reorganized testing section to cover both Phase 1 (post-build script)
and Phase 2 (installer-native) workflows. Added unit test commands.
Removed mtools dependency from limitations.
2026-04-17 21:24:13 +01:00
vasilito 650a70a309 Update installer patch with GRUB help text and fix fstools build
Adds --bootloader and --filesystem to installer help text. Fixes
fstools host build by symlinking local/ directory alongside recipes/
so the ext4-blockdev path dependency resolves correctly.
2026-04-17 21:24:01 +01:00
vasilito e4b0fb8798 Add redbear-full-grub config with GRUB boot manager
Includes bootloader = "grub" and efi_partition_size = 16. Builds GRUB
as primary boot manager that chainloads the Redox bootloader.
2026-04-17 21:23:48 +01:00
vasilito 4a4a3e863d Update GRUB integration plan with Phase 2 implementation details
Documents the completed installer-native GRUB support: GeneralConfig
bootloader field, DiskOption GRUB extensions, fetch_bootloaders GRUB
package fetch, ESP layout conditional in with_whole_disk/ext4, CLI
--bootloader flag, and config usage examples.
2026-04-17 21:14:50 +01:00
vasilito 5c2c99b21f Add installer-native GRUB bootloader support
Extends the installer to write a GRUB chainload ESP layout when
bootloader = "grub" is set in config. Changes GeneralConfig, DiskOption,
fetch_bootloaders, with_whole_disk, with_whole_disk_ext4, and both CLI
binaries. When GRUB mode is active, the ESP contains GRUB as primary
(BOOTX64.EFI), grub.cfg, and the Redox bootloader as chainload target
(EFI/REDBEAR/redbear.efi).
2026-04-17 21:14:36 +01:00
vasilito 87270603ef Add GRUB integration plan and configure ESP size for GRUB boot
Documents the two-phase GRUB integration approach (post-build script
then installer-native), build notes for the three cookbook workarounds,
and measured artifact sizes. Sets efi_partition_size=16 in redbear-full
to accommodate GRUB plus Redox bootloader on the ESP.
2026-04-17 21:05:04 +01:00
vasilito 9b6ea8119f Add Python FAT32 tool and GRUB ESP install script
fat_tool.py provides zero-dependency FAT32 manipulation (ls, mkdir,
cp-in, cp-out) using only Python stdlib struct/os. install-grub.sh uses
it to extract the existing Redox bootloader from ESP, install GRUB as
the primary boot manager, and set up the chainload configuration.
2026-04-17 21:04:53 +01:00
vasilito b8af486e03 Add GRUB EFI build recipe and chainload configuration
Builds GRUB 2.12 for the host machine (not Redox target) using template=custom.
Produces a 540 KiB standalone PE32+ EFI binary with GPT, FAT, ext2,
chainloader, and utility modules. The grub.cfg chainloads the Redox
bootloader from EFI/REDBEAR/redbear.efi.
2026-04-17 21:04:39 +01:00
vasilito 5eea2a974f Register bootloader patch in recipe.toml
The redox.patch was present and symlinked but never listed in the [source] patches field, so the cookbook never applied it during builds.
2026-04-17 14:16:11 +01:00
vasilito ff1e2363e8 Add bootloader auto-boot countdown with 1280x720 default resolution
5-second countdown with any-key cancel into manual mode selection. Defaults to 1280x720, falls back to EDID best resolution. UEFI only via get_key_timeout polling with BootServices.Stall.
2026-04-17 14:03:58 +01:00
vasilito 62a8708d6f Add step-by-step D-Bus connection diagnostics to sessiond and upower 2026-04-17 13:45:00 +01:00
vasilito 7997bff21f Gitignore embedded relibc test copy 2026-04-17 13:44:22 +01:00
vasilito 175316f8c5 Fix D-Bus system bus socket path for Redox 2026-04-17 13:43:39 +01:00
vasilito d1b99a2694 Update apply-patches script for new base patches 2026-04-17 13:35:00 +01:00
vasilito 52df3ad5f6 Refresh project documentation 2026-04-17 13:34:49 +01:00
vasilito 6360b4fa9c Update linux-kpi and redox-drm recipe metadata 2026-04-17 13:34:37 +01:00
vasilito ec16a049d6 Update build configs for D-Bus and service integration 2026-04-17 13:34:28 +01:00
vasilito 373a3aedad Update Qt6 recipes and add remaining module stubs 2026-04-17 13:34:18 +01:00
vasilito 1c8f921114 Update KDE framework recipes 2026-04-17 13:34:03 +01:00
vasilito c925808697 Improve phase 5 and 6 validation tooling 2026-04-17 13:33:53 +01:00
vasilito e12a20e1e5 Advance base patch with acpid and xhcid fixes 2026-04-17 13:33:41 +01:00
vasilito 930983dea3 Update Bluetooth driver and validation 2026-04-17 13:33:29 +01:00
vasilito e6e1eb8520 Add D-Bus session and system services 2026-04-17 13:33:17 +01:00
vasilito 159787463e Add D-Bus integration plan 2026-04-17 13:33:03 +01:00
vasilito 2034d46129 Improve hardware utilities and lsusb output 2026-04-17 13:32:55 +01:00
vasilito 739704cbfa Advance USB implementation plan and validation docs 2026-04-17 13:32:43 +01:00
vasilito e46dc1813d Expand USB quirks and hardware validation 2026-04-17 13:32:32 +01:00
vasilito 046b9cdd26 Add remaining Qt recipe stubs 2026-04-17 00:06:03 +01:00
vasilito 5d7d3a2761 Refresh project documentation 2026-04-17 00:05:20 +01:00
vasilito e285ccc9e0 Add test infrastructure and validation tooling 2026-04-17 00:05:04 +01:00
vasilito b41d0b01e1 Update base patch and build scripts 2026-04-17 00:04:53 +01:00
vasilito d71788fb7e Advance KDE Plasma and Qt integration 2026-04-17 00:04:40 +01:00
vasilito 39ae086a73 Refresh Red Bear profile configs 2026-04-17 00:04:27 +01:00
vasilito 6502dd8614 Refresh redbear-info system tool 2026-04-17 00:04:20 +01:00
vasilito c725436721 Update hardware utilities and USB validation 2026-04-17 00:04:08 +01:00
vasilito 42a1ffc622 Advance Bluetooth driver and tools 2026-04-17 00:03:58 +01:00
vasilito 0735fb9085 Advance Wi-Fi driver and control tools 2026-04-17 00:03:36 +01:00
vasilito 8d56b7bb8b Refresh redox-drm and AMD GPU driver 2026-04-17 00:03:28 +01:00
vasilito 0d1bb48ec2 Update redox-driver-sys PCI and quirk support 2026-04-17 00:03:17 +01:00
vasilito 4688a08169 Expand linux-kpi wireless and networking scaffolding 2026-04-17 00:03:08 +01:00