Initial commit: DarkForge package repository (124 packages)

Package definitions for the complete DarkForge Linux system:
- core/  (67): base system, toolchain, kernel, utilities, dev tools
- extra/ (26): libraries, frameworks, drivers (nvidia-open, pipewire, mesa)
- desktop/ (19): Wayland stack, dwl compositor, terminals, applications
- gaming/ (12): Steam, Wine, Proton, gamemode, mangohud, PrismLauncher

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 11:51:17 +01:00
commit 5668d305dc
125 changed files with 2685 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
# DarkForge Linux — NVIDIA Open Kernel Modules + Userspace
# RTX 5090 (Blackwell, GB202) requires nvidia-open 570.86.16+
# This package builds the open-source kernel modules and installs
# the proprietary userspace libraries (Vulkan ICD, OpenGL, EGL, GBM).
#
# NOTE: This is a complex multi-step package. The kernel modules are
# built against the running kernel headers, and the userspace libraries
# come from a separate download.
[package]
name = "nvidia-open"
version = "570.133.07"
description = "NVIDIA open kernel modules and proprietary userspace (RTX 5090)"
url = "https://github.com/NVIDIA/open-gpu-kernel-modules"
license = "MIT/GPL-2.0"
[source]
url = "https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/${version}.tar.gz"
sha256 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
# Additional source: the userspace driver (proprietary blob)
[[source.patches]]
url = "https://us.download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}.run"
sha256 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
strip = 0
[dependencies]
run = ["glibc", "wayland", "libdrm"]
build = ["gcc", "make", "linux"]
[build]
system = "custom"
# Prepare: extract the .run blob for userspace libraries
prepare = """chmod +x ../NVIDIA-Linux-x86_64-${version}.run && ../NVIDIA-Linux-x86_64-${version}.run --extract-only --target=nvidia-userspace"""
# Build: compile the open kernel modules against current kernel
configure = ""
make = """make -j32 modules \
KERNEL_UNAME=$(uname -r) \
SYSSRC=/usr/src/linux \
SYSOUT=/usr/src/linux"""
# Install: kernel modules + userspace libs
install = """# Install kernel modules
make modules_install DESTDIR=${PKG} KERNEL_UNAME=$(uname -r)
# Install userspace libraries from the extracted blob
cd nvidia-userspace
# GLX / OpenGL
install -Dm755 libGLX_nvidia.so.${version} ${PKG}/usr/lib/libGLX_nvidia.so.${version}
ln -sf libGLX_nvidia.so.${version} ${PKG}/usr/lib/libGLX_nvidia.so.0
# EGL
install -Dm755 libEGL_nvidia.so.${version} ${PKG}/usr/lib/libEGL_nvidia.so.${version}
ln -sf libEGL_nvidia.so.${version} ${PKG}/usr/lib/libEGL_nvidia.so.0
# GBM (for Wayland)
install -Dm755 libnvidia-egl-gbm.so.1.1.2 ${PKG}/usr/lib/libnvidia-egl-gbm.so.1.1.2
ln -sf libnvidia-egl-gbm.so.1.1.2 ${PKG}/usr/lib/libnvidia-egl-gbm.so.1
mkdir -p ${PKG}/usr/share/egl/egl_external_platform.d
install -Dm644 15_nvidia_gbm.json ${PKG}/usr/share/egl/egl_external_platform.d/
# Vulkan ICD
install -Dm755 libGLESv2_nvidia.so.${version} ${PKG}/usr/lib/libGLESv2_nvidia.so.${version}
install -Dm644 nvidia_icd.json ${PKG}/usr/share/vulkan/icd.d/nvidia_icd.json
install -Dm755 libcuda.so.${version} ${PKG}/usr/lib/libcuda.so.${version}
ln -sf libcuda.so.${version} ${PKG}/usr/lib/libcuda.so.1
ln -sf libcuda.so.1 ${PKG}/usr/lib/libcuda.so
# nvidia-drm modeset (KMS)
install -Dm755 libnvidia-drm-outputclass-helper.so.${version} ${PKG}/usr/lib/libnvidia-drm-outputclass-helper.so.${version}
# nvidia-smi and other tools
install -Dm755 nvidia-smi ${PKG}/usr/bin/nvidia-smi
install -Dm755 nvidia-settings ${PKG}/usr/bin/nvidia-settings 2>/dev/null || true
# 32-bit compatibility libraries (for Steam/Wine)
if [ -d 32 ]; then
install -Dm755 32/libGLX_nvidia.so.${version} ${PKG}/usr/lib32/libGLX_nvidia.so.${version}
ln -sf libGLX_nvidia.so.${version} ${PKG}/usr/lib32/libGLX_nvidia.so.0
install -Dm755 32/libcuda.so.${version} ${PKG}/usr/lib32/libcuda.so.${version}
ln -sf libcuda.so.${version} ${PKG}/usr/lib32/libcuda.so.1
fi"""