ecc120b013
Kernel source (ephemeral — changes durable in local/patches/kernel/): - P20 x2apic ICR mode fix, P21 x2apic SMP fix applied - ACPI MADT, RSDP, SDT improvements - Context switch, percpu, event, IRQ scheme updates - MSI/vector allocation, NUMA/SLIT/SRAT support Local recipe source updates: - redox-driver-acpi: bus/prt hardening - redox-drm: Intel display, KMS connector improvements - driver-manager: config/scheme hardening - thermald: main.rs fix - uutils-tar, ninja-build: source updates Other: - bootloader, installer, redoxfs, relibc, userutils source updates - recipe.toml.backup, libxcvt source directory
261 lines
9.2 KiB
Plaintext
261 lines
9.2 KiB
Plaintext
[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-init-continuous-scheduling.patch",
|
|
"P0-dhcpd-auto-iface.patch",
|
|
"P0-procmgr-sigchld-debug.patch",
|
|
"P0-pcid-mcfg-diagnostics.patch",
|
|
"P0-ihdgd-intel-gpu-ids.patch",
|
|
"P0-acpid-dmar-fix.patch",
|
|
# P1: acpid EC runtime and AML physmem hardening (narrow ACPI runtime patches)
|
|
"P1-acpid-ec-runtime.patch",
|
|
"P1-acpid-runtime-hardening.patch",
|
|
# Stale patches needing recreation: P1-pcid-uevent-surface, P2-boot-runtime-fixes,
|
|
# P2-hwd-misc, P2-pcid-cfg-access, P3-xhci-device-hardening, P6-cpufreqd-real-impl
|
|
"P2-i2c-gpio-ucsi-drivers.patch",
|
|
"P0-i2c-control-response-empty.patch",
|
|
"P2-ihdad-graceful-init.patch",
|
|
"P2-boot-logging.patch",
|
|
"P2-init-acpid-wiring.patch",
|
|
"P2-hwd-remove-acpid-spawn.patch",
|
|
"P2-initfs-pcid-service.patch",
|
|
"P2-misc-daemon-fixes.patch",
|
|
"P9-fix-so-pecred.patch",
|
|
"P3-inputd-keymap-bridge.patch",
|
|
# P3: ps2d consolidated — LED feedback, mouse resend, fastfail, Intellimouse2, controller init robustness, non-x86 fallback
|
|
"P7-ps2d-intellimouse2-leds-controller-init.patch",
|
|
"P3-usbhidd-hardening.patch",
|
|
"P3-init-colored-output.patch",
|
|
"P4-logd-persistent-logging.patch",
|
|
"P4-acpi-shutdown-hardening.patch",
|
|
"P4-acpi-s3-sleep.patch",
|
|
"P4-pcid-public-client-channel.patch",
|
|
"P4-pcid-config-scheme.patch",
|
|
"P4-pcid-spawner-pci-coordinate-env.patch",
|
|
"P4-initfs-usb-drm-services.patch",
|
|
"P4-initfs-release-virtio-gpu.patch",
|
|
"P4-initfs-network-services.patch",
|
|
"P4-initfs-getty-services.patch",
|
|
"P4-initfs-dbus-services.patch",
|
|
"P4-fbcond-scrollback.patch",
|
|
# P4: ucsid graceful ESTALE/ENOENT handling — don't crash when /scheme/acpi/symbols unavailable
|
|
"P4-ucsid-estale-graceful.patch",
|
|
# P4: Extend ESTALE/ENOENT graceful handling to all ACPI-reading daemons
|
|
"P4-acpi-estale-graceful.patch",
|
|
# P4: hwd graceful ESTALE/ENOENT handling in probe()
|
|
"P4-hwd-estale-graceful.patch",
|
|
# P5: i2c-hidd + intel-thc-hidd: boot-time ESTALE/ENOENT retry with exponential backoff
|
|
"P5-i2c-hidd-estale-retry.patch",
|
|
# P5: acpid /scheme/acpi/dmi SMBIOS endpoint for quirk matching
|
|
"P5-acpid-dmi-endpoint.patch",
|
|
"P4-thermal-daemon.patch",
|
|
"P4-thermald-workspace.patch",
|
|
"P6-driver-main-fixes.patch",
|
|
"P6-driver-new-modules.patch",
|
|
"P9-init-scheduler-completed.patch",
|
|
"P2-pcid-acpid-graceful-fd.patch",
|
|
# P5: Graceful DRM ioctl error handling in fbbootlogd/fbcond (avoid ENOTTY crash)
|
|
"P5-fbbootlogd-fbcond-graceful-drm.patch",
|
|
# P6: Fix rtcd EEXIST by avoiding O_CREAT on kernel scheme resource
|
|
"P6-rtcd-no-ocreat.patch",
|
|
# P6: Init hard requires dependency — blocks startup if dependency missing
|
|
"P6-init-requires-hard-dep.patch",
|
|
# P6: Fix pcid→acpid FD transfer — pass FD in metadata array, not payload
|
|
"P6-pcid-acpid-fd-transfer.patch",
|
|
# P7: Fix acpid pci_fd startup race — shared RwLock between scheme and AML handler
|
|
"P7-acpid-shared-pcifd.patch",
|
|
# P15: Init service timeout — prevent boot hanging on unresponsive daemons (30s default)
|
|
"P15-7-init-service-timeout.patch",
|
|
# P15: Dependency cycle detection in unit loader — log and skip circular requires_weak
|
|
"P15-8-init-cycle-detection.patch",
|
|
# P18: Init daemon restart policy — supervise Notify/Scheme services with exponential backoff
|
|
"P18-1-daemon-restart.patch",
|
|
# P18: ACPID robustness — RSDP BIOS-area fallback, graceful physmem error handling
|
|
"P18-5-acpid-robustness.patch",
|
|
# P18: MSI/MSI-X enablement — skip legacy IRQ for MSI-capable devices
|
|
"P18-3-msi-msix-enablement.patch",
|
|
# P18: Bounded IPC queues — backlog limits for chan, UDS stream, UDS dgram
|
|
"P18-8-bounded-ipcd-queues.patch",
|
|
# P18: MSI/MSI-X allocation resilience — handle EEXIST, fallback chain MSI-X→MSI→legacy
|
|
"P18-9-msi-allocation-resilience.patch",
|
|
]
|
|
|
|
[package]
|
|
installs = [
|
|
"/lib/pcid.d/ac97d.toml",
|
|
"/lib/pcid.d/e1000d.toml",
|
|
"/lib/pcid.d/ihdad.toml",
|
|
"/lib/pcid.d/ihdgd.toml",
|
|
"/lib/pcid.d/ixgbed.toml",
|
|
"/lib/pcid.d/rtl8139d.toml",
|
|
"/lib/pcid.d/rtl8168d.toml",
|
|
"/lib/pcid.d/vboxd.toml",
|
|
"/lib/pcid.d/virtio-netd.toml",
|
|
"/lib/pcid.d/xhcid.toml",
|
|
"/usr/bin/audiod",
|
|
"/usr/bin/dhcpd",
|
|
"/usr/bin/dw-acpi-i2cd",
|
|
"/usr/bin/gpiod",
|
|
"/usr/bin/i2cd",
|
|
"/usr/bin/i2c-gpio-expanderd",
|
|
"/usr/bin/i2c-hidd",
|
|
"/usr/bin/inputd",
|
|
"/usr/bin/intel-gpiod",
|
|
"/usr/bin/ipcd",
|
|
"/usr/bin/netstack",
|
|
"/usr/bin/pcid",
|
|
"/usr/bin/pcid-spawner",
|
|
"/usr/bin/ptyd",
|
|
"/usr/bin/redoxerd",
|
|
"/usr/bin/smolnetd",
|
|
"/usr/bin/ucsid",
|
|
"/usr/lib/drivers/ac97d",
|
|
"/usr/lib/drivers/ahcid",
|
|
"/usr/lib/drivers/amd-mp2-i2cd",
|
|
"/usr/lib/drivers/e1000d",
|
|
"/usr/lib/drivers/ihdad",
|
|
"/usr/lib/drivers/ihdgd",
|
|
"/usr/lib/drivers/ided",
|
|
"/usr/lib/drivers/intel-lpss-i2cd",
|
|
"/usr/lib/drivers/intel-thc-hidd",
|
|
"/usr/lib/drivers/ixgbed",
|
|
"/usr/lib/drivers/ps2d",
|
|
"/usr/lib/drivers/rtl8139d",
|
|
"/usr/lib/drivers/rtl8168d",
|
|
"/usr/lib/drivers/sb16d",
|
|
"/usr/lib/drivers/thermald",
|
|
"/usr/lib/drivers/usbctl",
|
|
"/usr/lib/drivers/usbhidd",
|
|
"/usr/lib/drivers/usbhubd",
|
|
"/usr/lib/drivers/usbscsid",
|
|
"/usr/lib/drivers/vboxd",
|
|
"/usr/lib/drivers/virtio-gpud",
|
|
"/usr/lib/drivers/virtio-netd",
|
|
"/usr/lib/drivers/xhcid",
|
|
"/usr/lib/init.d/00_base.target",
|
|
"/usr/lib/init.d/00_ipcd.service",
|
|
"/usr/lib/init.d/00_pcid-spawner.service",
|
|
"/usr/lib/init.d/00_ptyd.service",
|
|
"/usr/lib/init.d/00_sudo.service",
|
|
"/usr/lib/init.d/00_tmp",
|
|
"/usr/lib/init.d/05_boot_essential.target",
|
|
"/usr/lib/init.d/10_dhcpd.service",
|
|
"/usr/lib/init.d/10_net.target",
|
|
"/usr/lib/init.d/10_smolnetd.service",
|
|
"/usr/lib/init.d/12_boot_late.target",
|
|
"/usr/lib/init.d/12_dbus.service",
|
|
"/usr/lib/init.d/13_seatd.service",
|
|
"/usr/lib/init.d/13_sessiond.service",
|
|
"/usr/lib/init.d/20_audiod.service",
|
|
"/usr/lib/init.d/29_activate_console.service",
|
|
"/usr/lib/init.d/30_console.service",
|
|
"/usr/lib/init.d/30_thermald.service",
|
|
"/usr/lib/init.d/31_debug_console.service",
|
|
]
|
|
|
|
[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
|
|
dw-acpi-i2cd
|
|
e1000d
|
|
ihdad
|
|
ihdgd
|
|
i2c-hidd
|
|
intel-thc-hidd
|
|
intel-lpss-i2cd
|
|
ixgbed
|
|
pcid
|
|
pcid-spawner
|
|
rtl8139d
|
|
rtl8168d
|
|
usbctl
|
|
usbhidd
|
|
thermald
|
|
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 ahcid ided nvmed ps2d 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/"
|
|
"""
|