s6/s6-rc policy for Gentoo: XDG Base Directory Specification

Paul Sopka <[email protected]> Sat, 6 Jul 2024 01:35:23 +0200
Newsgroups gmane.comp.sysutils.supervision.general
Message-ID <[email protected]>
To keep all the stuff a bit organized, I will open another "thread" for 
this.

I have read through 
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html 
and to me the standards seem sensible. Most of it is the default of most 
if not all modern desktop programs anyway.

Therefore I would like to completely comply with them in this policy. 
This involves, but is not limited to, putting the live dir in 
XDG_RUNTIME_DIR. Bercot warned me in 
https://skarnet.org/lists/supervision/3114.html that this might be 
dangerous since it could be removed to quickly upon logout.

 From the start on, I planned to have all the XDG_* env's managed by the 
s6-rc system service which sets up the user supervision tree. This means 
setting the env's and, in the case of XDG_RUNTIME_DIR, creating and 
removing the directory on demand. By implementing this directly in the 
service with correct dependencies, this becomes completely safe and 
reliable.

Another suggestion was to delegate the creation and removal of 
XDG_RUNTIME_DIR to the login monitoring program (which will most likely 
be Turnstile), see https://skarnet.org/lists/supervision/3117.html. I do 
not think this is the best idea. Instead, I want to push as much basic 
functionality as possible to the s6/s6-rc services, for the following 
reasons:

1) s6/s6-rc is simple, fast and reliable

2) this allows for an easier future substitution of external programs 
used (e.g. substituting Turnstile for an alternative)

3) This allows for more fine grained control by the 
sysadmins/distribution contributors.

4) The service setting up and supervising the user tree is perfectly 
suited for this, my current, working implementation of creating and 
deleting XDG_RUNTIME_DIR containing the live dir consists of two lines 
of execline


Do you all have any objections/see any issues with the XDG Base 
Directory Specification and adhering to them?

Do you see any issues with my idea of how to handle the XDG_RUNTIME_DIR?

Any input is welcome!


Paul
OpenPGP_0x71C7C85A2EA30F62.asc (application/pgp-keys, 3.1 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
8QRhtw==
=hu4K
-----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc (application/pgp-signature, 840 B)
-----BEGIN PGP SIGNATURE-----

wsF5BAABCAAjFiEEklpwGqZx1YzBW1hqccfIWi6jD2IFAmaIgzsFAwAAAAAACgkQccfIWi6jD2Kd
xw//e0Bu/fcT8RYX6QSdjrvmTZztBESvvqbKc/w/yD3CkIbWUnXwyoTHr3SlrxOoBOnK6sD3JZNL
+yaZRBhJXBuCPIhLqMfvXLV201xpwilNt9G1vCYdILRAfP3J4bHdxXGFmMFcSs16pKbqbvJigZTw
E5/kD9ZTH2TFmO+xm9EeEGf5NEzmjhnZZpxFzv4pISrQQsMkHGjgdZD/j1PoDvxc4zuieArpsjwJ
xZCzt5GDW4HciUJfs4A2W9kAHi2GS8rMjKhXgp3FCCQJbnLVu3XPhkiahhoLv8VXHWzMVo0m98OD
zmSDokEkx3qgCJtL/UPFqw0ZNDNyErV13lUsHxxWu4FQWr8ctYjkGYL8Fby8gVY7Toqqbu22cmLs
/38IbOjTBb/ucfNt+jMHVJkE+hhMlixTVq6QxmRg6vhQva66Rj5uk1c+4VjrePZjrpUskYLPG46t
+JOBaeqIExUilUVFGdhGLOI9xIqJ7VItIK1FtjveCquaGjCPaJjLr0ZY0R/BuYHe06VlQ5k6+BcE
AJtRTOX57clu37DUKFIL2ad45VGX9ClmoCQwlW6ZMP8t9c4MJeHeYS5YWN42PoeK/0xPUYIE6Jqx
Pg5RyjAtA6KbeY0BQpnpPnWUzk7EH01MzDXYt64gqVkxniOUcsdV5eyd2gmIHsrhl9BTZP250gzO
Njs=
=SL3o
-----END PGP SIGNATURE-----