sps-extra · log · files · refs · tags · releases · people · languages · GitHub · commit
b2cec67
extra: add systemd, OpenRC, nouveau, and CPU microcode
Parents
Stat
README.md | 22 +++++++++++++++------- desktop/plasma-desktop/recipe | 4 ++-- firmware/amd-ucode/recipe | 11 +++++++++++ firmware/intel-ucode/recipe | 13 +++++++++++++ graphics/nouveau/recipe | 14 ++++++++++++++ sys/elogind/recipe | 3 ++- sys/init-openrc/recipe | 14 ++++++++++++++ sys/init-systemd/recipe | 12 ++++++++++++ sys/openrc/recipe | 20 ++++++++++++++++++++ sys/systemd/recipe | 30 ++++++++++++++++++++++++++++++ 10 files changed, 133 insertions(+), 10 deletions(-)
Diff
diff --git a/README.md b/README.md
index 9bcb112..3672e72 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,16 @@
# SPS extra package collection
-This repository contains the official SPS source definitions outside the
-minimal base system. It is the place for graphics, Wayland and X11, desktop
-software, audio and multimedia, editors, additional development tools,
-language runtimes, shells, networking applications, fonts, and general
-utilities.
+This repository is the official extra recipe tree for **SPS Linux**
+(informally Splux): graphics, Wayland and X11, desktop software, audio,
+editors, extra development tools, language runtimes, shells, networking,
+fonts, and general utilities. Recipes only; no source tarballs or binary
+packages.
+
+SPS the package system is not tied to Splux. An LFS or custom root can index
+this tree with `src` and install packages with `sget`. `setup` profiles such
+as `plasma-desktop`, `init-systemd`, and `init-openrc` are SPS Linux
+installer conveniences. Your LFS book may choose a different init, display
+stack, or disk layout; nothing here forces you to run `setup`.
Package categories are organizational and are created only when they contain a
package:
@@ -35,9 +41,11 @@ Git checkouts default to `/usr/src/sps/core` and `/usr/src/sps/extra`. They are
ordinary repositories and may be inspected or pinned with Git. A local tree at
priority 200 can override either official collection.
-The installer umbrellas `plasma-desktop` and `plasma-full` select a Plasma 6
+Installer profiles `plasma-desktop` and `plasma-full` select a Plasma 6
session, optional KDE applications, NVIDIA open kernel modules, Flatpak, and
-language/devel sets. Qt 6, KDE Frameworks, and Plasma leaves use verified
+language/devel sets. Init is a choice: `init-systemd` (the setup default) or
+`init-openrc`. Those packages `conflict`, so `sget` will not install systemd
+next to OpenRC or eudev. Qt 6, KDE Frameworks, and Plasma leaves use verified
SHA-256 hashes so `src update` can index the graph. Compile those stacks in
dependency layers: pkgconf, Python, ninja/meson/cmake, libraries, Qt,
Frameworks, then Plasma.
diff --git a/desktop/plasma-desktop/recipe b/desktop/plasma-desktop/recipe
index 1b9f406..79ed4c9 100644
--- a/desktop/plasma-desktop/recipe
+++ b/desktop/plasma-desktop/recipe
@@ -1,6 +1,6 @@
name plasma-desktop
version 6.7.4
-release 1
+release 2
arch any
description plasma-desktop: KDE Plasma desktop session
@@ -61,7 +61,7 @@ depend wireplumber
depend mesa
depend xdg-desktop-portal
depend power-profiles-daemon
-depend elogind
+optional elogind
depend polkit
depend dejavu-fonts
diff --git a/firmware/amd-ucode/recipe b/firmware/amd-ucode/recipe
new file mode 100644
index 0000000..c951a81
--- /dev/null
+++ b/firmware/amd-ucode/recipe
@@ -0,0 +1,11 @@
+name amd-ucode
+version 20250808
+release 1
+arch any
+description amd-ucode: AMD CPU microcode (from linux-firmware)
+
+depend filesystem
+depend linux-firmware
+
+install mkdir -p "$PKG/usr/share/doc/amd-ucode"
+install printf '%s\n' "AMD CPU microcode blobs ship in linux-firmware under amd-ucode/. Early-load them from the initramfs the same way as Intel ucode." >"$PKG/usr/share/doc/amd-ucode/README"
diff --git a/firmware/intel-ucode/recipe b/firmware/intel-ucode/recipe
new file mode 100644
index 0000000..6a4fc3b
--- /dev/null
+++ b/firmware/intel-ucode/recipe
@@ -0,0 +1,13 @@
+name intel-ucode
+version 20260812
+release 1
+description intel-ucode: Intel CPU microcode
+
+source https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/refs/tags/microcode-20260812.tar.gz
+hash sha256:7614616d7b2988c278060486f47de716ef44c19317928cb45ac9e288fafd5bd1
+
+depend filesystem
+
+install mkdir -p "$PKG/lib/firmware/intel-ucode" "$PKG/usr/share/doc/intel-ucode"
+install if [ -d intel-ucode ]; then cp -a intel-ucode/. "$PKG/lib/firmware/intel-ucode/"; fi
+install printf '%s\n' "Early-load this from the initramfs (microcode.cpio) or via the kernel firmware loader." >"$PKG/usr/share/doc/intel-ucode/README"
diff --git a/graphics/nouveau/recipe b/graphics/nouveau/recipe
new file mode 100644
index 0000000..497faab
--- /dev/null
+++ b/graphics/nouveau/recipe
@@ -0,0 +1,14 @@
+name nouveau
+version 1.0
+release 1
+arch any
+description nouveau: Mesa Gallium driver for NVIDIA GPUs
+
+depend filesystem
+depend mesa
+depend libdrm
+depend linux-firmware
+
+install mkdir -p "$PKG/etc/modprobe.d" "$PKG/usr/share/sps/sets"
+install printf '%s\n' "blacklist nvidia" "blacklist nvidia_drm" "blacklist nvidia_modeset" "blacklist nvidia_uvm" "options nouveau modeset=1" >"$PKG/etc/modprobe.d/sps-nouveau.conf"
+install printf '%s\n' nouveau >"$PKG/usr/share/sps/sets/nouveau"
diff --git a/sys/elogind/recipe b/sys/elogind/recipe
index d22c5c8..6e318b3 100644
--- a/sys/elogind/recipe
+++ b/sys/elogind/recipe
@@ -1,6 +1,6 @@
name elogind
version 255.17
-release 1
+release 2
description elogind: systemd-logind without systemd
source https://github.com/elogind/elogind/archive/refs/tags/v255.17.tar.gz
@@ -10,6 +10,7 @@ depend filesystem
depend dbus
depend libcap
depend linux-pam
+conflict systemd
configure meson setup build --prefix=/usr --buildtype=release -Dhalt-path=/usr/bin/halt -Dreboot-path=/usr/bin/reboot -Dcgroup-controller=elogind
build meson compile -C build
diff --git a/sys/init-openrc/recipe b/sys/init-openrc/recipe
new file mode 100644
index 0000000..ee63295
--- /dev/null
+++ b/sys/init-openrc/recipe
@@ -0,0 +1,14 @@
+name init-openrc
+version 1.0
+release 1
+arch any
+description init-openrc: OpenRC plus eudev and elogind
+
+depend filesystem
+depend openrc
+depend eudev
+depend elogind
+
+install mkdir -p "$PKG/usr/share/sps/sets" "$PKG/etc/sps"
+install printf '%s\n' "init-openrc" >"$PKG/usr/share/sps/sets/init-openrc"
+install printf '%s\n' openrc >"$PKG/etc/sps/init"
diff --git a/sys/init-systemd/recipe b/sys/init-systemd/recipe
new file mode 100644
index 0000000..7d0726f
--- /dev/null
+++ b/sys/init-systemd/recipe
@@ -0,0 +1,12 @@
+name init-systemd
+version 1.0
+release 1
+arch any
+description init-systemd: systemd as PID 1, with udev and logind
+
+depend filesystem
+depend systemd
+
+install mkdir -p "$PKG/usr/share/sps/sets" "$PKG/etc/sps"
+install printf '%s\n' "init-systemd" >"$PKG/usr/share/sps/sets/init-systemd"
+install printf '%s\n' systemd >"$PKG/etc/sps/init"
diff --git a/sys/openrc/recipe b/sys/openrc/recipe
new file mode 100644
index 0000000..b1bf519
--- /dev/null
+++ b/sys/openrc/recipe
@@ -0,0 +1,20 @@
+name openrc
+version 0.62.6
+release 1
+description openrc: dependency-based init scripts
+
+source https://github.com/OpenRC/openrc/archive/refs/tags/0.62.6.tar.gz
+hash sha256:d5c15b37533e2b5d247d9fbab8b41f312614784b9ea11239ddcfe8e4528e7722
+
+depend filesystem
+depend busybox
+conflict systemd
+builddep meson
+builddep ninja
+builddep pkgconf
+
+configure meson setup build --prefix=/usr --buildtype=release -Dos=Linux
+build meson compile -C build
+install DESTDIR="$PKG" meson install -C build --no-rebuild
+install mkdir -p "$PKG/etc/sps"
+install printf '%s\n' openrc >"$PKG/etc/sps/init"
diff --git a/sys/systemd/recipe b/sys/systemd/recipe
new file mode 100644
index 0000000..9d66515
--- /dev/null
+++ b/sys/systemd/recipe
@@ -0,0 +1,30 @@
+name systemd
+version 257.9
+release 1
+description systemd: init, udev, logind, and service manager
+
+source https://github.com/systemd/systemd/archive/refs/tags/v257.9.tar.gz
+hash sha256:b27dcc100a738b4b5b81f7c5174c1239a6495f5bdf3d3caa94a17b8373e6a1ca
+
+depend filesystem
+depend util-linux
+depend kmod
+depend dbus
+depend libcap
+depend linux-pam
+depend openssl
+conflict openrc
+conflict eudev
+conflict elogind
+builddep meson
+builddep ninja
+builddep pkgconf
+builddep gperf
+builddep python
+builddep linux-api-headers
+
+configure meson setup build --prefix=/usr --buildtype=release -Dmode=release -Ddefault-dnssec=no -Dfirstboot=false -Dinstall-tests=false -Dldconfig=false -Dhomed=false -Duserdb=false -Dman=false -Dpam=true -Daudit=false -Dlibcryptsetup=false -Dbootloader=false -Dukify=false -Dpolkit=false -Dlibfido2=false -Dseccomp=false -Dselinux=false -Dmicrohttpd=false -Dlibcurl=false -Dxenctrl=false
+build meson compile -C build
+install DESTDIR="$PKG" meson install -C build --no-rebuild
+install mkdir -p "$PKG/etc/sps"
+install printf '%s\n' systemd >"$PKG/etc/sps/init"