From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id chOnLgVyxWLfnQAAbAwnHQ (envelope-from ) for ; Wed, 06 Jul 2022 13:29:09 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id 6MCOLAVyxWKCDAAAG6o9tA (envelope-from ) for ; Wed, 06 Jul 2022 13:29:09 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 786D721E7C for ; Wed, 6 Jul 2022 13:29:09 +0200 (CEST) Received: from localhost ([::1]:55102 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o93DQ-0008LA-DM for larch@yhetil.org; Wed, 06 Jul 2022 07:29:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60886) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o91DM-00085f-4S for guix-devel@gnu.org; Wed, 06 Jul 2022 05:20:56 -0400 Received: from marvid.fr ([163.172.81.107]:45522 helo=courriel.marvid.fr) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o91DJ-0008QJ-E7 for guix-devel@gnu.org; Wed, 06 Jul 2022 05:20:55 -0400 Received: from localhost (unknown [78.194.167.103]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by sahkopoika (Postfix) with ESMTPSA id 8A82F7393A2C for ; Wed, 6 Jul 2022 11:20:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=marvid.fr; s=202110; t=1657099213; bh=P8pHJqIYuadnNYjOzzeIMeW8KdoxcpCfYmqJgyb0+uQ=; h=Date:From:To:Subject; b=JZmASn8M2H/YCvlvr/mzShCd00y0zLNLXLgr6uvs4can71hoDLvZB2xBBd02oE3FH 2YdIpx4+0Y/VJCMEXoJ2cGe4T26c4YURa2e+SrYSBA8CG/eBVr54LQKeZ1XtddfFQc viHy75ku3qmuBlFIvcfBmhzzg7hnbahzNdBMHRzU= Date: Wed, 6 Jul 2022 11:20:11 +0200 From: Tissevert To: guix-devel@gnu.org Subject: Guix home and operating-system Message-ID: <20220706112011.77c71a94@marvid.fr> X-Mailer: Claws Mail 4.1.0 (GTK 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=163.172.81.107; envelope-from=tissevert+guix@marvid.fr; helo=courriel.marvid.fr 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-Mailman-Approved-At: Wed, 06 Jul 2022 07:28:29 -0400 X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1657106949; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=P8pHJqIYuadnNYjOzzeIMeW8KdoxcpCfYmqJgyb0+uQ=; b=IUjiuaWA6C08eZUf6IJV6ITauZW1WHaPUNT/cp9iZAEihwmT0mIE+96RO2K9lwaCHkiKn6 kcSGh8hUX6HpApknG3IbDgMe2uLGopinduqZZOIdSoHDZNZXldzTWeWHoNUN9U0yrkkLpQ EeNU3SRL2lVxpJICkv/4aHqt4TWaCJ1rDXIIW4YW4FbaPyj2qWLzAP3GhLwghsphq1S8Tn 4n/YSx7YKEBxvp7VqSLeI55whiCSv6dxR5TcLk1HPF9MGgTbfn3PxTZ7n/PPHCsev/2dI0 MG+KGYGWFSdtb3Pp8jpJzTszT4tPVYfdYjynzhci5qqCIvz8iphhsrHYu6ri5A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1657106949; a=rsa-sha256; cv=none; b=kauuONvwvrOolcP6uLTvwMYJth9u1BkbTWn7AJav/iriIzuLiXJqJma/Y4KoXeCYp3n2PX EtnUgapmsSeTEwizowtPLSHjrUW2JP1Ph3Dj5+V2JE/gw8pPNIN27/C2bk+VLrDSzNW6l5 /laUNsdPbMADln4ZN/5lteQQIeGChQrR1zInYyLL6896eoqnsaBqQvNQr5jISfLJtFJueB sGXKJF5wgxMA67saOp+ZgY36gETpcJW1W2KSACgp4mVWRUshuLfLj1unx9Zuigq9jWCOxC QEZhb8AzU41NOeXSEpcnqiApLu8bfH+1H/k0AxJfZBYUrq6+M1eQRIeevY3VsQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=marvid.fr header.s=202110 header.b=JZmASn8M; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 0.95 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=marvid.fr header.s=202110 header.b=JZmASn8M; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 786D721E7C X-Spam-Score: 0.95 X-Migadu-Scanner: scn0.migadu.com X-TUID: ZhhMzJyWHLUx Hi Guix, I'm finally having some time to try and put guix on the older machines at home and thought I'd start by generating a live CD to show the rest of the family what that would look like without having to make any irreversible changes yet. Meanwhile, as this is a time to clean and rationalize system declarations to ease maintaining the various machines, I thought it would be an appropriate time to try and start learning about guix home (I came to guix for the reproducibility, I'm not going to spend hours on each machine reproducing the same user config !). To my greatest astonishment, I found no way to make guix home configurations interact with operating-system declarations. I expected something along the lines of a "configuration" or "home" field in the user-account data type, which could contain directly a valid guix home configuration or maybe the path to a file containing one. At least, I expected to find a "packages" field to allow specifying the packages set for a particular user. This is of course necessary when building a read-only live image which won't be able to receive modification at a later time. More generally, this raised a question in me: why go to such length to have a whole declarative system which you can generate in advance on each aspect, and then require to launch (stateful !) command lines at a later time to alter the configuration of users. I was discussing that the other night with @unmatched-paren on IRC and was told this could be an interesting idea so what do you think ? Is there a good reason why this hasn't been implemented ? Would it be very complicated to run the equivalent of a guix home at the end of the system generation ? I'd be personally interested to work on such a feature but I have absolutely no idea where to start and would be glad to receive some pointers if it was deemed useful enough that I should spend my time on it. Now I can think of several ways to do that differently: I suppose the live CD could have a system service performing the call to guix home to setup the user's environment during the boot. Also, this would not cover user services but regarding file configurations, I can think of a way because I'm prone to config vertigo these days: there are so many levels where we can alter the config, why always delay it ? Packages often contain a default configuration, and upon start the program checks half a dozen places for a custom user config: in other words why have a bash profile in my home when I could generate a bash package which has directly my dream profile in its "default" version in /etc ? I could still use ~/.bash_profile for a temporary tweak. Is that something people in guix do frequently ? Why ? Cheers, Tissevert