GNU bug report logs - #71928
[PATCH] gnu: Throw error when extending services that do not use extensions.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: Richard Sent <richard@HIDDEN>; Keywords: moreinfo patch; dated Wed, 3 Jul 2024 22:14:02 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.
Added tag(s) moreinfo. Request was from Ludovic Courtès <ludo@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 71928 <at> debbugs.gnu.org:


Received: (at 71928) by debbugs.gnu.org; 30 Sep 2024 21:10:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 30 17:10:17 2024
Received: from localhost ([127.0.0.1]:47169 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1svNer-0006wu-70
	for submit <at> debbugs.gnu.org; Mon, 30 Sep 2024 17:10:17 -0400
Received: from eggs.gnu.org ([209.51.188.92]:46366)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1svNFj-0002FQ-DW
 for 71928 <at> debbugs.gnu.org; Mon, 30 Sep 2024 16:44:58 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1svNF5-0001Lw-To; Mon, 30 Sep 2024 16:43:40 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=zj179eTg/79GuZb3zw4jfSMRZPFz0BWcmXYTUVKV5QQ=; b=m/QSOzeBJbiBjIMst4+f
 XSix5LviubWFOa9r9xcuIUmQdUXhlgIg2grAVf2NjVxnAzp3mn2P2r3so+x+SJHXvWWgd2CPh2l+R
 7zW9ZcOzGwDbL+UkpcyUE+JwtC1ox0LfYZeUudbg5q06BTgwlvXX4jajwgmwocyvUJNIBRZgsvICC
 wSD0WViuHQE/2ob9kAur8vcqocbxvnny2mJCbGb62dBaPyYvfVNZIGHdtVPnMciLTxIRZd6QFiCtt
 njRYcmul9LC8s9pplx/lqfrPn2O3IGBwEoSQZcIrpYYx3IRaQc/pOcoLCCOnF2PiYlIt/GLCQ1dP9
 wez5Xu/vXYI0fw==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: Richard Sent <richard@HIDDEN>
Subject: Re: [bug#71928] [PATCH v2] gnu: Throw error when extending services
 that do not use extensions.
In-Reply-To: <6afb44e7f09f2d8fdbbe4cd0bad92ca170aef1b0.1720045261.git.richard@HIDDEN>
 (Richard Sent's message of "Wed, 3 Jul 2024 18:21:01 -0400")
References: <e556c70340d5cda9b87852e137722d082f093c10.1720044768.git.richard@HIDDEN>
 <6afb44e7f09f2d8fdbbe4cd0bad92ca170aef1b0.1720045261.git.richard@HIDDEN>
Date: Mon, 30 Sep 2024 22:43:36 +0200
Message-ID: <87h69w50uf.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 71928
Cc: 71928 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hello,

Richard Sent <richard@HIDDEN> skribis:

> * gnu/services.scm (fold-services): Add error handling when using service
> extensions.
>
> Fixes: https://issues.guix.gnu.org/71887
> Change-Id: Ic8d631674bfddde495c93952d9e6cd5649bb287d

[...]

> @@ -1223,12 +1224,22 @@ (define* (fold-services services
>                       (params     -> (service-value sink))
>                       (service
>                        ->
> -                      ;; Distinguish COMPOSE and EXTEND because PARAMS t=
ypically
> -                      ;; has a different type than the elements of EXTEN=
SIONS.
> -                      (if extend
> -                          (service (service-kind sink)
> -                                   (extend params (compose extensions)))
> -                          sink)))
> +                      (begin
> +                        (unless (or (null? extensions)
> +                                    ;; A value of #t is a convention for=
 "make
> +                                    ;; sure the service is present."
> +                                    (every (cut eq? #t <>) extensions)
> +                                    (and extend compose))
> +                          (error (format #f "Extensions are not supporte=
d in \
> +~a yet the following service types extend it:~{~%   ~a~}"
> +                                         (service-kind sink)
> +                                         (map service-kind dependents))))
> +                        ;; Distinguish COMPOSE and EXTEND because PARAMS=
 typically
> +                        ;; has a different type than the elements of EXT=
ENSIONS.
> +                        (if extend
> +                            (service (service-kind sink)
> +                                     (extend params (compose extensions)=
))
> +                            sink))))

I understand the current situation where extensions to a non-extensible
service are silently swallowed is suboptimal, but I wonder about the
implications of the semantic change here.

Currently the =E2=80=9C#t means ensure the service is present=E2=80=9D conv=
ention is not
enforced; is it even widely followed in the Guix repo?  But then, what
about repos out there that provide services?

It would seem to me that this is something that cannot be changed
overnight without running the risk to break people=E2=80=99s code.  So perh=
aps
the first step (and maybe last step?) would be to print a warning.

WDYT?

Thanks,
Ludo=E2=80=99.




Information forwarded to guix-patches@HIDDEN:
bug#71928; Package guix-patches. Full text available.

Message received at 71928 <at> debbugs.gnu.org:


Received: (at 71928) by debbugs.gnu.org; 3 Jul 2024 22:21:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 03 18:21:49 2024
Received: from localhost ([127.0.0.1]:40945 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sP8MG-0007Sx-Od
	for submit <at> debbugs.gnu.org; Wed, 03 Jul 2024 18:21:49 -0400
Received: from mail-108-mta152.mxroute.com ([136.175.108.152]:42657)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <richard@HIDDEN>) id 1sP8ME-0007Sn-2k
 for 71928 <at> debbugs.gnu.org; Wed, 03 Jul 2024 18:21:47 -0400
Received: from filter006.mxroute.com ([136.175.111.3] filter006.mxroute.com)
 (Authenticated sender: mN4UYu2MZsgR)
 by mail-108-mta152.mxroute.com (ZoneMTA) with ESMTPSA id
 1907ab05f2b00017a3.001 for <71928 <at> debbugs.gnu.org>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 03 Jul 2024 22:21:37 +0000
X-Zone-Loop: 8ed322636e3f31ca1675d7add40073809ec2609cf187
X-Originating-IP: [136.175.111.3]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
 d=freakingpenguin.com; s=x; h=Content-Transfer-Encoding:MIME-Version:
 Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=IycA4m6sJDJ7HMmKKGo9VPzfREj0CtantMOBzTnPAVo=; b=V0CCjjFhS3sySK98LmudQur583
 zfQs75vCTzFSRsTW1Tnp3oDbmPX+/cmlYFCp84GUcyaF4j2ukCR2RC+JHZUdYT4hOWnyiyiq4oW4x
 YlSYFnsnNOmU2RDg6cdjNhaQt39oNM/0mb+mZDOTTSj9604y21ieS6XeVbZsC/13kWWuStoaYrWje
 ovDdrajQiq0xAcgijB3yCJa5sPPhzLDM9r0F3GteeXtXfsppBpLNyC3n5GuoAEkW2cpLu9Bexdf+9
 JF4qYT8nxbWcBFoCJ/TJMTgsXenchCCuomytcd0Jk/Vx/hqgWjdGCkLbBwgtr86cRlsqMx2e2Cpk9
 pXYgTGrA==;
From: Richard Sent <richard@HIDDEN>
To: 71928 <at> debbugs.gnu.org
Subject: [PATCH v2] gnu: Throw error when extending services that do not use
 extensions.
Date: Wed,  3 Jul 2024 18:21:01 -0400
Message-ID: <6afb44e7f09f2d8fdbbe4cd0bad92ca170aef1b0.1720045261.git.richard@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Authenticated-Id: richard@HIDDEN
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 71928
Cc: Richard Sent <richard@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/services.scm (fold-services): Add error handling when using service
extensions.

Fixes: https://issues.guix.gnu.org/71887
Change-Id: Ic8d631674bfddde495c93952d9e6cd5649bb287d
---
 gnu/services.scm | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/gnu/services.scm b/gnu/services.scm
index 88593e8091..f3a1041f14 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -53,6 +53,7 @@ (define-module (gnu services)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (srfi srfi-71)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 vlist)
   #:use-module (ice-9 match)
   #:autoload   (ice-9 pretty-print) (pretty-print)
@@ -1223,12 +1224,22 @@ (define* (fold-services services
                      (params     -> (service-value sink))
                      (service
                       ->
-                      ;; Distinguish COMPOSE and EXTEND because PARAMS typically
-                      ;; has a different type than the elements of EXTENSIONS.
-                      (if extend
-                          (service (service-kind sink)
-                                   (extend params (compose extensions)))
-                          sink)))
+                      (begin
+                        (unless (or (null? extensions)
+                                    ;; A value of #t is a convention for "make
+                                    ;; sure the service is present."
+                                    (every (cut eq? #t <>) extensions)
+                                    (and extend compose))
+                          (error (format #f "Extensions are not supported in \
+~a yet the following service types extend it:~{~%   ~a~}"
+                                         (service-kind sink)
+                                         (map service-kind dependents))))
+                        ;; Distinguish COMPOSE and EXTEND because PARAMS typically
+                        ;; has a different type than the elements of EXTENSIONS.
+                        (if extend
+                            (service (service-kind sink)
+                                     (extend params (compose extensions)))
+                            sink))))
                   (mbegin %state-monad
                     (set-current-state (vhash-consq sink service visited))
                     (return service))))

base-commit: 85012e64819b39fd6112038134548b415fd5daff
-- 
2.45.2





Information forwarded to guix-patches@HIDDEN:
bug#71928; Package guix-patches. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 3 Jul 2024 22:13:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 03 18:13:49 2024
Received: from localhost ([127.0.0.1]:40933 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sP8EW-0007FS-LE
	for submit <at> debbugs.gnu.org; Wed, 03 Jul 2024 18:13:49 -0400
Received: from lists.gnu.org ([209.51.188.17]:47650)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <richard@HIDDEN>) id 1sP8EV-0007FK-4T
 for submit <at> debbugs.gnu.org; Wed, 03 Jul 2024 18:13:47 -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 <richard@HIDDEN>)
 id 1sP8ES-0007kd-SG
 for guix-patches@HIDDEN; Wed, 03 Jul 2024 18:13:44 -0400
Received: from mail-108-mta139.mxroute.com ([136.175.108.139])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <richard@HIDDEN>)
 id 1sP8ER-0001S1-5P
 for guix-patches@HIDDEN; Wed, 03 Jul 2024 18:13:44 -0400
Received: from filter006.mxroute.com ([136.175.111.3] filter006.mxroute.com)
 (Authenticated sender: mN4UYu2MZsgR)
 by mail-108-mta139.mxroute.com (ZoneMTA) with ESMTPSA id
 1907aa90b5d00017a3.001 for <guix-patches@HIDDEN>
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 03 Jul 2024 22:13:37 +0000
X-Zone-Loop: 557bade68aaa11c4221e3a536d21c674027bc9e8c38a
X-Originating-IP: [136.175.111.3]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
 d=freakingpenguin.com; s=x; h=Content-Transfer-Encoding:MIME-Version:
 Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=rNBm5jTy66oDdv/NCuz1/DMBQPaQo0xwiy9uyeOQ1aM=; b=GrK2qG8/xu0D2SYVfwF3ihvPbz
 O6vZKWu038BcB+oODrrDSSkyviYTOxDcP11PjkDpbtBIZRckXrUnxwAyW2XM9tXiMZAhsqLbrpEDh
 LYInQeq8qzr3VK9Ej/k35VE1D6Lg1FqKHk200JRYoWbl3c+4wS0FSXIGqQ7CQ7PG7v4Asn1PaVSPA
 QfqGfgljWGpOl5Ru8FxX3QWW4D8C+wF1TiqIGxRg123pVJH7IZYDGk4AkhVs6NGs08IOsJ8HyYB9C
 a7Lm9T4y6aQpaG7nfw66ZLceXuP2cYFcUtW3+jL8OOink9SYwMo61NoJ/FmghDOksuANyHOh9X2Zi
 4WYSyZvg==;
From: Richard Sent <richard@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH] gnu: Throw error when extending services that do not use
 extensions.
Date: Wed,  3 Jul 2024 18:12:48 -0400
Message-ID: <e556c70340d5cda9b87852e137722d082f093c10.1720044768.git.richard@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Authenticated-Id: richard@HIDDEN
Received-SPF: pass client-ip=136.175.108.139;
 envelope-from=richard@HIDDEN; helo=mail-108-mta139.mxroute.com
X-Spam_score_int: -16
X-Spam_score: -1.7
X-Spam_bar: -
X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1,
 DKIM_SIGNED=0.1, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
Cc: Richard Sent <richard@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

* gnu/services.scm (fold-services): Add error handling when using service
extensions.

Fixes: https://issues.guix.gnu.org/71887
Change-Id: Ic8d631674bfddde495c93952d9e6cd5649bb287d
---
 gnu/services.scm | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/gnu/services.scm b/gnu/services.scm
index 88593e8091..a7a9e00478 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -1223,12 +1223,22 @@ (define* (fold-services services
                      (params     -> (service-value sink))
                      (service
                       ->
-                      ;; Distinguish COMPOSE and EXTEND because PARAMS typically
-                      ;; has a different type than the elements of EXTENSIONS.
-                      (if extend
-                          (service (service-kind sink)
-                                   (extend params (compose extensions)))
-                          sink)))
+                      (begin
+                        (unless (or (null? extensions)
+                                    ;; A value of #t is a convention for "make
+                                    ;; sure the service is present."
+                                    (every (cut eq? #t <>) extensions)
+                                    (and extend compose))
+                          (error (format #f "Extensions are not supported in \
+~a yet the following service types extend it:~{~%   ~a~}"
+                                         (service-kind sink)
+                                         (map service-kind dependents))))
+                        ;; Distinguish COMPOSE and EXTEND because PARAMS typically
+                        ;; has a different type than the elements of EXTENSIONS.
+                        (if extend
+                            (service (service-kind sink)
+                                     (extend params (compose extensions)))
+                            sink))))
                   (mbegin %state-monad
                     (set-current-state (vhash-consq sink service visited))
                     (return service))))

base-commit: 85012e64819b39fd6112038134548b415fd5daff
-- 
2.45.2





Acknowledgement sent to Richard Sent <richard@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#71928; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 12 Jan 2025 05:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.