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