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

53 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# ============================================================================
# DarkForge Linux — Phase 3, Chapter 8: eudev
# ============================================================================
# Purpose: Build eudev (udev without systemd dependencies).
# Device manager for /dev and /sys — required for kernel device support.
# This replaces LFS §8.78 (systemd-udev) as per DarkForge spec.
# Inputs: /sources/eudev-3.2.14.tar.gz
# Outputs: eudev daemon, rules, and libraries in /usr/, /etc/udev/
# Assumes: Running inside chroot
# Ref: LFS 13.0 §8.78 (adapted for eudev instead of systemd-udev)
# https://github.com/eudev-project/eudev
# ============================================================================
set -euo pipefail
source /sources/toolchain-scripts/100-chroot-env.sh
PACKAGE="eudev"
VERSION="3.2.14"
echo "=== Building ${PACKAGE}-${VERSION} ==="
cd /sources
tar -xf "${PACKAGE}-${VERSION}.tar.gz"
cd "${PACKAGE}-${VERSION}"
# eudev can be built standalone without systemd
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--with-rootprefix=/ \
--enable-manpages \
--disable-static
make
# Optional: run tests
# make check || true
make install
# Create the udev rules directory (may not be created by default)
mkdir -pv /etc/udev/rules.d
# Create udev control socket directory
mkdir -pv /run/udev
# Set permissions on the udev socket
chmod -v 755 /run/udev
cd /sources
rm -rf "${PACKAGE}-${VERSION}"
echo "=== ${PACKAGE}-${VERSION} complete ==="