mount-tmpfs
Adding an entry for /tmp to fstab results in it being over-mounted because mount-tmpfs unconditionally sets up a tmpfs on it before mount-filesystems is run.
$ findmnt /tmp
TARGET SOURCE FSTYPE OPTIONS
/tmp tmpfs tmpfs rw,relatime,inode64
/tmp /dev/mapper/vg0-tmp ext4 rw,relatime
Fix is to patch mount-tmpfs/up to first check if an entry for /tmp exists in /etc/fstab. There's no nice way to silence findmnt so some redirfd ugliness is employed here:
#!/bin/execlineb -P
foreground {
if -n { redirfd -w 1 /dev/null redirfd -w 2 /dev/null findmnt --fstab --mountpoint /tmp }
mount -t tmpfs tmpfs /tmp
}
On a related note, there's presently nothing that seems to clear /tmp during boot unlike when using OpenRC. One simple solution (if desired) could be to add the --clean flag to tmpfiles-setup which would cause anything older than 10 days under /tmp to be removed by default, but additionally also from /var/tmp and /var/cache/man, which might be less wanted.
gpm
The gpm service is started with the -D flag to produce logs to stdin rather than to syslog. This has the unfortunate side effect of also enabling debug messages which come at such a rate the log file gets filled to multiple megabytes very quickly, causing log rotates to take place unnecessarily often and making the logs themselves rather unreadable. This can be remedied by adding a directive to filter them out in /etc/s6/config/gpm.conf so it's brought in line with its normal syslog output:
DIRECTIVES="n3 s2000000 T -^\\*{3}\\sdebug"
dmesg-log
dmesg-log/run contains a line to test if /var/log/dmesg is a file rather than a directory and tries to remove it if so. It's placed before the test block for a writable /var/log so it's bound to fail during boot if it isn't. I don't know why exactly that piece of code exists or when it's meant to run, but I assume it can come into play when e.g. having switched inits, so how necessary it is to change depends on how crucial its existence is in the first place or if it could simply be removed altogether. In any case, moving the piece of code from line 2 to inside the ifelse block takes care of it. Additionally, it's required to add remount-root or another later service to its dependencies, as otherwise the log-service-reload.sh script would still cause issues.