Files
RedBear-OS/build.sh
T
vasilito d6a8159840 docs+scripts: fix stale redbear-minimal references; xwayland patch cleanup; Mesa surface.h stale comments
Round 10 audit cleanup. Six fixes across nine files:

1. config/redbear-netctl.toml: stale comment referenced three
   non-existent configs (redbear-minimal, redbear-desktop,
   redbear-kde). Replaced with accurate include-chain note.

2. scripts/run.sh, build.sh, scripts/fetch-all-sources.sh:
   replaced all 'redbear-minimal' references with the actual
   canonical config names (redbear-mini, redbear-grub,
   redbear-wifi-experimental, redbear-bluetooth-experimental).
   Three previously listed configs (redbear-kde, redbear-live,
   redbear-wayland) never existed; removed them from the loop
   that preflights/scans/fetches 'ALL_CONFIGS' so those broken
   references no longer abort the script.

3. local/recipes/wayland/xwayland/recipe.toml:
   - removed stale '#TODO wayland-client, fix linux/input,
     wayland-scanner shim' (the workarounds are now real fixes).
   - added redbear-input-headers to dependencies so the
     uncommented <linux/input.h> include in xwayland-input.c
     resolves via Red Bear's in-tree input-headers recipe
     (per local/AGENTS.md LINUX KERNEL SOURCE POLICY).

4. local/recipes/wayland/xwayland/redox.patch:
   - stripped diff -ruwN timestamps from all ---/+++ headers
     (AGENTS.md patch format policy).
   - dropped the three xwayland-glamor.h / xwayland-window.h/c
     DRM-only hunks: they commented out xf86drm.h + drmDevice
     fields, but the recipe's mesonflags already sets
     '-Ddrm=false -Dglamor=false' so those code paths never
     compile. Removing them eliminates dead commented-out code
     that future maintainers would misread as 'in-progress'.
   - replaced hardcoded 0x110/0x112/0x111 button constants
     with the symbolic BTN_LEFT/BTN_MIDDLE/BTN_RIGHT names
     (the include is now real), matching upstream style and
     making the intent self-documenting.

5. local/recipes/libs/mesa/source/src/gallium/winsys/redox/drm/
   redox_drm_surface.h: rewrote the stale header comment that
   still claimed 'the actual present path is a no-op until
   kernel-side scanout ioctls are added' — REDOX_SCANOUT_FLIP
   is wired and working; the comment now describes the real
   implementation.

6. local/docs/3D-DESKTOP-COMPREHENSIVE-PLAN.md: marked
   redbear-wifi-experimental.toml and redbear-bluetooth-
   experimental.toml as FIXED 2026-07-27 in the config
   status table (the redbear-minimal → redbear-mini typo
   was corrected earlier).

7. local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md:
   struck through Findings 14, 18, 18b, C-21, C-22 and the
   corresponding 'Config cleanup' todo — all resolved by
   the rename to redbear-mini.toml.

9 files changed, +45/-115.
2026-07-27 19:49:47 +09:00

106 lines
4.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Alternative script for the build system Makefiles
###########################################################################
# #
# Build the system, with a specified processor type and filesystem config #
# #
###########################################################################
usage()
{
echo "build.sh: Invoke make for a particular architecture and configuration."
echo "Usage:"
echo "./build.sh [-X | -A | -5 | -R | -a ARCH] [-c CONFIG] [-f FILESYSTEM_CONFIG] TARGET..."
echo " -X Equivalent to -a x86_64."
echo " -A Equivalent to -a aarch64."
echo " -5 Equivalent to -a i586."
echo " -6 Equivalent to -a i586 (deprecated, use -5 instead)."
echo " -R Equivalent to -a riscv64gc."
echo " -a ARCH: Processor Architecture. Normally one of x86_64, aarch64 or"
echo " i686. ARCH is not checked, so you can add a new architecture."
echo " Defaults to the directory containing the FILESYSTEM_CONFIG file,"
echo " or x86_64 if no FILESYSTEM_CONFIG is specified."
echo " -c CONFIG: The name of the config, e.g. redbear-full or redbear-mini."
echo " Determines the name of the image, build/ARCH/CONFIG/harddrive.img"
echo " e.g. build/x86_64/redbear-full/harddrive.img"
echo " Determines the name of FILESYSTEM_CONFIG if none is specified."
echo " Defaults to the basename of FILESYSTEM_CONFIG, or 'redbear-full'"
echo " if FILESYSTEM_CONFIG is not specified."
echo " -f FILESYSTEM_CONFIG:"
echo " The config file to use. It can be in any location."
echo " However, if the file is not in a directory named x86_64, aarch64"
echo " or i686, you must specify the architecture."
echo " If -f is not specified, FILESYSTEM_CONFIG is set to"
echo " config/ARCH/CONFIG.toml"
echo " If you specify both CONFIG and FILESYSTEM_CONFIG, it is not"
echo " necessary that they match, but it is recommended."
echo " Examples: ./build.sh -c demo live - make build/x86_64/demo.iso"
echo " ./build.sh -6 qemu - make build/i686/redbear-kde/harddrive.img and"
echo " and run it in qemu"
echo " NOTE: If you do not change ARCH or CONFIG very often, edit mk/config.mk"
echo " and set ARCH and FILESYSTEM_CONFIG. You only need to use this"
echo " script when you want to override them."
}
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
usage
exit
fi
defaultarch="x86_64"
defaultname="redbear-full"
ARCH=""
CONFIG_NAME=""
FILESYSTEM_CONFIG=""
while getopts ":c:f:a:dhXA6" opt
do
case "$opt" in
a) ARCH="$OPTARG";;
c) CONFIG_NAME="$OPTARG";;
f) FILESYSTEM_CONFIG="$OPTARG";;
X) ARCH="x86_64";;
A) ARCH="aarch64";;
R) ARCH="riscv64gc";;
5) ARCH="i586";;
6) ARCH="i586";;
h) usage;;
\?) echo "Unknown option -$OPTARG, try -h for help"; exit;;
:) echo "-$OPTARG requires a value"; exit;;
esac
done
shift $((OPTIND -1))
if [ -z "$ARCH" ] && [ -n "$FILESYSTEM_CONFIG" ]; then
dirname=`dirname "$FILESYSTEM_CONFIG"`
ARCH=`basename $dirname`
case "$ARCH" in
x86_64) : ;;
aarch64) : ;;
riscv64gc) : ;;
i586) : ;;
\?) ARCH=""; echo "Unknown Architecture, please specify x86_64, aarch64, riscv64gc or i586";;
esac
fi
if [ -z "$config_name" ] && [ -n "$FILESYSTEM_CONFIG" ]; then
CONFIG_NAME=`basename "$FILESYSTEM_CONFIG" .toml`
fi
if [ -z "$ARCH" ]; then
ARCH="$defaultarch"
fi
if [ -z "$CONFIG_NAME" ]; then
CONFIG_NAME="$defaultname"
fi
if [ -z "$FILESYSTEM_CONFIG" ]; then
FILESYSTEM_CONFIG="config/$ARCH/$CONFIG_NAME.toml"
fi
export ARCH CONFIG_NAME FILESYSTEM_CONFIG
make $@