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:
parent
fbda26e9c8
commit
3225735a01
2 changed files with 62 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
25
packaging/arch/PKGBUILD.shell.prebuilt
Normal file
25
packaging/arch/PKGBUILD.shell.prebuilt
Normal 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"
|
||||
}
|
||||
Loading…
Reference in a new issue