GNU bug report logs - #68289
[PATCH] services: xorg: Add xorg-start-command-xinit procedure.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: Tomas Volf <~@wolfsden.cz>; Keywords: patch; dated Sat, 6 Jan 2024 15:08:02 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.

Message received at 68289 <at> debbugs.gnu.org:


Received: (at 68289) by debbugs.gnu.org; 24 Apr 2024 17:44:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 24 13:44:27 2024
Received: from localhost ([127.0.0.1]:59612 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rzgfP-0000nK-Jm
	for submit <at> debbugs.gnu.org; Wed, 24 Apr 2024 13:44:27 -0400
Received: from wolfsden.cz ([37.205.8.62]:41682)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <~@wolfsden.cz>) id 1rzgfI-0000lU-Nf
 for 68289 <at> debbugs.gnu.org; Wed, 24 Apr 2024 13:44:20 -0400
Received: by wolfsden.cz (Postfix, from userid 104)
 id 769DD28D50E; Wed, 24 Apr 2024 17:43:56 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail;
 t=1713980636; bh=VTR87ubBcXgp+MmSMW4bYbMtlF2uAni6wQFW3F+2A4I=;
 h=Date:From:To:Cc:Subject:References:In-Reply-To;
 b=rzV72chXrdcBBReKzj8WCYH7LIaSRjSiT+BG9M7ZcjzpBUud/zDvoHlrEeLaNFw4W
 Rz46koBx/tvsWoFe2i0gslhqvtmSv1TwEeO4BiuQT8wqtpgyPvV9sencDZUCzyLenm
 EVghwUMDx+OXI601CO1cBijjNOhUSENgnI0ps+Jvclr6WJB3ODYhhvjcHM5FgYvF0G
 e0uh6UQdgmSV5APdp/zMHmDTmF/QMeF/+jTmlJwE5cnM9l7JBsvX9eKzuEIMob5Yy2
 +/a66yBtJstmllMLuuC5/jAP2PPG3dELGXAl5Nu0hYH60yKHgk3ERyA5+YxRkp8uKy
 YY83IB/ejssDMWBICNCdYiDwzlVfGcT1eaJohYPgjKOmLbaeOSN/7IeN8xuDt/YR7C
 qmDFXjUYPjk2UITiLl3103b0+9JrNKwsOPrCJlEFc8a9VwmNMYJfPqlPFW29DF9btp
 rENShhLmGkB7M1ZukVJCi1AhSCVdpTGQCj5LSDWNVE8zz2Q3GW/QrHzjJ6SXLbAWVG
 +4U8DZ2QN3dFt8u/LZW6c3C+admdd/UOx28PghNbJ2eh2WECvBwpPHBJbczQAyn8Co
 HSjAXtdOMpBBIVFEx4VPrK8s5Uj3/4lJqkilHy+oZjQVQJmzyTueuN4pOhp+EXnemx
 0L8ts88/U24ZWAPWy0kONcic=
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on wolfsden
X-Spam-Level: 
X-Spam-Status: No, score=-1.2 required=5.0 tests=ALL_TRUSTED,DKIM_SIGNED,
 DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,URIBL_BLOCKED
 autolearn=unavailable autolearn_force=no version=3.4.6
Received: from localhost (unknown [193.32.127.159])
 by wolfsden.cz (Postfix) with ESMTPSA id 03B5E28B4CD;
 Wed, 24 Apr 2024 17:43:55 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail;
 t=1713980636; bh=VTR87ubBcXgp+MmSMW4bYbMtlF2uAni6wQFW3F+2A4I=;
 h=Date:From:To:Cc:Subject:References:In-Reply-To;
 b=rzV72chXrdcBBReKzj8WCYH7LIaSRjSiT+BG9M7ZcjzpBUud/zDvoHlrEeLaNFw4W
 Rz46koBx/tvsWoFe2i0gslhqvtmSv1TwEeO4BiuQT8wqtpgyPvV9sencDZUCzyLenm
 EVghwUMDx+OXI601CO1cBijjNOhUSENgnI0ps+Jvclr6WJB3ODYhhvjcHM5FgYvF0G
 e0uh6UQdgmSV5APdp/zMHmDTmF/QMeF/+jTmlJwE5cnM9l7JBsvX9eKzuEIMob5Yy2
 +/a66yBtJstmllMLuuC5/jAP2PPG3dELGXAl5Nu0hYH60yKHgk3ERyA5+YxRkp8uKy
 YY83IB/ejssDMWBICNCdYiDwzlVfGcT1eaJohYPgjKOmLbaeOSN/7IeN8xuDt/YR7C
 qmDFXjUYPjk2UITiLl3103b0+9JrNKwsOPrCJlEFc8a9VwmNMYJfPqlPFW29DF9btp
 rENShhLmGkB7M1ZukVJCi1AhSCVdpTGQCj5LSDWNVE8zz2Q3GW/QrHzjJ6SXLbAWVG
 +4U8DZ2QN3dFt8u/LZW6c3C+admdd/UOx28PghNbJ2eh2WECvBwpPHBJbczQAyn8Co
 HSjAXtdOMpBBIVFEx4VPrK8s5Uj3/4lJqkilHy+oZjQVQJmzyTueuN4pOhp+EXnemx
 0L8ts88/U24ZWAPWy0kONcic=
Date: Wed, 24 Apr 2024 19:43:54 +0200
From: Tomas Volf <~@wolfsden.cz>
To: Fabio Natali <me@HIDDEN>
Subject: Re: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
Message-ID: <ZilE2tbqgBnLniiB@ws>
References: <87o7a9upoq.fsf@HIDDEN> <87r0f4l4kb.fsf@HIDDEN>
 <ZiGMJGQfxqSvXyjF@ws> <87zftpedyt.fsf@HIDDEN>
 <87le53nf7o.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature"; boundary="Mwp9TWOjmyi+k3x/"
Content-Disposition: inline
In-Reply-To: <87le53nf7o.fsf@HIDDEN>
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 68289
Cc: 68289 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


--Mwp9TWOjmyi+k3x/
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2024-04-24 12:59:55 +0100, Fabio Natali wrote:
> On 2024-04-19, 13:25 +0100, Fabio Natali <me@HIDDEN> wrote:
> > On 2024-04-18, 23:09 +0200, Tomas Volf <~@wolfsden.cz> wrote:
> >> first, let me thank you for the review, and apologize for somewhat
> >> late response, sadly I have been busy.
>
> Hi Tomas,
>
> Sorry for the slow follow-up. After some further testing and some input
> from other Guix friends, this is my humble feedback on what I'd put in a
> v2 patch.
>
> - Use Guix's 'invoke' instead of a custom 'checked-system*' procedure.
>
> - Where possible, use '#$(file-append foobar "/bin/foo")' instead of
>   '(string-append #$foobar "/bin/foo")', so that as much computation as
>   possible happens at build time as opposed to run time. It's a
>   microscopic difference, but still worth the change I think.
>
> What do you think? Not urgent, but do you think this is something you
> might be interested to include in a v2? No problem if you're busy, but
> let me know if there's anything I can help with.

All sounds reasonable, will send v2, cannot guarantee when, hopefully this =
week.

>
> Tangentally, with regard to 'capture-stdout', I'm exploring if this is
> something that could be added to '(guix build utils)'=E2=81=B0 or perhaps
> addressed in Guile=C2=B9 instead of Guix. This can be left as it is in the
> patch, and potentially refactored away once a similar procedure is
> available from Guix or Guile.
>
> Thanks, best wishes, Fabio.

Yes, I noticed the thread.  Having the option of doing basically

  (with-output-to-string (=CE=BB _ (invoke "date")))

would be amazing.  I hope someone will take it up and implement. :)



Have a nice day,
Tomas

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

--Mwp9TWOjmyi+k3x/
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmYpRNoACgkQL7/ufbZ/
wamScxAAlLzGrqwG2XhGk7eORqJQXYEkrGLxgFeP3IcJ5c6hPTEwIxeFeZ0OedlU
tkANrlbBB10rAX1z+STeBkpq0ISuJzIoR/GSTWp4XIg4D0oYijH+n1DpIyIPz9s2
gAXcHkbVgTTbF1uJhhWllb+TLbpN9eFSiT/+v3jNYS4CdOOt0iwcLSV/aTOnY3yM
U4hRIrC5/Xcx8VpCU7sID1VYHYjcaX9rhJGYl4rOcPCrrPBurEEoQENQIPCtkU7s
CZ4GBeEs8zLXXv+atynCaH7szKOOtvNOcWhlSqw3FLHvDQdTfemF9IO8eXhvYhAH
qz/WElkKESd9WrynEcdh2TXESlRGsGM58mFUpgdUFCes1gUtJdcFoCId9EpHEhPQ
07Xxi4VAVKDT975GW/rw76EfV+BHq3eyOFNHluoXXgWxbrh4hWrQEXAQiJUWpazt
2ppK/GKAJ2ZFodDP0JcG85jRbvTRZDjPTupil36gv/ge7OgBGwx/FfE87g83jag1
VrcWG2bT4ESbnNw1rp7pZiK9MIPf7I4SKhiuDWtdlfXAp6PVFlE9l10lXODZuVYs
7CLNo57Wn7LOTE9JxkNgc59HsuJspdSOdA55OFw7K+WAwX34ijGOIma0MclsvdMr
OEGqIlwPcznUjOVyP7LINj2L8Bu92kqUZpr27iqoZMZlcZBgaNA=
=Z5k3
-----END PGP SIGNATURE-----

--Mwp9TWOjmyi+k3x/--




Information forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.

Message received at 68289 <at> debbugs.gnu.org:


Received: (at 68289) by debbugs.gnu.org; 24 Apr 2024 12:00:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 24 08:00:37 2024
Received: from localhost ([127.0.0.1]:58086 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rzbId-0005MC-4m
	for submit <at> debbugs.gnu.org; Wed, 24 Apr 2024 08:00:37 -0400
Received: from relay2-d.mail.gandi.net ([2001:4b98:dc4:8::222]:53639)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1rzbIR-0005IT-Tf
 for 68289 <at> debbugs.gnu.org; Wed, 24 Apr 2024 08:00:26 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id B9E7740004;
 Wed, 24 Apr 2024 11:59:55 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fabionatali.com;
 s=gm1; t=1713959996;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references;
 bh=xzS+Jft48Mbih3hWjFk0ikK7jT3VdIIAYZcSngEIjPY=;
 b=Ws4EV7GOTEwcMB36QyJEO/ztbSkSGUAGbbIky50jYL8DNjY8y5pfXyEbEnn0/zNwhydqGL
 b/XenGU0PIjCBVw7s7oVjcdzRxYuqiIEvuJCDKojHJZdYCXEDrwOVaFe2RQ2JmI1XCRXxc
 GFkmsw4auRRLo13Sq1u4zeA0Kxo2xUyma/wOOWkxGzwZSEV1VECd0uozcMXD0pKNGyKzeh
 dv1KixwNZhEv5ksyX5D+IbABI/0pH2GbIjvAsNKDgmP+asWGT2a4zQ3cfvTPWSRWRh/VfV
 ilf5CKGztuE8DmxDDBmCfgeL/0KPxX+WaNwvRVd7Psh/8CQat+ZM5zhdTxQX7A==
From: Fabio Natali <me@HIDDEN>
To: Tomas Volf <~@wolfsden.cz>
Subject: Re: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
In-Reply-To: <87zftpedyt.fsf@HIDDEN>
References: <87o7a9upoq.fsf@HIDDEN>
 <87r0f4l4kb.fsf@HIDDEN> <ZiGMJGQfxqSvXyjF@ws>
 <87zftpedyt.fsf@HIDDEN>
Date: Wed, 24 Apr 2024 12:59:55 +0100
Message-ID: <87le53nf7o.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-GND-Sasl: me@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68289
Cc: 68289 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On 2024-04-19, 13:25 +0100, Fabio Natali <me@HIDDEN> wrote:
> On 2024-04-18, 23:09 +0200, Tomas Volf <~@wolfsden.cz> wrote:
>> first, let me thank you for the review, and apologize for somewhat
>> late response, sadly I have been busy.

Hi Tomas,

Sorry for the slow follow-up. After some further testing and some input
from other Guix friends, this is my humble feedback on what I'd put in a
v2 patch.

- Use Guix's 'invoke' instead of a custom 'checked-system*' procedure.

- Where possible, use '#$(file-append foobar "/bin/foo")' instead of
  '(string-append #$foobar "/bin/foo")', so that as much computation as
  possible happens at build time as opposed to run time. It's a
  microscopic difference, but still worth the change I think.

What do you think? Not urgent, but do you think this is something you
might be interested to include in a v2? No problem if you're busy, but
let me know if there's anything I can help with.

Tangentally, with regard to 'capture-stdout', I'm exploring if this is
something that could be added to '(guix build utils)'=E2=81=B0 or perhaps
addressed in Guile=C2=B9 instead of Guix. This can be left as it is in the
patch, and potentially refactored away once a similar procedure is
available from Guix or Guile.

Thanks, best wishes, Fabio.


=E2=81=B0 https://lists.gnu.org/archive/html/guix-devel/2024-04/msg00199.ht=
ml
=C2=B9 https://lists.gnu.org/archive/html/bug-guile/2024-04/msg00015.html


--=20
Fabio Natali
https://fabionatali.com




Information forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.

Message received at 68289 <at> debbugs.gnu.org:


Received: (at 68289) by debbugs.gnu.org; 19 Apr 2024 12:28:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 19 08:28:26 2024
Received: from localhost ([127.0.0.1]:58255 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rxnLu-0002Mh-1U
	for submit <at> debbugs.gnu.org; Fri, 19 Apr 2024 08:28:26 -0400
Received: from relay4-d.mail.gandi.net ([217.70.183.196]:58421)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1rxnLr-0002LR-LC
 for 68289 <at> debbugs.gnu.org; Fri, 19 Apr 2024 08:28:25 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 81C14E0004;
 Fri, 19 Apr 2024 12:28:02 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fabionatali.com;
 s=gm1; t=1713529682;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references;
 bh=EdZp1Vc9lZZpVgPn/4qoizQLU+p5OA/8BHb/a9vPz9s=;
 b=YF2V6J0I4lAfOAEnpDPi4NteSKP2lmSdYtGr+SOCYu4H9BURoMYHFLj1NuwxOKKJ8TItrw
 1+OMl6ZPsMYQQ86gPdq/ecvigVTBZT2xjkw8CNDFewBcA1ba8146WT124hi8RNfUciHSxd
 /Qz13BedQ77QlmdjwvRDv0gHFh1HmPE9RmfoC9D2vfOR4hJPqh1PBpphVE/sm2HvTdQtN4
 qUGwfXxENrdibuMCbT4koMYrbwCQjC+1Gwtbb3jM6EJqa2CoqA3QMkUCrSglI5mHRK0dD/
 q1viUWtbWAjBGxg5gLs7i9l6fZs1/j7XETk1cTvbpQnCkwx+7taa4bDXOdAJqw==
From: Fabio Natali <me@HIDDEN>
To: Tomas Volf <~@wolfsden.cz>
Subject: Re: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
In-Reply-To: <ZiGMJGQfxqSvXyjF@ws>
References: <87o7a9upoq.fsf@HIDDEN>
 <87r0f4l4kb.fsf@HIDDEN> <ZiGMJGQfxqSvXyjF@ws>
Date: Fri, 19 Apr 2024 13:25:46 +0100
Message-ID: <87zftpedyt.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-GND-Sasl: me@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68289
Cc: 68289 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On 2024-04-18, 23:09 +0200, Tomas Volf <~@wolfsden.cz> wrote:
> first, let me thank you for the review, and apologize for somewhat
> late response, sadly I have been busy.

Contrarily, thank you for getting back to my points. =F0=9F=99=8F

It all sounds good. I'll try and bring this up on IRC or during one of
the patch review sessions organised by Futurile - in case there's a
committer who's willing to merge it.

Have a nice day.

Best, Fabio.


--=20
Fabio Natali
https://fabionatali.com




Information forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.

Message received at 68289 <at> debbugs.gnu.org:


Received: (at 68289) by debbugs.gnu.org; 18 Apr 2024 21:18:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 18 17:18:01 2024
Received: from localhost ([127.0.0.1]:54743 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rxZ8r-0004O5-F6
	for submit <at> debbugs.gnu.org; Thu, 18 Apr 2024 17:18:01 -0400
Received: from wolfsden.cz ([37.205.8.62]:57226)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <~@wolfsden.cz>) id 1rxZ8n-0004N9-6j
 for 68289 <at> debbugs.gnu.org; Thu, 18 Apr 2024 17:17:58 -0400
Received: by wolfsden.cz (Postfix, from userid 104)
 id 61D5D24DC7B; Thu, 18 Apr 2024 21:17:42 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail;
 t=1713475062; bh=OooHzGs9l3mG2ZMTOw/0BoDzy1MGH+ekEoL8tKY1I/o=;
 h=Date:From:To:Cc:Subject:References:In-Reply-To;
 b=jvHscS4PL9U/tBoRRvQg3f/5U/zoRvBBy1ESlIzqpkFRKc0PFKcyrSEGVmZwb6eXS
 SABag+lO8j68zbDRjNf/djR30bZboKlgJmZBFnoieFvpYZxd5aryVGq7x8P9bZo5rc
 WUwWfYEAMEG4URu6YNHPzj/tuz/ny7PFrvQeGBjoKBLc6cpp/ScOioVzwjPILjZBi7
 Gl3/EwvDoVtE22vbz/4WFx+JGL2tDEMfhIDpRLXDOtX7wLVgnCMpZgfgSVOqi1/92V
 jCDsfI7RrJY2yI68qgv+SqMAmrn8JjrzQeXvC2D5ADqA76NVTYQu8M0fHzCyu0EK63
 yedHK1FqMnPijh1PQk9PlkFChVHqg9kGArIRvl8UrpKgOGz/SZSsNRznjQyi7tlZNd
 BeB4mByX9XJ9g6HTL97ThJZInd2KVo/1Wfwan3t3Tx7+NuMI5NofnOqadEg78O6ELw
 T9bz4yXcgr1c1gE93X0ykPfUoL6kkwpJCbmKI+0XaGihieW7FRGtl/HOjIjEtJt4sJ
 EoTWwyvCSfIIw0ga7peXgW8t1ke3Wcz+yY3nKho6rCdY22mUMYwaMxGI4ugKTC1l8z
 uSe+iyxAuQsxInkOBtfOEfoHJ3HIlBYIO2tl7UFm61Er2joNNomRYLc8u7EEDbGKtj
 bJEd6OgFWiFIWPqaiPjw938I=
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on wolfsden
X-Spam-Level: 
X-Spam-Status: No, score=-1.2 required=5.0 tests=ALL_TRUSTED,DKIM_SIGNED,
 DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,URIBL_BLOCKED
 autolearn=unavailable autolearn_force=no version=3.4.6
Received: from localhost (unknown [146.70.134.143])
 by wolfsden.cz (Postfix) with ESMTPSA id 70E9824DF71;
 Thu, 18 Apr 2024 21:17:41 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail;
 t=1713475061; bh=OooHzGs9l3mG2ZMTOw/0BoDzy1MGH+ekEoL8tKY1I/o=;
 h=Date:From:To:Cc:Subject:References:In-Reply-To;
 b=jQkOX7kCe2cPGSIAMnA+p+SPMmAMqJT0kmqeHeg8m6eV1jumgjvmcZXLCs1F11w8D
 Zw7xPbSWKY4ZkcsePgVGooTt7JH4OVgKP/2L/aUTAn3VD6VbS4S56gPDlKwxQQEgAb
 mmGsI/TSHVyIKWw8AagSaFTObJYq5ft0SFPoGZsVcRlt75QXMblVr+pR3N6q8MjkV6
 PCFl3SWK2E9GrfNW+bBYglTObCLVuB41l/fXiDHBYAkif/dJcwx+/70Z+29zKteZr5
 HGs/Q5yy/1B087KgmmNfeO9zpeKyJdrr5a36PThcZF5nartlouP1kWS+hjhDRjNi4h
 DAmLa90hmqgagWbxS8eYziIAN8BQVoEgIhlZTTWcScASPkAJKcvgPk7/qFZiWN0vAi
 cfHqzXVdHeGxzLKGvDcjleoRi+WJ8ZH/xgXkUhsn9Y0H6yq0AdlS55GycAvnLK6fY1
 qMWPazRyADmwLHhDkpkVOe2mpBApXSzfxgIkvE7hDLpiKRYFo5ohlr03/gzr+5wzFj
 MG6l67SGKMw+RRbY/sI46RRHv/JExehxDfrRCo1Wehro3Z42keMnJpMhIRg1XWBfwv
 QnTOomGE/mTerEoKP95lB+5D77UeyZSH4nIgzhbLnF8iLPRdJxZ3wecWzNjsxHE9/w
 oZ1VWuLxpUAf5vUh8X+ruTho=
Date: Thu, 18 Apr 2024 23:17:40 +0200
From: Tomas Volf <~@wolfsden.cz>
To: Fabio Natali <me@HIDDEN>
Subject: Re: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
Message-ID: <ZiGN9OhfIYS2I_EG@ws>
References: <87o7a9upoq.fsf@HIDDEN> <87r0f4l4kb.fsf@HIDDEN>
 <87jzkufr4y.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature"; boundary="6V8abyTJxuDIsuHk"
Content-Disposition: inline
In-Reply-To: <87jzkufr4y.fsf@HIDDEN>
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 68289
Cc: 68289 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


--6V8abyTJxuDIsuHk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On 2024-04-18 19:43:41 +0100, Fabio Natali wrote:
> On 2024-04-17, 10:30 +0100, Fabio Natali <me@HIDDEN> wrote:
> > Hi, a quick follow-up on a couple of points.
>
> Also, I suppose one could use Guix's 'invoke' instead of a custom
> 'checked-system*'?
>
> https://issues.guix.gnu.org/issue/68289/#0-lineno88
>
> Cheers, F.

Yes, that would be an option.  I do not remember why I wrote it like this, it is
possible I just did not know about `invoke' at that time (the code is over a
year old).  However I am not sure whether it is fine to depend on code in the
(guix build utils) module for non-build purposes.  Assuming it is fine, I have
no problem sending a v2.

Cheers,
T.

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

--6V8abyTJxuDIsuHk
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmYhjfQACgkQL7/ufbZ/
wameDw/+JTVUtT2IvGpB7d69FShKy9nZhqn/gWQMaisBoUlZVzQmdoEICDWGept/
ZJncP4QInV0TVywiegQehWhkz+EAHaHYWzwBpU9CSm1s7v6/En73TlOC9RHxMK4A
wOf755gwiFGZkuXEm8ywYMj3BKIBza41pHgf51THZ0SjTjRqEexxwYhmSDE9gcqo
9oib1kGNREo27Dlu9P4JF6XQ3NcOFWoO5+u+8BoqR5CbOLs7JjYZmdGvfSxWkmhi
1/Go8xiTpiawHtP4bYrkM3fGBcGiaqk1Y9YHonEN07ZjcXiEfEIYlb7t2dAKyb+v
YLiRt0WnwZ5GQLKe8ZNKVk4ZUDATT+tMWwG0A57/Vo9ryQBjo82oc11zUa/SbgWy
xbZngrBU6LuJ4D+ucAiLZ8MafmzTEDePujj/YKfJSyEQiDTgLXGTCAvsJ/96VNYQ
LIbHD81Wq6Oh0tMT+SYpbc0orsl+CF/YnMyJ6atOGiWEIqyAXYP/AmjddIIBn4bh
PcOwkcy0JnTG+bxS5B2IR1tks4TVtheiDtuqYMZIlFUXgYOJyk3YyXbc1qxoVJQr
UsG76TZg0ZMAXV+G6Q36qP5vtddAHNwGXsBroB2WY8SKUnNmRqBlaD62/rTnBNAG
POOIBN3d6UJ4P6I3hzGGkKSnG2JfDNva7JO9r0kFRoG9TclmURU=
=0giq
-----END PGP SIGNATURE-----

--6V8abyTJxuDIsuHk--




Information forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.

Message received at 68289 <at> debbugs.gnu.org:


Received: (at 68289) by debbugs.gnu.org; 18 Apr 2024 21:10:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 18 17:10:16 2024
Received: from localhost ([127.0.0.1]:54710 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rxZ1M-0003Wq-6j
	for submit <at> debbugs.gnu.org; Thu, 18 Apr 2024 17:10:16 -0400
Received: from wolfsden.cz ([37.205.8.62]:36328)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <~@wolfsden.cz>) id 1rxZ1J-0003WM-JB
 for 68289 <at> debbugs.gnu.org; Thu, 18 Apr 2024 17:10:15 -0400
Received: by wolfsden.cz (Postfix, from userid 104)
 id 2F2D424E0EC; Thu, 18 Apr 2024 21:09:58 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail;
 t=1713474598; bh=WDxp22sVC+Ovicqc8qn2ZBdni6VfB73V3ASJqwOtCpM=;
 h=Date:From:To:Cc:Subject:References:In-Reply-To;
 b=k4enUs48WHs+FMcofUYO+YSxh6L3j5ZoOU6JVP72/RYvYrG7bqQsqOxucwt19cF2k
 mmBLXaCmOzpu2MneioPcGzwPWo8bD9C3S8+mVllZb84EJ+p9nnyWJ8lOUP4T6XiYXw
 6NbzXTLHgt7jp158ntQScOjxniGOGBYoEcVOYVBzy7nCcRzXIiKUQAnpxCCHgo5fIP
 t5LeqMYfOQkpjJKG0e6KcDjfjmWvogKC//cd9Kgbez5/7/cb6ifmHuJr4N+fimG1z4
 SP/+/bV+F5t9p/SFW8/AqnnG7MUXrFypMfQcIntHYaglYs/tHpangfCI/kiSZ/efob
 d7MiHhyRJBeyleUJmb25jZOmdBSm0n1ipYoQg0aIWfPwb0UPYRAj/5T42YDhHNN937
 Hk2YFz+36On2mX3VZ0vgweeoreIfa/Fpme4koucAB+eJn+5r6koCPxXeLoBH83fm4u
 eRwgMF7hEe/4sO8iOlCW6dmw1Cak0UqqRZxEC1iRHysT1jMQzeQcCWPECIhbjP5pNk
 LZkNfhqMgQYqF6yTI5ZuUDpoSg3JrDd60kW3RTOD+u6eButD50MrEGHEGG2ySl20Xl
 qxnFu1DDu3TfzwVHTbdrr+eiqjvJ1jq+lwgWvRE+BI4IUNIZnZCo6jWFvo5HADQL8X
 qr5MwCsQyHx8CKvhFBt6gDUk=
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on wolfsden
X-Spam-Level: 
X-Spam-Status: No, score=-1.2 required=5.0 tests=ALL_TRUSTED,DKIM_SIGNED,
 DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,URIBL_BLOCKED
 autolearn=unavailable autolearn_force=no version=3.4.6
Received: from localhost (unknown [146.70.134.143])
 by wolfsden.cz (Postfix) with ESMTPSA id 4B37124ECF5;
 Thu, 18 Apr 2024 21:09:57 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail;
 t=1713474597; bh=WDxp22sVC+Ovicqc8qn2ZBdni6VfB73V3ASJqwOtCpM=;
 h=Date:From:To:Cc:Subject:References:In-Reply-To;
 b=UCgojKm0Kxuf1W8xpD83BlZC9wLPu+BQ5UP20f76CgAsz6atnnG0ZDpPFZTp85yhI
 NTRVkFTNNhp4ZMQs7IdnBhhzWLMgqIkUZa0kTy0xNg41NLrB644ODVauLnE/YX8a4j
 lBSyjjo0KKYzdWQMDliKWyHQjZAiyU8gHsTybWhrZLpyB7D4NwVspST6vofHHAjozA
 S4IxH2K/IOjn6c+3ycEdWxmgFrQUev7HraedcnukvtBCavb6+qwKHHEA+e96kG+lo/
 xE+vCLpRPVZhWg8sg3iduFSwqzPoNeA6+56AM/gYr3XKQeQfp9DvmB2BlW66Np3zzR
 mxQ0NRGmXOXoneiMhLbPYpfi6ob19ZV+P0Ptydev2y95tJKMtZ7rgSy0KSvv+vnP1w
 ZDQiDhkDIbvkuUxM+JqdItk/lErrGp1GDg7C9R+2Ix3aYfanUZUfN8sv/AXpWAobLs
 JNpUtAMc5IYqJjM5VZm5/G7C6czvHoexnPMDFEhkYhUwAp9KWwMF15O6eexDZbtXZG
 ACElSPgUm2qXFnyLy4eAee/jBcdar1qQ6Zmri4Aq7N6esOfgDOJBEB2xWI5rRhEbOk
 Y/mqccz1ZZTxG33NJEahah+8XOCB/MsaitQRTbOfTQBs0ZRn8WlS28Th6T6rQPeA00
 kY8q1+Ldv18fEzFUppXMDZvM=
Date: Thu, 18 Apr 2024 23:09:56 +0200
From: Tomas Volf <~@wolfsden.cz>
To: Fabio Natali <me@HIDDEN>
Subject: Re: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
Message-ID: <ZiGMJGQfxqSvXyjF@ws>
References: <87o7a9upoq.fsf@HIDDEN> <87r0f4l4kb.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature"; boundary="wplv4idoBjXUMUT4"
Content-Disposition: inline
In-Reply-To: <87r0f4l4kb.fsf@HIDDEN>
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 68289
Cc: 68289 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


--wplv4idoBjXUMUT4
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello Fabio,

first, let me thank you for the review, and apologize for somewhat late
response, sadly I have been busy.

On 2024-04-17 10:30:12 +0100, Fabio Natali wrote:
> Hi, a quick follow-up on a couple of points.
>
> On 2024-04-16, 19:29 +0100, Fabio Natali <me@HIDDEN> wrote:
> > - I haven't tested the patch on my system yet, but I plan to do it
> > soon.
>
> I've tested the patch and it works as expected on my system.

Great! :)

>
> > `(determine-vty)' is similar to the block below, but `startx' relies
> > on the `tty' command from Coreutils. Do you think there might be any
> > advantage in using it in `(determine-vty)'? A slight simplification
> > perhaps?
>
> Looking into this more closely, the `tty' command wouldn't be a
> simplification. It might be a bit more consistent with other parts of
> the patch and it'd abstract away the hardcoded `/proc/self/fd/0', but
> probably not worth the change?

I think the current way is fine, since this is Guix specific code, so it do=
es
not have to be extremely portable.  But that is just my opinion.  Would be =
nice
to know if it works on Hurd.

>
> > The patch saves the server's auth file in `/tmp' whereas `startx' uses
> > the home directory. I wonder if this might make any difference in
> > terms of security. Related, how can we be sure that `(mkstemp
> > "/tmp/serverauth.XXXXXX")' will be setting the right file permissions?

While POSIX does not seem to specify the permissions of the created file, t=
he
Guile's manual is pretty clear regarding it:

     POSIX doesn=E2=80=99t specify the permissions mode of the file.  On GN=
U and
     most systems it=E2=80=99s =E2=80=98#o600=E2=80=99; an application can =
use =E2=80=98chmod=E2=80=99 to relax
     that if desired.

In my understanding that makes this usage safe.

>
> I see the reason why we want to use `/tmp', as otherwise the number of
> stale `serverauth.XXXXXX' files would grow indefinitely. Using `/tmp',
> at least we know they'll be garbage collected at every reboot. Any way
> to emulate `startx' and use some sort of `trap' to remove the file on
> exit?

Yes, the clean up was the main motivator.  The script could *try* to clean =
up,
but even then it would leave garbage in the $HOME in situations like power
failure and kernel crashes.  So using /tmp seems like simple yet reliable
solution.

>
> > Finally, on a purely cosmetic side, any reason to have `(define X
> > (xorg-wrapper config))' outside the G-expression, while the other
> > definitions are inside?
>
> Oh yes, the `(define X ...)' has to be outside the G-expression, of
> course.
>
> The security aspect (in relation to the server auth file, its
> permissions and location) is the only remaining point where I'd like an
> extra pair of eyes. The rest of the patch LGTM.
>
> There's a couple of microscopic formatting issues (e.g. an occurrence of
> tty where I'd write TTY instead), I'll list them all in a follow-up.
>
> Thanks, best wishes, Fabio.

Have a nice day,
Tomas

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

--wplv4idoBjXUMUT4
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmYhjCQACgkQL7/ufbZ/
wancOBAAhw1uq2DKbubetW4Pamy1U/lc+2JgOsUZtNaKMgor7/LTTZEJWAj7Foik
N8I3FvXpyUX0o0uGKxlAMLHSGRSI1CAERzbAFfdWox8anh+/LgxXd4R+L2nOf84v
MJf/h0FqoDc16Bl7U7yfKVob6JS8WiR+p6NM38YwaVMAbdtsKMZwmyIAAQ2UDdti
sEHgBlReq591XFX8sRmvA6Sbl+UNMoc2i6QH1FAn7jc4hyyjxfcIiGETt9PLsCMz
K4yhGXwCmhbpPcVozW6qZW272vmY1q7aiqpCpHymQeZMAhO9I0XVnAFcmksPlf7j
JcKLuSgHg+GJeXMF9iucs3V53K9WcTydMBAKqaYqTAvRhcudTNAl3BdGl4/L2DyM
Mok6Dms4JTalVBk88Dd2yvGBae+INeBj3ErXPRnlZccStLCScvCOtkC7BZ/dQTRL
zGUfUgTMRxXLGPrWVVaO/yAU9IkHRLti9ww6HhOfm5MQRK1DzE+kWt4cAUDgDGVY
hW2Sggg9UkK9oCb3w1+Xf387mvrF3WcJqtqSrSmEDhyCklIMOQ+GpRzZuHDsLE33
pVatUu+tS2ae2oGnayDxi/+54LGVSN/i5AF8R7m6ZTFFqTpD5NjhQRVb20R1pZ17
jUwrjzDtaE3JKJHH6djbZnGRUKjlQVBAd5rPvb99d2xRkaevmIU=
=XkJ6
-----END PGP SIGNATURE-----

--wplv4idoBjXUMUT4--




Information forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.

Message received at 68289 <at> debbugs.gnu.org:


Received: (at 68289) by debbugs.gnu.org; 18 Apr 2024 18:46:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 18 14:46:20 2024
Received: from localhost ([127.0.0.1]:54003 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rxWm4-0000JZ-5s
	for submit <at> debbugs.gnu.org; Thu, 18 Apr 2024 14:46:20 -0400
Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:54043)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1rxWm1-0000IO-RT
 for 68289 <at> debbugs.gnu.org; Thu, 18 Apr 2024 14:46:18 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id DE94EE0005;
 Thu, 18 Apr 2024 18:45:56 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fabionatali.com;
 s=gm1; t=1713465957;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=MfEYJFOjAmOEdmjQb4i8Pj1ZDDZjIYN6ZZngg3rc07g=;
 b=dcALD77EJv5jMKJIWcDRR7AoRkRaXTyQEZfg4eCxm0ZP/bOOz6tm/eDYZXg8OwZ0RRJd4X
 7NVPTeWNbT7N533B/aWqdgw+/rEFLWGAY+WczYhcQHUYTgUbN75y6PjRIvGNrTMV8d7hEJ
 7A1SBrcne6XiNrymgHPg0YpoRmo9fZOPXURnz6IJVdrZMBfhXAhee8aYKuBPldmaqMBEWA
 H20V437MBEEIcM1rdfW8aEKot+/nFg5TVco89gPi0Nn7WhIpeWfr+zDRLoTZvMyO3BO/n6
 0qdlcePI6x8bJ7wNYEOCOAmRUAKqu79RilfmVmqN+4FkYgJh4e5JqxFTxyT56A==
From: Fabio Natali <me@HIDDEN>
To: 68289 <at> debbugs.gnu.org, ~@wolfsden.cz
Subject: Re: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
In-Reply-To: <87r0f4l4kb.fsf@HIDDEN>
References: <87o7a9upoq.fsf@HIDDEN> <87r0f4l4kb.fsf@HIDDEN>
Date: Thu, 18 Apr 2024 19:43:41 +0100
Message-ID: <87jzkufr4y.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: me@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68289
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On 2024-04-17, 10:30 +0100, Fabio Natali <me@HIDDEN> wrote:
> Hi, a quick follow-up on a couple of points.

Also, I suppose one could use Guix's 'invoke' instead of a custom
'checked-system*'?

https://issues.guix.gnu.org/issue/68289/#0-lineno88

Cheers, F.




Information forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.

Message received at 68289 <at> debbugs.gnu.org:


Received: (at 68289) by debbugs.gnu.org; 17 Apr 2024 09:30:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 17 05:30:38 2024
Received: from localhost ([127.0.0.1]:45767 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rx1ck-0002Kh-3j
	for submit <at> debbugs.gnu.org; Wed, 17 Apr 2024 05:30:38 -0400
Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:49539)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1rx1cg-0002Je-33
 for 68289 <at> debbugs.gnu.org; Wed, 17 Apr 2024 05:30:36 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 1A77CE000C;
 Wed, 17 Apr 2024 09:30:12 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fabionatali.com;
 s=gm1; t=1713346213;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=TLFXEjv+L7/PS9f2Og+mShoop5r8I488wBGH+tfjmZg=;
 b=dZ9ZIBLOcEPayF6ePqDNKDwB8mLg+acPtBLOP9CtH2NGxw5NdZ+IWlwScJTIw4kPIJ19HC
 TojJsFUQ/0PkZHYQy6VUIvsltle4zaWAUBLO/G3ZfOoK0yu5W0t7QKQaXF+4EXsNsnWZWP
 A0HmhsMLRI2TqDD+MEw8InctOXJizn8numkw7DmImC+jAVinrAfoppYQKCt6pINbpQVKsk
 T6IeK6ImnJa/VzRlXLxgR8KB78QHfldaQR8dokYrn6oUx04TsYkBPAnOShu1PwXOtJJ5sp
 ICtzUnFbq5J3XObwqQ5YU/OhfhJeKPfLx4R73k+HPqDUp/SL0I4clEskSV+FUA==
From: Fabio Natali <me@HIDDEN>
To: 68289 <at> debbugs.gnu.org, ~@wolfsden.cz
Subject: Re: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
In-Reply-To: <87o7a9upoq.fsf@HIDDEN>
References: <87o7a9upoq.fsf@HIDDEN>
Date: Wed, 17 Apr 2024 10:30:12 +0100
Message-ID: <87r0f4l4kb.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: me@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68289
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi, a quick follow-up on a couple of points.

On 2024-04-16, 19:29 +0100, Fabio Natali <me@HIDDEN> wrote:
> - I haven't tested the patch on my system yet, but I plan to do it
> soon.

I've tested the patch and it works as expected on my system.

> `(determine-vty)' is similar to the block below, but `startx' relies
> on the `tty' command from Coreutils. Do you think there might be any
> advantage in using it in `(determine-vty)'? A slight simplification
> perhaps?

Looking into this more closely, the `tty' command wouldn't be a
simplification. It might be a bit more consistent with other parts of
the patch and it'd abstract away the hardcoded `/proc/self/fd/0', but
probably not worth the change?

> The patch saves the server's auth file in `/tmp' whereas `startx' uses
> the home directory. I wonder if this might make any difference in
> terms of security. Related, how can we be sure that `(mkstemp
> "/tmp/serverauth.XXXXXX")' will be setting the right file permissions?

I see the reason why we want to use `/tmp', as otherwise the number of
stale `serverauth.XXXXXX' files would grow indefinitely. Using `/tmp',
at least we know they'll be garbage collected at every reboot. Any way
to emulate `startx' and use some sort of `trap' to remove the file on
exit?

> Finally, on a purely cosmetic side, any reason to have `(define X
> (xorg-wrapper config))' outside the G-expression, while the other
> definitions are inside?

Oh yes, the `(define X ...)' has to be outside the G-expression, of
course.

The security aspect (in relation to the server auth file, its
permissions and location) is the only remaining point where I'd like an
extra pair of eyes. The rest of the patch LGTM.

There's a couple of microscopic formatting issues (e.g. an occurrence of
tty where I'd write TTY instead), I'll list them all in a follow-up.

Thanks, best wishes, Fabio.




Information forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.

Message received at 68289 <at> debbugs.gnu.org:


Received: (at 68289) by debbugs.gnu.org; 16 Apr 2024 18:29:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 16 14:29:33 2024
Received: from localhost ([127.0.0.1]:45014 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rwnYh-0003d9-Ds
	for submit <at> debbugs.gnu.org; Tue, 16 Apr 2024 14:29:33 -0400
Received: from relay1-d.mail.gandi.net ([2001:4b98:dc4:8::221]:33025)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1rwnYf-0003cJ-2I
 for 68289 <at> debbugs.gnu.org; Tue, 16 Apr 2024 14:29:30 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id B0A01240002;
 Tue, 16 Apr 2024 18:29:09 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fabionatali.com;
 s=gm1; t=1713292149;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding;
 bh=yuBusvqZ4wHFzTxpP51udoUcr7SZw7+C6jvRQYXo/5w=;
 b=VcoKj4HoobckWBgcwpxUZxk/MrrRmvpCkOcgrFWs1RUgp+Y2cptCBbyqRaVFciOy5kUG/s
 HHJ8kiHt+2oPzSjsl4y79SWXSNw35iLTP0WxOLcqQZNrl2ZFtEUf8QTh21p0Q1aA7rGDSy
 kqxwhyWZWwab473pJzQC3bNIMKIAjcJpD2jCJhmUjNLw3ZQ26G28DetDnAxLr9WoCjIbTA
 ABsz5GFTdL5C6Awz8VAFi+nJBAPYWnHoKkm2box3XtLL32q/4HSuNR453MmGccROnCyJ2/
 7XaE4rZrPqeMUw3VxFhvPz47mZPuqo3/TpuDcdDwLPkBJ40mJ5GWFwiG7fuSXw==
From: Fabio Natali <me@HIDDEN>
To: 68289 <at> debbugs.gnu.org, ~@wolfsden.cz
Subject: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
Date: Tue, 16 Apr 2024 19:29:09 +0100
Message-ID: <87o7a9upoq.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-GND-Sasl: me@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 68289
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Tomas,

Thanks for patch 68289 re `xorg-start-command-xinit'. I think it'd be
great to have a command like that in Guix.

In a clumsy attempt to review the patch, I've compared it with the code
for `startx' that I found here=E2=81=B0. My comments, including some general
observations that might help other reviewers, follow.

tl;dr:

- I hope someone more Xorg savvy than me can have a look.
- Other than a couple of questions (below), things look alright to me.
- I haven't tested the patch on my system yet, but I plan to do it soon.

Thanks, have a great day, Fabio.

=E2=81=B0 https://gitlab.freedesktop.org/xorg/app/xinit/-/blob/master/start=
x.cpp


`(determine-unused-display n)' maps closely to this code block:

,----
| XCOMM Automatically determine an unused $DISPLAY
| d=3D0
| while true ; do
|     [ -e "/tmp/.X$d-lock" -o -S "/tmp/.X11-unix/X$d" ] || break
|     d=3D$(($d + 1))
| done
| defaultdisplay=3D":$d"
| unset d
`----

`(determine-vty)' is similar to the block below, but `startx' relies on
the `tty' command from Coreutils. Do you think there might be any
advantage in using it in `(determine-vty)'? A slight simplification
perhaps?

,----
| #ifdef __linux__
|     XCOMM When starting the defaultserver start X on the current tty to a=
void
|     XCOMM the startx session being seen as inactive:
|     XCOMM "https://bugzilla.redhat.com/show_bug.cgi?id=3D806491"
|     tty=3D$(tty)
|     if expr "$tty" : '/dev/tty[0-9][0-9]*$' > /dev/null; then
|         tty_num=3D$(echo "$tty" | grep -oE '[0-9]+$')
|         vtarg=3D"vt$tty_num -keeptty"
|     fi
| #endif
`----

`(enable-xauth server-auth-file display)' maps closely to:

,----
|     XCOMM create a file with auth information for the server. ':0' is a d=
ummy.
|     xserverauthfile=3D$HOME/.serverauth.$$
|     trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM
|     xauth -q -f "$xserverauthfile" << EOF
| add :$dummy . $mcookie
| EOF
| #if defined(__APPLE__) || defined(__CYGWIN__)
|     xserverauthfilequoted=3D$(echo ${xserverauthfile} | sed "s/'/'\\\\''/=
g")
|     serverargs=3D${serverargs}" -auth '"${xserverauthfilequoted}"'"
| #else
|     serverargs=3D${serverargs}" -auth "${xserverauthfile}
| #endif
|
|     XCOMM now add the same credentials to the client authority file
|     XCOMM if '$displayname' already exists do not overwrite it as another
|     XCOMM server may need it. Add them to the '$xserverauthfile' instead.
|     for displayname in $authdisplay $hostname$authdisplay; do
|         authcookie=3D`XAUTH list "$displayname" @@
|         | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p"` 2>/dev/=
null;
|         if [ "z${authcookie}" =3D "z" ] ; then
|             XAUTH -q << EOF
| add $displayname . $mcookie
| EOF
`----

The patch saves the server's auth file in `/tmp' whereas `startx' uses
the home directory. I wonder if this might make any difference in terms
of security. Related, how can we be sure that `(mkstemp
"/tmp/serverauth.XXXXXX")' will be setting the right file permissions?

Here's the two relevant bits:

,----
| (server-auth-port (mkstemp "/tmp/serverauth.XXXXXX"))
| (server-auth-file (port-filename server-auth-port))
`----

,----
|     xserverauthfile=3D$HOME/.serverauth.$$
|     trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM
`----

Finally, on a purely cosmetic side, any reason to have `(define X
(xorg-wrapper config))' outside the G-expression, while the other
definitions are inside?


--=20
Fabio Natali
https://fabionatali.com




Information forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 6 Jan 2024 15:07:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 06 10:07:32 2024
Received: from localhost ([127.0.0.1]:60134 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rM8Gq-00045z-BT
	for submit <at> debbugs.gnu.org; Sat, 06 Jan 2024 10:07:32 -0500
Received: from lists.gnu.org ([2001:470:142::17]:32998)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <~@wolfsden.cz>) id 1rM8Go-00045l-1Q
 for submit <at> debbugs.gnu.org; Sat, 06 Jan 2024 10:07:30 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <~@wolfsden.cz>) id 1rM8Gd-0003dn-Fn
 for guix-patches@HIDDEN; Sat, 06 Jan 2024 10:07:19 -0500
Received: from wolfsden.cz ([37.205.8.62])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <~@wolfsden.cz>) id 1rM8Ga-0005rP-G9
 for guix-patches@HIDDEN; Sat, 06 Jan 2024 10:07:19 -0500
Received: by wolfsden.cz (Postfix, from userid 104)
 id 413A2246305; Sat,  6 Jan 2024 15:07:13 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail;
 t=1704553633; bh=sG/9/+vKvhzXNypfAwUgTzXbjxvb59xBuzXBAJME6f4=;
 h=From:To:Cc:Subject:Date;
 b=oL0i83f5PDSX1zJhu6aCot3IVlCFw9m4qriiCM2mP12AwFFJqBNuvtmh0+Ozjidlz
 4n7Cep9BniLJylqhHNzfXglB7M8PFfyQDbS2ZSGBxPsWAx1qp8NtVBXpWiPNn1P/i9
 mr9OnrQ2Ltm5cMDNYlFgkRbt8VZnyAojJaCtax8VLQDqUKXqBU6Y4MFMLG8qFS5SHR
 cN24fgCK1F1W+iZNq8HdKqo2K6qu135wdNBAy9wlGTB0xLz9rTX8lQ6MmkbtDQY9yp
 U+xSC49QAPk+uK378UsWONExUukWSnCr9x+4rJBJlcTqVDmgUM+suo2x9zWb/8I2C6
 XEwr3KZd0zV0BcG9EeCRXOEsHKtacjL2+RQv7X8gofwDUAn4ri5indmUyPbZa2zpb0
 VdCR0rg5EfysnfQjCpXcKwYkOFxzH8RxTH/MaA3P/xU1Y6iNbY1M6q+XwtxTFNQTIL
 kGhBphqS0gYeDpdw2tWrwO1JoLz2OhK56tfe2pXHoREGAF3h1Oq/sl0GmvGjHxIpo/
 Fkno8R43a+TC2jyfz8NwmCSF01/22m6PhoR7owJqK6SOr3FsrZHuRouJ6I6jwW8gWn
 eQQyTJ1eHEG2yv4VU4QvHZj9mUSLc34nhz2p8vPkG8cRr6SNwKFKdH/cIxSkDp7tNB
 pZ6+31Y8BCKlZEuGCJSSA7QU=
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on wolfsden
X-Spam-Level: 
X-Spam-Status: No, score=-1.2 required=5.0 tests=ALL_TRUSTED,DKIM_SIGNED,
 DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,T_SCC_BODY_TEXT_LINE,
 URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6
Received: from localhost (unknown [193.32.127.155])
 by wolfsden.cz (Postfix) with ESMTPSA id 538182448D7;
 Sat,  6 Jan 2024 15:07:12 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail;
 t=1704553632; bh=sG/9/+vKvhzXNypfAwUgTzXbjxvb59xBuzXBAJME6f4=;
 h=From:To:Cc:Subject:Date;
 b=f6wRG1YuNjiUPi9mF0RALvYdbrqYKztgb3Tjsw6Khdx7XM8u5oq6Q1VI9u/vrrg13
 ELHMF9mOCWnwyxjJmrQkPChzgq4Oeq/XnNX9IjoYre+eZk4q+vdHs9XZ5h4h69w8mA
 UxuxJNsjv/+jUPayw0Vd08T8KS6amyPRWe6JqpMTnRwMeuVpxsSUmcUe2U49HrocsP
 B5fEi9OnHocBTEiKGmXKpYI535ntQulvkYcWezQuIbnTFnCIDnCRDJVcshtkHLpSgI
 qC57U1SblzEQ2zYH7EDCUq3KGxg+K27A8R/RA26NPUlde10N8zTgbjLY2TmlDdwUBb
 yoBwTl06iqfZmnFEZXe0yH3Iu5hPj9l1F65UAmOaEJOaB8bz/0dmL5LodZSRKQht/b
 9NfpjMOOqNcAnIdNukeuGUBtNLPzA8w+BUUSi55qv0ljyArtioScXr3gkh/+stJMBF
 p7ZWtLEyGj+aBv1t+fWEf4ZO6HX31VUMgeTtAQRP5yiw46QHyL56v2AQ6vxUTesG+a
 DIK6i1CBTiFs22MkFKCGO/LfP8/EGzfvmQQPxBuDISJ17/hiIcsbFoeSArZwc4UJ+v
 Y0aGt4SvIrDZ3uHqK5+gTSyajWuSp5ApV4IcmG9rJua/TQFFqhLbUvVuO3krolv5UQ
 HwC6DJkv3bqmvYlktJOVEjWk=
From: Tomas Volf <~@wolfsden.cz>
To: guix-patches@HIDDEN
Subject: [PATCH] services: xorg: Add xorg-start-command-xinit procedure.
Date: Sat,  6 Jan 2024 16:07:09 +0100
Message-ID: <4fdf0d9993bb3375797ca807d894f66920bd81d2.1704553618.git.~@wolfsden.cz>
X-Mailer: git-send-email 2.41.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=37.205.8.62; envelope-from=~@wolfsden.cz;
 helo=wolfsden.cz
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: submit
Cc: Tomas Volf <~@wolfsden.cz>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

When user does not use any desktop environment, the typical sequence is to log
in and then type `startx' into the tty to get a window manager running.  Most
distributions do provide startx by default, but Guix has only
xorg-start-command, that is not suitable for this type of task.

This commit adds second procedure, xorg-start-command-xinit, that correctly
picks virtual terminal to use, sets up XAUTHORITY and starts xinit with
correct arguments.  That should make running Guix without any desktop
environment more approachable.

* gnu/services/xorg.scm (xorg-start-command-xinit): New procedure.
(define-module): Export it.
* doc/guix.texi (X Window): Document it.

Change-Id: I17cb16093d16a5c6550b1766754700d4fe014ae9
---
 doc/guix.texi         | 18 ++++++++++
 gnu/services/xorg.scm | 82 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index a648a106b3..72c5527270 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -23177,6 +23177,24 @@ X Window
 Usually the X server is started by a login manager.
 @end deffn
 
+@deffn {Procedure} xorg-start-command-xinit [config]
+Return a @code{startx} script in which the modules, fonts,
+etc. specified in @var{config}, are available.  The result should be
+used in place of @code{startx}.  Compared to the
+@code{xorg-start-command} it calls xinit, therefore it works well when
+executed from tty.  If you are using a desktop environment, you are
+unlikely to have a need for this procedure.
+
+The resulting file should be invoked by user from the tty after login,
+common name for the program would be @code{startx}.  Convenience link
+can be created by (for example) this home service:
+
+@lisp
+(simple-service 'home-files home-files-service-type
+                `(("bin/startx" ,(xorg-start-command-xinit))))
+@end lisp
+@end deffn
+
 
 @defvar screen-locker-service-type
 Type for a service that adds a package for a screen locker or screen
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 1ee15ea90c..2f5aa3b4f3 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -53,6 +53,7 @@ (define-module (gnu services xorg)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages linux)
   #:use-module (gnu system shadow)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
@@ -84,6 +85,7 @@ (define-module (gnu services xorg)
 
             xorg-wrapper
             xorg-start-command
+            xorg-start-command-xinit
             xinitrc
             xorg-server-service-type
 
@@ -414,6 +416,86 @@ (define* (xorg-start-command #:optional (config (xorg-configuration)))
 
   (program-file "startx" exp))
 
+(define* (xorg-start-command-xinit #:optional (config (xorg-configuration)))
+  "Return a @code{startx} script in which the modules, fonts, etc. specified in
+@var{config}, are available.  The result should be used in place of
+@code{startx}.  Compared to the @code{xorg-start-command} it calls xinit,
+therefore it works well when executed from tty."
+  (define X
+    (xorg-wrapper config))
+
+  (define exp
+    ;; Small wrapper providing subset of functionality of typical startx script
+    ;; from distributions like alpine.
+    #~(begin
+        (use-modules (ice-9 popen)
+                     (ice-9 textual-ports))
+
+        (define (checked-system* . args)
+          (if (= 0 (status:exit-val (apply system* args)))
+              #t
+              (error "command failed")))
+
+        (define (capture-stdout . prog+args)
+          (let* ((port (apply open-pipe* OPEN_READ prog+args))
+                 (data (get-string-all port)))
+            (if (= 0 (status:exit-val (close-pipe port)))
+                (string-trim-right data #\newline)
+                (error "command failed"))))
+
+        (define (determine-unused-display n)
+          (let ((lock-file (format #f "/tmp/.X~a-lock" n))
+                (sock-file (format #f "/tmp/.X11-unix/X~a" n)))
+            (if (or (file-exists? lock-file)
+                    (false-if-exception
+                     (eq? 'socket (stat:type (stat sock-file)))))
+                (determine-unused-display (+ n 1))
+                (format #f ":~a" n))))
+        (define (determine-vty)
+          (let ((fd0 (readlink "/proc/self/fd/0"))
+                (pref "/dev/tty"))
+            (if (string-prefix? pref fd0)
+                (string-append "vt" (substring fd0 (string-length pref)))
+                (error (format #f "Cannot determine VT from: ~a" fd0)))))
+
+        (define (enable-xauth server-auth-file display)
+          ;; Configure and enable X authority
+          (or (getenv "XAUTHORITY")
+              (setenv "XAUTHORITY" (string-append (getenv "HOME") "/.Xauthority")))
+
+          (let* ((bin/xauth (string-append #$xauth "/bin/xauth"))
+                 (bin/mcookie (string-append #$util-linux "/bin/mcookie"))
+
+                 (mcookie (capture-stdout bin/mcookie)))
+            (checked-system* bin/xauth "-qf" server-auth-file
+                             "add" display "." mcookie)
+            (checked-system* bin/xauth "-q"
+                             "add" display "." mcookie)))
+
+        (let* ((xinit (string-append #$xinit "/bin/xinit"))
+               (display (determine-unused-display 0))
+               (vty (determine-vty))
+               (server-auth-port (mkstemp "/tmp/serverauth.XXXXXX"))
+               (server-auth-file (port-filename server-auth-port)))
+          (close-port server-auth-port)
+          (enable-xauth server-auth-file display)
+          (apply execl
+                 xinit
+                 xinit
+                 "--"
+                 #$X
+                 display
+                 vty
+                 "-keeptty"
+                 "-auth" server-auth-file
+                 ;; These are set by xorg-start-command, so do the same to keep
+                 ;; it consistent.
+                 "-logverbose" "-verbose" "-terminate"
+                 #$@(xorg-configuration-server-arguments config)
+                 (cdr (command-line))))))
+
+  (program-file "startx" exp))
+
 (define* (xinitrc #:key fallback-session)
   "Return a system-wide xinitrc script that starts the specified X session,
 which should be passed to this script as the first argument.  If not, the

base-commit: e994bc0abf39db228fa61f1aaf24840c19c47647
-- 
2.41.0





Acknowledgement sent to Tomas Volf <~@wolfsden.cz>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#68289; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Wed, 24 Apr 2024 18:00:05 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.