From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.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 YOnAIsDLkGLNiwAAbAwnHQ (envelope-from ) for ; Fri, 27 May 2022 15:01:52 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id GIq9IsDLkGKf5wAA9RJhRA (envelope-from ) for ; Fri, 27 May 2022 15:01:52 +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 2691F2ABF0 for ; Fri, 27 May 2022 15:01:52 +0200 (CEST) Received: from localhost ([::1]:36932 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuZbC-0003E4-V5 for larch@yhetil.org; Fri, 27 May 2022 09:01:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48090) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuZSm-0004bN-Bx for guix-devel@gnu.org; Fri, 27 May 2022 08:53:08 -0400 Received: from relay1-d.mail.gandi.net ([2001:4b98:dc4:8::221]:37261) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuZSk-0003Of-09 for guix-devel@gnu.org; Fri, 27 May 2022 08:53:07 -0400 Received: (Authenticated sender: andrew@trop.in) by mail.gandi.net (Postfix) with ESMTPSA id 464E8240004; Fri, 27 May 2022 12:53:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=trop.in; s=gm1; t=1653655982; 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=2c0fTlqZ1ITV4/Y01R9ZgWxXHXcmLOK0s5d8++wYi6s=; b=QKxPw1jXrt/w4brg07SoIGPKykGQ8UVWrURBQgiGXCDJdocmDvgeLAfVEjDMI7dKkKN1Wh gTsLXbDbdGBj17KCmXL1op6ej/8CVfE3cQMWDrlQZbKZBx2Cj08ErGlD9VPuMtJZLx134X 6/Jll4QJt9cppAjC/2LDS7T0LyvkV3bwCOmFMFm88kDP9gariDLgvVDj7onIEnfraAE75y HH8Q/7orUZYZx068FbIHqVK9b9mHmuJuspdxTF2u1SWu6aZ0KiZ4CmMg+wUMZWlsGIqvvO NaOOlCXeRNT1dKfFWKsKrrvUfEW7rbsp/LktC1Z0Fb7TkMEanvfrjgimKtqmTw== From: andrew@trop.in To: Liliana Marie Prikler , guix-devel@gnu.org Subject: Re: Multiple profiles with Guix Home In-Reply-To: <18d58357210056ef4d5b1bc6fa5e40b884012d12.camel@gmail.com> References: <87ilpwpf1b.fsf@trop.in> <7e70064d679274160d62fdc86e7e25879bec7a79.camel@gmail.com> <87wnebp2kl.fsf@trop.in> <31aad8f29ff43cc27432936227aa7c8edff76265.camel@gmail.com> <87wne9q3jx.fsf@trop.in> <18d58357210056ef4d5b1bc6fa5e40b884012d12.camel@gmail.com> Date: Fri, 27 May 2022 15:52:59 +0300 Message-ID: <87pmjzqgr8.fsf@trop.in> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=2001:4b98:dc4:8::221; envelope-from=andrew@trop.in; helo=relay1-d.mail.gandi.net 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_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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=1653656512; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=2c0fTlqZ1ITV4/Y01R9ZgWxXHXcmLOK0s5d8++wYi6s=; b=SFVVVhIFH73gTgkqBiFS24xhlK+idciaL8eAMKGQHnWNo0N4WJOUz5+H7czYtkXWwpjUUg JsGwEPyR86Zg3dHmo3A+mqxUZplz3aJG3bdysFMH2GOyoawYwgInFuRytJOGyAivkKjGHa LLuliTY0UQhjuhnCvsuqzuXiSJpIfDxlXmmgSP+j0fvbTBjA16DmYzYCkumn8v6SMuc1mV h7kfZZrrpYF8a5YWHRB4bsxuY/xKO1fCagDFT6PPF/fVX7a1lWTdzUfaxzflKupk2173ja ZUDlV5acXvu8Wk/BiubzFizAvg3VrUl5+RtTj+veg06/GP1HIliN4Budc/h0lA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1653656512; a=rsa-sha256; cv=none; b=Wbw2O+Gv5ZkYxziykyuIhirqBniGGX900qvEJD6+9USjjHCH9a5bLDl/4l5AUXaURFrsCR uW0+ct4xp5lqYKiJM+CSWe/E/4ctkBGY/ABJR93lGvrDVmybmCQ1GEwpvZk4WMtWt1z5GL 9eNWMB2xFdqWnFGekBNQUz/t+l++i2DxVWLfP6blJlsgH3Ykq52sslpmtGAh8tjS2heG1A 8oKdN/J7saedg8LXOhuhU9e7Wjr7TZdOSFVUCtoxkMzABKE2Ee9ur055FG69yliXkxVYIz WQgUg8eM+V24Dj2KX2y3fCpfxDYbxPU172Lpspaqf7q+wFY+mYVdOvanq1jXCA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=trop.in header.s=gm1 header.b=QKxPw1jX; 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: -6.95 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=trop.in header.s=gm1 header.b=QKxPw1jX; 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: 2691F2ABF0 X-Spam-Score: -6.95 X-Migadu-Scanner: scn0.migadu.com X-TUID: Le9rHdwejPns --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 2022-05-26 01:36, Liliana Marie Prikler wrote: > Hi, > > Am Mittwoch, dem 25.05.2022 um 14:01 +0300 schrieb Andrew Tropin: >> On 2022-05-24 20:31, Liliana Marie Prikler wrote: >>=20 >> > Hi, >> >=20 >> > Am Dienstag, dem 24.05.2022 um 14:55 +0300 schrieb Andrew Tropin: >> >=20 >> > > On 2022-05-23 19:05, Liliana Marie Prikler wrote: >> > > > [...] >> > > > I don't think I agree with this choice.=C2=A0 To satisfy both my o= wn >> > > > use case of serving profiles in different locations from >> > > > another and another issue being raised w.r.t. configuring the >> > > > location of the .guix-home profile, I think we should make a >> > > > triple of location, optional short name, and manifest (which >> > > > may be generated from packages implicitly).=C2=A0 WDYT? >> > > >=20 >> > >=20 >> > > This service is intended for profiles managed by Guix Home, so >> > > every profile MUST be a part of home-environment (~/.guix-home is >> > > a symlink to it).=C2=A0 I don't see any meaningful reasons to make it >> > > possible to customize the path inside home-environment. >> > Why though?=C2=A0 The decision to restrict Guix Home to dotfiles was >> > already a bad one that has since been overturned, so I think we >> > should carefully evaluate why "~/.guix-home" even is special.=C2=A0 In >> > my point of view, any path that is prefixed with the user's home >> > ought to be fair game, as should be constructing intermediate per- >> > user profile symlinks in /var/guix. >>=20 >> It's not bad, it had and has its own goals, pros and cons, I found >> another design descision, which we think is more intuitive, but still >> partially serving original goals and we switched to it.=C2=A0 The >> disucssion about ~/.guix-home symlink itself is unrelated to both >> "dotfiles question" and my original statement. > Perhaps it's only tangentially related, but it highlights a point of > contention that I have with Guix Home overall, being that it takes a > few very idiosyncratic "shortcuts", that I don't think make too much > sense in the wider sense of Guix. Consider %profile-directory, for > example. I can't see it anywhere in the code for Guix Home, so I > assume generations are currently littered into the user home. The > specific choice of moving ~/.guix-profile to ~/.guix-home is another. > Assume I only want to use Guix Home for one or two config files, well > nope you can't unless you're willing to move you packages as well or > willing to have a pointless symlink that you didn't ask for. ~/.guix-profile is independent from ~/.guix-home and you don't need to move all the packages to Guix Home if you don't want it. The profile management is the same as for Guix System. ~/.guix-home is a synonym to /run/current-system. Customization of ~/.guix-home location is potentially troublesome and was removed in October 2021. > > Don't get me wrong, this is still mostly about managing multiple > profiles with Guix Home, but the way I see it, Guix Home's own profile > management could also be improved. > >> All dot/xdg/other files belong to home-environment and no side- >> effects are done during the build of home-environment, the only side- >> effects happens during activation and $HOME touched only by symlink- >> manager and I would like to keep it to be the case, otherwise we will >> end up with tons of stateful ad-hoc hacks. > I struggle to see how my proposal would complicate that other than > adding more jobs to symlink manager (perhaps?). For what it's worth, I > do think that job could be much simplified too by storing the symlinks > in an association list > (("~/path/to/symlink" "/gnu/store/path/to/target") ...), > which could be part of a Guix Home "profile" just like manifest.scm is > part of a normal Guix profile. The activation script would then read > this table, expand "~" (as well as check that it is the first letter i > each of the first paths) and create the symlinks according to spec.=20 > Best of all, it doesn't even matter that much if the target is in the > store, in /var/guix/profiles/per-user, or even another place relative > to ~. =C2=A0 A little too abstract/general, let's see how it goes during implementation. > > Note that I believe that at the point of writing this file variables > such as $XDG_CONFIG_HOME should already have been resolved relative to > $HOME, with the former being specified in home-configuration or > assuming their usual defaults. YMMV on whether that's actually useful, > one could alternatively allow $XDG_CONFIG_HOME/ etc. as leading > sequences too, though that invites more errors when experimenting with > homeless shelters outside of clean shells. > >> That said, I would like to avoid any Guix Home logic to rely on paths >> outside of home-environment.=C2=A0 In case you really need >> ~/work/my-project/guix-profile to be created for some reason you can >> extend home-files-service-type and rely on symlink-manager to do this >> dirty job, but the setup-environment script will still source >> home-environment/profiles/your-profile-name and won't know anything >> about ~/work/my-project/guix-profile. > Sounds dirty. > >> >=20 >> >=20 >> > >=20 > Cheers =2D-=20 Best regards, Andrew Tropin --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmKQyasACgkQIgjSCVjB 3rBFEg//YNRMU7MH290sUcNViyUqUG7AKwX7++bvrDrzh3Og0XRnxvvVHyWdB99K k7hu2rv11kYiVfp9z9SWgfciOR5UnM7/2VS0LLG2DzRoYa1rwSv4TNRflAqYFzkg 4fWQktvEn8jhbzNoq1b3/JgkT8lAQO0daKbyf+PrIilyL+dPlZ27w8+PFTXxzoZK DnOMLllx+FxdUBHi5QD/x8q2HxZZMvJnumHerzQi1nXnfQ5aG5MnU6xu+XkUtLjS wmfUX3JywwAoa8E508YrqmXnOuwROkb/oSIz5fMJch06N+BfCCGKnI1LvARFXjZI RstTT5DDGT5/qAiHuvIWQLK8srYlAbROO9/8MWGPsfIV2dLNMxIt9TxyYXCSK+vk IcRRjRQbCwRNOfs+GFSRslG2VGRsz21W4t50F3QDVyq1DfYMPWxxkgM8Tc/KMNM0 pDTQ6QviLTU0N8BWBH3UkXn0oFNsX755+U2pkmntRCGzlciBIpT/K+YSYlT1axIl Wc1c8aMzBnWFPjyfbAw4LRzH1pgVH1H+gAIfDXHGdw2cpFuIb6B2PLzX0/hwJOLv 8HZE/UxEUxv6xOYDgMXw4esQVgtLHOX/mkhW1X5/RdIyrxpiRyoQKBqSD0f08lkG Zg4aoU0gKLfddHrCnbsxbkYV4IST69z6fQ3K2IJDX0PUIZBlESU= =D+ii -----END PGP SIGNATURE----- --=-=-=--