From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id xGJ7OT+LWWFuVwAAgWs5BA (envelope-from ) for ; Sun, 03 Oct 2021 12:51:43 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id QHqYND+LWWH5EAAAB5/wlQ (envelope-from ) for ; Sun, 03 Oct 2021 10:51:43 +0000 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 814DECC30 for ; Sun, 3 Oct 2021 12:51:43 +0200 (CEST) Received: from localhost ([::1]:60708 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mWz5m-0005wB-5E for larch@yhetil.org; Sun, 03 Oct 2021 06:51:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57090) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mWz4o-0005vz-OX for guix-devel@gnu.org; Sun, 03 Oct 2021 06:50:39 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:36620) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mWz4m-0006a2-TO for guix-devel@gnu.org; Sun, 03 Oct 2021 06:50:38 -0400 Received: by mail-wr1-x442.google.com with SMTP id o20so6658851wro.3 for ; Sun, 03 Oct 2021 03:50:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:date:user-agent:mime-version :content-transfer-encoding; bh=KmA+4HY5x5Lu1TrX3F4E+mef4FU4iVHJHodobc6GpdQ=; b=gIStl21ElZa10Zj1HMz2WtFR/6YdrhLUktArpt/QHuCYvbvIZsCQDatD5VDDhJr5H+ MuEME8W4Asr6bXmbmDjpDt/gQuBS/Q35AZ5eOEHrquMUit4TuVEx5VBmtBJFbr4FGI+y +keoa9Xmb7mWo702asqVXT712TFj0C9qyLNZsh5O8PllkUwDKqO4gSSBQvUs2Hp9cRvg 9G0oHM7kQfcMDS++tq+NmXTWNPvxg1aCunqvYxeEboQzXGGhBloknt6sGiU+tl7UgrfE 0LmTcWiv8FT+lr+Achqf5Z2MtoPWG50gdi/NSgsUH9uWobhPnX4fqrTT64ILNw6zpz1e aOmA== 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:user-agent :mime-version:content-transfer-encoding; bh=KmA+4HY5x5Lu1TrX3F4E+mef4FU4iVHJHodobc6GpdQ=; b=swPRt7C66WjDCf8JEVZU6YWRDUtAU7EUDlXZW+MKxk5Lric3N8KzAGw1fIKCiU7eyj rBegywW+zSp7CDf4cmVuRMPMSu4D4KnCvmWiH23LD321cdUDt3n+poJdOd3nrv6vEC2k Lha2TIEp4n5xGGX1snZcaOr07TNWiNAAwI8zYzIz8MGMV3Pu6d4t3tBNlS873CAbJQwY AInOglrzFzulSrCpv7fnYm8yU5wyL0dWlRZr6yO81lErYTYkIBqfv1K2BYBarKw4NZYW wBA6oGPgW2j974Bg5PuhTmpt5iEPzJJffpIAU8WtxVxZMaD9ElIBNGTUAR8UsetSksZA j0Lg== X-Gm-Message-State: AOAM532vTvaSModqHXzOsr2yaol17JObWlaTavdcsshlQTPvs/ucgvJv mS3O5357yIYUGUZJx58XbuxobAz1ecw= X-Google-Smtp-Source: ABdhPJy5THu/Ytan26DvafyxRLygL5ZDBkNzyCt5nikT+AsFgW6T4y1Walk3wxeMuXzM6+optdN/YQ== X-Received: by 2002:adf:8b47:: with SMTP id v7mr7813457wra.321.1633258235287; Sun, 03 Oct 2021 03:50:35 -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 d8sm3921260wrz.84.2021.10.03.03.50.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Oct 2021 03:50:34 -0700 (PDT) Message-ID: Subject: Multiple profiles with Guix Home From: Liliana Marie Prikler To: guix-devel@gnu.org Date: Sun, 03 Oct 2021 12:50:33 +0200 Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=2a00:1450:4864:20::442; envelope-from=liliana.prikler@gmail.com; helo=mail-wr1-x442.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 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 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 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1633258303; 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=KmA+4HY5x5Lu1TrX3F4E+mef4FU4iVHJHodobc6GpdQ=; b=IxYr4IAhD4MH1ogerHnFZg4kS+90RE4M0TLBu6izbIe2M35wJyWLaHHKA64wp0aOXHQAUY dcSXc78RC/Nc0fNXrIykKR7rTPK+W2kApdKNrm5wV/iOsdIDLIL2SQL9sdd3oYWUZHYR+j znpprGydDiN+4QHec5gFKntyHs/0qdHvn3r4XvK+JOmiBwdGEem0/OTL35vOiEnhxKroCT K8yE+8kRtMHFT5qhWrlN8WWTpCOv9g0y+6GfAh3VWBXYK75DKg2+bNeJpvXvd2D8/wW/cq 8yYAY6FShvdt16vEUKWJGg+kewz6Aj8QKboC3AgBgi72P3Ws51IoXOypR0Rd7g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1633258303; a=rsa-sha256; cv=none; b=qzntjRm2aIiV5/H+EeOvmH2XpAAR+X2I+7SNr7CYZBcCNZXgI+V3Wf2i6+N21Dqq2VkEm7 R0y4Os2+waL6pwCHNQfguWfnHfWbkbdWYy4HIWZGN2bo2oN3PIlAsum0EUQZKM1PB0wAl7 RMe+o7aXJy95MfFRoOplzq1mVVTBmch99NrLduUiPuBmtpWSgVL7QbhFERv34gq2o5zTXd l4ZuMpN1zig4s9moa205IMcYFf4pcYU9m13vc4s7YFyZiPGrHogfG/8s/O6bcNhc5h/WIs V7ZoPrbB15to2gXAJYCsKKIx6oxc5T++RSi2gDFmEvhlDPWNtYD0+CuCFTEA6w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=gIStl21E; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -4.01 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=gIStl21E; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 814DECC30 X-Spam-Score: -4.01 X-Migadu-Scanner: scn1.migadu.com X-TUID: s/ka6fkpG0CK Hi Guix, it's been a while since the discussion of whether or not to collect multiple profiles into a single directory [1]. This suggestion takes inspiration from that, but goes a vastly different route. Instead of using environment variables to control Guix, it takes advantage of the recently added Guix Home, even if it is still a technical preview. So, what's the proposition? I suggest we modify home-profile-service- type (or add a new service) such that it takes a list of records instead of a list of packages. This record would be defined as (define-record-type* home-profile make-home-profile home-profile? this-home-profile (location home-profile-location) ; string, e.g. $HOME/.guix-profile (short-name home-profile-short-name) ; string or #f, if given ; construct a symlink in ; /var/guix/.../per-user/ (manifest %home-profile-manifest) ; or #f (packages home-profile-packages) ; list of or #f ; fallback for manifest (enabled? home-profile-enabled?) ; boolean, default #t [...]) (define (home-profile-manifest home-profile) (or (%home-profile-manifest home-profile) (and=> (home-profile-packages home-profile) packages->manifest)))) On init/reconfigure, `guix home' creates/updates all home-profiles which have a home-profile-manifest that is not #f and links them to the appropriate locations. It also creates a shell startup script that loads those profiles that are enabled?, even if they have no manifest (this can be used to e.g. declare a pull profile, which `guix home' can't manage). Some existing home services would need to be adapted towards this multiple profile usage. For instance, home-fontconfig-service-type would need to accept a list of directories, rather than hardcode its value. What do y'all think?