On Sun, Mar 17, 2019 at 03:30:02PM +0100, Oliver Schad wrote: > https://gitlab-2.asag.io/snippets/7
A closer look at this snippet reveals that most changes therein are: 1. Customisations of `s6-log.rc', probably modifying the logging user. 2. Addition of unshipped services (eg. postfix). 3. Deletion of unused services (eg. dcron and busybox cron). 4. Other regular customisations similar to what I showed yesterday. Regarding 1, if you (as I guessed) want to just use `nobody' for all logs (which is, BTW, strongly discouraged!), I have just pushed commit a1ffc647 so you can simply delete `s6-log.rc' of services for this purpose, provided that you do not plan to change the $args or $logd of these services. Regarding 2 and 3, and noticing the presence of `db' and `prep.main' (BTW, `prep.main' and `db/old.main' are supposed to be deleted after successful `lib/build.rc'/`s6-rc-update' invocations), it is likely that you directly cloned slew's git repository into /etc. I personally think this makes updating complicated; and since git ignores ownership, permission bits (except for the `x' bit) and empty directories, the structure of /etc/slew would drift from the expected status in certain conditions. Instead, I think a better way to distribute slew is to break it into multiple packages for the intended distro, with the packaging script(s) essentially performing the jobs of yesterday's `slew-build.sh' and `ubuntu-conf.sh': * A "base" package: including the `init' / `run' directories, absolutely essential services in `base', and a small `main' config somewhat like the shipped one). * Multiple packages for other services (eg. OpenVPN and wpa_supplicant): each including the necessary service definitions in `base', and corresponding ancillary files in `misc'. * The most important ancillary files are preprocessing passes like `misc/openvpn/70-openvpn.rc', which should of course be installed into /etc/slew/lib/prep. They are not directly put into `lib/prep' because unlike extra service definitions in `base', extra preprocessing passes results in actual overhead when `lib/prep.rc' is run. (The user can disable preprocessing passes by removing the `x' bit from the corresponding files, cf. `lib/prep.rc'). * Patches like `misc/thinkfan/thinkfan-0.9.3-fglog.patch' are intended to be applied to distro packages to increase their compliance with s6's way of longrun management (usually about logging), and therefore can be omitted from the service packages. Other ancillary files are intended to be installed into locations outside of /etc/slew, like `misc/wpa_supplicant/wpa_cli.rc' should be installed into /etc/wpa_supplicant, in accordance with `base/wpacli./run'. Perhaps these intentions were not as clear as I thought they should implicitly (inferred from the codebase) be; I am sorry for that. -- My current OpenPGP key: RSA4096/0x227E8CAAB7AA186C (expires: 2020.10.19) 7077 7781 B859 5166 AE07 0286 227E 8CAA B7AA 186C
