Watch
1
0
Fork
You've already forked souveraine
0

souveraine-shell: package the composed quickshell config

CI stages deploy.sh in a scratch HOME and tars the composed tree
dereferenced, then makepkg ships it to /etc/xdg/quickshell/souveraine
on both arches — the shell becomes package-owned, and a writable
~/.config copy keeps shadowing it.
This commit is contained in:
Fimeg 2026-08-19 13:14:20 -04:00
commit 3225735a01
2 changed files with 62 additions and 0 deletions

View file

@ -388,6 +388,23 @@ jobs:
tar -C "$GITHUB_WORKSPACE/src/upower/dest-aarch64" \
-cf "$GITHUB_WORKSPACE/src/Souveraine/upower-tree-aarch64.tar" .
- name: Stage the shell surface for packaging
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE/src/Souveraine"
# deploy.sh composes ~/.config/quickshell/souveraine from repo files
# (symlinks) plus ii dirs borrowed from the ii-base pin. Run it in a
# scratch HOME and tar the result dereferenced, so the package is
# self-contained real files and never ships dangling links.
SHELL_STAGE="$GITHUB_WORKSPACE/shell-stage"
SHELL_TAR="$GITHUB_WORKSPACE/pacman-package/shell"
rm -rf "$SHELL_STAGE" "$SHELL_TAR"
mkdir -p "$SHELL_STAGE" "$SHELL_TAR"
HOME="$SHELL_STAGE" ./surfaces/quickshell/deploy.sh
test -L "$SHELL_STAGE/.config/quickshell/souveraine/shell.qml"
tar -h -C "$SHELL_STAGE/.config/quickshell" -cJf "$SHELL_TAR/souveraine-shell-config.tar.zst" souveraine
tar -tf "$SHELL_TAR/souveraine-shell-config.tar.zst" | grep -qx 'souveraine/shell.qml'
- name: Package and sign pacman repository
run: |
set -euo pipefail
@ -494,6 +511,26 @@ jobs:
gpg --batch --yes --local-user "$ARCHIVE_KEY" \
--detach-sign "$ARCH_REPO/$(basename "$UPKG")"
# Shell package — the composed quickshell config, arch=any, from
# the staged tar. Same per-arch database as the binaries above.
SHELL_WORK="$WORK/shell-$ARCH"
mkdir -p "$SHELL_WORK"
cp "$WORK/shell/souveraine-shell-config.tar.zst" "$SHELL_WORK/"
cp packaging/arch/PKGBUILD.shell.prebuilt "$SHELL_WORK/PKGBUILD"
cp LICENSE "$SHELL_WORK/"
(
cd "$SHELL_WORK"
export SOUVERAINE_PKGVER="$PKGVER"
CARCH="$ARCH" makepkg --nodeps --noconfirm --cleanbuild
)
SPKG=$(find "$SHELL_WORK" -maxdepth 1 -name 'souveraine-shell-*.pkg.tar.zst' -print -quit)
test -n "$SPKG"
bsdtar -tf "$SPKG" | grep -qx 'etc/xdg/quickshell/souveraine/shell.qml'
bsdtar -tf "$SPKG" | grep -qx 'usr/share/licenses/souveraine-shell/LICENSE'
cp "$SPKG" "$ARCH_REPO/"
gpg --batch --yes --local-user "$ARCHIVE_KEY" \
--detach-sign "$ARCH_REPO/$(basename "$SPKG")"
# The per-arch database is NOT built here. `edge` is a shared archive
# with more than one producer in it, so the database has to be
# read-modify-written against the live copy rather than generated

View file

@ -0,0 +1,25 @@
# CI package recipe for the Souveraine quickshell config.
#
# surfaces/quickshell/deploy.sh composes the shell into a scratch HOME
# (repo files symlinked in, ii dirs borrowed from the ii-base pin), and CI
# tars that tree dereferenced. This package ships the composed result to
# /etc/xdg/quickshell/souveraine, so a device gets the shell through pacman
# instead of hand-copied files. A writable copy in ~/.config/quickshell
# shadows it (the live overlay stays deploy.sh's).
pkgname=souveraine-shell
pkgver="${SOUVERAINE_PKGVER:?CI must set SOUVERAINE_PKGVER}"
pkgrel=1
pkgdesc="The Souveraine quickshell config, composed and package-owned"
arch=('any')
url='https://gitea.wiuf.net/Fimeg/souveraine'
license=('GPL-3.0-or-later')
depends=('quickshell')
options=('!debug')
source=('souveraine-shell-config.tar.zst' 'LICENSE')
b2sums=('SKIP' 'SKIP')
package() {
install -d "$pkgdir/etc/xdg/quickshell/souveraine"
tar -xzf "$srcdir/souveraine-shell-config.tar.zst" \
-C "$pkgdir/etc/xdg/quickshell/souveraine"
install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}