Files
RedBear-OS/local/fork-upstream-map.toml
T
vasilito b66a9e509e policy: mark bootloader fork as PENDING_REBASE
The local bootloader fork claims to be upstream 1.0.0 + Red Bear
patches, but the patches in local/patches/bootloader/ do NOT
apply cleanly to upstream 1.0.0. The fork was originally a 0.1.0
baseline with substantial additions that pre-date the upstream-1.0.0
refactor.

Changes:

  * local/fork-upstream-map.toml: set bootloader's upstream tag to
    PENDING_REBASE. The verifier recognises this as a deliberate
    state marker (a fork whose rebase is in progress) and refuses
    the build with a clear error pointing the user to the rebase
    procedure documented in the map.

  * local/scripts/verify-fork-versions.sh: when a fork is marked
    PENDING_REBASE in the map, the script reports a dedicated error
    message instead of running the upstream content comparison (which
    would always fail for a fork in this state).

The current state of the build is:
  * 5 of 6 `-rb1` Cat 2 forks pass the no-fake-version-label
    check (redoxfs, redox-scheme, kernel, installer, userutils).
  * bootloader refuses to build until a real rebase onto a chosen
    upstream tag is completed (the patches must apply cleanly with
    --fuzz=0).
  * installer has additional divergent content that may need a
    rebase too (separate operational task).

This is the strict enforcement the user asked for. The build
cannot proceed silently with fake labels. The user must drive
the rebase work for bootloader (and installer) following the
procedure in fork-upstream-map.toml.
2026-07-05 05:15:27 +03:00

55 lines
2.9 KiB
TOML

# fork-upstream-map.toml — Authoritative mapping of local Cat 2 fork
# directories to their upstream Redox repositories and the upstream
# release tag each fork is based on. Updated by
# local/scripts/refresh-fork-upstream-map.sh. Consumed by
# local/scripts/verify-fork-versions.sh to enforce the "no fake version
# label" rule (local/AGENTS.md § "No-fake-version-label rule").
#
# Format: one line per fork:
# <fork-name> <upstream-git-url> <upstream-release-tag>
#
# A fork with `<X.Y.Z>-rbN>` in its Cargo.toml MUST have its
# `<X.Y.Z>` part match the upstream tag listed here, and the source
# content MUST be a real rebase onto that upstream tag plus documented
# Red Bear patches (in local/patches/<name>/).
syscall https://gitlab.redox-os.org/redox-os/syscall.git 0.9.0
libredox https://gitlab.redox-os.org/redox-os/libredox.git 0.1.18
redoxfs https://gitlab.redox-os.org/redox-os/redoxfs.git 0.9.0
redox-scheme https://gitlab.redox-os.org/redox-os/redox-scheme.git 0.11.2
relibc https://gitlab.redox-os.org/redox-os/relibc.git 0.2.5
kernel https://gitlab.redox-os.org/redox-os/kernel.git 0.5.12
# bootloader: KNOWN PENDING REBASE.
#
# The local fork claims to be `1.0.0-rb1` (i.e. upstream 1.0.0 + Red
# Bear patches) but the patches in `local/patches/bootloader/` do
# NOT apply cleanly to upstream 1.0.0 (verified by
# verify-fork-versions.sh). The fork was originally a 0.1.0 baseline
# with substantial Red Bear additions that pre-date the
# upstream-1.0.0 refactor (e.g. `src/arch/aarch64.rs` does not
# exist in upstream 1.0.0 — the patches reference files that
# upstream 1.0.0 doesn't have).
#
# TO REBASE:
# 1. Pick a clean upstream tag as the new base (likely the same
# 1.0.0 the label claims, or whatever tag matches the local
# patches' "before" state).
# 2. Reset the fork to that tag: `git reset --hard <tag>`.
# 3. Reapply each patch on top: `git apply local/patches/bootloader/*.patch`.
# Each patch must apply cleanly with `--fuzz=0` (no context drift).
# 4. For each patch that fails to apply, regenerate the patch from
# the CURRENT local state: `git diff <tag>..HEAD -- path/to/file > patch`.
# 5. Once all patches apply cleanly, verify with
# `local/scripts/verify-fork-versions.sh`.
# 6. Commit the rebased state and push the new branch.
#
# Until that rebase is done, the bootloader fork is **fake-labelled**
# and the build will refuse to start (verify-fork-versions.sh
# exits 1). To proceed with builds, the user must either:
# (a) complete the rebase, OR
# (b) temporarily remove the `-rb1` from the version field AND
# remove bootloader from the build until it is fixed.
bootloader https://gitlab.redox-os.org/redox-os/bootloader.git PENDING_REBASE
installer https://gitlab.redox-os.org/redox-os/installer.git 0.2.42
userutils https://gitlab.redox-os.org/redox-os/userutils.git 0.1.0