carbon-config

config submodule of carbon-core-system
git clone https://ccx.te2000.cz/git/carbon-config
Log | Files | Refs

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:
MMakefile | 23++++++++++++++---------
Mconfig.aat | 34+++++++++++++++++++++++++++++-----
Mfs | 59++++++++++++-----------------------------------------------
Afstab_to_fs | 5+++++
Mpostinstall | 19+++++++++++++++++++
Mpostinstall.aat | 56++++++++++++++++++++++++++++----------------------------
Mpostinstall.fileset | 36------------------------------------
Mpostinstall.rsfilter | 7-------
Ms6-rc.aat | 342+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
Ms6-rc.fileset | 518+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
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