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=
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
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--