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
+79
View File
@@ -0,0 +1,79 @@
#TODO promote
[source]
tar = "https://www.php.net/distributions/php-8.0.30.tar.xz"
patches = [
"redox.patch"
]
[build]
template = "custom"
dependencies = [
"bzip2",
"curl",
"gettext",
"libffi",
"libgmp",
"libavif",
"libicu",
"libjpeg",
"libedit",
"libonig",
"libpng",
"libsodium",
"libwebp",
"libxml2",
"libiconv",
"libzip",
"ncurses",
"nghttp2",
"openssl1",
"pcre",
"sqlite3",
"xz",
"zlib",
]
script = """
DYNAMIC_INIT
export SUFFIX="80"
# extension stuff
export CURL_LIBS="-lcurl -lnghttp2 -lssl -lcrypto"
export CXXFLAGS="-std=c++17"
COOKBOOK_CONFIGURE_FLAGS+=(
--program-suffix=${SUFFIX}
--sysconfdir=/etc
--with-config-file-path=/etc/php/$SUFFIX
--with-config-file-scan-dir=/etc/php/$SUFFIX/conf.d
--with-iconv="${COOKBOOK_SYSROOT}/usr"
--disable-opcache
--enable-bcmath
--enable-calendar
# --enable-fpm # need times function
--enable-gd
--enable-intl
--enable-mbstring
--with-curl
--with-gettext
--with-gmp
--with-jpeg
--with-webp
--with-avif
--with-ffi
--with-libedit
--with-openssl
--with-sodium
--with-zip
)
"${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" "$@"
"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}"
"${COOKBOOK_MAKE}" install \
INSTALL_ROOT="${COOKBOOK_STAGE}" \
datarootdir=/usr/share localstatedir=/var
for bin in "php-cgi" "php-config" "php" "phpdbg" "phpize"; do
ln -s "$bin$SUFFIX" ${COOKBOOK_STAGE}/usr/bin/$bin
done
mkdir -p ${COOKBOOK_STAGE}/etc/php/$SUFFIX/conf.d
cp ${COOKBOOK_SOURCE}/php.ini* ${COOKBOOK_STAGE}/etc/php/$SUFFIX/
"""
+92
View File
@@ -0,0 +1,92 @@
diff -ruwN source/configure source-new/configure
--- source/configure 2023-08-04 00:13:08.000000000 +0700
+++ source-new/configure 2025-09-20 05:04:59.993364619 +0700
@@ -46043,7 +46043,7 @@
fi
- ax_cxx_compile_alternatives="11 0x" ax_cxx_compile_cxx11_required=truednl
+ ax_cxx_compile_alternatives="17 0x" ax_cxx_compile_cxx11_required=truednl
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -72692,7 +72692,7 @@
printf %s "(cached) " >&6
else $as_nop
- php_cv_crypt_r_style=none
+ php_cv_crypt_r_style=struct_crypt_data_gnu_source
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
diff -ruwN source/ext/intl/config.m4 source-new/ext/intl/config.m4
--- source/ext/intl/config.m4 2023-08-04 00:13:08.000000000 +0700
+++ source-new/ext/intl/config.m4 2025-09-20 05:05:18.892414632 +0700
@@ -83,7 +83,7 @@
breakiterator/codepointiterator_methods.cpp"
PHP_REQUIRE_CXX()
- PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX)
+ PHP_CXX_COMPILE_STDCXX(17, mandatory, PHP_INTL_STDCXX)
PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $PHP_INTL_STDCXX $ICU_CXXFLAGS"
case $host_alias in
*cygwin*) PHP_INTL_CXX_FLAGS="$PHP_INTL_CXX_FLAGS -D_POSIX_C_SOURCE=200809L"
diff -ruwN source/ext/phar/Makefile.frag source-new/ext/phar/Makefile.frag
--- source/ext/phar/Makefile.frag 2023-08-04 00:13:08.000000000 +0700
+++ source-new/ext/phar/Makefile.frag 2025-09-19 23:19:19.020178026 +0700
@@ -9,20 +9,7 @@
pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
-PHP_PHARCMD_EXECUTABLE = ` \
- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
- if test "x$(PHP_MODULES)" != "x"; then \
- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
- for i in bz2 zlib phar; do \
- if test -f "$(top_builddir)/modules/$$i.la"; then \
- . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
- fi; \
- done; \
- fi; \
- else \
- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
- fi;`
+PHP_PHARCMD_EXECUTABLE = "true"
PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
$(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
@@ -42,9 +29,3 @@
install-pharcmd: pharcmd
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
- $(INSTALL) $(builddir)/phar.phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix).phar
- -@rm -f $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix)
- $(LN_S) -f $(program_prefix)phar$(program_suffix).phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix)
- @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
- @$(INSTALL_DATA) $(builddir)/phar.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phar$(program_suffix).1
- @$(INSTALL_DATA) $(builddir)/phar.phar.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phar$(program_suffix).phar.1
diff -ruwN source/ext/posix/posix.c source-new/ext/posix/posix.c
--- source/ext/posix/posix.c 2023-08-04 00:13:08.000000000 +0700
+++ source-new/ext/posix/posix.c 2025-09-19 22:21:28.998031846 +0700
@@ -443,7 +443,7 @@
ZEND_PARSE_PARAMETERS_NONE();
- if ((ticks = times(&t)) == -1) {
+ {
POSIX_G(last_error) = errno;
RETURN_FALSE;
}
diff -ruwN source/ext/standard/hrtime.c source-new/ext/standard/hrtime.c
--- source/ext/standard/hrtime.c 2023-08-04 00:13:08.000000000 +0700
+++ source-new/ext/standard/hrtime.c 2025-09-19 23:34:34.839471333 +0700
@@ -70,6 +70,8 @@
return -1;
}
+#elif defined(__redox__)
+ /* pass */
#elif PHP_HRTIME_PLATFORM_POSIX
#if !_POSIX_MONOTONIC_CLOCK