1.X revamp and modularisation for distribution

This commit is contained in:
Alex D. 2022-10-21 18:41:16 +00:00
parent 31cc97f33c
commit b1f162f67c
Signed by: caskd
GPG Key ID: F92BA85F61F4C173
417 changed files with 392 additions and 137 deletions

View File

@ -1,22 +1,15 @@
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=nnd-s6-services
pkgver=0.48
pkgver=1.4
pkgrel=0
pkgdesc="Base services for s6"
url="none"
arch="noarch"
license="MIT"
depends="s6-rc s6-portable-utils s6-linux-utils"
subpackages="
$pkgname-core:_bundle
$pkgname-net:_bundle
$pkgname-desktop:_bundle
$pkgname-libvirt:_bundle
$pkgname-virtual:_bundle
$pkgname-tunnel:_bundle
"
builddir="$srcdir/"
_distpfx="etc/s6/dist"
prepare() {
default_prepare
@ -26,21 +19,30 @@ prepare() {
}
package() {
mkdir -p "$pkgdir"/etc/s6/sv
mv "$builddir"/rc "$pkgdir"/etc/s6/rc
mv "$builddir"/env "$pkgdir"/etc/s6/env
# Distributed bundles
mkdir -p "$pkgdir/$_distpfx"
mv "$builddir"/rc "$pkgdir/$_distpfx"/rc
mv "$builddir"/env "$pkgdir/$_distpfx"/env
# Manager
install -Dm755 "$builddir"/manage.sh "$pkgdir"/usr/bin/nnd-s6
mkdir -p "$pkgdir"/etc/s6/rc/custom # User scripts, no distributed bundles
mkdir -p "$pkgdir"/etc/s6/rc/custom/default/contents.d
echo bundle > "$pkgdir"/etc/s6/rc/custom/default/type
# Defaults
mkdir -p "$pkgdir"/etc/s6/sv
mkdir -p "$pkgdir"/etc/s6/env
mkdir -p "$pkgdir"/etc/s6/rc
mkdir -p "$pkgdir"/etc/s6/rc/default/contents.d
echo bundle > "$pkgdir"/etc/s6/rc/default/type
}
check() {
s6-rc-compile "$builddir"/compiled "$builddir"/rc/*
s6-rc-compile "$builddir"/compiled "$builddir"/rc
}
_bundle() {
local _BNAME="${subpkgname##$pkgname-}"
[ -d "$pkgdir/etc/s6/env/$_BNAME" ] && amove "etc/s6/env/$_BNAME"
amove "etc/s6/rc/$_BNAME"
[ -d "$pkgdir/$_distpfx/env/$_BNAME" ] && amove "$_distpfx/env/$_BNAME"
amove "$_distpfx/rc/$_BNAME"
}

View File

@ -13,7 +13,9 @@ alt_ab() {
}
: ${S6_PATH:='/etc/s6'}
: ${S6_DIST_PATH:="$S6_PATH/dist"}
: ${S6_RC_PATH:="$S6_PATH/rc"}
: ${S6_ENV_PATH:="$S6_PATH/env"}
: ${S6_SV_PATH:="$S6_PATH/sv"}
# A/B mode, always keep last copy
@ -32,7 +34,7 @@ generate() {
if [ -d "$S6_SV_PATH/current.$DB_FRESH_NAC" ]; then
rm -rf "$S6_SV_PATH/current.$DB_FRESH_NAC" || ERR="$?" error "Failed to remove inactive database path"
fi
s6-rc-compile "$S6_SV_PATH/current.$DB_FRESH_NAC" "$S6_RC_PATH"/* || ERR="$?" error "Failed to compile current s6 database"
s6-rc-compile "$S6_SV_PATH/current.$DB_FRESH_NAC" "$S6_RC_PATH" || ERR="$?" error "Failed to compile current s6 database"
}
update() {
@ -47,10 +49,27 @@ swap() {
fi
}
dist() {
SDIR="$S6_DIST_PATH/rc" DPATH="$S6_RC_PATH" distdefs
SDIR="$S6_DIST_PATH/env" DPATH="$S6_ENV_PATH" distdefs
}
distdefs() {
[ -z "$SDIR" ] && error "SDIR not defined"
[ -z "$DPATH" ] && error "DPATH not defined"
for cdir in "$SDIR"/*; do
local srv="${cdir##*/}"
local dsv="$DPATH/$srv"
if [ ! -d "$dsv" ]; then
ln -sv "$cdir" "$dsv" || ERR="$?" error "Failed to create reference"
fi
done
}
for act in $@; do
cstate
case "$act" in
generate|update|swap) eval "$act";;
generate|update|swap|dist) eval "$act" || return;;
*) error "Invalid action $act";;
esac
done

View File

@ -1 +0,0 @@
localhost

View File

@ -1,17 +0,0 @@
#!/bin/execlineb -P
s6-envdir -i /etc/s6/env/path
importas -i PATH PATH
s6-envdir -i /etc/s6/env/core/mount.run
importas -i OPTS OPTS
emptyenv
export PATH $PATH
define DEST /run
define FSTYPE tmpfs
fdclose 1
fdclose 2
foreground {
mkdir -p $DEST
} mount -t $FSTYPE -o $OPTS run $DEST

View File

@ -1,17 +0,0 @@
#!/bin/execlineb -P
s6-envdir -i /etc/s6/env/path
importas -i PATH PATH
s6-envdir -i /etc/s6/env/core/mount.sys-firmware-efi-efivars
importas -i OPTS OPTS
emptyenv
export PATH $PATH
define DEST /sys/firmware/efi/efivars
define FSTYPE efivarfs
fdclose 1
fdclose 2
foreground {
mkdir -p $DEST
} mount -t $FSTYPE -o $OPTS securityfs $DEST

View File

@ -1,17 +0,0 @@
#!/bin/execlineb -P
s6-envdir -i /etc/s6/env/path
importas -i PATH PATH
s6-envdir -i /etc/s6/env/core/mount.sys-fs-pstore
importas -i OPTS OPTS
emptyenv
export PATH $PATH
define DEST /sys/fs/pstore
define FSTYPE pstore
fdclose 1
fdclose 2
foreground {
mkdir -p $DEST
} mount -t $FSTYPE -o $OPTS securityfs $DEST

View File

@ -1,17 +0,0 @@
#!/bin/execlineb -P
s6-envdir -i /etc/s6/env/path
importas -i PATH PATH
s6-envdir -i /etc/s6/env/core/mount.tmp
importas -i OPTS OPTS
emptyenv
export PATH $PATH
define DEST /tmp
define FSTYPE tmpfs
fdclose 1
fdclose 2
foreground {
mkdir -p $DEST
} mount -t $FSTYPE -o $OPTS tmp $DEST

Some files were not shown because too many files have changed in this diff Show More