synit-config packaging

This commit is contained in:
Tony Garnock-Jones 2021-11-14 13:40:10 +01:00
parent 829e826d52
commit a21f868ef0
12 changed files with 157 additions and 8 deletions

View File

@ -11,6 +11,7 @@ PACKAGES = \
squeak-vm.apk \
syndicate-server.apk \
synit-pid1.apk \
synit-config.apk \
build: $(PACKAGES) sign

View File

@ -0,0 +1,68 @@
# Contributor: Tony Garnock-Jones <tonyg@leastfixedpoint.com>
# Maintainer: Tony Garnock-Jones <tonyg@leastfixedpoint.com>
pkgname=synit-config
pkgver=0.0.1
pkgrel=0
pkgdesc="synit system layer configuration"
url="https://synit.org/"
arch="noarch"
license="GPLv3"
depends="
synit-pid1
syndicate-server
eudev
nftables
openssh
rsync
wpa_supplicant
"
subpackages="
$pkgname-docker:docker
"
makedepends=""
source="
$(ls *.pr)
synit-init.sh
"
builddir="$srcdir/"
options="!check"
install="$pkgname.post-deinstall"
# This allows us to stomple on /sbin/init, which is owned by the busybox package
replaces="busybox"
build() {
:
}
package() {
mkdir -p "$pkgdir/sbin"
cp -p synit-init.sh "$pkgdir/sbin/."
ln -sf /sbin/synit-init.sh "$pkgdir/sbin/init"
mkdir -p "$pkgdir/etc/syndicate"
cp *.pr "$pkgdir/etc/syndicate/."
mkdir -p "$pkgdir/run/etc/syndicate"
mkdir -p "$pkgdir/var/lock/synit"
}
docker() {
depends="$pkgname"
description="Synit startup for Docker"
install_if="$pkgname docker"
amove etc/syndicate/docker.pr
}
sha512sums="
eabf4830fbb28980f2b3fe15f423e45f5b2f05f8ce65be7afe87b976edc433e94a7506366dfce6d5c207b4086e8dc4ce4bde6a4b248873692bcc8c904e073f67 configdirs.pr
e78bac08ec856aa695928e3121198fe1eaeb055a06f8b744cdcc7fec45af79142db83ed05a4d01e424bd3a4f1d493257231df98236d8a3dbf93a29b9fc951002 docker.pr
acdaa844079c5b32943503797ba5c7dda555a844533fe37a20f1ac3524e76a4126a587557f81adca69085c80af673392f458e7e66d6bc315bbd44ff0c1f7060f eudev.pr
a1224e97cfecf98566b215724b0a4e5da7141900cbed62b066528f2b99b5cd9715bdb33f67aa77f0f4d97ef21fb6ac2eacdfbf90accdf0ebeec8d0bc30455de3 hostname.pr
eb59d70953e9be0d77747ae29685596a89a744125b0e20935f3771e02d24c53f58aafc14168deadf8430be7a566c30b394bab5b8bfc76a2b944f56d3b77e8d69 network.pr
de12efb8ac776ee02cd75bd8da69b537ca8b9ab66016fa7c311a0714697c0b5df78f3b641c5b8b85cf69d00c348571ab971c41906aa5aa0ded01bdcf854b16a4 sshd.pr
9d49a437e6c5bc1931209f4f2008c227bca2a91f061da561371e6f180976052af9d409b56e0950ec6df14db57b5a6d4c7d776d2299af547c7ac3fa08af65ffa1 synit-init.sh
"

View File

@ -0,0 +1,2 @@
<require-service <config-watcher "/run/etc/syndicate" $.>>
<require-service <config-watcher "/usr/local/etc/syndicate" $.>>

View File

@ -0,0 +1,7 @@
<require-service <daemon docker>>
<depends-on <daemon docker> <service-state <milestone network> ready>>
<daemon docker {
argv: "/usr/bin/dockerd --experimental"
restart: always
}>

View File

@ -0,0 +1,9 @@
<depends-on <milestone core> <service-state <daemon eudev> ready>>
<depends-on <milestone core> <service-state <daemon eudev-initial-scan> complete>>
<core-service <daemon eudev>>
<daemon eudev ["/sbin/udevd", "--children-max=5"]>
<core-service <daemon eudev-initial-scan>>
<depends-on <daemon eudev-initial-scan> <service-state <daemon eudev> ready>>
<daemon eudev-initial-scan "echo '' > /proc/sys/kernel/hotplug && udevadm trigger --type=subsystems --action=add && udevadm trigger --type=devices --action=add && udevadm settle --timeout=30">

View File

@ -0,0 +1,3 @@
<depends-on <milestone core> <service-state <daemon hostname> complete>>
<core-service <daemon hostname>>
<daemon hostname "hostname $(cat /etc/hostname)">

View File

@ -0,0 +1,28 @@
<require-service <milestone network>>
<network-interface "lo" <static "127.0.0.1">>
<network-interface "eth0" <dhcp>>
<depends-on <milestone network> <service-state <daemon interfaces> complete>>
? <network-interface ?ifname <static ?ipaddr>> [
<daemon interfaces {
argv: ["ifconfig" $ifname $ipaddr "up"]
restart: on-error
}>
]
? <network-interface ?ifname <dhcp>> [
<daemon interfaces {
argv: ["ifconfig" $ifname "up"]
restart: on-error
}>
<require-service <daemon <udhcpc $ifname>>>
]
? <run-service <daemon <udhcpc ?ifname>>> [
<daemon <udhcpc $ifname> {
argv: ["udhcpc" "-i" $ifname "-fR"],
restart: always
}>
]

View File

@ -0,0 +1,10 @@
<require-service <daemon sshd>>
<depends-on <daemon sshd> <service-state <milestone network> ready>>
<depends-on <daemon sshd> <service-state <daemon ssh-host-keys> complete>>
<daemon sshd {
argv: "/usr/sbin/sshd -D"
restart: always
}>
<daemon ssh-host-keys "ssh-keygen -A">

View File

@ -0,0 +1,2 @@
#!/bin/sh
busybox --install -s

View File

@ -0,0 +1,22 @@
#!/bin/sh
mount -t devtmpfs none /dev
mkdir /dev/pts
mount -t devpts none /dev/pts
mkdir /dev/shm
mount -t tmpfs -o nodev,nosuid,noexec none /dev/shm
mount -t proc none /proc
mount -t sysfs none /sys
mount -t tmpfs none /run
# Docker wants this
mount -t cgroup2 none /sys/fs/cgroup
mount -o rw,remount /
exec /sbin/synit-pid1

View File

@ -17,20 +17,17 @@ synit-pid1.x86_64
builddir="$srcdir/"
options="!check"
# This allows us to stomple on /sbin/init, which is owned by the busybox package
replaces="busybox"
build() {
:
}
package() {
mkdir -p "$pkgdir/sbin"
cp -p synit-pid1.${CARCH} "$pkgdir/sbin/init"
cp -p synit-pid1.${CARCH} "$pkgdir/sbin/synit-pid1"
}
sha512sums="
d2c1632f8d25d3250a039ceb0516677f3c314b6f0e8557df8858f4a7a372b0db58d897d393f1466003ab4fb067e37a7aba6a32e2f6c0e97abfb9a4cba29e657c synit-pid1.aarch64
30fb6de065a8db25e228decba469652be59ed3271603e17b53282b9e3836ad9f7dbbe6542d736c1f8cfb40ce0594d3d56e66a47f9d827ce38d49abed35f67380 synit-pid1.armv7
b532836e29ee601dc6f675bbcceaf83bbe37051bc690cf05989dc234eca4ef098d8a3714befd9d735dbef9ff496f06c54325bdb05c50d65fe1e1b31d9e5f5a19 synit-pid1.x86_64
91921f440b16f4c5e703543f23ba41fdaad5b7e7dfc2a6958f80a4321a91c219a4919c327c06805cf54c644410fdb81e21d3b6b7041de12afbd093605f2f01a2 synit-pid1.aarch64
8eb1c40b60170065818be51fb33c772d8803cf7123bf60060c0312a6c448dfdfbec08fd23be36977aa234e20cdb4e6d7cf0c0413f1a9a1eb3c43f0322471d433 synit-pid1.armv7
0750b4c69c0a05afca8f6def4e2ee6734cc4a407b96691e3264e8922ee83a74fd6a7aceea2ddd7c678985d9a68eff9c3efeaa3a258a7314d886248e77279a779 synit-pid1.x86_64
"

View File

@ -4,4 +4,4 @@ then
echo 'Usage: push-to.sh <HOSTNAME>' >&2
exit 1
fi
exec rsync -av target/packages $1:.
exec rsync -av --delete target/packages $1:.