Files
darkforge/toolchain/scripts/178-sysvinit.sh
2026-03-20 15:09:30 +01:00

47 lines
1.4 KiB
Bash
Executable File

#!/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 ==="