Red Bear OS — microkernel OS in Rust, based on Redox

Derivative of Redox OS (https://www.redox-os.org) adding:
- AMD GPU driver (amdgpu) via LinuxKPI compat layer
- ext4 filesystem support (ext4d scheme daemon)
- ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG)
- Custom branding (hostname, os-release, boot identity)

Build system is full upstream Redox with RBOS overlay in local/.
Patches for kernel, base, and relibc are symlinked from local/patches/
and protected from make clean/distclean. Custom recipes live in
local/recipes/ with symlinks into the recipes/ search path.

Build:  make all CONFIG_NAME=redbear-full
Sync:   ./local/scripts/sync-upstream.sh
This commit is contained in:
2026-04-12 19:05:00 +01:00
commit 50b731f1b7
3392 changed files with 98327 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
[source]
tar = "https://tar.goaccess.io/goaccess-1.9.4.tar.gz"
blake3 = "a7a7641c98956e8941191956129141e071321851d004269c7d21bce536d9224a"
#git = "https://github.com/allinurl/goaccess.git"
#branch = "master"
patches = [
"redox1.patch",
"redox2.patch",
]
# This is only needed when compiling from git. The tar.gz already has the make files.
script = """
autoreconf -fiv
automake --add-missing --copy --force-missing
"""
[build]
dependencies = ["ncursesw"]
template = "custom"
script = """
# Compile bin2c to be executed on the host
gcc -O2 -o "$COOKBOOK_BUILD/bin2c" "$COOKBOOK_SOURCE/src/bin2c.c"
chmod +x "$COOKBOOK_BUILD/bin2c"
# Compile goaccess
export COOKBOOK_NOSTRIP=1
DYNAMIC_INIT
COOKBOOK_CONFIGURE_FLAGS+=(
--host=$ARCH-unknown-redox
--enable-utf8
--disable-geoip
--prefix=/usr
--disable-dependency-tracking
--with-bin2c-path="$COOKBOOK_BUILD/src/bin2c"
)
cookbook_configure
"""
+34
View File
@@ -0,0 +1,34 @@
From 2444d71e7815c8b7f3bd4462b8418d9c7e8c5667 Mon Sep 17 00:00:00 2001
From: Rafael Senties Martinelli <rafael@rsm92.fr>
Date: Sun, 19 Oct 2025 19:42:46 +0200
Subject: [PATCH 1/2] Ensure fixed-width integers and PIPE_BUF are defined for
Redox or minimal libc
---
src/websocket.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/websocket.h b/src/websocket.h
index 79d03dff..31847b10 100644
--- a/src/websocket.h
+++ b/src/websocket.h
@@ -45,8 +45,15 @@
#include <openssl/ssl.h>
#endif
-#if defined(__linux__) || defined(__CYGWIN__)
+#if defined(__linux__) || defined(__CYGWIN__) || defined(__redox__)
# include <endian.h>
+#if defined(__redox__)
+# include <stdint.h> /* for uint*_t types */
+# include <limits.h> /* for PIPE_BUF */
+# ifndef PIPE_BUF
+# define PIPE_BUF 4096
+# endif
+#endif
#if ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 9))
#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN)
# include <arpa/inet.h>
--
2.51.1.dirty
+60
View File
@@ -0,0 +1,60 @@
From 4a564a6b0f9d4ee7a804b9dbb391e7421187014b Mon Sep 17 00:00:00 2001
From: Rafael Senties Martinelli <rafael@rsm92.fr>
Date: Sun, 19 Oct 2025 20:08:10 +0200
Subject: [PATCH 2/2] Add option to ignore building bin2c
---
Makefile.am | 9 +++++++++
configure.ac | 16 ++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/Makefile.am b/Makefile.am
index 7696c8f5..8d0fcdcd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -51,6 +51,15 @@ CLEANFILES = \
resources/js/charts.js.tmp \
resources/js/app.js.tmp
+# Prevent rebuilding bin2c if binary already exists
+bin2c$(EXEEXT):
+if USE_PREBUILT_BIN2C
+ @echo "Using prebuilt bin2c from $(BIN2C_PATH)"
+ cp $(BIN2C_PATH) bin2c$(EXEEXT)
+else
+ $(AM_V_CCLD)$(LINK) $(bin2c_OBJECTS) $(bin2c_LDADD) $(LIBS)
+endif
+
# Tpls
src/tpls.h: bin2c$(EXEEXT) $(srcdir)/resources/tpls.html
if HAS_SEDTR
diff --git a/configure.ac b/configure.ac
index 790499ce..feaf72d2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -105,6 +105,22 @@ if test "$with_getline" = "yes"; then
AC_DEFINE([WITH_GETLINE], 1, [Build using GNU getline.])
fi
+# bin2c
+AC_ARG_WITH([bin2c-path],
+ [AS_HELP_STRING([--with-bin2c-path=PATH], [Use prebuilt bin2c binary at PATH])],
+ [BIN2C_PATH="$withval"],
+ [BIN2C_PATH=""])
+
+if test -n "$BIN2C_PATH"; then
+ USE_PREBUILT_BIN2C=true
+else
+ USE_PREBUILT_BIN2C=false
+fi
+
+AM_CONDITIONAL([USE_PREBUILT_BIN2C], [test "$USE_PREBUILT_BIN2C" = true])
+AC_SUBST([BIN2C_PATH])
+
+
# UTF8
AC_ARG_ENABLE([utf8],[AS_HELP_STRING([--enable-utf8],[Enable ncurses library that handles wide characters. Default is disabled])],[utf8="$enableval"],[utf8=no])
--
2.51.1.dirty
+19
View File
@@ -0,0 +1,19 @@
[source]
git = "https://github.com/visit1985/mdp.git"
[build]
template = "custom"
dependencies = [
"ncursesw",
"terminfo"
]
script = """
rsync -av --delete --exclude='.git' "${COOKBOOK_SOURCE}/" ./
export CFLAGS="${CFLAGS} -I${COOKBOOK_SYSROOT}/include/ncursesw"
"${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}"
# Install
"${COOKBOOK_MAKE}" DESTDIR="${COOKBOOK_STAGE}" PREFIX="" install
"""
+14
View File
@@ -0,0 +1,14 @@
[source]
tar = "https://dev.yorhel.nl/download/ncdu-1.22.tar.gz"
blake3 = "b7838c03ded7207a328a26c840ec3d62d3be6bbf7269a70ea3430c6cbf065960"
[package]
dependencies = ["terminfo"]
[build]
template = "custom"
dependencies = ["ncursesw"]
script = """
DYNAMIC_INIT
cookbook_configure
"""