Splux Linux

source-based Linux using SPS

sps-extra · log · files · refs · tags · releases · people · languages · GitHub · commit

b2cec67


extra: add systemd, OpenRC, nouveau, and CPU microcode

Date
Commitb2cec67130560d66c3271e887f4293fcb4550e04
GitHubmirror

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"