From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id kNiWCrW9jmKoCQEAbAwnHQ (envelope-from ) for ; Thu, 26 May 2022 01:37:25 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 6Kd5CrW9jmKtOQAA9RJhRA (envelope-from ) for ; Thu, 26 May 2022 01:37:25 +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 9CF263D599 for ; Thu, 26 May 2022 01:37:24 +0200 (CEST) Received: from localhost ([::1]:33344 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nu0Z9-0005sr-O3 for larch@yhetil.org; Wed, 25 May 2022 19:37:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55322) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nu0YM-0005sh-2T for guix-devel@gnu.org; Wed, 25 May 2022 19:36:34 -0400 Received: from mail-ej1-x641.google.com ([2a00:1450:4864:20::641]:40697) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nu0YK-0006jC-AJ for guix-devel@gnu.org; Wed, 25 May 2022 19:36:33 -0400 Received: by mail-ej1-x641.google.com with SMTP id wh22so36167ejb.7 for ; Wed, 25 May 2022 16:36:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:date:in-reply-to:references:user-agent :mime-version:content-transfer-encoding; bh=runhpaSTaCVLdHGEiGRUCsSIf34LFZl+RLS1/6SxHZg=; b=Z7gpGeKOBlPoINm8NCvCc4n51Vx5XEtdDHPDJ+IjOwbeVxzv1ZT/zGLVDVoZ7zKvR2 CeQB7pP6v0fDM7i+gfT8OSVnYRkozoCGDTGEVoH0sbkow+UWg2JFbpvIn6MifRKnNu// 5QH72a5we2vhiuvaqoNBKhJOZ49bkeW1suAmyTa1YiMZVcLMUeEz5KXuimjstZoKvkZw b5bp3gfEWiQZydyqm6Tg/dvidNsVBfZqE2aI8bwoI8jUNRX1dN+srK+3K4n5cAMSp0DX BSq11mT7nzGnNd2S+uo2x6y2qsPH86xwKU8fO5AABexooeJM2UfPZkwBDuX6c3cDSktq CJNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=runhpaSTaCVLdHGEiGRUCsSIf34LFZl+RLS1/6SxHZg=; b=xx7fQoeKog5H1ClUR0o4tR+hcqp8IPF/sC9h+b08zDRRyBI7vHMUDGz1V41SzWrrsg g0TI2CBbcy5+LdKr5sPNA+SaXjYzW++Ds3EufZS6U0H11TjDIQOhU1smOosHRH6NVQ1Q LGl4OAqAeOH+EQ1r86e4gQZ3Btld6KeoUSbWiY0CfNrQtXXj6gAifi7U11+1iaTWFZ+c rxkyZRWnsOMdqpIBYbN+Sg/qJ/Usd6BtlGMZVXgtcVZ1N+iozFw2sQbcBiiJcLuYFAq7 pCh3LAHHwqQ4VyfdzHMdcEi1ZUh6jKiCGcMGsVaXj/MXgNg98C2QaUoy6Id/0B1o5fvF R74w== X-Gm-Message-State: AOAM5321T8lZlVBK8gKDbt3DrRWXuK6hfnZcU2zKQuwQr3NPWCfIJG7H 5zRaBSbtsf8hBPKF5wx23Jc= X-Google-Smtp-Source: ABdhPJz4IWK27VPXuhVPimQuEAVmEIbO8zCPTfasXsLWLbs2Y/wBK76KoOndXA6HXYivWiUOKDW6/g== X-Received: by 2002:a17:907:6d1f:b0:6fe:e53b:7f53 with SMTP id sa31-20020a1709076d1f00b006fee53b7f53mr15777624ejc.375.1653521789954; Wed, 25 May 2022 16:36:29 -0700 (PDT) Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id dn10-20020a05640222ea00b0042aad9edc9bsm11504659edb.71.2022.05.25.16.36.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 May 2022 16:36:29 -0700 (PDT) Message-ID: <18d58357210056ef4d5b1bc6fa5e40b884012d12.camel@gmail.com> Subject: Re: Multiple profiles with Guix Home From: Liliana Marie Prikler To: Andrew Tropin , guix-devel@gnu.org Date: Thu, 26 May 2022 01:36:28 +0200 In-Reply-To: <87wne9q3jx.fsf@trop.in> References: <87ilpwpf1b.fsf@trop.in> <7e70064d679274160d62fdc86e7e25879bec7a79.camel@gmail.com> <87wnebp2kl.fsf@trop.in> <31aad8f29ff43cc27432936227aa7c8edff76265.camel@gmail.com> <87wne9q3jx.fsf@trop.in> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2a00:1450:4864:20::641; envelope-from=liliana.prikler@gmail.com; helo=mail-ej1-x641.google.com 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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=1653521844; 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: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=runhpaSTaCVLdHGEiGRUCsSIf34LFZl+RLS1/6SxHZg=; b=koluCjFxjg5Eth68THsVRL83aIy6vChcR6o/rGEbWjsW8yJKGVdGwWEd2adqPlvg+b/B9u ylsZGai7tWzVYlDTe2pmhkgfATf+qyJXhdDnzQNaVTHWx8f8QwDq0IBD6p0JXfXawUGSrI YGXvoczyMavBdOUf+2rUVkvX0mUDHnLzA9G+7XYrCT3KZbMyVSF7DMGy4XJGBk3CKvTuPZ s+Zz8qeYaSAMocsV6iX29sBeAFKPQwVje6fqqJx0GNbRs4IKKvmbaIiIGSTXDUa5sWjBfl zeJXJ/Kzcx3zDYXup2hTzJ0IbUHM1eNST57OolOwAYAB3KRIkER2dhQsYd4j8g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1653521844; a=rsa-sha256; cv=none; b=YixEelJz/zz5122c0Qe0tEJ9hJN0BYy3msHkEhNmhRKFdRJA7bTWCnlt3Zi1im+yjgsULc fQFlQiLcSiWo5Jz584fVH872sA0U/hf7LxYalvP15iTdIryb2SIO2VcX5DJ4UnEaUAwIjc DlgWmp3e5/K66/50wO/lPJ12HgZQyJ5cVp4rVXVSoEB4QyI5LsEM5ZADuSrKjnuOWPylHp Mn5x/ff1C6JxIuCa2f+eWN91GcMkJO01HpWpJMY/VAcaAX1eY+d6CjpGzidYpEdY5sQzne TyCbtTOS5MJypLKCS062RULygsareOWLwBAsCIq5zN8qo0wSP3eipSgRGEYLMg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Z7gpGeKO; dmarc=pass (policy=none) header.from=gmail.com; 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: -4.04 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Z7gpGeKO; dmarc=pass (policy=none) header.from=gmail.com; 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: 9CF263D599 X-Spam-Score: -4.04 X-Migadu-Scanner: scn0.migadu.com X-TUID: sLl5e38Wxfjq Hi, Am Mittwoch, dem 25.05.2022 um 14:01 +0300 schrieb Andrew Tropin: > On 2022-05-24 20:31, Liliana Marie Prikler wrote: > > > Hi, > > > > Am Dienstag, dem 24.05.2022 um 14:55 +0300 schrieb Andrew Tropin: > > > > > On 2022-05-23 19:05, Liliana Marie Prikler wrote: > > > > [...] > > > > I don't think I agree with this choice.  To satisfy both my own > > > > 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).  WDYT? > > > > > > > > > > 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).  I don't see any meaningful reasons to make it > > > possible to customize the path inside home-environment. > > Why though?  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.  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. > > 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.  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. 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. 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 ~.   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.  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. > > > > > > > Cheers