From patchwork Tue Apr 29 07:17:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 42132 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 CA3B327BC4A; Tue, 29 Apr 2025 08:20:13 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE,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 8C92227BC49 for ; Tue, 29 Apr 2025 08:20:11 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u9fG4-0008Ol-Hg; Tue, 29 Apr 2025 03:20:02 -0400 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 1u9fFC-0008I7-5V for guix-patches@gnu.org; Tue, 29 Apr 2025 03:19:22 -0400 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 1u9fFA-0004sF-0R; Tue, 29 Apr 2025 03:19:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:In-Reply-To:References:Subject; bh=Eyfe1YI2mIOVWjgmSEgA1PXm1vkqddx825qOEpXQNV0=; b=pj2JSplBWrhcdSY17jTcLOp8e6HsLjDNDt2bv6akCJYYDEVCh30aigIJIUlQDLdKhZAKghQ4bj/W/WKhbjMnCn01wKe9QMFlPrTwjBGsLNMOSoEm20U30+fhmNhGIXqljLGvBImV/AkHPzUyb74KyyzKorEIOSS2Qe5Xyr2YO777zQdTTq/NPWEQOoPg5hhc0r4INM0foGKTsCHuKw6Dk3n0d5ByFRzegw28AxpfWcn7bfgP4Skc2oY2BBY5RVuQ2/ptWtxRHvxTj7itn4oh9Z293auARiuaSVQqM3U1ZAnuiHqrM7Hz+MpksZt4CBqzStHbleqhXucz7aunJSGhGw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1u9fF7-00007O-Nf; Tue, 29 Apr 2025 03:19:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#73494] [PATCH v4 1/3] services: activation: Continue on exceptions. References: In-Reply-To: Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: hako@ultrarare.space, maxim.cournoyer@gmail.com, ludo@gnu.org, vagrant@debian.org, zhengjunjie@iscas.ac.cn, guix-patches@gnu.org Resent-Date: Tue, 29 Apr 2025 07:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73494 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 73494@debbugs.gnu.org Cc: Hilton Chain , Maxim Cournoyer , Hilton Chain , Maxim Cournoyer , Ludovic =?utf-8?q?Court=C3=A8s?= , Vagrant Cascadian , Z572 X-Debbugs-Original-Xcc: Hilton Chain , Maxim Cournoyer , Ludovic =?utf-8?q?Court=C3=A8s?= , Vagrant Cascadian , Z572 Received: via spool by 73494-submit@debbugs.gnu.org id=B73494.174591110832678 (code B ref 73494); Tue, 29 Apr 2025 07:19:01 +0000 Received: (at 73494) by debbugs.gnu.org; 29 Apr 2025 07:18:28 +0000 Received: from localhost ([127.0.0.1]:47028 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u9fEa-0008Uz-1o for submit@debbugs.gnu.org; Tue, 29 Apr 2025 03:18:28 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]:52658) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u9fEU-0008TC-PK for 73494@debbugs.gnu.org; Tue, 29 Apr 2025 03:18:26 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-223fd89d036so70092125ad.1 for <73494@debbugs.gnu.org>; Tue, 29 Apr 2025 00:18:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745911095; x=1746515895; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Eyfe1YI2mIOVWjgmSEgA1PXm1vkqddx825qOEpXQNV0=; b=b/4lVeENZRi9a6D6a9lwYVmeCvxQBwrsAtJQWI5A0/RXubvBVvc4HYP+fr/SMDWrBg UpvMqImwU/4GmxvLtC60HRJ0sNikSBhxdZ0f0li/IID2jQBYOjr/FL7IxiEAonKajhM+ 8Jx411bOmfzBgn5kjuRAnLYO+Bj/Z0YLkftw/tM69O8Qo7tXcRPR8rIIE6+jM5fbOmyG grMzEx06UqkkE0Jo04QI/JujiekcWJsajuaHEC9gxIwiu8aRn5FVZt+QA8NyrHTelGQe 9bboHmXRZ25ab2ernM73E0j5SjbBmzCEdH7xAvnuG0hIkpdDsmBf+azf+AVHfgCP9G4c vn2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745911095; x=1746515895; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Eyfe1YI2mIOVWjgmSEgA1PXm1vkqddx825qOEpXQNV0=; b=Hv0GKXh6lZPgYTNHw2j+Hx3scaNw8LN1F/78G9CTBGx3iRfDwbEA7TRgfJysgtj9Sc 3I6T+QR80QVidE20Yxr8dGf18x9aubVGvOlfT3kSeF4GxuCyMPxOl4JJUtY3cAN4Y4wk FN+fOKGz9L7S20qh3nyJPZHi/deHesitmdjb0kWwugPFjLxczcxVjikrmnP0sk03GWsY pE64HBRptQ2jammD8rBKU2aJPo+jqzSsGAXUjaj+piB6ztWsxLiv2qrSTSfVtaqxDc4Y SC1HVbfdw6pteZDKVqJy/G6NrWluFlKUKlz+7eA6WbHcLVC0QTDqiU4519FknWbu/VUv 96DA== X-Gm-Message-State: AOJu0YzJJEnaAEcraTNhBaIlbiCZCnGza8doObbqrJ9D5SrSImM3zXqk jlNI7QA3cQoxNo6m+OjkDzkrP+zpFRxe8RaVr2IlDRCNMZCmNBuhkUbyGA== X-Gm-Gg: ASbGncv2ojXH2wWkLVqiBLkSrHhG5NEotLUQVF/KSdbdUmQvp5A09ZgdSvrSL5LSJ0n uts4MlvHkVrJzAIA/J/iJ4gO4c6jwGewT3TqGQ8N9f4cwJ9RlQUvDgTqaZZ8bt2VeJBqmyPHP+o vw2/tzbn4PR32y3YrBbgXWwwHCTyU+0XNnO2wN9Wy4HaBwgQvenSGzkVJhXRg0m7pT921Sfwc4q WnP4Exk/qTzkJVyYq3MBlTQNZ21sbcCQpPxxvt2C7Z6Sy8iyUmOAEwy9ulus36h9AQFlF6wYlQO CrdoLxNxHl9SiCZ7RXd4LAXmnN94imubv9oYGa1q6ySeCgy1b2f0a0RaVYpt X-Google-Smtp-Source: AGHT+IFRfFf4dakQhyoNsUljwFjPZptVIHKRl7nlO97TS6dwWuy5zXg8ordoJ8a48OhZZ1pKsnF+BA== X-Received: by 2002:a17:903:2a86:b0:224:1221:1ab4 with SMTP id d9443c01a7336-22dc6a095ccmr214022165ad.22.1745911095287; Tue, 29 Apr 2025 00:18:15 -0700 (PDT) Received: from localhost.localdomain ([2405:6586:be0:0:83c8:d31d:2cec:f542]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4d76f4bsm95399495ad.49.2025.04.29.00.18.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Apr 2025 00:18:14 -0700 (PDT) From: Maxim Cournoyer Date: Tue, 29 Apr 2025 16:17:43 +0900 Message-ID: <597361035150296c6051f6f78fc8cc8ff3af8b61.1745911065.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 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 From: Hilton Chain Use ‘invoke’ for backtraces and avoid changing environment. * gnu/services.scm (activation-script): Execute activation scripts in ‘invoke’. Warn about failed activation scripts. Change-Id: I89be31433fbb46d0c4a9dc6115ab167910840b6f Signed-off-by: Maxim Cournoyer --- gnu/services.scm | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) base-commit: 2b4680c6c17bd6470f78a1f39d2f7af8b05e279f diff --git a/gnu/services.scm b/gnu/services.scm index 8a4002e0724..ed17981ffdd 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -692,15 +692,28 @@ (define* (activation-service->script service) (define (activation-script gexps) "Return the system's activation script, which evaluates GEXPS." (define actions - (map (cut program-file "activate-service.scm" <>) gexps)) + (map (lambda (action) + (program-file "activate-service.scm" + (with-imported-modules (source-module-closure + '((gnu build activation) + (guix build utils))) + #~(begin + (use-modules (gnu build activation) + (guix build utils)) + #$action)))) + gexps)) (program-file "activate.scm" (with-imported-modules (source-module-closure '((gnu build activation) - (guix build utils))) + (guix build utils) + (guix diagnostics) + (guix i18n))) #~(begin (use-modules (gnu build activation) - (guix build utils)) + (guix build utils) + (guix diagnostics) + (guix i18n)) (mkdir-p "/var/run") ;; Make sure the user accounting database exists. If it @@ -719,8 +732,17 @@ (define (activation-script gexps) (activate-current-system) ;; Run the services' activation snippets. - ;; TODO: Use 'load-compiled'. - (for-each primitive-load '#$actions))))) + (for-each (lambda (action) + ;; Don't block activation process when one + ;; action fails. + (catch #t + (lambda () + (invoke action)) + (lambda _ + (warning + (G_ "failed to activate '~a'.~%") + action)))) + '#$actions))))) (define (gexps->activation-gexp gexps) "Return a gexp that runs the activation script containing GEXPS."