From patchwork Tue Feb 27 10:34:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kjartan Oli Agustsson X-Patchwork-Id: 61154 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 445D727BBEA; Tue, 27 Feb 2024 10:41:07 +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=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS autolearn=ham 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 00DA427BBE2 for ; Tue, 27 Feb 2024 10:41:05 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1reut4-0001ui-SC; Tue, 27 Feb 2024 05:40:38 -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 1reut2-0001sa-FK for guix-patches@gnu.org; Tue, 27 Feb 2024 05:40:36 -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 1reut2-0000Gv-5w for guix-patches@gnu.org; Tue, 27 Feb 2024 05:40:36 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1reutR-0003eV-Vd for guix-patches@gnu.org; Tue, 27 Feb 2024 05:41:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#69422] [PATCH] home: services: Add home-shell-authorized-directories-service-type Resent-From: Kjartan Oli Agustsson Original-Sender: "Debbugs-submit" Resent-CC: , guix-patches@gnu.org Resent-Date: Tue, 27 Feb 2024 10:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 69422 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69422@debbugs.gnu.org Cc: Kjartan Oli Agustsson , ( , Andrew Tropin , Ludovic =?utf-8?q?Court=C3=A8s?= X-Debbugs-Original-To: guix-patches@gnu.org X-Debbugs-Original-Xcc: ( , Andrew Tropin , Ludovic =?utf-8?q?Court=C3=A8s?= Received: via spool by submit@debbugs.gnu.org id=B.170903041113873 (code B ref -1); Tue, 27 Feb 2024 10:41:01 +0000 Received: (at submit) by debbugs.gnu.org; 27 Feb 2024 10:40:11 +0000 Received: from localhost ([127.0.0.1]:42301 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1reusc-0003bf-B8 for submit@debbugs.gnu.org; Tue, 27 Feb 2024 05:40:10 -0500 Received: from lists.gnu.org ([209.51.188.17]:54212) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1reusb-0003bS-3w for submit@debbugs.gnu.org; Tue, 27 Feb 2024 05:40:09 -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 1reus6-00019F-7c for guix-patches@gnu.org; Tue, 27 Feb 2024 05:39:38 -0500 Received: from mail-he1eur04olkn20800.outbound.protection.outlook.com ([2a01:111:f403:2e0f::800] helo=EUR04-HE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1reus4-0008CQ-JE for guix-patches@gnu.org; Tue, 27 Feb 2024 05:39:37 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gUyJ9f64NSv2V4o6lopv/o/ViIzjxw9vnOAxXmZUxtboeBrtA2w/zUuF+njmySkxilViu2rAHInU5ydoXm9Ekscy4FFO2tNBWxVNBhxZ9f9q6pae4yGyZSRMnNTWdBsA5tbwrbnwrj/E0aKIXXpMTYsdAAPJR9hBrb74ytERpBgIclYWNd+RufSl7gDvCq2OwVsxFedIuMRLUhMLk1QedqMflsyROQZajwnvTXI2jAFMx/15ie3pOZBAIgM6pM/2bt6HYuts8Hdn+Ekv1lIa0uWG9tl9UaR6pfK0rUGvrhmFoDvsxLR1FCty58RdgI1Utt+71gQd1HNamKsJvfrYmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WYh2chmZ1v/Vxcx11muJbJPvf8n218Po9NP2P/FV5xY=; b=d68fyZcBOtX3BSm1ubL7y8KkxOvCWP+02u3Rd2QizoQ3JpGmPz1TfrB22ehnhcBcuNqE1PUv9GpLgIX/iZzDpp/+u1Ov24qjFEBGUI2ZSaGnBZdq9WGzucmz2ZTai/4Uidmaf/tlsNg2ubsn9Hnnrh8ZectIRdgJnkK5JTjfQZU2xLaR2RC2QNiUVm18+OIzGiBllp3+jlFeaSNd6qKmLgX6R/OmkVzdyNM9jfYtySd6XYC1OSBNdYjHtLXVNmRCf5TgHAiuDuVbkpRe0eWzGpp7emyqIf6eDBTKH0L2imWh4WiOZbqWg07AmMJQQUnXnjnlncLSi7noJ8A0MaeOiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WYh2chmZ1v/Vxcx11muJbJPvf8n218Po9NP2P/FV5xY=; b=OPtDV/vy8dBp08org2Yv1fmaYx1q5LQkIZWLdQNBy10NElOniUDkgC7RJ1kLAdMZzQskeL0lIJrhKHH/vd62FluO2uHChCGzdvVlxALsLuzoPHkds5FbtrkW5ElSkqBcn5qgTO2n/+QHsW/MQhtEfcqmILoAbv+b2vJFBALfMkXqJ/d72TxU709xDyhp3NlNft4/9SHcgvmCXXHDu4NoJrzG1nxKdBu5Qqw9x0yW7rDusm92F+hOZZQSrPsdLsCSKod/Aq/8safAUWmUYwIsCHfpvMsRwn8oaAPKihdm9cUsaTO3GZK59GIwGQhYdubggwLCh8KpiVpCd+oiku3pAg== Received: from AS8PR02MB7173.eurprd02.prod.outlook.com (2603:10a6:20b:3ff::13) by AM7PR02MB5970.eurprd02.prod.outlook.com (2603:10a6:20b:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.37; Tue, 27 Feb 2024 10:34:30 +0000 Received: from AS8PR02MB7173.eurprd02.prod.outlook.com ([fe80::87e6:f7d6:6148:3626]) by AS8PR02MB7173.eurprd02.prod.outlook.com ([fe80::87e6:f7d6:6148:3626%6]) with mapi id 15.20.7316.035; Tue, 27 Feb 2024 10:34:30 +0000 From: Kjartan Oli Agustsson Date: Tue, 27 Feb 2024 10:34:14 +0000 Message-ID: X-Mailer: git-send-email 2.41.0 X-TMN: [WHNkThltDGSZwtP3IO4HG2GMQeHGZqGV8uHe6nyKW1XyT72r/JeDOCZ6P+Hzj33U] X-ClientProxiedBy: LO4P265CA0279.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:37a::18) To AS8PR02MB7173.eurprd02.prod.outlook.com (2603:10a6:20b:3ff::13) X-Microsoft-Original-Message-ID: <4b6d2b1551f6315c4500bcdaa6abb72a275d9355.1709030054.git.kjartanoli@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR02MB7173:EE_|AM7PR02MB5970:EE_ X-MS-Office365-Filtering-Correlation-Id: f3c54766-8b70-4429-7885-08dc377fade1 X-MS-Exchange-SLBlob-MailProps: YfhX3sd/0TVS6vZvlJJD++Nn/AJWEYxzLT0d/uU9ZFk1rv8n5kh8oMKAdc3l7UmS2PEbcYtfosC2I2aYsuWXHhxDmplj1fG2oXznei0YSvu+0Po0FRDDrodgkOch3jj/VWTFrK6CDU/L+A3U6Ri8mYhO/93ooB6Wd65QLy9zkxC6OR5spWpr7vfd2R9AWQ0kNf7ODpbdevm9+2xxNu5r/mqkIXH3GAxy9sWeyx3il7j7i4AHUl7d6VrBrltlmy84CUOypICT2i4pHGf4xQygdd01s1UUeuEBrdC2Tf3ebaoNZYFxN+ciadDR2fFG1D3MjH7N/4q0c7m1VLwIc+JJ0SqRtyTb3AUEDLJAPOz0q6B5uz7s4BuoCBjECaBo6ctT5SaTNvlhQC+TYEqFnXmCCTR8HYboIlaJksQgbKEQehjyzIR6+yAq4XJYfZKDN74Ip+uBLpVf4tUropA5Ek+yGBYMj+LyPPAhaTEvAizZvzgWvCs6LgYcuIvPEGWHhKhY24ciDzLGRu7Ije+pPaIVUksWW9uRZ69+lDk36co0glp8gBvzgyWhfDW0Kg2LhUxg0Q20rhmH4B3ppbyM29M4H6AZ7T00eYuv+iv88QQfgBz2wbnDbO+iu/MzSu20swkDoUDLRxW3g9iwqvzUut4SUONlXnwvaMb7Pt2yTYiD89J/ln8jxFr3jjISSK1x5raQbpqfFVfKBXcMh+KAWTwVPNeTQ2nql3spnGGXIC5Ti1yQ0mVuf4lEFm5MHIZxPFV5QOfFBGkrzb3vkwLIU5ArOwR9EGerDrFmmRGGNWqTWFI= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vfehcGlyktppWtF5O1fzJEYmmx+re1KJ6xeh+aW6jMPc7QJfDQ68RlMs1OuW4ofZ88c4aQ+lr/HGoFxKKQ8WRKRjPCeMEc4Wbd6zdEE5eEPh8o9rgt9Ze2L6RoVZ0ZT0kKuAXfOxyMCda70p35X8DXji4ZpN/+8s67Vrx5wqdWHgYPEYtVxdbZGTBXq77T9rQcd64IvIeXJqzQoLTcsnVPsxuSLOAlAL5zo3U95IEcHi2xed+1iqktcetgE2ZRj2f2GeW6xduVlgAZ1QubsTHqmw62Fc9s/tsbyB37LqYDhKXdo46Vxiwll96IZWTvIvmMZlbIqDJebBKnK7693bkDVXgmLiPWfiOi3QWi02EEgow/X9MnzgT+7NRJ9trjn6JpNmF+g+HGRCfhXvfY0X4TCLxttOCiu1/JwKOaZ9pRHbqFHYMEheTt2cYiQ/xfHNHEIBzWZJuIbY4zKeHoKMQEEKHh1xXYYCmtyHNUyT+f8x4AMeRZxo0gbbCkM7oiOkUDeLnE6lbnzGZ30UMkLlEX1v/wDAYgl3pGkyO+cmKG76h79N/fKNuiLa0dX2Buy6xPrEcXRCfeL9KVe6dDnZ1z+fdPhlEeNB+ja3YnPOq1Gil5iHSSmn4eijgWyej99i X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: oqHgVNI3GusGZyzWHfDXU1GzOYJgJYaekuKbIZdaSFMi0/jJMlR60tqf8OKo0kpLpp++GR4JZB6Jh2Ifo/jOM4IcoHGt7SNlc35hZVqh8Cbn341TxOLBhgGxKRXR2AkNKwLuWXQxplc2ygk5PjKQ9tyccHXfSxI90gYAyLou1bjUdf2qx8aLt68voyqFr3LrSS+FDFSPrXafP3AE6q5OT1aehUOJcEhQbj2eom8IOIuHj9aJnFxoURK0/IcvgIOKK6XbUUVyrqgeQtZpvij85V2Eyf2VXLILVeUEtNQHJKGSrEM8F/k42v2SowJUkFP9ZIH0ZN8KdY42V91Rdibfj9UJwITnfQXDJQiFITR82OrPeWqAX+06K4kEA2nb7V+msLarUjACMbJmxSD4mt1yEByDZB6bqf1WANzhtMVu9uSAjx+KAMgEF9L/G85AeJSwi8ik0ssPSHUeKzrHCN0j+1XBRegMEyt9GzbvTh7479TSLpqXl0yV8OKEbqJOmd9cIUcUxboLO8hw935/luJqP6NULMSHo9bIDe4lRbF0DTu/WpUd9avEp4ES3QnwEDZBtDezycFQcVMhVnUZAyS8EB8HIMt+n7LjuwqFehUTmwvxjNFzkZ1D1lT3w3I+D8PCsxoHyQ8Qg17Nktw84RLFVQ2nrThvkti9WgxHJ7sZfzQbscoyQgAfaRJqKb2azA4xKMqiCuNKuGtnTBJ6GRTQWuu7d1GtIneEOeKHe2B6MYDjcArkRJ+dKWiJAGV9h7Q4Ww3xSoLB5vreFNI/qHi/dHHRaXjGHDVIEY3bK6d7wJKVM2Rz3crSjKGP3HmFP3e31rJgbFxGQL4hPxZaKGoUCIlgXEiclwnmt8IVSiQsN/occFVaoAeckw184ksumbpBZwKveK+6mKlZ9ApkSkayUvSkTuoWgcBhLG+jdTi+uMZE9jVfBmEbUr+P2LsS0tSnefLrPnt6UBkTU9EH5XcWK8JCNv5JJK0Gg8Us22aOJMW8612Cm/w4jqmSRH5tDWjCoHt3wQERwEK0oD3mKmjzx+mkvBzjQfvI4JSivuP+VbQFwSNNS/em3mtz7P2tQqmbTdixr1EBWTaoHMm0NIDyP6azo+d73HLNHl+ouxuLlG8KzeH4patUm3DFgOzAYHbPv2cP2OqpQzH+G4YSi6M1y4fLRg3Epf5OgF+ziFYxUE7/Mj3mQZWPfexFajBH4myaHdsxVeAw53adQCelibzKgrztbu45Gk+R8MyQ6hGnwAjZP8DN8gahmxFAFScryH6PTfXQYpmmbrCMIgUfytJmTtz4e3WAEUIuDZpfik7ebxgGqhqO1ubrZVw4hU0vZdQE X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3c54766-8b70-4429-7885-08dc377fade1 X-MS-Exchange-CrossTenant-AuthSource: AS8PR02MB7173.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2024 10:34:30.0528 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR02MB5970 Received-SPF: pass client-ip=2a01:111:f403:2e0f::800; envelope-from=kjartanoli@outlook.com; helo=EUR04-HE1-obe.outbound.protection.outlook.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_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-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 home: services: Add home-shell-authorized-directories-service-type. * gnu/home/services/guix.scm (home-shell-authorized-directories-service-type): New variable. * doc/guix.texi (Guix Home Services): Document it. Change-Id: I3501233c79e25ceaedf981acc5805e660b52a419 --- doc/guix.texi | 18 ++++++++++++++++++ gnu/home/services/guix.scm | 23 ++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) base-commit: de24aaf13b17d6c019f3f240fd0eb0e1b8654970 diff --git a/doc/guix.texi b/doc/guix.texi index 671cdab6f8..c19f30354b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -45726,6 +45726,24 @@ Guix Home Services @end lisp @end defvar +@defvar home-shell-authorized-directories-service-type +This is the service type for managing +@file{$XDG_CONFIG_HOME/guix/shell-authorized-directories}, the file that +controls the loading of @file{manifest.scm} and @file{guix.scm} files by +@command{guix shell} (@pxref{Invoking guix shell}). Its associated +value is a list of strings, each of which corresponds to the path of a +directory @command{guix shell} is authorized to load @file{manifest.scm} +and @file{guix.scm} files in. + +A typical extension for authorizing a directory might look like this: + +@lisp +(simple-service 'authorised-direcotries + home-shell-authorized-directories-service-type + (list "~/guix" "some/other/project/")) +@end lisp +@end defvar + @node Fonts Home Services @subsection Fonts Home Services diff --git a/gnu/home/services/guix.scm b/gnu/home/services/guix.scm index 819b20b6c9..49265a1c45 100644 --- a/gnu/home/services/guix.scm +++ b/gnu/home/services/guix.scm @@ -22,7 +22,9 @@ (define-module (gnu home services guix) #:use-module (guix gexp) #:use-module (ice-9 pretty-print) #:use-module (srfi srfi-1) - #:export (home-channels-service-type)) + #:use-module (srfi srfi-26) + #:export (home-channels-service-type + home-shell-authorized-directories-service-type)) (define (channels-xdg-files channels) `(("guix/channels.scm" @@ -42,3 +44,22 @@ (define home-channels-service-type (list (service-extension home-xdg-configuration-files-service-type channels-xdg-files))) (description "Manages the per-user Guix channels specification."))) + +(define (shell-authorized-directories-files directories) + `(("guix/shell-authorized-directories" + ,(plain-file + "shell-authorized-directories" + (call-with-output-string + (lambda (port) + (map (cut format port "~a~%" <>) directories))))))) + +(define home-shell-authorized-directories-service-type + (service-type + (name 'shell-authorized-directories) + (default-value '()) + (compose concatenate) + (extend append) + (extensions + (list (service-extension home-xdg-configuration-files-service-type + shell-authorized-directories-files))) + (description "Manages guix shell authorized directories.")))