From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: from alyss.skarnet.org (alyss.skarnet.org [95.142.172.232]) by inbox.vuxu.org (Postfix) with SMTP id B20522353A for ; Mon, 8 Jul 2024 14:55:58 +0200 (CEST) Received: (qmail 23331 invoked by uid 89); 8 Jul 2024 12:56:23 -0000 Mailing-List: contact supervision-help@list.skarnet.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Received: (qmail 23324 invoked from network); 8 Jul 2024 12:56:23 -0000 X-Virus-Scanned: Debian amavisd-new at web14.point.ch DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sopka.ch; s=default; t=1720443353; bh=MOtvKl0wf3zoLJsMP0I2EUXkszRF27TkDP5cU+KaDGQ=; h=Received:Received:Subject:To:From; b=oHzChdXF+/Hnmi7OyHUlsmZp89kA/M9hGQMa/20dWTjAx24TXXiQetM8t4KJhzop7 ++Y/xaMO75G8l4wGnWILKlvr0VlLWPQ4Gxx1Xj/WwFRQmC2PqlLTweKG5cGViWzk0a CINy+MLzzwTn9jRar0eC7+WsVSpPfmzgX9K/CSOhrruQydg+vAG/wuzIMKAFsGRShl ptCzf6MYWsBAD4nkTtr+LQWr9qRWUTMNDnhdnaegu2mhEGRp1N0YqTu7BstmoZhQ4y qHnLJc77PZY7iHJKZCPWngBIrpsJteB8N6fvE9B1Xo8/0Yev9PXaUF1+HlbSeLslak pvcSavXp+DWHA== Authentication-Results: plesk.origon.ch; spf=pass (sender IP is 127.0.0.1) smtp.mailfrom=psopka@sopka.ch smtp.helo=plesk.origon.ch Received-SPF: pass (plesk.origon.ch: localhost is always allowed.) client-ip=127.0.0.1; envelope-from=psopka@sopka.ch; helo=plesk.origon.ch; Authentication-Results: plesk.origon.ch (amavisd-new); dkim=pass (2048-bit key) header.d=sopka.ch Received-SPF: pass (plesk.origon.ch: connection is authenticated) Message-ID: Date: Mon, 8 Jul 2024 14:55:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: s6/s6-rc policy for Gentoo: XDG Base Directory Specification To: Carlos Eduardo , supervision@list.skarnet.org References: <3ed2cd6a-660b-4a3d-b456-584650790f4c@sopka.ch> Content-Language: en-US From: Paul Sopka Autocrypt: addr=psopka@sopka.ch; keydata= xsFNBGW5FlEBEACi9wDm7vnwoxMy6ejpZQh2Z1Mpr4fTKJyWLn3sZFAjmQKcsT/ORt0rVSBO 5eXoGjbk5Hor2l67mui85a4KWawHbYFC95hpA9K/alfGyQH56SnL5G55DDcz3avkLrJ9bHJD 4y4ScEzweYW2IjYr90FKqZWWcdqzYDqmqRtf5/rdkmY6YVtpBISIfYNbBRPE3CJuY7HOpQ4s qAmb5iRsXN38hv7UQj9MsJl5Q0cxgcFcRGy9dAM5voX1Xh+h9svS1MZuaxzyLR0YvCzAcY8c 7uUsXjj67/NmeHpl5pYHiT19g/wcHbudYLI+pikx4EcskinZ1peZbrbBdVdBeOtukBzaMuFe dOcSpAWbDDK7e4cwZnPse130FjNECzIrNAB2lK2rb9f2PCyZSRCW7QBG63IUREWZTLBm47Dy avMzh+wGV6Jx6kigdngJDtIXXDzw2ZWAMMT2MEPX4HC1POH8b1DZ/QxzC+2SQbJNfrQitm0K kOo8o2gqMpuBABAYzQwRJXNteeW5ZccbgdQ0+m61kV/P71bmeiasvJGyecxzOfRUDei7b3Lh 8O5xPHP1dq23E9R76fCaCCiutfiZT5zT5dbn8XGqBmKI9z8VGEfCBdFbopZd4fpQPmVNWlR0 yrM7DnHST1OJtGZ2/gwk0Py2dO+lbZDQMqVRVYXT1dYenwYa5QARAQABzRxQYXVsIFNvcGth IDxwc29wa2FAc29wa2EuY2g+wsGUBBMBCgA+FiEEklpwGqZx1YzBW1hqccfIWi6jD2IFAmW5 FlECGwMFCQeEzgAFCwkIBwMFFQoJCAsFFgIDAQACHgUCF4AACgkQccfIWi6jD2KbNw//QSMh 6QRTxCRHVJGp4vHAz6hWt/zimRbVkO0t4Q/5uXClRnMzZqqE+TLubNRy560Y/LxuQ4phB/O4 mcHRqbV9Xrarx98jWNqMgsGhD60W3uxr6RRObeB0+PpRHVhzzqAMtWh6OZGQ9+vJJf3Q4Axw o/cafNgm2V0MOWsVFUxUVUbDsR8aZP7RyDRJRv5v6T4pu4Jjd9BH+UxfsG5dvE2Jqj4/a5OI cJ0XlMSkJxHorDjxLGNFJ8pTcH3/Y7eWmPL0U6kKS99ol763V5LEOnQnqpbwqCalwumgYoXw HCahiZlmX2Zl4omf9zHvgzADk66rNvZUvBAIMXDWAoWjL9IxxqTIVUjJk0cv3jN8fZc309s4 0jDQze3LDSCp9+7SP//jlgADsvfUxJemvoqDYpANrt/wEZ9lxr5doi0R2CEPbfPkmWyaGUcF BdlVAaYCL5Sg++OfyjCeu4MAC1JZfHOBjQbzwKhG4MqZs8O1Snr42JvbyzonDckl7UJUZwCh UPO4GrFu8zQxqa2ZDx/zok6+bMD0ggDXj6svGUzGqMxOr4bJa7MxUQ1iIXYl0WTEFbTT9GTi 3nxXt0ZPyHN1f9GXgGAB5Qc8hpgm6VFewjeohNvaxOpcMCXBYWX9DcuNuKMwofOpGV2hse3b Owy13+ci7sb/A2RBC0wBKV/20iuLxFrOwU0EZbkWUQEQAMMWfQpVgrSLCMspW5lkjvl+0Bz1 XurJzUF9OcLP2DSRHEuYNlc+XBvPxh1F3vJfv1Ts79ayDi7YQn+sVTtkGja2RnzXIzrfnodg Ye4F71mW9IjYN6Pl3oUBCBB8vJt1oTwNfRugLGP0ZA5T8ntHP3ryUnBlSr3rTQp8JuOJ/9An thWDHHoP8qIy9HNDdinDNVpHhGJ4w4CtM2QwFh33ZYXY7qFGOwKdnU1AehJ/Ld5O/XIVPHma NGuWgXKVlvrCejifD03cRfbwqQA08VQk6/8rLco25EXpKKfqZpKQHibFTvNF0bKWs7RhFmHq qzqxAWTsXK/S9yOpbad/HShHBpDiKtyit2zaU+DBg2JsHW1KtISO6ssYyQ1yN8THF4xbOO1x T/bGsfZKC16bZHG9nemzDgcR05recLvZrti8z+55GHL19SJzVAKZ4TdX/2MGIfPoywMcrs5O IswzIWILz9KwmhqlFop3MzG0Fmv7dxW9Zf3MFd0Zw1BwuQxm0D1+gFHViuhRi803Stfb9qP+ CwSNwsjAQznMFeFKKO/S6yWpK0bMxt3Io09+rlW/rwhPwl/j8Xwcynr9PDhyBbjhsM30tNzL vJyy0l8aF+GBGX9JcqjHU1bxM1RQTDHJI1erJaaySZzKqdjYVI/4buGCsUt2lJds6jyy/GPT ZKGV9iALABEBAAHCwXwEGAEKACYWIQSSWnAapnHVjMFbWGpxx8haLqMPYgUCZbkWUQIbDAUJ B4TOAAAKCRBxx8haLqMPYjOmD/9UjqgchWIApSbllaT+o+rf2ZSDVCCcMnv6sVzs04dAGtn9 EyUueishIsbOOH11eRpwnQOMoK4/7MltnRIf0ksX9uho7pDtpPJfveQIKZ+sTwpOdiy1yQdl T2j1RDtzph+v96KEqa7B9AI4F/34/0a86OJiLs85ystwMw2mTxiz6Qi0W+nCSxpJr1s1HVfl tzkU8ggXfeas0o955VoSHkgwDTjT+gw75nOX/26kMjFQ8zImWPIf/jvPhq+9yMBuP0iQS+hs 1m8xQ7Gd7tG2I5G6kLGEack3bphGzlsPatSznHi6rnmzVOQI3/vag7oXvNJI6GAZMIUQ5h+l NbGnOBb/M3inTVgyJruNP7Q1fPIUHG++/5DXWP1uuKJxYGGI/As2tz2lHbWzP7y6jaJvBBjG qPk8JwBfK98JSH4VvJStF9Ga+QFCCXb2TUeIIS/mVQ3gAln0g2hsZ0QsMvuohk300noV97Yn XEKGUXKwOnfpHAxCYreqzMHInyDm6YciMR2JADhB5tS7KUWmQP2j0lYrEZZJmZ+bu9Edrv/v 67mNDnzCANN1UhuoKODK2Wijcmbtu/7d78SBzxTEjh3RXMZKLS57N78fNnEGnuF9IS9vOU43 y5QCmGCCZsf/r5d5hx2yxqrNInoPiGuY64XUMJXfFbA36ZPoLsvxoK0+8QRhtw== In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------znfhlWlke5jEs3rH0venZMiZ" X-PPP-Message-ID: <172044334928.2753833.9276074527928500568@plesk.origon.ch> X-PPP-Vhost: sopka.ch --------------znfhlWlke5jEs3rH0venZMiZ Content-Type: multipart/mixed; boundary="------------0JgB8kVadPvg20wLqw0zCg6N"; protected-headers="v1" From: Paul Sopka To: Carlos Eduardo , supervision@list.skarnet.org Message-ID: Subject: Re: s6/s6-rc policy for Gentoo: XDG Base Directory Specification References: <3ed2cd6a-660b-4a3d-b456-584650790f4c@sopka.ch> In-Reply-To: --------------0JgB8kVadPvg20wLqw0zCg6N Content-Type: multipart/mixed; boundary="------------LNW30nsZasbcxPsu0dlJIXBT" --------------LNW30nsZasbcxPsu0dlJIXBT Content-Type: multipart/alternative; boundary="------------4lOQLfJiwq8N1PFPgEXlpTvO" --------------4lOQLfJiwq8N1PFPgEXlpTvO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQo+IFlvdSdyZSBtYWtpbmcgbW9yZSB3b3JrIGZvciB5b3Vyc2VsZiBhbmQgdGhlIHBlb3Bs ZSB3aG8nZCBoZWxwIHlvdQ0KPiBtYWludGFpbiB0aGUgc2VydmljZSBzZXQsIGFuZCBtYWtp bmcgYW4gczYgcG9saWN5IHdpdGggbW9yZQ0KPiBhc3N1bXB0aW9ucy4NCkkgZGlzYWdyZWUu IElmIHRoZSBtb3N0IGltcG9ydGFudCB3b3JrIGlzIGRlbGVnYXRlZCB0byB0aGUgc2Vydmlj ZSANCnNjcmlwdHMsIG9uY2UgaXQgd29ya3MsIGl0IHdvcmtzLiBGb3JldmVyLiBFYXN5IHRv IGFkYXB0IGFuZCByZXBsYWNlIGJ5IA0Kc3lzYWRtaW5zL3VzZXJzLg0KDQpFeHRyZW1lbHkg cmVseWluZyBvbiBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IG9mIGFuIGV4dGVybmFsIHByb2dy YW0sIA0KZm9yY2VzIHRoZSBtYWludGFpbmVyIHRvIHRpZ2h0bHkgbW9uaXRvciB0aGUgcHJv Z3JhbXMgZGV2ZWxvcG1lbnQgYW5kIA0KZXh0ZW5zaXZlbHkgdGVzdCBhbGwgaXRzIHJlbGVh c2VzLCBpbiBwcmFjdGljZTogZm9yY2luZyB0aGUgcG9zc2libGUgDQpUdXJuc3RpbGUgcGFj a2FnZSBvbiBHZW50b28gdG8gaGF2ZSB0aGUgc2FtZSBtYWludGFpbmVyKG1haW50YWluaW5n IA0KZ3JvdXApIGFzIHRoZSBwb3NzaWJsZSBzNi9zNi1yYyBwcm9maWxlLiBJdCBhbHNvIGZv cmNlcyBtb3JlIGFzc3VtcHRpb25zIA0Kb24gZXZlcnlib2R5LCBzaW5jZSB3ZSBuZWVkIHRv IGNvbXBseSB0byB0aGUgZXhhY3Qgd2F5IFR1cm5zdGlsZSBzb2x2ZXMgDQp0aGluZ3M6DQoN Cj4gTm9uIGRhZW1vbnRvb2xzLXN0eWxlIHN1cGVydmlzb3JzLCBzdWNoIGFzIGRpbml0ICh3 aGljaCBpcyBUdXJuc3RpbGUncw0KPiBkZWZhdWx0KSwgYWxzbyBkb24ndCBwcm92aWRlIGEg c2ltcGxlICJzZXR1aWRnaWQiIHByaXZpbGVnZSBkcm9wcGVyLA0KPiBzbyB0aGV5J2xsIGhh dmUgbGl0dGxlIHVzZSBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5IHVubGVzcyB0aGV5IGFkZCBt b3JlDQo+IGRlcGVuZGVuY2llcyBvciBiZWNvbWUgbW9yZSBlcnJvci1wcm9uZS4NClRoaXMg c2hvd3MgaXQgcXVpdGUgbmljZSwgYXMgaXQgd291bGQgaGF2ZSBtZSBuZWVkIHRvIGFsaWdu IG1vcmUgdG8gdGhlIA0KbGltaXRhdGlvbnMgb2YgZGluaXQsIGV2ZW4gdGhvdWdoIEkgZG8g aGF2ZSB0aGUgdG9vbHMgZm9yIHRoZSBqb2IuIA0KUnVubmluZyB0aGUgYmFja2VuZCBhcyBy b290IGNvdWxkIGp1c3QgYmUgYWRkZWQgYXMgYSBjb25maWcgb3B0aW9uIHRvIA0KVHVybnN0 aWxlLg0KDQpCdXQgSSB0aGluayB3ZSBhcmUgYXBwcm9hY2hpbmcgcGhpbG9zb3BoaWNhbC9z dWJqZWN0aXZlIGdyb3VuZHMgaGVyZS4NCg0KSXQgaXMgZ29vZCB0aGF0IHdlIGRldmVsb3Ag b3VyIG93biBpbnRlcnByZXRhdGlvbnMgb2YgInRoZSBiZXN0IiANCnNvbHV0aW9uLCBsZWFy bmluZyBmcm9tIGFuZCBjcml0aWNpemluZyBlYWNoIG90aGVyLg0KDQoNCj4gVGhlcmUncyB0 d28gYWRkaXRpb25hbCBhcmd1bWVudHM6ICIkc3J2X2RpciIsIGEgZm9sZGVyIHRoYXQncw0K PiBkZWRpY2F0ZWQgdG8gdGVtcG9yYXJ5IGZpbGVzIGZvciB0aGUgc2VydmljZSBtYW5hZ2Vy ICh3aGljaCBzZWVtcyB0bw0KPiBtZSB0byBiZSB0aGUgaWRlYWwgcGxhY2UgZm9yIHM2LXN2 c2NhbidzIHNjYW4gZGlyZWN0b3J5IGFuZCBzNi1yYydzDQo+IGxpdmUgZm9sZGVywrkpLCBh bmQgIiRjb25mZGlyIiwgd2hpY2ggaXMgdGhlIHBhdGggdG8gd2hlcmUgdGhlDQo+IGNvbmZp Z3VyYXRpb24gZmlsZXMgcmVzaWRlICh3aGljaCBjYW4gc2VydmUgYXMgdGhlIHN0b3JhZ2Ug cGxhY2UgZm9yDQo+IGFuIGVudmlyb25tZW50IGZpbGUpLg0KSXQgc2VlbXMgbGVzcyB0aGVu IGlkZWFsIHRvIG1lIHRvIHVzZSB0aGUgZmlsZXN5c3RlbSBhcyBhIHRlbXBvcmFyeSANCnN0 b3JhZ2UsIHdoZW4gYWxsIHRoYXQgaXMgbmVlZGVkIGFyZSBhIGhhbmRmdWwgZW52aXJvbm1l bnRhbCB2YXJpYWJsZXMsIA0Kd2hpY2ggY2FuIGVhc2lseSBiZSBwYXNzZWQgdG8gdGhlIGJh Y2tlbmQuDQoNCg0KPiBTZWUgYC9ydW4vc2VydmljZS9zNnJjLWZkaG9sZGVyLWZpbGxlci9y dW5gIG9uIHlvdXIgbWFjaGluZSBmb3INCj4gYW5vdGhlciBzb2x1dGlvbjogaGF2ZSAncmVh ZHknIGJlIG9ubHkNCj4NCj4gYGBgDQo+IHM2LXJjIC1sICIkc3RyaW5nIiAtdXAgY2hhbmdl IGRlZmF1bHQNCj4gYGBgDQo+DQo+IGFuZCAncnVuJyBiZQ0KPg0KPiBgYGANCj4gLi4uIGZk bW92ZSAtYyAzIDEgcGlwZWxpbmUgLWR3IHsgaWYgLW50IHsgczYtcmMtaW5pdCB9IHM2LXN2 c2NhbmN0bCAtdA0KPiAuLi4gfSBmZHN3YXAgMyAxIHM2LXN2c2NhbiAtZDMgLi4uDQo+IGBg YA0KPg0KPiBJbnN0ZWFkIG9mIGp1c3QgczYtc3ZzY2FuIChpLiBlLiBmZWVkIHRoZSByZWFk aW5lc3Mgbm90aWZpY2F0aW9uIHRvDQo+IGFub3RoZXIgc3RlcCBpbnN0ZWFkIGRpcmVjdGx5 IHNlbmRpbmcgczYtc3ZzY2FuJ3Mgbm90aWZpY2F0aW9uIHRvDQo+IHR1cm5zdGlsZSkuDQpU aGFua3MsIHdpbGwgdGVzdCENCg0KDQo+IEdpdmVuIGRpbml0IGhhcyB0aGUgc2VydmljZSBt YW5hZ2VtZW50IGFuZCBzZXJ2aWNlIHN1cGVydmlzaW9uIGxheWVycw0KPiBpbiB0aGUgc2Ft ZSBleGVjdXRhYmxlLCBUdXJuc3RpbGUncyBhdXRob3JzIHByb2JhYmx5IGV4cGVjdCB0aGUN Cj4gc2VydmljZSBtYW5hZ2VtZW50IGxheWVyIGJlaW5nIHVwIGFuZCBydW5uaW5nIGJ5IHRo ZSB0aW1lICdydW4nIGhhcw0KPiBub3RpZmllZCByZWFkaW5lc3MsIHdoaWNoIGlzIHBvc3Np Ymx5IHdoeSB0aGV5IGRpZG4ndCBib3RoZXIgZXhwb3J0aW5nDQo+IHZhcmlhYmxlcyBpbiB0 aGUgInJlYWR5IiBzY3JpcHQuDQpBZGRpbmcgdGhlIGFiaWxpdHkgdG8gcGFzcyB0aGUgZW52 J3MgdG8gdGhlIHJlYWR5IGZ1bmN0aW9uIGluIHRoZSBmb3JtIA0Kb2YgYSBjb25maWcgb3B0 aW9uIGluIHR1cm5zdGlsZS5jb25mIHdvdWxkIHByb2JhYmx5IGJlIHRoZSBiZXN0IHdheSB0 byANCmFsbG93IGVsZWdhbnQgaW50ZWdyYXRpb24gd2l0aCBzNi1yYy4gSSBoYXZlIG9wZW5l ZCBhbiBpc3N1ZSBmb3IgdGhhdCwgDQpzZWUgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2No aW1lcmEtbGludXgvdHVybnN0aWxlL2lzc3Vlcy8xNQ0KDQoNCj4gVHVybnN0aWxlIGFscmVh ZHkgYW5zd2VycyBpdGVtIGI6IGAvZXRjL3R1cm5zdGlsZS9iYWNrZW5kLyouY29uZmAgYW5k DQo+IGFyZ3VtZW50ICM0IG9mIHRoZSBydW4gc2NyaXB0LiBGb3IgYSwgbm90aGluZyBzdG9w cyBhIGJhY2tlbmQgZnJvbQ0KPiBzb3VyY2luZyBvbmUgaXRzZWxmLCBhbmQgdGhlIHJ1bml0 IGJhY2tlbmQgaXMgYSBwcmVjZWRlbnQuDQpZZXQgYWdhaW4gbmVlZGluZyB0aWdodCBpbnRl Z3JhdGlvbiB3aXRoIFR1cm5zdGlsZS4gSSBkbyBub3QgdGhpbmsgdGhpcyANCmlzIGluaGVy ZW50bHkgYmFkLCBJIGp1c3QgZG8gbm90IHBlcnNvbmFsbHkgbGlrZSBzdWNoIHRpZ2h0IGlu dGVncmF0aW9uIA0KaWYgSSBjYW4gZG8gaXQgZGlmZmVyZW50bHkuDQoNCg0KPiBJJ2QgcmF0 aGVyIGRvY3VtZW50IHRoYXQgdGhlIHVzZXIgbXVzdCBlZGl0IHRoZSBkZXNrdG9wIHNlcnZp Y2UNCj4gZGFlbW9uJ3Mgc2V0dGluZ3MgaWYgdGhleSB3YW50IHRvIHR3ZWFrIGhvdyBkZXNr dG9wIHNlcnZpY2VzIHdvcmsuDQpJIHRlY2huaWNhbGx5IGFncmVlLCBidXQgc29tZSBjb25m aWdzIG11c3QgYmUgZ2xvYmFsLCBlLmcuIA0KJHtEQlVTX1NFU1NJT05fQlVTX0FERFJFU1N9 LCBzaW5jZSBvdGhlciBzZXJ2aWNlcywgZS5nLiBQaXBld2lyZSwgcmVseSANCm9uIHRoZW0u DQoNClRoZSBhbHRlcm5hdGl2ZSB3b3VsZCBiZSBhIGR5bmFtaWNhbGx5IHBvcHVsYXRlZCBh bmQgc291cmNlZCBlbnYgDQpkaXJlY3RvcnksIEkgYW0gc3RpbGwgdGhpbmtpbmcgYWJvdXQg dGhpcywgYnV0IHRoZSBpc3N1ZSBJIHNlZSBpcyBob3cgdG8gDQpwcm9wYWdhdGUgdGhlIHJl cXVpcmVkIChjdXJyZW50bHkgJHtEQlVTX1NFU1NJT05fQlVTX0FERFJFU1N9IGFuZCANCiR7 WERHX1JVTlRJTUVfRElSfSkgdG8gdGhlIHVzZXIncyBsb2dpbiBzaGVsbCBub3cgdGhhdCB0 aGV5IGFyZSBkeW5hbWljIA0KYW5kIG1heWJlIG5vdCBjb21wbGV0ZWx5IHNldCBvbiBsb2dp bj8NCg0KDQo+IEZvciBpbnN0YW5jZSwgSSBvbmNlIHRyaWVkIHRvIG1ha2UgbXkgZXF1aXZh bGVudCBzZXQgb2Ygc2NyaXB0cw0KPiAidXNlcm5hbWUtYWdub3N0aWMiIGFuZCB1c2UgczYn cyAodGhlIHN1cGVydmlzaW9uIHN1aXRlJ3MpIGJ1aWx0LWluDQo+IGluc3RhbmNpbmcgZmVh dHVyZSDigJQgd2l0aCB0aGUgdXNlcm5hbWUgYXMgdGhlIHBhcmFtZXRlciDigJQgdG8gc3Bh d24NCj4gdXNlciBzdXBlcnZpc2lvbiB0cmVlcy4gVGhpcyB3YXMgZW5vdWdoIHRvIG1ha2Ug ZXhlY2xpbmUgcGFpbmZ1bCB0bw0KPiB1c2UgY29ycmVjdGx5LCBhbmQgSSBoYWQgdG8gc3dp dGNoIHRvIGEgc2hlbGwgc2NyaXB0Lg0KSSB3aWxsIHRyeSB0aGF0IHRvbywgYmVjYXVzZSBJ IHRoaW5rIHRoaXMgd291bGQgYmUgdGhlIG1vc3QgZWxlZ2FudCB3YXkgDQp0byBzdGFydCB1 c2VyIHNlcnZpY2UgdHJlZXMsIGlmIG9uZSBkb2Vzbid0IHdhbnQgdG8gcmVseSBvbiBUdXJu c3RpbGUuDQoNCg0KPiBJJ20gY3VycmVudGx5IHdyaXRpbmcgYSB0dXJuc3RpbGUgYmFja2Vu ZCBbMV0gdGhhdCBoYXMgYSBjYXRjaC1hbGwNCj4gbG9nZ2VyIGFuZCBkb2VzIHM2LXJjLWlu aXQgaW4gdGhlIGBydW5gIHN0ZXA7IGl0J3MgcmVmcmVzaGluZyB0byBiZQ0KPiBhYmxlIHRv IHJlYXNvbmFibHkgd3JpdGUgaXQgaW4gZXhlY2xpbmUuDQo+DQo+IFsxXWh0dHBzOi8vcGFz dGUuYXJ0aXhsaW51eC5vcmcvdmlldy82MzA4ZTc3Ng0KV293LCBJIHdpbGwgbG9vayBpbnRv IHRoYXQgaW4gbW9yZSBkZXRhaWwgZm9yIHN1cmUhDQoNCg0KPiBJIGRvbid0IHRoaW5rICJs b3cgbnVtYmVyIG9mIGNvbmZpZyBmaWxlcyIgaXMgYSBtZXRyaWMgd29ydGgNCj4gb3B0aW1p emluZyBmb3IsIGVzcGVjaWFsbHkgd2hlbiB0aGUgdHJhZGVvZmYgaXMgZW5jb2RpbmcgZGVz a3RvcA0KPiBhc3N1bXB0aW9ucyBpbiBsb3ctbGV2ZWwgcG9saWN5Lg0KSSBuZWVkIHRvIGJl IGNhcmVmdWwgdG8gbm90IGhhdmUgdHdvIG9yIG1vcmUgaW1wb3J0YW50IGNvbmZpZyBmaWxl cyB0aGF0IA0KY29udGFpbiB0aGUgc2FtZSBzZXR0aW5nIHBhcnNlZCBieSBkaWZmZXJlbnQg ZXNzZW50aWFsIHNvZnR3YXJlLiBUaGlzIA0Kd291bGQgcmVxdWlyZSB0aGUgc3lzYWRtaW4g dG8ga2VlcCB0aGVtIGluIHN5bmMuDQoNCkFkZGl0aW9uYWxseSBJIGRvIHRoaW5rIHRoYXQg ImxvdyBudW1iZXIgb2YgY29uZmlnIGZpbGVzIiBpcyBhbiANCmltcG9ydGFudCBtZXRyaWMg d2hlbiBpdCBjb21lcyB0byAvcmVsYXRlZC8gc2V0dGluZ3MsIHNpbmNlIHRoYXQgbWFrZXMg DQpsaWZlIGVhc2llciBmb3IgdXNlcnMgYW5kIHN5c2FkbWlucy4NCg0KDQo+IFNlZSBzNi1z dnNjYW4ncyAtWCBvcHRpb24uIFRoaXMgY2FuIGJlIGRvbmUgZW50aXJlbHkgd2l0aGluIHRo ZSB1c2VyJ3MNCj4gc3VwZXJ2aXNpb24gdHJlZSwgYW5kIHJlbGllcyBvbiB0aGUgc2FtZSBm b3VuZGF0aW9uIGFzIHRoZSBjYXRjaC1hbGwNCj4gbG9nZ2luZyBpbiBzNi1saW51eC1pbml0 OyBpdCBqdXN0IHJlcXVpcmVzIHRoZSBzY2FuIGRpcmVjdG9yeSB0byBiZQ0KPiBpbml0aWFs aXplZCB3aXRoIGEgY2F0Y2gtYWxsIGxvZ2dlciBiZWZvcmUgczYtc3ZzY2FuIGlzIHJ1bi4N ClRoYW5rIHlvdSwgSSB3aWxsIHRha2UgYSBsb29rIQ0KDQoNCj4gQXMgTGF1cmVudCBzYWlk IChpbiByZWdhcmRzIHRvIGdyYXBoaWNhbCB1c2VyIHNlcnZpY2VzLCBidXQgSSBiZWxpZXZl DQo+IHRoaXMgYXBwbGllcyBoZXJlKSwgdGhlIHRyYWRlb2ZmIGlzIGludHJvZHVjaW5nIGVu dmlyb25tZW50IGRhdGENCj4gc2hhcmluZyBhbmQgcHJvY2VzcyBsaWZldGltZSBtYW5hZ2Vt ZW50IGFjcm9zcyB1bnJlbGF0ZWQgcHJvY2Vzcw0KPiB0cmVlcywgd2hpY2ggaXMgbmVpdGhl ci4NClRoaXMgbWlnaHQgYmUgc3ViamVjdGl2ZSBhZ2FpbiwgYnV0IEkgd291bGQgbm90IGNv bnNpZGVyIHRoZSB1c2VyIChhbmQgDQp0aHVzIGhpcyBzZXJ2aWNlLXRyZWUpIGJlIHVucmVs YXRlZCB0byB0aGUgc3lzdGVtIGhlIHVzZXMgKGFuZCB0aHVzIHRoZSANCnN5c3RlbS10cmVl KQ0KDQoNCj4gSSdtIG5vdCBhd2FyZSBvZiBhbnkgVHVybnN0aWxlIHJlcGxhY2VtZW50cywg YW5kIGdpdmVuIHlvdXIgZGVzaWduDQo+IGdvYWxzLCBJIHRoaW5rIHlvdSdyZSBiZXR0ZXIg b2ZmIGNyZWF0aW5nIGEgc21hbGwgc2luZ2xlLWpvYiBQQU0NCj4gbW9kdWxlIGxpa2UgcGFt X3J1bmRpciBbMV0uIE1ha2UgaXQgaW52b2tlDQo+IHM2LXJjL3M2LWluc3RhbmNlLXtjcmVh dGUsZGVsZXRlfS93aGF0ZXZlciB3aGVuIGxvZ2dpbmcgaW4vb3V0IGluc3RlYWQNCj4gb2Yg bWFuYWdpbmcgYSBydW50aW1lIGRpcmVjdG9yeS4NCj4NCj4gSSBkb24ndCB0aGluayB3cml0 aW5nIHN1Y2ggYSBtb2R1bGUgaXMgd29ydGggaXQsIHRob3VnaC4gVHVybnN0aWxlDQo+IGFs bG93cyB5b3VyIHN5c3RlbSBwb2xpY3kgdG8gb25seSB3b3JyeSBhYm91dCBjb3JlIG1hY2hp bmUgbWFuYWdlbWVudDsNCj4geW91ciBwcm9wb3NhbCB3aWxsIGluc3RlYWQgbXVkZGxlIHRo YXQgd2l0aCBzdHVmZiB0aGF0J3Mgb25seSByZWxldmFudA0KPiBmb3IgdGhlIGRlc2t0b3Ag c2VydmljZXMuDQo+DQo+IFsxXWh0dHBzOi8vZ2l0ZWEuYXJ0aXhsaW51eC5vcmcvYXJ0aXgv cGFtX3J1bmRpcg0KVGhhbmtzIGZvciB0aGUgaGVhZHMgdXAgYW5kIHRoZSBsaW5rLg0KDQoN ClRoaXMgYnJpbmdzIG1lIHRvIG15IGxhc3QgcG9pbnQsIGFuIGlkZWEgSSBnb3Qgd2hpbGUg d3JpdGluZyB0aGlzOiANCmh0dHBzOi8vc2thcm5ldC5vcmcvbGlzdHMvc3VwZXJ2aXNpb24v MzEzMS5odG1sLg0KDQpUaGUgaWRlYSBpcyB0aGUgZm9sbG93aW5nOg0KDQotIE1ha2UgYSB1 c2VyIHNlcnZpY2UgdHJlZSBvbiBib290IChwcmVmZXJhYmx5IHVzaW5nIGluc3RhbnRpYXRl ZCANCnNlcnZpY2VzKSBpZiB0aGUgdXNlciBoYXMgYW4gYXBwcm9wcmlhdGUgZGlyIGluICR7 WERHX0RBVEFfSE9NRX0gKG1vc3QgDQpsaWtlbHkgL2hvbWUvJHtVU0VSfS8ubG9jYWwvLnNo YXJlL3M2LXJjLy4uLikuIFRoaXMgc2VydmljZSBwcmVwYXJlcyBhbGwgDQp0aGUgYmFzaWNz LCBlLmcuICR7WERHX1JVTlRJTUVfRElSfSwgdGhlIGxvZ2dpbmcgZGlyIG9mIHRoZSB1c2Vy IA0Kc2VydmljZXMsIC4uLg0KDQpUaGVuOg0KDQotIEF1dG9zdGFydCBhbGwgdXNlci1zZXJ2 aWNlcyBpbiBhbiAiYXV0b3N0YXJ0IiBidW5kbGUgdGhlIHVzZXIgcG9wdWxhdGVkLg0KDQot IFVwb24gZmlyc3QgbG9naW4gc3RhcnQgYSAibG9naW4iIGJ1bmRsZSB0aGUgdXNlciBwb3B1 bGF0ZWQsIHN0b3AgaXQgDQphZnRlciBsYXN0IGxvZ291dC4gVGhpcyBjYW4gYmUgZmluZSBn cmFpbmVkIHdpdGggYSBidW5kbGUgZm9yIHNzaCBsb2dpbiwgDQphIGJ1bmRsZSBmb3IgZ2V0 dHkgbG9naW4sLi4uLCB1c2luZyBhcHByb3ByaWF0ZSBQQU0gbW9kdWxlcy4NCg0KLSBBbiBl bnYgZGlyZWN0b3J5IHdoaWNoIGlzIGFsc28gdXNlZCBieSB0aGUgdXNlci1zZXJ2aWNlcyBz aGFsbCBiZSANCnNvdXJjZWQgdXBvbiBsb2dpbi4NCg0KLSBVcG9uIHN0YXJ0aW5nIGEgZ3Jh cGhpY2FsIHNlc3Npb24gc3RhcnQgYSBzdWItdXNlci10cmVlIHdpdGggdGhlIA0KczYtc3Zz Y2FuIHByb2Nlc3MgYmVpbmcgYSBjaGlsZCBvZiB0aGUgd2F5bGFuZCBjb21wb3NpdG9yLFgg c2VydmVyLC4uLg0KDQoNClRoaXMgYWxsb3dzIHRoZSBmb2xsb3dpbmc6DQoNCjEpIFNvbHZp bmcgYWxsIG9mIEJlcmNvdHMgY2FzZXMgDQooaHR0cHM6Ly9za2FybmV0Lm9yZy9saXN0cy9z dXBlcnZpc2lvbi8zMTE0Lmh0bWwpIEEpLCBCKSBhbmQgQykgd2l0aCANCiJqdXN0IiAyIHVz ZXItc2VydmljZS10cmVlcywgb25lIGJlaW5nIG5lc3RlZCBpbnNpZGUgdGhlIG90aGVyLg0K DQoyKSBOb3QgcmVseWluZyBvbiBleHRlcm5hbCB0b29scyB0byBkbyBiYXNpYyB3b3JrLg0K DQozKSBCZWluZyB1bmlmb3JtIChldmVyeXRoaW5nIGJhc2VkIG9uIHM2LXRvb2xzKSBhbmQg dGh1cyAoaG9wZWZ1bGx5KSANCnJlbGF0aXZlbHkgZWFzeSB0byBtYWludGFpbi4NCg0KDQpE byB5b3Ugc2VlIGFueSBpc3N1ZXMgd2l0aCB0aGF0IHByb3Bvc2FsPw0KDQoNClRoYW5rIHlv dSBmb3IgeW91ciBjcml0aXF1ZSENCg0KDQpQYXVsDQoNCg== --------------4lOQLfJiwq8N1PFPgEXlpTvO Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

You're making more work fo=
r yourself and the people who'd help you
maintain the service set, and making an s6 policy with more
assumptions.
I disagree. If the most important work is delegated to the service scripts, once it works, it works. Forever. Easy to adapt and replace by sysadmins/users.

Extremely relying on specific functionality of an external program, forces the maintainer to tightly monitor the programs development and extensively test all its releases, in practice: forcing the possible Turnstile package on Gentoo to have the same maintainer(maintaining group) as the possible s6/s6-rc profile. It also forces more assumptions on everybody, since we need to comply to the exact way Turnstile solves things:

Non daemontools-style supe=
rvisors, such as dinit (which is Turnstile's
default), also don't provide a simple "setuidgid" privilege dropper,
so they'll have little use for this functionality unless they add more
dependencies or become more error-prone.
This shows it quite nice, as it would have me need to align more to the limitations of dinit, even though I do have the tools for the job. Running the backend as root could just be added as a config option to Turnstile.

But I think we are approaching philosophical/subjective grounds here.

It is good that we develop our own interpretations of "the best" solution, learning from and criticizing each other.


There's two additional arg=
uments: "$srv_dir", a folder that's
dedicated to temporary files for the service manager (which seems to
me to be the ideal place for s6-svscan's scan directory and s6-rc's
live folder=C2=B9), and "$confdir", which is the path to where the
configuration files reside (which can serve as the storage place for
an environment file).
It seems less then ideal to me to use the filesystem as a temporary storage, when all that is needed are a handful environmental variables, which can easily be passed to the backend.


See `/run/service/s6rc-fdh=
older-filler/run` on your machine for
another solution: have 'ready' be only

```
s6-rc -l "$string" -up change default
```

and 'run' be

```
=2E.. fdmove -c 3 1 pipeline -dw { if -nt { s6-rc-init } s6-svscanctl -t
=2E.. } fdswap 3 1 s6-svscan -d3 ...
```

Instead of just s6-svscan (i. e. feed the readiness notification to
another step instead directly sending s6-svscan's notification to
turnstile).
Thanks, will test!


Given dinit has the servic=
e management and service supervision layers
in the same executable, Turnstile's authors probably expect the
service management layer being up and running by the time 'run' has
notified readiness, which is possibly why they didn't bother exporting
variables in the "ready" script.
Adding the ability to pass the env's to the ready function in the form of a config option in turnstile.conf would probably be the best way to allow elegant integration with s6-rc. I have opened an issue for that, see here: https://github.com/chimera-linux/= turnstile/issues/15


Turnstile already answers =
item b: `/etc/t=
urnstile/backend/*.conf` and
argument #4 of the run script. For a, nothing stops a backend from
sourcing one itself, and the runit backend is a precedent.
Yet again needing tight integration with Turnstile. I do not think this is inherently bad, I just do not personally like such tight integration if I can do it differently.


I'd rather document that t=
he user must edit the desktop service
daemon's settings if they want to tweak how desktop services work.
I technically agree, but some configs must be global, e.g. ${DBUS_SESSION_BUS_ADDRESS}, since other services, e.g. Pipewire, rely on them.

The alternative would be a dynamically populated and sourced env directory, I am still thinking about this, but the issue I see is how to propagate the required (currently ${DBUS_SESSION_BUS_ADDRESS} and ${XDG_RUNTIME_DIR}) to the user's login shell now that they are dynamic and maybe not completely set on login?


For instance, I once tried=
 to make my equivalent set of scripts
"username-agnostic" and use s6's (the supervision suite's) built-in
instancing feature =E2=80=94 with the username as the parameter =E2=80=94=
 to spawn
user supervision trees. This was enough to make execline painful to
use correctly, and I had to switch to a shell script.
I will try that too, because I think this would be the most elegant way to start user service trees, if one doesn't want to rely on Turnstile.


I'm currently writing a tu=
rnstile backend [1] that has a catch-all
logger and does s6-rc-init in the `run` step; it's refreshing to be
able to reasonably write it in execline.

[1] https://paste=
=2Eartixlinux.org/view/6308e776
Wow, I will look into that in more detail for sure!


I don't think "low number =
of config files" is a metric worth
optimizing for, especially when the tradeoff is encoding desktop
assumptions in low-level policy.
I need to be careful to not have two or more important config files that contain the same setting parsed by different essential software. This would require the sysadmin to keep them in sync.

=

Additionally I do think that "low number of config files" is an important metric when it comes to related settings, since that makes life easier for users and sysadmins.


See s6-svscan's -X option.=
 This can be done entirely within the user's
supervision tree, and relies on the same foundation as the catch-all
logging in s6-linux-init; it just requires the scan directory to be
initialized with a catch-all logger before s6-svscan is run.
Thank you, I will take a look!


As Laurent said (in regard=
s to graphical user services, but I believe
this applies here), the tradeoff is introducing environment data
sharing and process lifetime management across unrelated process
trees, which is neither.
This might be subjective again, but I would not consider the user (and thus his service-tree) be unrelated to the system he uses (and thus the system-tree)


I'm not aware of any Turns=
tile replacements, and given your design
goals, I think you're better off creating a small single-job PAM
module like pam_rundir [1]. Make it invoke
s6-rc/s6-instance-{create,delete}/whatever when logging in/out instead
of managing a runtime directory.

I don't think writing such a module is worth it, though. Turnstile
allows your system policy to only worry about core machine management;
your proposal will instead muddle that with stuff that's only relevant
for the desktop services.

[1] https://gi=
tea.artixlinux.org/artix/pam_rundir
Thanks for the heads up and the link.


This brings me to my last point, an idea I got while writing this: https://skarnet.org/lists/supervi= sion/3131.html.

The idea is the following:

- Make a user service tree on boot (preferably using instantiated services) if the user has an appropriate dir in ${XDG_DATA_HOME} (most likely /home/${USER}/.local/.share/s6-rc/...). This service prepares all the basics, e.g. ${XDG_RUNTIME_DIR}, the logging dir of the user services, ...

Then:

- Autostart all user-services in an "autostart" bundle the user populated.

- Upon first login start a "login" bundle the user populated, stop it after last logout. This can be fine grained with a bundle for ssh login, a bundle for getty login,..., using appropriate PAM modules.

- An env directory which is also used by the user-services shall be sourced upon login.

- Upon starting a graphical session start a sub-user-tree with the s6-svscan process being a child of the wayland compositor,X server,...


This allows the following:

1) Solving all of Bercots cases (https://skarnet.org/lists/supervi= sion/3114.html) A), B) and C) with "just" 2 user-service-trees, one being nested inside the other.

2) Not relying on external tools to do basic work.

3) Being uniform (everything based on s6-tools) and thus (hopefully) relatively easy to maintain.


Do you see any issues with that proposal?


Thank you for your critique!


Paul

--------------4lOQLfJiwq8N1PFPgEXlpTvO-- --------------LNW30nsZasbcxPsu0dlJIXBT Content-Type: application/pgp-keys; name="OpenPGP_0x71C7C85A2EA30F62.asc" Content-Disposition: attachment; filename="OpenPGP_0x71C7C85A2EA30F62.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- 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 8QRhtw=3D=3D =3Dhu4K -----END PGP PUBLIC KEY BLOCK----- --------------LNW30nsZasbcxPsu0dlJIXBT-- --------------0JgB8kVadPvg20wLqw0zCg6N-- --------------znfhlWlke5jEs3rH0venZMiZ Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEklpwGqZx1YzBW1hqccfIWi6jD2IFAmaL4cMFAwAAAAAACgkQccfIWi6jD2ID bA/9G3+gBkpv8PIUeGD12EnC2u/r2hcAvjk4dF0aAlKEKx6zG3BqLdwnBG113OXLT7ua71a8TEJT DFkJnso0pkjmUEGjOFfQfrd2Ygg1Eplq2N7IuCxFZN91+JjpD5lISVd18yj4/ZUoUQu43qcStMmL 0CkK/wKez6Mqyyhrc+aDWMCyR3AZP/43KdYeUH1DEcgUqlen0/HlhFnF1xf0SjRVqlvcDoxiEAZq hQf6HCrwAWJD+Ipg4vX2NRzihS/RXbbe2DcjijRHZk48bkuq75G7FEjUcFZNETQzg8oSnN97PpI1 l2ELr0ZTmy/Eg/LnxD2zMUwXrTGHm/nFEG1tfk92ZEL3XXgeeqj2RZFRVILBBKIgnuF+8QS+m+HW s6w4uyqzfAtL+NqAyRA/Yr7NF3k48xrWpGfJT3A7fvippaTxi5xgccEdlLgdyDRTDKZajJgevDe4 Ou5vMSUgLcIAYn8Vu/pEIgepPDZOT9LxLGI358ydf4S6JZCX4aNIDvHhhgzgB+jZcy0n5xFDKZmQ qSRAS7yYNrTGgSWCpO/WpxQ6ix/59VzdMEDphIvvjhVkthURA5J14mnvMeeSKPNum+4NmVSTlr/9 SZ2twOoEaeWvZuStaU4xWUVtaxgBOUsx269zkVtPchGBVScXghMlnR0HzYIPa+LSkSZneA8J3d/z jrY= =JZuZ -----END PGP SIGNATURE----- --------------znfhlWlke5jEs3rH0venZMiZ--