From patchwork Fri Jan 19 14:12:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lars Rustand X-Patchwork-Id: 59135 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B4F7627BBE2; Fri, 19 Jan 2024 14:26:28 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 04F0627BBE9 for ; Fri, 19 Jan 2024 14:26:22 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rQpoo-00089A-0C; Fri, 19 Jan 2024 09:26:02 -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 ) id 1rQpom-00088l-Cn for guix-patches@gnu.org; Fri, 19 Jan 2024 09:26:00 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rQpom-000781-4i for guix-patches@gnu.org; Fri, 19 Jan 2024 09:26:00 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rQpoo-00083u-2n for guix-patches@gnu.org; Fri, 19 Jan 2024 09:26:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#68589] [PATCH] Add guix-home-service-type Resent-From: Lars Rustand Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 19 Jan 2024 14:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 68589 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 68589@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.170567432430919 (code B ref -1); Fri, 19 Jan 2024 14:26:01 +0000 Received: (at submit) by debbugs.gnu.org; 19 Jan 2024 14:25:24 +0000 Received: from localhost ([127.0.0.1]:57926 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQpoB-00082b-Fr for submit@debbugs.gnu.org; Fri, 19 Jan 2024 09:25:23 -0500 Received: from lists.gnu.org ([2001:470:142::17]:46584) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQpo9-00082N-1C for submit@debbugs.gnu.org; Fri, 19 Jan 2024 09:25:22 -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 ) id 1rQpo0-00081M-Nj for guix-patches@gnu.org; Fri, 19 Jan 2024 09:25:12 -0500 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rQpnz-0006ts-0N for guix-patches@gnu.org; Fri, 19 Jan 2024 09:25:12 -0500 Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-50e7abe4be4so1092085e87.2 for ; Fri, 19 Jan 2024 06:25:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705674309; x=1706279109; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:user-agent:from:to:cc :subject:date:message-id:reply-to; bh=URTIJnQ2mJoOGD1AW7BwK0/Ny6us0IsmffUVAWVqE1o=; b=nUoB0sToLK3lGzk74uBqTARBeH+9bELmmqbBRHJsoqDAxzHNg+c4AJ13gLbyV8sY9Y VMAalSSoW/2kGd0dJwBDJ1YYiSvnNki5r32ClAeMo6Ac1/yyVLFrB9N8+cKjRxZWoIrk 8GXqjoPKy0monROHOwEiQEinL/VCeSOrrXarHlfqUCzL2JA9ItzQ4oNOFjZ+ZTiO0kBb zItKLJLg4AKt8cl1TYKcHTl1q0kBNQMfI6MsbDY4G0Nv8bHq/O20iem3L2jblduU9dC8 6PdlOku9dMFzdGOgA/ipFf3pUsA3eqIG1sWTznSr7rLoBLlnurP7QzrADnLgvSZefN99 fsIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705674309; x=1706279109; h=mime-version:message-id:date:subject:to:from:user-agent :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=URTIJnQ2mJoOGD1AW7BwK0/Ny6us0IsmffUVAWVqE1o=; b=ubhITYoDL23/kEkqTYbBon5AvNxEX/NJJkUB/7Vd4VxeK22m9UaJLNDKIaqqAlD22O o3oSdiqTpdxkI10ZPBbXXh4d6h2N0dRTKD5jSTb/Y9BZ36fR6ZO7aeA3MrhWsqktqtcf jgVeztpW6/RJ4lz1lBlLyUedn7JjujUU0V0XUscznwS5hgRNa/Vxb0Bhqrpl7Wd46OyL UxnapTnwzJ7b110HuXgzuZM0nPCLGNOI+YFLspBAWQ69hLfMjjHbJmJyM3wyAbIVxuS+ NE6qcEuRHuaXbOHU9RSIiFDxxzXpTMS0X6S/Q4rzpHNgR0eZsA2ApdmOzda2mshaf/4J u26w== X-Gm-Message-State: AOJu0YxMwwB4vu+CE5AXbS2HBXV7uQ//7bVgfifQ2znA303Bl0Jiv7oy aP+QBXQ2QYf3Cfr5N65ckr3wBxJSOaNvTwqvuAAyWCWKipPGEJGixbWZ+RME46g= X-Google-Smtp-Source: AGHT+IEkcb9WC91e5WeUHIUHlRnL8IiG0MwbgVcdDl/4WBayPoMjwNdcMxo47fjVP/AOf5u/0h1y/g== X-Received: by 2002:a05:6512:3f1f:b0:50e:75ee:ec4c with SMTP id y31-20020a0565123f1f00b0050e75eeec4cmr1045262lfa.11.1705674309098; Fri, 19 Jan 2024 06:25:09 -0800 (PST) Received: from localhost (78.79-160-60.customer.lyse.net. [79.160.60.78]) by smtp.gmail.com with ESMTPSA id w6-20020ac254a6000000b0050f18179d72sm264706lfk.262.2024.01.19.06.25.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jan 2024 06:25:08 -0800 (PST) User-agent: mu4e 1.10.8; emacs 30.0.50 From: Lars Rustand Date: Fri, 19 Jan 2024 15:12:13 +0100 Message-ID: <87wms5e6ym.fsf@yoga.mail-host-address-is-not-set> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::133; envelope-from=rustand.lars@gmail.com; helo=mail-lf1-x133.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: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Hoping to upstream this nice service from RDE. This service allows to embed a home environment in a operating-system declaration. Original source: https://git.sr.ht/~abcdw/rde/tree/master/item/src/gnu/services/home.scm Change-Id: I42976cae9dd1580dc07dc866cd851294c7921725 --- gnu/services/home.scm | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 gnu/services/home.scm base-commit: 162d6a2fdd6af13272967c77347a54934ecb45e6 -- 2.41.0 diff --git a/gnu/services/home.scm b/gnu/services/home.scm new file mode 100644 index 0000000000..868eafbec8 --- /dev/null +++ b/gnu/services/home.scm @@ -0,0 +1,47 @@ +(define-module (gnu services home) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix records) + + #:export (guix-home-service-type)) + + +(define (guix-home-shepherd-service config) + (map + (lambda (x) + (let ((user (car x)) + (he (cdr x))) + (shepherd-service + (documentation "Activate Guix Home.") + ;; Originally requirement was user-homes, but for recently it stopped + ;; working, seems like it was executed too early and didn't work, so + ;; we switched to term-tty1. + (requirement '(term-tty1)) + (provision (list (symbol-append 'guix-home- (string->symbol user)))) + (one-shot? #t) + (auto-start? #t) + (start #~(make-forkexec-constructor + '(#$(file-append he "/activate")) + #:user #$user + #:environment-variables + (list (string-append "HOME=" (passwd:dir (getpw #$user)))) + #:group (group:name (getgrgid (passwd:gid (getpw #$user)))))) + (stop #~(make-kill-destructor))))) + config)) + +(define (guix-home-gc-roots config) + (map cdr config)) + +(define guix-home-service-type + (service-type + (name 'guix-home) + (description "Setups home-environments specified in the value.") + (extensions (list (service-extension + shepherd-root-service-type + guix-home-shepherd-service))) + ;; (compose append) + ;; (extend append) + (default-value '())))