#!/bin/bash # ============================================================================ # DarkForge Linux — Phase 3, Chapter 8: sysvinit # ============================================================================ # Purpose: Build sysvinit (init, runlevels, halt, shutdown, etc.). # Core init system for DarkForge (replaces systemd as per spec). # Inputs: /sources/sysvinit-3.14.tar.xz # /sources/sysvinit-3.14-consolidated-1.patch # Outputs: init, shutdown, halt, reboot in /sbin/ # Assumes: Running inside chroot # Ref: LFS 13.0 §8.84 # ============================================================================ set -euo pipefail source /sources/toolchain-scripts/100-chroot-env.sh PACKAGE="sysvinit" VERSION="3.14" echo "=== Building ${PACKAGE}-${VERSION} ===" cd /sources tar -xf "${PACKAGE}-${VERSION}.tar.xz" cd "${PACKAGE}-${VERSION}" # Apply consolidated patch for compatibility fixes patch -Np1 -i ../sysvinit-${VERSION}-consolidated-1.patch # Build without sulogin (password-protected root shell) for simplicity make -C src make -C src install DESTDIR=/ # Create necessary directories for sysvinit mkdir -pv /etc/rc.d/init.d mkdir -pv /etc/rc.d/rc0.d mkdir -pv /etc/rc.d/rc1.d mkdir -pv /etc/rc.d/rc2.d mkdir -pv /etc/rc.d/rc3.d mkdir -pv /etc/rc.d/rc4.d mkdir -pv /etc/rc.d/rc5.d mkdir -pv /etc/rc.d/rc6.d cd /sources rm -rf "${PACKAGE}-${VERSION}" echo "=== ${PACKAGE}-${VERSION} complete ==="