commit 73c75ac6207f1766c13ca6a37cc2e9befaf54e6f
parent 9f46c0d846fc2dad4ea89dd4768be0bd09b19678
Author: Jan Pobříslo <ccx@te2000.cz>
Date: Thu, 15 Sep 2022 23:20:28 +0200
Merge server (spark) config.
Diffstat:
10 files changed, 784 insertions(+), 315 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,7 +1,12 @@
.PHONY: all clean
ALL_TARGETS:= s6-rc.fileset postinstall.fileset postinstall.rsfilter static/etc/fstab
-DATA_AWK:=/current/bzr/aat/data.awk
+AWK:=awk
+SED:=sed
+#FILESET_BIN_DIR:=$(dir $(realpath $(shell which fileset.awk)))
+AAT_BIN_DIR:=$(realpath $(dir $(realpath $(shell which aat.awk))))
+#DATA_AWK:=/current/bzr/aat/data.awk
+DATA_AWK:=$(realpath $(AAT_BIN_DIR)/..)/data.awk
all: $(ALL_TARGETS)
clean:
@@ -9,13 +14,13 @@ clean:
build/%.awk: %.aat common.aat
mkdir -p build
- aat.awk "$<" >"$@.new"
- aat_macros.sed -i "$@.new"
+ $(AWK) -f $(AAT_BIN_DIR)/aat.awk "$<" >"$@.new"
+ $(SED) -f $(AAT_BIN_DIR)/aat_macros.sed -i "$@.new"
mv "$@.new" "$@"
%.qawk: %.awk $(DATA_AWK)
cat $(DATA_AWK) >"$@.new"
- query.awk "$<" >>"$@.new"
+ $(AWK) -f $(AAT_BIN_DIR)/query.awk "$<" >>"$@.new"
mv "$@.new" "$@"
%.rsfilter: %.fileset
@@ -26,18 +31,18 @@ build/s6-rc-mount.awk: s6-rc-mount.aat parse_fs.include.awk
build/fstab.awk: fstab.aat parse_fs.include.awk
s6-rc.fileset: build/s6-rc.qawk build/s6-rc-mount.awk fs build/config
- awk -f build/s6-rc-mount.awk fs >"$@.new"
- awk -f build/s6-rc.qawk build/config >>"$@.new"
+ $(AWK) -f build/s6-rc-mount.awk fs >"$@.new"
+ $(AWK) -f build/s6-rc.qawk build/config >>"$@.new"
mv "$@.new" "$@"
static/etc/fstab: build/fstab.awk fs
- awk -f build/fstab.awk fs >"$@.new"
+ $(AWK) -f build/fstab.awk fs >"$@.new"
mv "$@.new" "$@"
build/config: build/config.awk
- awk -f "$<" </dev/null >"$@.new"
+ $(AWK) -f "$<" </dev/null >"$@.new"
mv "$@.new" "$@"
postinstall.fileset: build/config build/postinstall.qawk
- awk -f build/postinstall.qawk build/config >"$@.new"
+ $(AWK) -f build/postinstall.qawk build/config >"$@.new"
mv "$@.new" "$@"
diff --git a/config.aat b/config.aat
@@ -4,19 +4,43 @@
root_shell=/bin/zsh
# Amount of ttys to initialize
-tty_max=12
+tty_max=4
# Number of gettys to spawn (should be less 9 to not overlap with rescue getty)
-getty_max=8
+getty_max=4
+
+X_servers=[
+svc vtN
+X5 5
+X6 6
+X7 7
+X8 8
+]
+
+modprobe_modules=[
+module
+af_packet
+thinkpad_acpi
+iwldvm
+evdev
+psmouse
+elan_i2c
+snd-hda-intel
+fuse
+overlay
+kvm-intel
+tun
+]
static_ip=[
iface ip cidr
-|#lo 127.0.0.1 8
-eth0 10.70.145.187 25
+|#|#lo 127.0.0.1 8
+|#eth0 10.70.145.187 25
]
static_route=[
iface spec
-eth0 default via 10.70.145.129
+|#eth0 default via 10.70.145.129
]
+
|}
diff --git a/fs b/fs
@@ -68,51 +68,16 @@
options=ro,noatime
bundles=ok-localmount
-#/var
-# source=/dev/mapper/vg-var
-# type=xfs
-# options=rw,noatime
-# bundles=ok-localmount
-#
-#/var/lib/postgresql
-# source=/dev/mapper/vg-postgresql
-# type=xfs
-# options=rw,noatime
-# extra_dependencies=mount-dev
-# bundles=ok-localmount
+#/dev/mapper/vg-swap none swap defaults 0 0
-#sysfs /sys
-# mount -wt sysfs sys /sys -o remount || exec mount -wt sysfs sys /sys
-#
-#devtmpfs /dev
-# mount -wt devtmpfs dev /dev -o remount,nosuid || exec mount -wt devtmpfs dev /dev -o nosuid
-#
-#proc /proc
-# mount -wt proc proc /proc -o remount || mount -wt proc proc /proc
-#
-#devpts /dev/pts
-# mkdir -p /dev/pts || exit $?; mount -wt devpts devpts /dev/pts -o remount,rw,relatime,mode=600,ptmxmode=000 || exec mount -wt devpts devpts /dev/pts -o rw,relatime,mode=600,ptmxmode=000
-#
-#shm /dev/shm
-# mount -wt tmpfs shm /dev/shm -o remount,rw,nosuid,nodev,relatime || exec mount -wt tmpfs shm /dev/shm -o rw,nosuid,nodev,relatime
-#
-#LABEL="INSTALL_ROOT" / xfs noatime 0 2
-#
-#tmpfs /run
-#none /run/cgroup2
-#CN if { mkdir /run/cgroup2 }
-# mount -t cgroup2 none /run/cgroup2
-#
-#mqueue /dev/mqueue
-# mkdir -p /dev/mqueue || exit $?; mount -t mqueue mqueue /dev/mqueue -o remount,rw,nosuid,nodev,noexec || mount -t mqueue mqueue /dev/mqueue -o nosuid,nodev,noexec
-#LABEL="SPARK_BOOT" /boot ext2 ro,noatime 0 2
-#
-#CN if { mkdir -p /tmp/.X11-unix /run/X11 }
-# if { chmod 771 /run/X11 }
-# if { chown root:xorg /run/X11 }
-# mount --bind /run/X11 /tmp/.X11-unix
-#
-### # umount all filesystems except specials, if possible
-### foreground { umount --all --verbose --detach-loop -t nodevtmpfs,noproc,nosysfs,nodevpts,nomqueue }
-### # remount the rest read-only, except for tmpfs
-### foreground { umount --all --read-only --verbose -t nodevtmpfs,noproc,nosysfs,nodevpts,nomqueue,notmpfs }
+#/dev/mapper/vg-alpine_root / xfs noatime,nosuid 0 0
+#/dev/sda1 /boot ext3 ro,nosuid 0 2
+#/dev/mapper/vg-home /home ext4 noatime,nosuid 0 2
+#/boot/sysrcd.dat /mnt/sysrcd squashfs ro,loop,nosuid 0 0
+#/dev/mmcblk0p1 /mnt/mmc vfat iocharset=utf8 0 0
+#/dev/mapper/vg-video /mnt/volumes/video xfs noatime,nosuid 0 0
+#/dev/mapper/vg-audio /mnt/volumes/audio xfs noatime,nosuid 0 0
+#/dev/mapper/vg-photos /mnt/volumes/photos xfs noatime,nosuid 0 0
+#/dev/mapper/vg-syncthing /var/lib/syncthing xfs noatime,nosuid 0 0
+#/dev/mapper/vg-containers /mnt/volumes/containers xfs nosuid,noatime 0 0
+#/dev/mapper/vg-containers_user /mnt/volumes/containers/user xfs nosuid,noatime 0 0
diff --git a/fstab_to_fs b/fstab_to_fs
@@ -0,0 +1,5 @@
+#!/bin/sh
+awk '
+/^[ \t]*#/ || !NF {next}
+{printf "%s\n\tsource=%s\n\ttype=%s\n\toptions=%s\n\n", $2, $1, $3, $4}
+' "${1:-/etc/fstab}"
diff --git a/postinstall b/postinstall
@@ -98,6 +98,7 @@ setup_storage() {
setup_rc() {
local diff_ret
+ # Check if s6-rc definition changed
diff --recursive --unified $preinstall_current_p/s6-rc-source ./s6-rc-source; diff_ret=$?
(( $diff_ret == 0 || $diff_ret == 1 )) || \
die111 "Could not diff s6-rc-source directories; exitcode $diff_ret"
@@ -121,7 +122,24 @@ setup_rc() {
# s6-rc-update to new compiled DB directly
s6-rc-update -v2 /current/s6-rc-db/ || return $?
fi
+}
+setup_containers() {
+ # Check if we need to regenerate containers or their service directories.
+ if link_changed bzr/containers || link_changed bzr/confz; then
+ if (( $+confz_verbose )); then
+ zsh -lc "verbose=1 confz site_containers" </dev/null 2>&1 | cat -v
+ ret=$((${(j.|.)pipestatus})) # Nonzero iff any of commands in pipeline returned nonzero.
+ else
+ zsh -lc "quiet=1 confz site_containers" </dev/null 2>&1 | cat -v
+ ret=$((${(j.|.)pipestatus})) # Nonzero iff any of commands in pipeline returned nonzero.
+ fi
+ if (($ret)); then
+ echo >&2 "Error: command failed ($ret): confz site_containers"
+ return $ret
+ fi
+ s6-svscanctl -a /run/service || return $?
+ fi
}
setup_fileset() {
@@ -162,6 +180,7 @@ postinstall() {
fi
setup_skel || return $?
+ setup_containers || return $?
exit 0
}
diff --git a/postinstall.aat b/postinstall.aat
@@ -61,34 +61,34 @@
|}
|### postinstall.fileset ###
|END{
-/boot +
-/boot/extlinux.conf +
-CN # Managed by /usr/src/core-system
- DEFAULT menu.c32
- PROMPT 0
- MENU TITLE Alpine/Linux Boot Menu
- #MENU HIDDEN
- #MENU AUTOBOOT Alpine will be booted automatically in # seconds.
- TIMEOUT 30
-
- LABEL virt
- MENU LABEL Current linux-virt
- LINUX vmlinuz-virt
- INITRD initramfs-virt
- APPEND root=/dev/mapper/vg-spark_root init=/current/init/bin/init modules=sd-mod,usb-storage,ext4,xfs,lvm rootflags=noatime
-
- LABEL virt-previous
- MENU LABEL Previous linux-virt
- LINUX vmlinuz-virt
- INITRD initramfs-virt
- APPEND root=/dev/mapper/vg-spark_root init=/previous/init/bin/init modules=sd-mod,usb-storage,ext4,xfs,lvm rootflags=noatime
-|split("libutil.c32 libcom32.c32 mboot.c32 menu.c32 vesamenu.c32", extlinux_modules, " ")
-|for(n in extlinux_modules) {
-| mod = extlinux_modules[n]
-/boot/{{mod}} +
-? cmp "$fname" '/usr/share/syslinux/{{mod}}'
-! cp -va '/usr/share/syslinux/{{mod}}' "$fname"
-|}
+|#/boot +
+|#/boot/extlinux.conf +
+|#CN # Managed by /usr/src/core-system
+|# DEFAULT menu.c32
+|# PROMPT 0
+|# MENU TITLE Alpine/Linux Boot Menu
+|# #MENU HIDDEN
+|# #MENU AUTOBOOT Alpine will be booted automatically in # seconds.
+|# TIMEOUT 30
+|#
+|# LABEL virt
+|# MENU LABEL Current linux-virt
+|# LINUX vmlinuz-virt
+|# INITRD initramfs-virt
+|# APPEND root=/dev/mapper/vg-spark_root init=/current/init/bin/init modules=sd-mod,usb-storage,ext4,xfs,lvm rootflags=noatime
+|#
+|# LABEL virt-previous
+|# MENU LABEL Previous linux-virt
+|# LINUX vmlinuz-virt
+|# INITRD initramfs-virt
+|# APPEND root=/dev/mapper/vg-spark_root init=/previous/init/bin/init modules=sd-mod,usb-storage,ext4,xfs,lvm rootflags=noatime
+|#|split("libutil.c32 libcom32.c32 mboot.c32 menu.c32 vesamenu.c32", extlinux_modules, " ")
+|#|for(n in extlinux_modules) {
+|#| mod = extlinux_modules[n]
+|#/boot/{{mod}} +
+|#? cmp "$fname" '/usr/share/syslinux/{{mod}}'
+|#! cp -va '/usr/share/syslinux/{{mod}}' "$fname"
+|#|}
/etc +
/etc/group +
diff --git a/postinstall.fileset b/postinstall.fileset
@@ -1,39 +1,3 @@
-/boot +
-/boot/extlinux.conf +
-CN # Managed by /usr/src/core-system
- DEFAULT menu.c32
- PROMPT 0
- MENU TITLE Alpine/Linux Boot Menu
- #MENU HIDDEN
- #MENU AUTOBOOT Alpine will be booted automatically in # seconds.
- TIMEOUT 30
-
- LABEL virt
- MENU LABEL Current linux-virt
- LINUX vmlinuz-virt
- INITRD initramfs-virt
- APPEND root=/dev/mapper/vg-spark_root init=/current/init/bin/init modules=sd-mod,usb-storage,ext4,xfs,lvm rootflags=noatime
-
- LABEL virt-previous
- MENU LABEL Previous linux-virt
- LINUX vmlinuz-virt
- INITRD initramfs-virt
- APPEND root=/dev/mapper/vg-spark_root init=/previous/init/bin/init modules=sd-mod,usb-storage,ext4,xfs,lvm rootflags=noatime
-/boot/libutil.c32 +
-? cmp "$fname" '/usr/share/syslinux/libutil.c32'
-! cp -va '/usr/share/syslinux/libutil.c32' "$fname"
-/boot/libcom32.c32 +
-? cmp "$fname" '/usr/share/syslinux/libcom32.c32'
-! cp -va '/usr/share/syslinux/libcom32.c32' "$fname"
-/boot/mboot.c32 +
-? cmp "$fname" '/usr/share/syslinux/mboot.c32'
-! cp -va '/usr/share/syslinux/mboot.c32' "$fname"
-/boot/menu.c32 +
-? cmp "$fname" '/usr/share/syslinux/menu.c32'
-! cp -va '/usr/share/syslinux/menu.c32' "$fname"
-/boot/vesamenu.c32 +
-? cmp "$fname" '/usr/share/syslinux/vesamenu.c32'
-! cp -va '/usr/share/syslinux/vesamenu.c32' "$fname"
/etc +
/etc/group +
diff --git a/postinstall.rsfilter b/postinstall.rsfilter
@@ -1,10 +1,3 @@
-+ /boot
-+ /boot/extlinux.conf
-+ /boot/libutil.c32
-+ /boot/libcom32.c32
-+ /boot/mboot.c32
-+ /boot/menu.c32
-+ /boot/vesamenu.c32
+ /etc
+ /etc/group
+ /etc/passwd
diff --git a/s6-rc.aat b/s6-rc.aat
@@ -43,18 +43,9 @@ CN ok-all-but-tty
gettys
m644
-/ok-all-but-tty d m755
-/ok-all-but-tty/type cN bundle m644
-/ok-all-but-tty/contents
-CN ok-mount
- net-all
-|# setfont
- dmesg
- hostname
- modules
- sshd
-m644
+|#add_to_bundle("ok-all-but-tty", "mount-tmp-X11")
+|add_to_bundle("ok-all-but-tty", "net-all")
/net-all d m755
/net-all/type cN bundle m644
/net-all/contents
@@ -71,6 +62,7 @@ CN mount-sysinit
dev-coldplug
m644
+|add_to_bundle("ok-all-but-tty", "ok-mount")
/ok-mount d m755
/ok-mount/type cN bundle m644
/ok-mount/contents
@@ -158,10 +150,12 @@ CN #!/command/execlineb -P
unbound -d
m755
+|add_to_bundle("ok-all-but-tty", "hostname")
/hostname d m755
/hostname/type cN oneshot m644
/hostname/up cN hostname -F /etc/hostname m755
+|add_to_bundle("ok-all-but-tty", "loadkeys")
/loadkeys d m755
/loadkeys/dependencies cN kbd_mode m644
/loadkeys/type cN oneshot m644
@@ -172,8 +166,8 @@ m755
/gettys d m755
/gettys/type cN bundle m644
/gettys/contents
-CN tty1
-|for(tty=2; tty<=(<getty_max>+0); tty++) {
+|printf "CN"
+|for(tty=1; tty<=(<getty_max>+0); tty++) {
tty{{tty}}
|}
m644
@@ -195,7 +189,14 @@ CN #!/command/execlineb -P
unexport SERVICE_PID
foreground { /command/issue-gen }
- env LOGIN_TTY=/dev/tty{{tty}} /sbin/getty 38400 tty{{tty}} linux
+ env LOGIN_TTY=/dev/tty{{tty}} /sbin/getty -l login-keepenv 38400 tty{{tty}} linux
+m755
+/tty{{tty}}/finish
+CN #!/command/execlineb -P
+ redirfd -w 1 /dev/tty{{tty}}
+ fdmove -c 2 1
+ foreground { s6-echo "\nwaiting for session cleanup" }
+ flock /run/ttylock/tty{{tty}} true
m755
|}
@@ -214,6 +215,7 @@ m644
/kbd_mode-tty{{tty}}/up cN kbd_mode -u -C /dev/tty{{tty}} m644
|}
+|add_to_bundle("ok-all-but-tty", "setfont")
|#/setfont d m755
|#/setfont/contents
|#CN setfont-tty1
@@ -235,6 +237,7 @@ m644
|#/setfont-tty4/up cN redirfd -r 0 /dev/tty4 setfont ter-v14n m644
|#/setfont/type cN bundle m644
+|add_to_bundle("ok-all-but-tty", "dmesg")
/dmesg d m755
/dmesg/type cN oneshot m644
/dmesg/up
@@ -243,17 +246,15 @@ CN # description="Set the dmesg level for a cleaner boot"
dmesg -n1
m755
+|add_to_bundle("ok-all-but-tty", "modules")
/modules d m755
/modules/dependencies cN dmesg m644
/modules/type cN oneshot m644
/modules/up
-CN foreground { modprobe fuse }
- foreground { modprobe overlay }
- foreground { modprobe tun }
- foreground { modprobe e1000 }
- foreground { modprobe vmxnet3 }
- foreground { modprobe virtio_pci }
- foreground { modprobe virtio_net }
+|printf "CN"
+@for i in modprobe_modules
+ foreground { modprobe {<i.module>} }
+@endfor
m755
/dev-coldplug d m755
@@ -276,6 +277,46 @@ C #!/command/execlineb -P
mdevd -D 3 -f /current/conf/etc/mdevd.conf
m755
+|#add_to_bundle("ok-all-but-tty", "udev")
+/udev d m755
+/udev/dependencies
+CN mount-sys
+ mount-proc
+ mount-dev
+m640
+/udev/notification-fd cN 3 m640
+/udev/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/udev }
+ redirfd -w 1 /run/cgroup2/s6-rc/udev/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ background {
+ sh -xc "until /sbin/udevadm settle --timeout=120; do sleep 0.5; done; echo >&3 settled"
+ #foreground { loopwhilex -x 0 if -nt { /sbin/udevadm settle --timeout=120 } foreground { sleep 0.1 } exit 1 }
+ #fdmove -c 3 1
+ #echo
+ }
+ fdclose 3
+ /sbin/udevd
+m755
+/udev/type cN longrun m640
+
+|add_to_bundle("ok-all-but-tty", "swapon-vg-swap")
+/swapon-vg-swap d m755
+/swapon-vg-swap/dependencies
+C dev-colplug
+m644
+/swapon-vg-swap/type c oneshot m644
+/swapon-vg-swap/up c swapon /dev/vg/swap m644
+/swapon-vg-swap/down c swapoff /dev/vg/swap m644
+
/openrc d m755
/openrc/type cN oneshot m644
/openrc/dependencies
@@ -295,6 +336,7 @@ m644
/.scripts d m755
+|add_to_bundle("ok-all-but-tty", "sshd")
/sshd d m755
/sshd/type cN longrun m644
/sshd/dependencies
@@ -340,10 +382,260 @@ CN if -n -t { s6-test -f /etc/ssh/ssh_host_rsa_key }
ssh-keygen -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
m644
-/swap d m755
-/swap/type cN oneshot m644
-/swap/up cN swapon -a m644
-/swap/down cN swapoff -a m644
+|#|add_to_bundle("ok-all-but-tty", "swap")
+|#/swap d m755
+|#/swap/type cN oneshot m644
+|#/swap/up cN swapon -a m644
+|#/swap/down cN swapoff -a m644
+
+/alsa-devices d m750
+/alsa-devices/dependencies
+CN modules
+ udev
+m640
+/alsa-devices/type cN oneshot m640
+/alsa-devices/up
+CN sh -c "
+ retry=true
+ while $retry; do
+ retry=false
+ for card in $(sed -n -e '/^ \\?[0-9]/{s/ *\\([0-9]*\\).*/\\1/;p}' /proc/asound/cards); do
+ $retry && sleep 0.5
+ test -e /dev/snd/controlC${card} || retry=true
+ done
+ $retry && sleep 0.5
+ done
+ :
+ "
+m640
+
+|add_to_bundle("ok-all-but-tty", "alsactl-rdaemon")
+/alsactl-rdaemon d m750
+/alsactl-rdaemon/dependencies cN alsa-devices m640
+/alsactl-rdaemon/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/alsactl-rdaemon }
+ redirfd -w 1 /run/cgroup2/s6-rc/alsactl-rdaemon/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ alsactl rdaemon
+m750
+/alsactl-rdaemon/type cN longrun m640
+
+|add_to_bundle("ok-all-but-tty", "brightness")
+/brightness d m750
+/brightness/type cN oneshot m640
+/brightness/up
+CN foreground { redirfd -w 1 /sys/class/backlight/intel_backlight/brightness echo 800 }
+ if { chgrp users /sys/class/backlight/intel_backlight/brightness }
+ chmod g+w /sys/class/backlight/intel_backlight/brightness
+m640
+
+|add_to_bundle("ok-all-but-tty", "containers")
+/containers d m750
+/containers/dependencies cN ok-mount m640
+/containers/type cN oneshot m640
+/containers/up
+CN export TERM "linux"
+ if {
+ zsh -lc "quiet=1 confz site_container_service"
+ }
+ s6-svscanctl -a /run/service
+m644
+
+|add_to_bundle("ok-all-but-tty", "svscan-ccx")
+/svscan-ccx d m750
+/svscan-ccx/type cN longrun m640
+/svscan-ccx-log d m750
+/svscan-ccx-log/consumer-for cN svscan-ccx m640
+/svscan-ccx-log/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/svscan-ccx-log }
+ redirfd -w 1 /run/cgroup2/s6-rc/svscan-ccx-log/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ if { mkdir -p /run/user/ccx.logs }
+ if { chown ccx: /run/user/ccx.logs }
+ if { chmod 700 /run/user/ccx.logs }
+ s6-setuidgid ccx
+ s6-log -- t /run/user/ccx.logs
+m750
+/svscan-ccx-log/type cN longrun m640
+/svscan-ccx/dependencies cN m640
+/svscan-ccx/notification-fd B Mw==
+m640
+/svscan-ccx/producer-for cN svscan-ccx-log m640
+/svscan-ccx/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/svscan-ccx }
+ redirfd -w 1 /run/cgroup2/s6-rc/svscan-ccx/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ if { mkdir -p /run/user/ccx }
+ if { chown ccx: /run/user/ccx }
+ if { chmod 700 /run/user/ccx }
+ s6-setuidgid ccx
+ if { mkdir -p /run/user/ccx/service }
+ s6-svscan -d 3 /run/user/ccx/service
+m750
+
+|add_to_bundle("ok-all-but-tty", "syncthing")
+/syncthing d m750
+/syncthing-log d m750
+/syncthing-log/consumer-for cN syncthing m640
+/syncthing-log/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/syncthing-log }
+ redirfd -w 1 /run/cgroup2/s6-rc/syncthing-log/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ if { mkdir -p /var/log/syncthing }
+ s6-log -b -- n10 s10240000 t /var/log/syncthing
+m750
+/syncthing-log/type cN longrun m640
+/syncthing/dependencies cN ok-mount m640
+/syncthing/producer-for cN syncthing-log m640
+/syncthing/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/syncthing }
+ redirfd -w 1 /run/cgroup2/s6-rc/syncthing/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ /usr/bin/env HOME=/var/lib/syncthing
+ s6-setuidgid syncthing
+ syncthing -logflags 0
+m750
+/syncthing/type cN longrun m640
+/wpa_supplicant d m750
+/wpa_supplicant/dependencies
+CN modules
+ udev
+m640
+/wpa_supplicant/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/wpa_supplicant }
+ redirfd -w 1 /run/cgroup2/s6-rc/wpa_supplicant/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ /sbin/wpa_supplicant
+ -iwlan0
+ -c/etc/wpa_supplicant/wpa_supplicant.conf
+m750
+/wpa_supplicant/type cN longrun m640
+
+
+@for i in X_servers
+/{<i.svc>} d m750
+/{<i.svc>}/data d m750
+/{<i.svc>}/data/.keep cN m640
+/{<i.svc>}/env d m750
+/{<i.svc>}/env/vtN cN {<i.vtN>} m640
+/{<i.svc>}/notification-fd cN 3 m640
+/{<i.svc>}/run l ../.scripts/X.run m777
+/{<i.svc>}/type cN longrun m640
+@endfor
+
+/.scripts d m755
+/.scripts/X.run
+CN #!/command/execlineb -P
+ fdmove -c 2 1
+ s6-envdir env
+ importas vtN vtN
+ export XDG_RUNTIME_DIR /run/service/X${vtN}/data
+ importas XDG_RUNTIME_DIR XDG_RUNTIME_DIR
+ if { truncate -s 0 ${XDG_RUNTIME_DIR}/Xauthority }
+ if { chmod 600 ${XDG_RUNTIME_DIR}/Xauthority }
+ if { chown xorg:xorg ${XDG_RUNTIME_DIR}/Xauthority }
+ if { chown xorg:xorg ${XDG_RUNTIME_DIR} }
+ if {
+ pipeline {
+ if { printf "add :%d . " ${vtN} }
+ if { redirfd -r 0 /dev/urandom xxd -p -l 16 }
+ }
+ xauth -f ${XDG_RUNTIME_DIR}/Xauthority source -
+ }
+ piperw 4 5
+ background -d {
+ fdclose 5
+ if { mkdir -p ${XDG_RUNTIME_DIR}/env }
+ if {
+ redirfd -w 1 ${XDG_RUNTIME_DIR}/env/XAUTHORITY
+ printf "%s/Xauthority" ${XDG_RUNTIME_DIR}
+ }
+ if {
+ fdmove 0 4
+ redirfd -w 1 ${XDG_RUNTIME_DIR}/env/DISPLAY
+ if { printf : }
+ head -n1
+ }
+ fdmove 1 3
+ echo
+ }
+ unexport !
+ fdclose 4
+ fdclose 3
+ umask 077
+ if { chmod 660 /dev/tty${vtN} }
+ if { chown root:xorg /dev/tty${vtN} }
+ if {
+ elglob dev /dev/input/event*
+ if { chown root:input ${dev} }
+ chmod 660 ${dev}
+ }
+ redirfd -r 0 /dev/tty${vtN}
+ redirfd -w 1 /dev/tty${vtN}
+ s6-setsid
+ s6-setuidgid xorg
+ Xorg
+ -displayfd 5
+ -nolisten local
+ -nolisten tcp
+ -quiet
+ # -logfile /dev/stdout
+ -logfile ${XDG_RUNTIME_DIR}/log
+ -auth ${XDG_RUNTIME_DIR}/Xauthority
+ -tst
+ -retro
+ -novtswitch
+ vt${vtN} :${vtN}
+
+m755
|print_bundles()
|}
diff --git a/s6-rc.fileset b/s6-rc.fileset
@@ -119,16 +119,6 @@ CN ok-all-but-tty
gettys
m644
-/ok-all-but-tty d m755
-/ok-all-but-tty/type cN bundle m644
-/ok-all-but-tty/contents
-CN ok-mount
- net-all
- dmesg
- hostname
- modules
- sshd
-m644
/net-all d m755
/net-all/type cN bundle m644
@@ -161,30 +151,7 @@ CN if { ip link set lo up }
pipeline { ip addr show dev lo } grep -q "inet 127\\.0\\.0\\.1"
m755
-/net-eth0-ip d m755
-/net-eth0-ip/type cN oneshot m644
-/net-eth0-ip/dependencies r
-/net-eth0-ip/up
-CN if { ip link set eth0 up }
- if -nt { ip addr add 10.70.145.187/25 dev eth0 }
- pipeline { ip addr show dev eth0 } grep -F -q -e "inet 10.70.145.187/25 "
-/net-eth0-ip/down
-CN ip addr del 10.70.145.187 dev eth0
-m755
-/net-eth0-route d m755
-/net-eth0-route/type cN oneshot m644
-/net-eth0-route/dependencies
-C net-eth0-ip
-
-m644
-/net-eth0-route/up
-CN if { ip link set eth0 up }
- if -nt { ip route add dev eth0 default via 10.70.145.129 }
- pipeline { ip route show dev eth0 default via 10.70.145.129 } grep -q .
-/net-eth0-route/down
-CN ip route del dev eth0 default via 10.70.145.129
-m755
/dhcpcd d m755
/dhcpcd/type cN longrun m644
@@ -247,10 +214,6 @@ CN tty1
tty2
tty3
tty4
- tty5
- tty6
- tty7
- tty8
m644
/tty1 d m755
@@ -269,7 +232,14 @@ CN #!/command/execlineb -P
unexport SERVICE_PID
foreground { /command/issue-gen }
- env LOGIN_TTY=/dev/tty1 /sbin/getty 38400 tty1 linux
+ env LOGIN_TTY=/dev/tty1 /sbin/getty -l login-keepenv 38400 tty1 linux
+m755
+/tty1/finish
+CN #!/command/execlineb -P
+ redirfd -w 1 /dev/tty1
+ fdmove -c 2 1
+ foreground { s6-echo "\nwaiting for session cleanup" }
+ flock /run/ttylock/tty1 true
m755
/tty2 d m755
/tty2/type cN longrun m644
@@ -287,7 +257,14 @@ CN #!/command/execlineb -P
unexport SERVICE_PID
foreground { /command/issue-gen }
- env LOGIN_TTY=/dev/tty2 /sbin/getty 38400 tty2 linux
+ env LOGIN_TTY=/dev/tty2 /sbin/getty -l login-keepenv 38400 tty2 linux
+m755
+/tty2/finish
+CN #!/command/execlineb -P
+ redirfd -w 1 /dev/tty2
+ fdmove -c 2 1
+ foreground { s6-echo "\nwaiting for session cleanup" }
+ flock /run/ttylock/tty2 true
m755
/tty3 d m755
/tty3/type cN longrun m644
@@ -305,7 +282,14 @@ CN #!/command/execlineb -P
unexport SERVICE_PID
foreground { /command/issue-gen }
- env LOGIN_TTY=/dev/tty3 /sbin/getty 38400 tty3 linux
+ env LOGIN_TTY=/dev/tty3 /sbin/getty -l login-keepenv 38400 tty3 linux
+m755
+/tty3/finish
+CN #!/command/execlineb -P
+ redirfd -w 1 /dev/tty3
+ fdmove -c 2 1
+ foreground { s6-echo "\nwaiting for session cleanup" }
+ flock /run/ttylock/tty3 true
m755
/tty4 d m755
/tty4/type cN longrun m644
@@ -323,79 +307,14 @@ CN #!/command/execlineb -P
unexport SERVICE_PID
foreground { /command/issue-gen }
- env LOGIN_TTY=/dev/tty4 /sbin/getty 38400 tty4 linux
-m755
-/tty5 d m755
-/tty5/type cN longrun m644
-/tty5/dependencies cN ok-sysinit m644
-/tty5/run
-CN #!/command/execlineb -P
- getpid SERVICE_PID
- foreground {
- importas -i SERVICE_PID SERVICE_PID
- if { test -d /run/cgroup2 }
- if { mkdir -p /run/cgroup2/s6-rc/tty5 }
- redirfd -w 1 /run/cgroup2/s6-rc/tty5/cgroup.procs
- printf "%s" ${SERVICE_PID}
- }
- unexport SERVICE_PID
- foreground { /command/issue-gen }
-
- env LOGIN_TTY=/dev/tty5 /sbin/getty 38400 tty5 linux
-m755
-/tty6 d m755
-/tty6/type cN longrun m644
-/tty6/dependencies cN ok-sysinit m644
-/tty6/run
-CN #!/command/execlineb -P
- getpid SERVICE_PID
- foreground {
- importas -i SERVICE_PID SERVICE_PID
- if { test -d /run/cgroup2 }
- if { mkdir -p /run/cgroup2/s6-rc/tty6 }
- redirfd -w 1 /run/cgroup2/s6-rc/tty6/cgroup.procs
- printf "%s" ${SERVICE_PID}
- }
- unexport SERVICE_PID
- foreground { /command/issue-gen }
-
- env LOGIN_TTY=/dev/tty6 /sbin/getty 38400 tty6 linux
-m755
-/tty7 d m755
-/tty7/type cN longrun m644
-/tty7/dependencies cN ok-sysinit m644
-/tty7/run
-CN #!/command/execlineb -P
- getpid SERVICE_PID
- foreground {
- importas -i SERVICE_PID SERVICE_PID
- if { test -d /run/cgroup2 }
- if { mkdir -p /run/cgroup2/s6-rc/tty7 }
- redirfd -w 1 /run/cgroup2/s6-rc/tty7/cgroup.procs
- printf "%s" ${SERVICE_PID}
- }
- unexport SERVICE_PID
- foreground { /command/issue-gen }
-
- env LOGIN_TTY=/dev/tty7 /sbin/getty 38400 tty7 linux
+ env LOGIN_TTY=/dev/tty4 /sbin/getty -l login-keepenv 38400 tty4 linux
m755
-/tty8 d m755
-/tty8/type cN longrun m644
-/tty8/dependencies cN ok-sysinit m644
-/tty8/run
+/tty4/finish
CN #!/command/execlineb -P
- getpid SERVICE_PID
- foreground {
- importas -i SERVICE_PID SERVICE_PID
- if { test -d /run/cgroup2 }
- if { mkdir -p /run/cgroup2/s6-rc/tty8 }
- redirfd -w 1 /run/cgroup2/s6-rc/tty8/cgroup.procs
- printf "%s" ${SERVICE_PID}
- }
- unexport SERVICE_PID
- foreground { /command/issue-gen }
-
- env LOGIN_TTY=/dev/tty8 /sbin/getty 38400 tty8 linux
+ redirfd -w 1 /dev/tty4
+ fdmove -c 2 1
+ foreground { s6-echo "\nwaiting for session cleanup" }
+ flock /run/ttylock/tty4 true
m755
/kbd_mode d m755
@@ -405,14 +324,6 @@ CN kbd_mode-tty1
kbd_mode-tty2
kbd_mode-tty3
kbd_mode-tty4
- kbd_mode-tty5
- kbd_mode-tty6
- kbd_mode-tty7
- kbd_mode-tty8
- kbd_mode-tty9
- kbd_mode-tty10
- kbd_mode-tty11
- kbd_mode-tty12
m644
/kbd_mode-tty1 d m755
@@ -427,30 +338,6 @@ m644
/kbd_mode-tty4 d m755
/kbd_mode-tty4/type cN oneshot m644
/kbd_mode-tty4/up cN kbd_mode -u -C /dev/tty4 m644
-/kbd_mode-tty5 d m755
-/kbd_mode-tty5/type cN oneshot m644
-/kbd_mode-tty5/up cN kbd_mode -u -C /dev/tty5 m644
-/kbd_mode-tty6 d m755
-/kbd_mode-tty6/type cN oneshot m644
-/kbd_mode-tty6/up cN kbd_mode -u -C /dev/tty6 m644
-/kbd_mode-tty7 d m755
-/kbd_mode-tty7/type cN oneshot m644
-/kbd_mode-tty7/up cN kbd_mode -u -C /dev/tty7 m644
-/kbd_mode-tty8 d m755
-/kbd_mode-tty8/type cN oneshot m644
-/kbd_mode-tty8/up cN kbd_mode -u -C /dev/tty8 m644
-/kbd_mode-tty9 d m755
-/kbd_mode-tty9/type cN oneshot m644
-/kbd_mode-tty9/up cN kbd_mode -u -C /dev/tty9 m644
-/kbd_mode-tty10 d m755
-/kbd_mode-tty10/type cN oneshot m644
-/kbd_mode-tty10/up cN kbd_mode -u -C /dev/tty10 m644
-/kbd_mode-tty11 d m755
-/kbd_mode-tty11/type cN oneshot m644
-/kbd_mode-tty11/up cN kbd_mode -u -C /dev/tty11 m644
-/kbd_mode-tty12 d m755
-/kbd_mode-tty12/type cN oneshot m644
-/kbd_mode-tty12/up cN kbd_mode -u -C /dev/tty12 m644
/dmesg d m755
@@ -465,13 +352,17 @@ m755
/modules/dependencies cN dmesg m644
/modules/type cN oneshot m644
/modules/up
-CN foreground { modprobe fuse }
+CN foreground { modprobe af_packet }
+ foreground { modprobe thinkpad_acpi }
+ foreground { modprobe iwldvm }
+ foreground { modprobe evdev }
+ foreground { modprobe psmouse }
+ foreground { modprobe elan_i2c }
+ foreground { modprobe snd-hda-intel }
+ foreground { modprobe fuse }
foreground { modprobe overlay }
+ foreground { modprobe kvm-intel }
foreground { modprobe tun }
- foreground { modprobe e1000 }
- foreground { modprobe vmxnet3 }
- foreground { modprobe virtio_pci }
- foreground { modprobe virtio_net }
m755
/dev-coldplug d m755
@@ -494,6 +385,44 @@ C #!/command/execlineb -P
mdevd -D 3 -f /current/conf/etc/mdevd.conf
m755
+/udev d m755
+/udev/dependencies
+CN mount-sys
+ mount-proc
+ mount-dev
+m640
+/udev/notification-fd cN 3 m640
+/udev/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/udev }
+ redirfd -w 1 /run/cgroup2/s6-rc/udev/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ background {
+ sh -xc "until /sbin/udevadm settle --timeout=120; do sleep 0.5; done; echo >&3 settled"
+ #foreground { loopwhilex -x 0 if -nt { /sbin/udevadm settle --timeout=120 } foreground { sleep 0.1 } exit 1 }
+ #fdmove -c 3 1
+ #echo
+ }
+ fdclose 3
+ /sbin/udevd
+m755
+/udev/type cN longrun m640
+
+/swapon-vg-swap d m755
+/swapon-vg-swap/dependencies
+C dev-colplug
+m644
+/swapon-vg-swap/type c oneshot m644
+/swapon-vg-swap/up c swapon /dev/vg/swap m644
+/swapon-vg-swap/down c swapoff /dev/vg/swap m644
+
/openrc d m755
/openrc/type cN oneshot m644
/openrc/dependencies
@@ -558,16 +487,290 @@ CN if -n -t { s6-test -f /etc/ssh/ssh_host_rsa_key }
ssh-keygen -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
m644
-/swap d m755
-/swap/type cN oneshot m644
-/swap/up cN swapon -a m644
-/swap/down cN swapoff -a m644
-/net-eth0 d m755
-/net-eth0/type cN bundle m644
-/net-eth0/contents
-C net-eth0-ip
- net-eth0-route
+/alsa-devices d m750
+/alsa-devices/dependencies
+CN modules
+ udev
+m640
+/alsa-devices/type cN oneshot m640
+/alsa-devices/up
+CN sh -c "
+ retry=true
+ while $retry; do
+ retry=false
+ for card in $(sed -n -e '/^ \\?[0-9]/{s/ *\\([0-9]*\\).*/\\1/;p}' /proc/asound/cards); do
+ $retry && sleep 0.5
+ test -e /dev/snd/controlC${card} || retry=true
+ done
+ $retry && sleep 0.5
+ done
+ :
+ "
+m640
+
+/alsactl-rdaemon d m750
+/alsactl-rdaemon/dependencies cN alsa-devices m640
+/alsactl-rdaemon/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/alsactl-rdaemon }
+ redirfd -w 1 /run/cgroup2/s6-rc/alsactl-rdaemon/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ alsactl rdaemon
+m750
+/alsactl-rdaemon/type cN longrun m640
+
+/brightness d m750
+/brightness/type cN oneshot m640
+/brightness/up
+CN foreground { redirfd -w 1 /sys/class/backlight/intel_backlight/brightness echo 800 }
+ if { chgrp users /sys/class/backlight/intel_backlight/brightness }
+ chmod g+w /sys/class/backlight/intel_backlight/brightness
+m640
+
+/containers d m750
+/containers/dependencies cN ok-mount m640
+/containers/type cN oneshot m640
+/containers/up
+CN export TERM "linux"
+ if {
+ zsh -lc "quiet=1 confz site_container_service"
+ }
+ s6-svscanctl -a /run/service
+m644
+
+/svscan-ccx d m750
+/svscan-ccx/type cN longrun m640
+/svscan-ccx-log d m750
+/svscan-ccx-log/consumer-for cN svscan-ccx m640
+/svscan-ccx-log/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/svscan-ccx-log }
+ redirfd -w 1 /run/cgroup2/s6-rc/svscan-ccx-log/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ if { mkdir -p /run/user/ccx.logs }
+ if { chown ccx: /run/user/ccx.logs }
+ if { chmod 700 /run/user/ccx.logs }
+ s6-setuidgid ccx
+ s6-log -- t /run/user/ccx.logs
+m750
+/svscan-ccx-log/type cN longrun m640
+/svscan-ccx/dependencies cN m640
+/svscan-ccx/notification-fd B Mw==
+m640
+/svscan-ccx/producer-for cN svscan-ccx-log m640
+/svscan-ccx/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/svscan-ccx }
+ redirfd -w 1 /run/cgroup2/s6-rc/svscan-ccx/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ if { mkdir -p /run/user/ccx }
+ if { chown ccx: /run/user/ccx }
+ if { chmod 700 /run/user/ccx }
+ s6-setuidgid ccx
+ if { mkdir -p /run/user/ccx/service }
+ s6-svscan -d 3 /run/user/ccx/service
+m750
+
+/syncthing d m750
+/syncthing-log d m750
+/syncthing-log/consumer-for cN syncthing m640
+/syncthing-log/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/syncthing-log }
+ redirfd -w 1 /run/cgroup2/s6-rc/syncthing-log/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ if { mkdir -p /var/log/syncthing }
+ s6-log -b -- n10 s10240000 t /var/log/syncthing
+m750
+/syncthing-log/type cN longrun m640
+/syncthing/dependencies cN ok-mount m640
+/syncthing/producer-for cN syncthing-log m640
+/syncthing/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/syncthing }
+ redirfd -w 1 /run/cgroup2/s6-rc/syncthing/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ /usr/bin/env HOME=/var/lib/syncthing
+ s6-setuidgid syncthing
+ syncthing -logflags 0
+m750
+/syncthing/type cN longrun m640
+/wpa_supplicant d m750
+/wpa_supplicant/dependencies
+CN modules
+ udev
+m640
+/wpa_supplicant/run
+CN #!/command/execlineb -P
+ getpid SERVICE_PID
+ foreground {
+ importas -i SERVICE_PID SERVICE_PID
+ if { test -d /run/cgroup2 }
+ if { mkdir -p /run/cgroup2/s6-rc/wpa_supplicant }
+ redirfd -w 1 /run/cgroup2/s6-rc/wpa_supplicant/cgroup.procs
+ printf "%s" ${SERVICE_PID}
+ }
+ unexport SERVICE_PID
+
+ /sbin/wpa_supplicant
+ -iwlan0
+ -c/etc/wpa_supplicant/wpa_supplicant.conf
+m750
+/wpa_supplicant/type cN longrun m640
+
+
+/X5 d m750
+/X5/data d m750
+/X5/data/.keep cN m640
+/X5/env d m750
+/X5/env/vtN cN 5 m640
+/X5/notification-fd cN 3 m640
+/X5/run l ../.scripts/X.run m777
+/X5/type cN longrun m640
+/X6 d m750
+/X6/data d m750
+/X6/data/.keep cN m640
+/X6/env d m750
+/X6/env/vtN cN 6 m640
+/X6/notification-fd cN 3 m640
+/X6/run l ../.scripts/X.run m777
+/X6/type cN longrun m640
+/X7 d m750
+/X7/data d m750
+/X7/data/.keep cN m640
+/X7/env d m750
+/X7/env/vtN cN 7 m640
+/X7/notification-fd cN 3 m640
+/X7/run l ../.scripts/X.run m777
+/X7/type cN longrun m640
+/X8 d m750
+/X8/data d m750
+/X8/data/.keep cN m640
+/X8/env d m750
+/X8/env/vtN cN 8 m640
+/X8/notification-fd cN 3 m640
+/X8/run l ../.scripts/X.run m777
+/X8/type cN longrun m640
+
+/.scripts d m755
+/.scripts/X.run
+CN #!/command/execlineb -P
+ fdmove -c 2 1
+ s6-envdir env
+ importas vtN vtN
+ export XDG_RUNTIME_DIR /run/service/X${vtN}/data
+ importas XDG_RUNTIME_DIR XDG_RUNTIME_DIR
+ if { truncate -s 0 ${XDG_RUNTIME_DIR}/Xauthority }
+ if { chmod 600 ${XDG_RUNTIME_DIR}/Xauthority }
+ if { chown xorg:xorg ${XDG_RUNTIME_DIR}/Xauthority }
+ if { chown xorg:xorg ${XDG_RUNTIME_DIR} }
+ if {
+ pipeline {
+ if { printf "add :%d . " ${vtN} }
+ if { redirfd -r 0 /dev/urandom xxd -p -l 16 }
+ }
+ xauth -f ${XDG_RUNTIME_DIR}/Xauthority source -
+ }
+ piperw 4 5
+ background -d {
+ fdclose 5
+ if { mkdir -p ${XDG_RUNTIME_DIR}/env }
+ if {
+ redirfd -w 1 ${XDG_RUNTIME_DIR}/env/XAUTHORITY
+ printf "%s/Xauthority" ${XDG_RUNTIME_DIR}
+ }
+ if {
+ fdmove 0 4
+ redirfd -w 1 ${XDG_RUNTIME_DIR}/env/DISPLAY
+ if { printf : }
+ head -n1
+ }
+ fdmove 1 3
+ echo
+ }
+ unexport !
+ fdclose 4
+ fdclose 3
+ umask 077
+ if { chmod 660 /dev/tty${vtN} }
+ if { chown root:xorg /dev/tty${vtN} }
+ if {
+ elglob dev /dev/input/event*
+ if { chown root:input ${dev} }
+ chmod 660 ${dev}
+ }
+ redirfd -r 0 /dev/tty${vtN}
+ redirfd -w 1 /dev/tty${vtN}
+ s6-setsid
+ s6-setuidgid xorg
+ Xorg
+ -displayfd 5
+ -nolisten local
+ -nolisten tcp
+ -quiet
+ # -logfile /dev/stdout
+ -logfile ${XDG_RUNTIME_DIR}/log
+ -auth ${XDG_RUNTIME_DIR}/Xauthority
+ -tst
+ -retro
+ -novtswitch
+ vt${vtN} :${vtN}
+
+m755
+
+/ok-all-but-tty d m755
+/ok-all-but-tty/type cN bundle m644
+/ok-all-but-tty/contents
+C net-all
+ ok-mount
+ hostname
+ loadkeys
+ setfont
+ dmesg
+ modules
+ swapon-vg-swap
+ sshd
+ alsactl-rdaemon
+ brightness
+ containers
+ svscan-ccx
+ syncthing
m644
@@ -575,7 +778,6 @@ m644
/net-all/type cN bundle m644
/net-all/contents
C loopback
- net-eth0
unbound
m644