v0.9.2
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# Automatic launcher updates
|
||||
|
||||
## Debian / Ubuntu / Mint
|
||||
|
||||
The `.deb` installs a root systemd timer:
|
||||
|
||||
- `citizen-launcher-self-update.timer`
|
||||
- checks on boot and every six hours
|
||||
- reads the latest GitHub Release from the configured repository
|
||||
- accepts only a newer `citizen-launcher_<version>_amd64.deb`
|
||||
- requires GitHub's `sha256:` release asset digest
|
||||
- verifies the downloaded package name, version, and architecture with `dpkg-deb`
|
||||
- installs via `apt-get` with the dpkg lock timeout enabled
|
||||
|
||||
The release repository is stored in:
|
||||
|
||||
```text
|
||||
/etc/citizen-launcher/release-repo
|
||||
```
|
||||
|
||||
Default for this project:
|
||||
|
||||
```text
|
||||
sendnwv/omarchy-sc
|
||||
```
|
||||
|
||||
A package update does not forcibly terminate a running GUI. The existing GUI detects
|
||||
that `/usr/bin/citizen-launcher` is newer and offers **Launcher neu starten**.
|
||||
|
||||
## Generic user install
|
||||
|
||||
The Autopilot user timer checks GitHub releases. For a `~/.local` installation it
|
||||
can replace the launcher binary atomically from the verified Linux tarball without
|
||||
root privileges.
|
||||
|
||||
## Release publishing
|
||||
|
||||
`.github/workflows/release.yml` builds and publishes the `.deb`, generic tarball and
|
||||
SHA256SUMS whenever a `v<VERSION>` tag is pushed. GitHub computes an immutable asset
|
||||
digest that the Debian self-updater verifies before installation.
|
||||
+10
-3
@@ -1,10 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
VERSION="0.9.1"; ARCH="amd64"; WORK="$(mktemp -d)"; trap 'rm -rf "$WORK"' EXIT
|
||||
VERSION="$(tr -d '[:space:]' < "$ROOT/VERSION")"; ARCH="amd64"; WORK="$(mktemp -d)"; trap 'rm -rf "$WORK"' EXIT
|
||||
PKG="$WORK/citizen-launcher_${VERSION}_${ARCH}"
|
||||
mkdir -p "$PKG/DEBIAN" "$PKG/usr/bin" "$PKG/usr/share/applications"
|
||||
mkdir -p "$PKG/DEBIAN" "$PKG/usr/bin" "$PKG/usr/share/applications" "$PKG/usr/lib/systemd/system" "$PKG/etc/citizen-launcher"
|
||||
install -m755 "$ROOT/backend/bin/citizen-launcher" "$PKG/usr/bin/citizen-launcher"
|
||||
|
||||
install -m644 "$ROOT/packaging/systemd/citizen-launcher-self-update.service" "$PKG/usr/lib/systemd/system/citizen-launcher-self-update.service"
|
||||
install -m644 "$ROOT/packaging/systemd/citizen-launcher-self-update.timer" "$PKG/usr/lib/systemd/system/citizen-launcher-self-update.timer"
|
||||
printf '%s\n' "${CITIZEN_LAUNCHER_RELEASE_REPO:-sendnwv/omarchy-sc}" > "$PKG/etc/citizen-launcher/release-repo"
|
||||
install -m755 "$ROOT/packaging/postinst" "$PKG/DEBIAN/postinst"
|
||||
install -m755 "$ROOT/packaging/prerm" "$PKG/DEBIAN/prerm"
|
||||
install -m755 "$ROOT/packaging/postrm" "$PKG/DEBIAN/postrm"
|
||||
cat > "$PKG/DEBIAN/control" <<EOF
|
||||
Package: citizen-launcher
|
||||
Version: $VERSION
|
||||
@@ -12,7 +19,7 @@ Section: games
|
||||
Priority: optional
|
||||
Architecture: $ARCH
|
||||
Maintainer: Citizen Launcher Project
|
||||
Depends: ca-certificates, tar, xdg-utils, curl, cabextract, unzip, xz-utils
|
||||
Depends: ca-certificates, tar, xdg-utils, curl, cabextract, unzip, xz-utils, apt
|
||||
Recommends: pciutils, vulkan-tools
|
||||
Description: Star Citizen setup, launcher and self-maintaining gaming stack for Linux
|
||||
Distro-neutral Citizen Launcher with Wine/DXVK/RSI management and local GUI.
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
set -euo pipefail
|
||||
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
mkdir -p "$ROOT/dist"
|
||||
tar -C "$ROOT/backend/bin" -czf "$ROOT/dist/citizen-launcher-0.9.1-linux-amd64.tar.gz" citizen-launcher
|
||||
VERSION="$(tr -d '[:space:]' < "$ROOT/VERSION")"
|
||||
tar -C "$ROOT/backend/bin" -czf "$ROOT/dist/citizen-launcher-${VERSION}-linux-amd64.tar.gz" citizen-launcher
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: citizen-launcher
|
||||
Version: 0.9.1
|
||||
Version: 0.9.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Star Citizen launcher and self-maintaining Wine stack for Linux
|
||||
License: MIT
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
systemctl enable --now citizen-launcher-self-update.timer >/dev/null 2>&1 || true
|
||||
fi
|
||||
exit 0
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
systemctl daemon-reload >/dev/null 2>&1 || true
|
||||
fi
|
||||
exit 0
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
if [ "$1" = remove ] || [ "$1" = deconfigure ]; then
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
systemctl disable --now citizen-launcher-self-update.timer >/dev/null 2>&1 || true
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
@@ -0,0 +1,16 @@
|
||||
[Unit]
|
||||
Description=Citizen Launcher automatic package update
|
||||
Documentation=https://github.com/sendnwv/omarchy-sc
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
ConditionPathExists=/usr/bin/citizen-launcher
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/citizen-launcher self-update apply --system --quiet
|
||||
Nice=10
|
||||
IOSchedulingClass=best-effort
|
||||
IOSchedulingPriority=7
|
||||
PrivateTmp=true
|
||||
ProtectHome=true
|
||||
UMask=0022
|
||||
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Check Citizen Launcher package updates automatically
|
||||
|
||||
[Timer]
|
||||
OnBootSec=5min
|
||||
OnUnitActiveSec=6h
|
||||
RandomizedDelaySec=20min
|
||||
Persistent=true
|
||||
Unit=citizen-launcher-self-update.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
Reference in New Issue
Block a user