mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-05-01 02:53:00 +02:00
Replace manual user/group creation with sysusers.d and tmpfiles.d
This commit is contained in:
2
.github/workflows/publish-aur.yml
vendored
2
.github/workflows/publish-aur.yml
vendored
@@ -56,6 +56,8 @@ jobs:
|
||||
assets: |
|
||||
pkg/aur/remoteterm-meshcore.install
|
||||
pkg/aur/remoteterm-meshcore.service
|
||||
pkg/aur/remoteterm-meshcore.sysusers
|
||||
pkg/aur/remoteterm-meshcore.tmpfiles
|
||||
pkg/aur/remoteterm.env
|
||||
commit_username: jackkingsman
|
||||
commit_email: ${{ secrets.AUR_COMMIT_EMAIL }}
|
||||
|
||||
@@ -23,11 +23,15 @@ source=(
|
||||
"$pkgname-$pkgver.tar.gz::https://github.com/jkingsman/Remote-Terminal-for-MeshCore/archive/refs/tags/$pkgver.tar.gz"
|
||||
"remoteterm-meshcore.service"
|
||||
"remoteterm.env"
|
||||
"remoteterm-meshcore.sysusers"
|
||||
"remoteterm-meshcore.tmpfiles"
|
||||
)
|
||||
# sha256sums are recomputed by `updpkgsums` in the publish workflow before
|
||||
# the PKGBUILD is pushed to AUR. The committed values are intentionally SKIP
|
||||
# so the file is honest about not tracking real hashes in this repo.
|
||||
sha256sums=('SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP')
|
||||
|
||||
@@ -111,6 +115,12 @@ package() {
|
||||
install -Dm640 "$srcdir/remoteterm.env" \
|
||||
"$pkgdir/etc/remoteterm-meshcore/remoteterm.env"
|
||||
|
||||
# System user and data directory
|
||||
install -Dm644 "$srcdir/remoteterm-meshcore.sysusers" \
|
||||
"$pkgdir/usr/lib/sysusers.d/remoteterm-meshcore.conf"
|
||||
install -Dm644 "$srcdir/remoteterm-meshcore.tmpfiles" \
|
||||
"$pkgdir/usr/lib/tmpfiles.d/remoteterm-meshcore.conf"
|
||||
|
||||
# License
|
||||
install -Dm644 LICENSE.md \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||
|
||||
@@ -1,14 +1,3 @@
|
||||
pre_install() {
|
||||
getent group remoteterm > /dev/null || groupadd -r remoteterm
|
||||
getent passwd remoteterm > /dev/null || \
|
||||
useradd -r -g remoteterm -d /var/lib/remoteterm-meshcore -s /sbin/nologin \
|
||||
-c "RemoteTerm for MeshCore" remoteterm
|
||||
}
|
||||
|
||||
pre_upgrade() {
|
||||
pre_install
|
||||
}
|
||||
|
||||
post_install() {
|
||||
echo "==> Set your radio connection (serial, TCP, or BLE) in"
|
||||
echo "==> /etc/remoteterm-meshcore/remoteterm.env"
|
||||
|
||||
1
pkg/aur/remoteterm-meshcore.sysusers
Normal file
1
pkg/aur/remoteterm-meshcore.sysusers
Normal file
@@ -0,0 +1 @@
|
||||
u remoteterm - "RemoteTerm for MeshCore" /var/lib/remoteterm-meshcore
|
||||
1
pkg/aur/remoteterm-meshcore.tmpfiles
Normal file
1
pkg/aur/remoteterm-meshcore.tmpfiles
Normal file
@@ -0,0 +1 @@
|
||||
d /var/lib/remoteterm-meshcore 0750 remoteterm remoteterm
|
||||
@@ -53,7 +53,8 @@ echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||
BUILD_DIR=/home/builder/build
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cp /pkg/PKGBUILD /pkg/remoteterm-meshcore.install \
|
||||
/pkg/remoteterm-meshcore.service /pkg/remoteterm.env "$BUILD_DIR/"
|
||||
/pkg/remoteterm-meshcore.service /pkg/remoteterm-meshcore.sysusers \
|
||||
/pkg/remoteterm-meshcore.tmpfiles /pkg/remoteterm.env "$BUILD_DIR/"
|
||||
chown -R builder:builder "$BUILD_DIR"
|
||||
|
||||
echo "Building package..."
|
||||
@@ -84,13 +85,14 @@ docker run -d \
|
||||
archlinux:latest bash -c '
|
||||
set -euo pipefail
|
||||
|
||||
# Install the package (triggers pre_install which creates the remoteterm user)
|
||||
# Install the package (sysusers.d creates the remoteterm user, tmpfiles.d creates the data dir)
|
||||
pacman -Syu --noconfirm >/dev/null 2>&1
|
||||
pacman -U --noconfirm /pkg/*.pkg.tar.zst
|
||||
|
||||
# Create the state directory (systemd StateDirectory= would do this on a real host)
|
||||
mkdir -p /var/lib/remoteterm-meshcore
|
||||
chown remoteterm:remoteterm /var/lib/remoteterm-meshcore
|
||||
# In a container there is no systemd to trigger sysusers/tmpfiles automatically,
|
||||
# so run them manually.
|
||||
systemd-sysusers
|
||||
systemd-tmpfiles --create
|
||||
|
||||
echo "============================================"
|
||||
echo " RemoteTerm installed — starting server"
|
||||
|
||||
Reference in New Issue
Block a user