Files
RedBear-OS/recipes/core/base/recipe.toml
T
vasilito 4ee7fdeecb fix: KF6 config, kwin stub, docs, greeter, I2C/GPIO drivers, bootstrap
- KF6 config: enable 31 KF6 frameworks + kdecoration + kglobalacceld
  (was only kwin stub; 22 additional recipes now enabled)
- KWin: honest #TODO naming real blockers (Qt6::Sensors WIP,
  libinput ignored, no canberra); kwin_wayland shim delegates to
  redbear-compositor
- Greeter: enable redbear-greeterd replacing /usr/bin/true stub
- Mini config: suppress curl/git/mc (broken deps, not boot-critical)
- Docs: fix KF6 count (9->31 enabled), kwin status (stub, not real
  build), plasma blocked, config surface accuracy across
  CONSOLE-TO-KDE-DESKTOP-PLAN, DESKTOP-STACK-CURRENT-STATUS,
  local/AGENTS
- P2-i2c-gpio-ucsi-drivers.patch: 10 I2C/GPIO/UCSI daemon sources
  (gpiod, i2cd, dw-acpi-i2cd, intel-lpss-i2cd, i2c-gpio-expanderd,
  intel-gpiod, i2c-hidd, ucsid, i2c-interface, acpi-resource);
  amd-mp2-i2cd + intel-thc-hidd excluded (PCI API changed)
- P0-bootstrap-workspace-fix.patch: empty [workspace] in bootstrap
  Cargo.toml prevents auto-detection of parent workspace (fixes
  base-initfs from-scratch build)
- QEMU boot verified: kernel -> PCI -> NVMe -> ACPI -> display ->
  networking -> services -> RB_SERIAL_PROBE_OK
2026-04-30 00:01:49 +01:00

111 lines
3.3 KiB
TOML

[source]
git = "https://gitlab.redox-os.org/redox-os/base.git"
rev = "463f76b9608a896e6f6c9f63457f57f6409873c7"
patches = [
"P0-daemon-fix-init-notify-unwrap.patch",
"P0-workspace-add-bootstrap.patch",
"P0-bootstrap-workspace-fix.patch",
]
[build]
template = "custom"
script = """
mkdir -pv "${COOKBOOK_STAGE}/usr/bin"
for package in audiod ipcd ptyd dhcpd; do
"${COOKBOOK_CARGO}" build \
--manifest-path "${COOKBOOK_SOURCE}/${package}/Cargo.toml" \
--target "${TARGET}" \
${build_flags}
cp -v \
"target/${TARGET}/${build_type}/${package}" \
"${COOKBOOK_STAGE}/usr/bin/${package}"
done
"${COOKBOOK_CARGO}" build \
--manifest-path "${COOKBOOK_SOURCE}/netstack/Cargo.toml" \
--target "${TARGET}" \
${build_flags}
cp -v \
"target/${TARGET}/${build_type}/netstack" \
"${COOKBOOK_STAGE}/usr/bin/netstack"
cp -v \
"target/${TARGET}/${build_type}/netstack" \
"${COOKBOOK_STAGE}/usr/bin/smolnetd"
# Drivers that are built on all architectures, and NOT in drivers-initfs
BINS=(
gpiod
i2c-gpio-expanderd
intel-gpiod
# amd-mp2-i2cd # TODO: PCI API changed - try_mem removed; exclude until API updated
dw-acpi-i2cd
e1000d
ihdad
ihdgd
i2c-hidd
# intel-thc-hidd # TODO: PCI API changed - try_map_bar removed; exclude until API updated
intel-lpss-i2cd
ixgbed
pcid
pcid-spawner
rtl8139d
rtl8168d
usbctl
usbhidd
usbhubd
ucsid
usbscsid
virtio-gpud
virtio-netd
xhcid
i2cd
inputd
redoxerd
)
# Add additional drivers to the list to build, that are not in drivers-initfs
# depending on the target architecture
case "${TARGET}" in
i586-unknown-redox | i686-unknown-redox | x86_64-unknown-redox)
BINS+=(ac97d sb16d vboxd)
;;
*)
;;
esac
#Build each driver in the list
mkdir -pv "${COOKBOOK_STAGE}/usr/bin" "${COOKBOOK_STAGE}/usr/lib/drivers"
export CARGO_PROFILE_RELEASE_OPT_LEVEL=s
export CARGO_PROFILE_RELEASE_PANIC=abort
# Only build drivers that actually have source Cargo.toml entries
EXISTING_BINS=()
for bin in "${BINS[@]}"
do
if grep -Rqs "^name = \\\"${bin}\\\"$" "${COOKBOOK_SOURCE}"; then
EXISTING_BINS+=("${bin}")
fi
done
"${COOKBOOK_CARGO}" build ${build_flags} \
--manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \
--target "${TARGET}" \
$(for bin in "${EXISTING_BINS[@]}"; do echo "-p" "${bin}"; done)
for bin in "${EXISTING_BINS[@]}"
do
if [[ "${bin}" == "gpiod" || "${bin}" == "i2c-gpio-expanderd" || "${bin}" == "intel-gpiod" || "${bin}" == "i2cd" || "${bin}" == "dw-acpi-i2cd" || "${bin}" == "i2c-hidd" || "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" || "${bin}" == "redoxerd" || "${bin}" == "ucsid" ]]; then
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/bin"
else
cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/lib/drivers"
fi
done
mkdir -pv "${COOKBOOK_STAGE}/lib/pcid.d"
find "${COOKBOOK_SOURCE}/drivers" -maxdepth 3 -type f -name 'config.toml' | while read conf
do
driver="$(basename "$(dirname "$conf")")"
cp -v "$conf" "${COOKBOOK_STAGE}/lib/pcid.d/$driver.toml"
done
mkdir -pv "${COOKBOOK_STAGE}/usr/lib/init.d"
cp -v "${COOKBOOK_SOURCE}/init.d"/* "${COOKBOOK_STAGE}/usr/lib/init.d/"
"""