Files
RedBear-OS/local/patches/README.md
T
vasilito 6d8ef13dc1 LG Gram Round 1: redox-driver-sys stub replacements + doc reference fixes
Round 1 of the LG Gram 16Z90TP compatibility work. Two parallel
workstreams in one commit:

1. Stub replacements in redox-driver-sys (per project zero-tolerance
   policy):

   - load_dmi_acpi_quirks() (was hardcoded AcpiQuirkFlags::empty()):
     real loader walking a new compiled-in DMI_ACPI_QUIRK_RULES table
     (currently empty — documented why) plus a new [[dmi_acpi_quirk]]
     TOML section parser in toml_loader.rs. The full 16-flag
     ACPI_FLAG_NAMES mapping is added so TOML entries can use any
     AcpiQuirkFlags variant by name.

   - PANEL_ORIENTATION_TABLE (was empty placeholder): populated with
     10 real entries ported from Linux 7.x
     drivers/gpu/drm/drm_panel_orientation.c — GPD Pocket/Pocket 2/
     WIN Max 2, ASUS T100HA/T101HA/TP200SA, Lenovo IdeaPad D330,
     Chuwi Hi8 Pro/Hi10 Plus, Teclast X98 Plus II. Each entry cites
     its Linux source commit.

   - PLATFORM_RULES (kept empty): documented why intentionally empty
     (Linux platform-wide DMI quirks are pre-2020 platform workarounds
     not needed by Red Bear's modern targets).

2. Broken reference fixes after the 2026-07-25 archive
   (commit 589a1044e6 moved 9 docs to legacy-obsolete-2026-07-25/
   but didn't update references). 30+ files referenced the moved
   docs by their old local/docs/<name>.md path. This commit updates
   every reference to point at local/docs/legacy-obsolete-2026-07-25/
   <name>.md so links work again. Files touched: AGENTS.md,
   README.md, docs/{AGENTS,README,07-RED-BEAR-OS-IMPLEMENTATION-PLAN}.md,
   local/AGENTS.md, 14 docs under local/docs/, local/patches/README.md,
   5 scripts under local/scripts/.

The matching acpid+ps2d consumer wiring landed earlier today in
submodule/base commit 45452c5a (force_s2idle, no_legacy_pm1b,
kbd_deactivate_fixup). The bootstrap reference fix is submodule/base
commit 263a41a9. Both are tracked by the updated submodule pointer
in this commit.

Build verification: redox-driver-sys 80 cargo tests pass. acpid/ps2d
host tests not runnable (require cross-compile). Canonical build
attempts uncovered two pre-existing failures unrelated to Round 1:
relibc edition-2024 unsafe-block issue in crtn, and the base fork's
'common' path resolution relies on the build script's overlay
integrity auto-repair which is currently failing. Neither is in code
touched by Round 1.

See local/docs/evidence/lg-gram/ASSESSMENT-2026-07-26.md for the full
round-by-round assessment and next-round plan.
2026-07-26 16:59:32 +09:00

4.7 KiB

local/patches/ — patch archive structure

Last updated: 2026-07-12 (Round 7) Status: Build system at 100% patch preservation. 121 active patches + 159 archived = 280 total cataloged patches.

Layout

local/patches/
├── README.md                                  # this file
├── <comp>/                                    # ACTIVE patches (121)
│   ├── <fork>/                                # base, kernel, relibc, ...
│   │   ├── P3-*.patch                         # applied by cookbook
│   │   └── redox.patch                         # legacy all-in-one (gitignored)
│   ├── <fork>/absorbed/                       # historical snapshots
│   │   └── P3-*.patch                         # PATCHES BEFORE they were committed
│   │                                          # to fork via mega-absorption. Recoverable.
│   └── <fork>/.gitignore'd                    # cargo metadata etc
├── legacy-superseded-2026-07-12/              # Round 2-6 archive (97)
│   ├── README + SUPERSEDED.md                 # per-component audit log
│   ├── base/, kernel/, relibc/, redoxfs/, userutils/
│   └── P3-*.patch                             # classified-SUPERSEDED
└── legacy-absorbed-2026-07-12/               # Round 2-3 archive (62)
    ├── README + SUPERSEDED.md                 # per-component audit log
    ├── base/, kernel/, relibc/, userutils/
    └── P3-*.patch                             # classified-INTEGRATED

What's an "absorbed" patch?

A patch is moved to legacy-absorbed-2026-07-12/ when Round 2-3's supersession classifier determined that the same fix is already committed to the fork's HEAD under a different commit subject. The .patch file is preserved as historical documentation but is no longer applied during build. This is operator-supersession under AGENTS.md "Upstream-first rule for fast-moving components".

The patch's content IS in the fork. Re-applying would either:

  • Be a no-op (patch -N for already-applied) — safe
  • Cause a real conflict (if fork content has since evolved past the patch's intent) — operator decision needed

What's a "superseded" patch?

A patch is moved to legacy-superseded-2026-07-12/ when its content is no longer needed at all — either:

  • Upstream Redox's newer tag already provides equivalent functionality (canonical "upstream preferred" path)
  • The fork's file structure has been rebased past the patch's expectations (file-restructured)
  • The operator cleaned up the corresponding code as part of a refactor (operator-superseded)

The patch's content is NOT in the fork. Re-applying would create unintended work. Recovery: rebase fork onto newer upstream or accept the operator's refactor.

How to recover a patch

# Move patch back to active location
cp local/patches/legacy-superseded-2026-07-12/<comp>/<patch>.patch \
   local/patches/<comp>/

# Optionally try applying it (will probably be a no-op for INTEGRATED,
# may fail for SUPERSEDED)
cd local/sources/<comp>
git apply --check -N -p1 < ../../local/patches/<comp>/<patch>.patch

Tooling

The patch audit tool runs as part of pre-push-checks.sh:

./local/scripts/pre-push-checks.sh

The 5 checks are: sync-versions, verify-fork-versions, verify-patch-content, verify-collision-detection, and the collision selftest. All must pass for the pre-push hook to allow a git push.

For a full operator-decision guide on what to do with new orphans, see local/docs/legacy-obsolete-2026-07-25/PATCH-PRESERVATION-AUDIT-2026-07-12.md (the "Out-of- scope" section tracks the current Round 5+6 forward work).

Round 7 snapshot

Directory Count Source
*/ (active) 121 operator's working fork state
legacy-superseded-2026-07-12/ 97 Round 2-6 SUPERSEDED audits
legacy-absorbed-2026-07-12/ 62 Round 2-3 INTEGRATED audits
legacy-recipe-patches/ 0 (deleted in Round 1.2; not a separate dir anymore)
Total cataloged 280

Notes

  • Each legacy/ directory has its own SUPERSEDED.md audit log with per-component tables of what was archived, when, and why.
  • The absorbed/ subdir under each active component (base/absorbed/, relibc/absorbed/) was removed in Round 3.0; its content was consolidated into legacy-absorbed-2026-07-12/<comp>/. The absorbed/ under each component's recipe was Round 2's experimental split.
  • New orphans detected by verify-patch-content.sh are NOT automatically archived — that's an operator decision. See local/scripts/verify-patch-content.sh --help (no current options; future work: add a --auto-archive mode).