| 6 Mar 2025 |
Alyssa Ross | We could just install a symlink to a /etc (or /run/current-system) subdirectory in /usr | 22:26:29 |
eliasp | gdamjan the thing is, it still evaluates the unit in transient, but apparently doesn't apply all directives... Documentation= works, ExecStart= doesn't
nonetheless, I agree that it would be nice to have them all in /usr instead of /etc, but yeah - a looot of work | 23:20:04 |
eliasp | but while we're at it - anyone feels like picking up my systemd-localectl-archive-path branch (fix for #267101 and successor of #375062)
I don't have time for it right now and I can't figure out, why my patch shows now effect… | 23:22:06 |
eliasp | but while we're at it - anyone feels like picking up my systemd-localectl-archive-path branch (fix for #267101 and successor of #375062)?
I don't have time for it right now and I can't figure out, why my patch shows now effect… | 23:22:13 |
eliasp | but while we're at it - anyone feels like picking up my systemd-localectl-archive-path branch (fix for #267101 and successor of #375062)?
I don't have time for it right now and I can't figure out, why my patch shows no effect… | 23:22:24 |
| 7 Mar 2025 |
Arian | I think the fix here is that we shouldn't put nix generated config in /etc we should put it in /nix/store and extend SYSTEMD_UNIT_PATH | 07:47:07 |
Arian | That's my take | 07:47:31 |
Alyssa Ross | libeconf has the same weird ordering and is being pushed pretty hard for projects to implement the UAPI Group's Configuration Files Specification, so if we continue avoiding /usr for config files it won't just be systemd we need to patch. | 08:04:37 |
K900 | Does it mean /usr as in /usr | 08:05:42 |
K900 | Or /usr as in $prefix | 08:05:48 |
Arian | Well systemd's build system already doesn't respect $prefix . We patch that in | 08:06:11 |
Arian | For e.g. udev and tmpfiles | 08:06:20 |
Arian | They hardcode /usr in the c code | 08:06:38 |
Arian | :( | 08:06:39 |
Arian | In a lot of places | 08:06:42 |
Arian | * Well systemd's build already doesn't respect $prefix . We patch that in | 08:06:59 |
Arian | But what I mean is. When we run tools that support pointing to config through a cli argument we should use that | 08:08:11 |
Arian | Instead of /etc | 08:08:16 |
Arian | Run tmpfiles with --definitions ${blah} | 08:08:35 |
Arian | Run systemd with --units-dir ${blah} | 08:08:50 |
Arian | Ignore all this silly FHS stuff | 08:09:01 |
Arian | Pointless waste of time for us | 08:09:21 |
Arian | Things should be in the nix store except for some really rare exceptions | 08:09:47 |
Arian | And that approach doesn't require patches | 08:10:55 |
Arian | We should simply have no /etc except for some very exceptional legacy cases | 08:11:32 |
Arian | And avoid it at all cost. | 08:11:40 |
Arian | It's the same philosophy as hermetic usr but one step further | 08:11:55 |
Arian | It relies on software being configurable at runtime where to read their config from but this is almost always the case | 08:13:19 |
Ramses 🇵🇸 | But if you do that, can you easily change the unit dir when switching generations? Looking at the systemctl manpage, I don't immediately see a way to change the value of this flag | 10:03:22 |
Arian | It's an environment variable. It gets picked up on systemctl daemon-reexec | 10:30:21 |