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>
DarkForge Package Repository
124 package definitions for the complete DarkForge Linux system. Each package is a TOML file describing how to download, build, and install a piece of software.
Repository Layout
repos/
├── core/ 67 packages — base system (toolchain, kernel, utilities, system daemons)
├── extra/ 26 packages — libraries, frameworks, drivers
├── desktop/ 19 packages — Wayland compositor, terminals, applications
└── gaming/ 12 packages — Steam, Wine, Proton, game tools
Package Format
Each package lives in <repo>/<name>/<name>.toml. See the dpack README for the full format specification.
Example (core/zlib/zlib.toml):
[package]
name = "zlib"
version = "1.3.1"
description = "Compression library implementing the deflate algorithm"
url = "https://zlib.net/"
license = "zlib"
[source]
url = "https://zlib.net/zlib-${version}.tar.xz"
sha256 = "38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32"
[dependencies]
run = []
build = ["gcc", "make"]
[build]
configure = "./configure --prefix=/usr"
make = "make"
install = "make DESTDIR=${PKG} install"
core/ — Base System (67 packages)
The complete base system needed to boot to a shell:
Toolchain: gcc, glibc, binutils, gmp, mpfr, mpc, linux (kernel)
Utilities: coreutils, util-linux, bash, sed, grep, gawk, findutils, diffutils, tar, gzip, xz, zstd, bzip2, ncurses, readline, file, less, make, patch, m4
System: eudev, sysvinit, dbus, dhcpcd, shadow, procps-ng, e2fsprogs, kmod, iproute2, kbd, amd-microcode
Dev tools: cmake, meson, ninja, python, perl, autoconf, automake, libtool, bison, flex, gettext, texinfo, pkg-config, gperf
Libraries: openssl, curl, git, zlib, expat, libffi, libxml2, pcre2, glib, libmnl, libpipeline, bc
Docs: groff, man-db, man-pages
extra/ — Libraries and Frameworks (26 packages)
Libraries needed by the desktop and gaming stack:
Audio: pipewire, wireplumber
Graphics: mesa, vulkan-headers, vulkan-loader, vulkan-tools, libdrm, nvidia-open
Fonts: fontconfig, freetype, harfbuzz, libpng
UI: pango, cairo, pixman, qt6-base, lxqt-policykit
Security: polkit, duktape, gnutls, nettle, libtasn1, p11-kit
Other: seatd, lua, rust
desktop/ — Wayland Desktop (19 packages)
The complete desktop environment:
Wayland: wayland, wayland-protocols, wlroots, xwayland
Compositor: dwl (dynamic window manager for Wayland, dwm-like)
Input: libinput, libevdev, mtdev, libxkbcommon, xkeyboard-config
Apps: foot (terminal), fuzzel (launcher), firefox, zsh, wezterm, freecad
Tools: wl-clipboard, grim (screenshots), slurp (region select)
gaming/ — Gaming Stack (12 packages)
Everything needed for gaming on Linux:
Platform: steam, wine, proton-ge, protontricks, winetricks
Translation: dxvk (D3D9/10/11→Vulkan), vkd3d-proton (D3D12→Vulkan)
Tools: gamemode, mangohud, sdl2
Runtime: openjdk (for PrismLauncher/Minecraft), prismlauncher
Adding a New Package
- Create the directory:
mkdir -p <repo>/<name> - Create the definition:
<repo>/<name>/<name>.toml - Fill in all sections:
[package],[source],[dependencies],[build] - Compute the SHA256:
sha256sum <tarball> - Test:
dpack install <name>
Alternatively, convert from CRUX or Gentoo:
dpack convert /path/to/Pkgfile -o repos/core/foo/foo.toml
dpack convert /path/to/foo-1.0.ebuild -o repos/extra/foo/foo.toml
SHA256 Checksums
Most package definitions currently have placeholder checksums (aaa...). These must be populated with real checksums before building. To compute them:
for pkg in core/*/; do
name=$(basename "$pkg")
url=$(grep '^url = ' "$pkg/${name}.toml" | head -1 | sed 's/url = "//;s/"$//' | sed "s/\${version}/$(grep '^version' "$pkg/${name}.toml" | head -1 | sed 's/version = "//;s/"$//')/")
echo "Downloading $name from $url..."
wget -q "$url" -O "/tmp/${name}.tar" && sha256sum "/tmp/${name}.tar"
done
Repository
git@git.dannyhaslund.dk:danny8632/darkforge.git
Package definitions live in src/repos/ in the main DarkForge repo.