Files
RedBear-OS/recipes/wip/dev/lang/perl5/recipe.toml
T
vasilito 50b731f1b7 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
2026-04-12 19:05:00 +01:00

42 lines
1.7 KiB
TOML

#TODO compiles, works in a basic way but needs figuring out why -ldl is ignored
#TODO also until new signal implementation gets to be the default, remove siginfo struct from relibc's include/bits/signal.h
# and modify relibc/src/header/signal/mod.rs sigtimedwait second parameter's type from siginfo_t to siginfo (cbindgen needs a reference)
#TODO needs further testing
[source]
tar = "https://www.cpan.org/src/5.0/perl-5.40.0.tar.gz"
blake3 = "8bfcbb999e0795a64ca90e1ba7308f49c30ab2619ffa25fa425527c4bfca5e0f"
script = """
curl -L -O --time-cond perl-cross-1.6.tar.gz https://github.com/arsv/perl-cross/releases/download/1.6/perl-cross-1.6.tar.gz
tar --strip-components=1 -xvf perl-cross-1.6.tar.gz
GNU_CONFIG_GET ./cnf/config.sub
"""
[build]
template = "custom"
dev-dependencies = ["relibc"]
script = """
DYNAMIC_INIT
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
#Note: since perl-cross can run only inside the source-tree (out-of-tree is bugged) it's easier to do everything in the build directory
cp ${COOKBOOK_RECIPE}/configure_tool.sh ${COOKBOOK_BUILD}/cnf/configure_tool.sh
cp ${COOKBOOK_RECIPE}/redox ${COOKBOOK_BUILD}/cnf/hints/redox
#Note: non-standard configure, familiar flags can have different meaning!
./configure --host-cc="gcc" --host-cpp="g++" --target=${TARGET} --sysroot=${COOKBOOK_SYSROOT}
sed -i "s/^#define Netdb_name_t.*/#define Netdb_name_t const char*/" config.h
sed -i "s/^# HAS_NANOSLEEP.*/#define HAS_NANOSLEEP/" config.h
sed -i "s|^/.#define I_GRP.*|#define I_GRP|" config.h
echo "#define HAS_GROUP" >> config.h
make -j4
make install DESTDIR="${COOKBOOK_STAGE}"
pushd .
cd "${COOKBOOK_STAGE}/usr/share/man/man3"
for f in *; do
case "$f" in
*::*)
mv "$f" "${f//::/__}";
;;
esac
done
popd
"""