Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 15:39:41 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 20 11:39:41 2023 Received: from localhost ([127.0.0.1]:41238 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtrbB-0000ty-Bd for submit <at> debbugs.gnu.org; Fri, 20 Oct 2023 11:39:41 -0400 Received: from mail-qk1-x735.google.com ([2607:f8b0:4864:20::735]:54370) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1qtrb9-0000th-7A for 42146 <at> debbugs.gnu.org; Fri, 20 Oct 2023 11:39:39 -0400 Received: by mail-qk1-x735.google.com with SMTP id af79cd13be357-7789a4c01easo59274685a.0 for <42146 <at> debbugs.gnu.org>; Fri, 20 Oct 2023 08:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697816346; x=1698421146; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=F3SxY+yyDTuA7OsgScSzM199hGmcfhJYuYfLKzt67FQ=; b=cufi3ZipZqp27gh/vy1VccyQgZrcynUh6ifKn1rIUNFe3ADMlKoiscPWDnO8+ZGHbA 8xh02rpb8KI91awPsoX0PhkTzvQ+qzYdgXkrP60WEhZdqfKWzfOE+E04CKOgSxRwSosz veWPmUi57J+BYVFLtRKXPJ4JdZYnDbbcKHnskWxqwLG4mEfc1m+nHDNK3xKz/608GJjq Lks4MmZWtRrf8aSLLsFK9mRfkXK6TnS85HVRtaBu35fHWeJRmDbaOIh4D6qLhQmh+s3t GH6HUu9l9165sfGcZaPeQk7QskiYmeo5uC75jfyNpfI8Vyx+q1C31m6FlcwEbDhpzGGy FAvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697816346; x=1698421146; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=F3SxY+yyDTuA7OsgScSzM199hGmcfhJYuYfLKzt67FQ=; b=KcDbWKN+NlvQzuIpSBNDC6GAQm7i99QJ5kpUPvQ8GWUeGfuaAi+uUeYJHnXKYTpsfD nlcMLCkVox7pP20cQ5Tit978H1Ws0YmjV+DE9DJ9htztHKvoMENa1TYij7tbY+x+h2/M ey0nxAGq4PoU22u+ChGV3iPWzM+z99msu7s/elkPxG6ADikVcSeMtsC0gCN2xpHPecje FsI3QKmK1L/Zh3sgiupPf2Wx6l/6QfoCdWrG4nwKJEwLteVU+ujxkkHUBkiN6hjfzrnJ skePE8qPlIm/rcR+j7cWzcBeY8P35gOqPaglLi9oxA8qDqdtcuJjmviLRgajIbZOYMa8 1E5Q== X-Gm-Message-State: AOJu0Yz0x9egm4E6YJrl+dEmuuWIyyiFEpx2CR3xHYUz3cPOeuU5mOUt Lcdh/hDlwAFrr7GyK5oi4jT/C7xuv20= X-Google-Smtp-Source: AGHT+IHelFMBTH9UQ0OdAnaITOiMmu/lvjVWtsq46WxR/3LTMDiKJeZ62U1/aCrnxYESiGIeFSD3wA== X-Received: by 2002:a05:6214:2aa4:b0:66d:4d2c:b0d3 with SMTP id js4-20020a0562142aa400b0066d4d2cb0d3mr2499970qvb.4.1697816346230; Fri, 20 Oct 2023 08:39:06 -0700 (PDT) Received: from hurd (dsl-156-111.b2b2c.ca. [66.158.156.111]) by smtp.gmail.com with ESMTPSA id d9-20020a0cf0c9000000b0066d12d1351fsm751108qvl.143.2023.10.20.08.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 08:39:05 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> To: Simon Tournier <zimon.toutoune@HIDDEN> Subject: Re: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't fail silently. In-Reply-To: <874jilmira.fsf@HIDDEN> (Simon Tournier's message of "Fri, 20 Oct 2023 17:11:05 +0200") References: <20200630220913.14665-1-kuba@HIDDEN> <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> <87lebyxs4y.fsf_-_@HIDDEN> <874jilmira.fsf@HIDDEN> Date: Fri, 20 Oct 2023 11:39:04 -0400 Message-ID: <8734y5i9rb.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: 42146 Cc: Jakub =?utf-8?B?S8SF?= =?utf-8?B?ZHppb8WCa2E=?= <kuba@HIDDEN>, Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, 42146 <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: -1.0 (-) Hi, Simon Tournier <zimon.toutoune@HIDDEN> writes: > Hi Ludo, > > On Thu, 19 Oct 2023 at 22:40, Ludovic Court=C3=A8s <ludo@HIDDEN> wrote: > >>> +;;; >>> +;;; Extend regexp objects with a pattern field. >>> +;;; >>> +(define-record-type <regexp*> >>> + (%make-regexp* pat flag rx) >>> + regexp*? >>> + (pat regexp*-pattern) ;the regexp pattern, a string >>> + (flag regexp*-flag) ;regexp flags >>> + (rx regexp*-rx)) ;the compiled regexp object >>> + >>> +;;; Work around regexp implementation. >>> +;;; This record allows to track the regexp pattern and then display it. >>> +(define* (make-regexp* pat #:optional (flag regexp/extended)) >> >> I=E2=80=99m skeptical about the concrete benefits. I would not include = it in >> (guix build utils), or at least not in this patch series. >> >> (I tend to be super conservative about (guix build utils) because we >> rarely get a chance to change it.) > > If I remember correctly, the record was introduced in #58660 [1]. > Basically, if you have, > > (make-regexp "^gnu/packages/python(-.+|)\\.scm$") > > then you only have access to some #<regexp 7f6315fb3500>. Other said, > you lost the human-readable "^gnu/packages/python(-.+|)\\.scm$" regexp > pattern. The workaround just stores this human-readable regexp pattern. > Later, it is thus possible to display it; for debugging or else. > > For the location of such feature, I do not have an opinion. For the > concrete benefits, I have one. :-) > > Well, maybe the feature =E2=80=93 keep an access to the human-readable re= gexp > pattern =E2=80=93 could be implemented on Guile-side. Agreed, for the long haul (as with many cool bits that are Guix specific currently). --=20 Thanks, Maxim
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 15:26:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 20 11:26:23 2023
Received: from localhost ([127.0.0.1]:41208 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtrOJ-0000Pp-47
for submit <at> debbugs.gnu.org; Fri, 20 Oct 2023 11:26:23 -0400
Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:38220)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <zimon.toutoune@HIDDEN>) id 1qtrOE-0000P0-Ej
for 42146 <at> debbugs.gnu.org; Fri, 20 Oct 2023 11:26:19 -0400
Received: by mail-wr1-x430.google.com with SMTP id
ffacd0b85a97d-32da4180ca2so151971f8f.1
for <42146 <at> debbugs.gnu.org>; Fri, 20 Oct 2023 08:25:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697815545; x=1698420345; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:message-id:date:references
:in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
:reply-to; bh=2mZk0WVr6Xg0sCIQhm6espXC6FInpPUvKaLbGTuBdfw=;
b=fSVmO7gnZQy14s4wPr+RZ+CcCqY+q9icqsxD6oRK8PEaYEbPx3JSUCPkZhz9Z9CdQo
bhBhR2p+e7uA+/8GrS/isWQOiuYKagV2w8V0K/fR0FC1eYxc60jd7DjJY6OAzTfGTwIe
ZMjvu7bxYm3kJa6QhGowTpXCO3gdga6JJrVGC++fUDx/702ro+MiUUD1kedRd3znint0
GZsKgbQGR5RahrOgyx1f6L+f1e1Wxd05k1XtvilpSDm5n/ELVBvzc9JC/ShrZ4rUVwi5
MAnRU+fJNhzW5tdp2FSLnkXa6jkUZY4CIZZBUda4EML0GsYekNP3e0i3fo7GcgifEoe7
v4Tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697815545; x=1698420345;
h=content-transfer-encoding:mime-version:message-id:date:references
:in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
:subject:date:message-id:reply-to;
bh=2mZk0WVr6Xg0sCIQhm6espXC6FInpPUvKaLbGTuBdfw=;
b=xBnHR3kfKDl56CJik4+ibyrHwRYW+weaUn63kxa/Nlt039+HsGmGbJoSU83tg8zfmk
Pp7nuxYBgdGyHMYT+6EtJAsLcn+bvvuZGlraVEWZjgQiw3AQ/sYJNE9eMw11Nxhlbrsd
ac6XPDURzrJiq/zp1TYRgbc7akWblzRNsn80j0brzoLno/COcD/Y5nTCO8qebp2LQ/Di
bWkM90Lf1iFh8y672woTvanMjCGZzQsl3n629nzZZwlT6CewXPPuWl90uXhZBjo7I/TL
c5SkQrZKyDsUIdR8zT+j6DJFkYGkgsJoyeyJ2kehR16bTk4YjIkLsdkB5inuPCwumSZ3
+b8g==
X-Gm-Message-State: AOJu0YwwuvOPe+KRCd0HUIzccjtqFCkVLYycuUYYGGeCHQg8y2Zpqm9X
4aoxyz4E2pJw75Lu/oOPx+gPQaGwSqI=
X-Google-Smtp-Source: AGHT+IFxqtEoRIYyH3qMBkrAmXe1hzS4V3GzYEuPfUUNenkIO+mCuiDupUj8ZnKYG1qvaD6KCXm56Q==
X-Received: by 2002:adf:ef52:0:b0:32d:e4b9:4851 with SMTP id
c18-20020adfef52000000b0032de4b94851mr1470848wrp.7.1697815545402;
Fri, 20 Oct 2023 08:25:45 -0700 (PDT)
Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id
f4-20020a5d50c4000000b0032da319a27asm1928471wrt.9.2023.10.20.08.25.44
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Fri, 20 Oct 2023 08:25:45 -0700 (PDT)
From: Simon Tournier <zimon.toutoune@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Maxim Cournoyer
<maxim.cournoyer@HIDDEN>
Subject: Re: [bug#42146] [PATCH core-updates 1/?] build: substitute: Don't
fail silently.
In-Reply-To: <87lebyxs4y.fsf_-_@HIDDEN>
References: <20200630220913.14665-1-kuba@HIDDEN>
<ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN>
<87lebyxs4y.fsf_-_@HIDDEN>
Date: Fri, 20 Oct 2023 17:11:05 +0200
Message-ID: <874jilmira.fsf@HIDDEN>
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: 42146
Cc: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= <kuba@HIDDEN>,
42146 <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: -1.0 (-)
Hi Ludo,
On Thu, 19 Oct 2023 at 22:40, Ludovic Court=C3=A8s <ludo@HIDDEN> wrote:
>> +;;;
>> +;;; Extend regexp objects with a pattern field.
>> +;;;
>> +(define-record-type <regexp*>
>> + (%make-regexp* pat flag rx)
>> + regexp*?
>> + (pat regexp*-pattern) ;the regexp pattern, a string
>> + (flag regexp*-flag) ;regexp flags
>> + (rx regexp*-rx)) ;the compiled regexp object
>> +
>> +;;; Work around regexp implementation.
>> +;;; This record allows to track the regexp pattern and then display it.
>> +(define* (make-regexp* pat #:optional (flag regexp/extended))
>
> I=E2=80=99m skeptical about the concrete benefits. I would not include i=
t in
> (guix build utils), or at least not in this patch series.
>
> (I tend to be super conservative about (guix build utils) because we
> rarely get a chance to change it.)
If I remember correctly, the record was introduced in #58660 [1].
Basically, if you have,
(make-regexp "^gnu/packages/python(-.+|)\\.scm$")
then you only have access to some #<regexp 7f6315fb3500>. Other said,
you lost the human-readable "^gnu/packages/python(-.+|)\\.scm$" regexp
pattern. The workaround just stores this human-readable regexp pattern.
Later, it is thus possible to display it; for debugging or else.
For the location of such feature, I do not have an opinion. For the
concrete benefits, I have one. :-)
Well, maybe the feature =E2=80=93 keep an access to the human-readable rege=
xp
pattern =E2=80=93 could be implemented on Guile-side.
Or maybe there is another simpler way that I am not aware of?
Cheers,
simon
1: https://issues.guix.gnu.org/58660
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 00:58:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 20:58:40 2023
Received: from localhost ([127.0.0.1]:38248 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtdqZ-0003k0-Ou
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:40 -0400
Received: from mail-qv1-xf2b.google.com ([2607:f8b0:4864:20::f2b]:57766)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <maxim.cournoyer@HIDDEN>) id 1qtdqU-0003jI-8T
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:34 -0400
Received: by mail-qv1-xf2b.google.com with SMTP id
6a1803df08f44-66d1ef93284so1846436d6.3
for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 17:58:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697763481; x=1698368281; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:references:in-reply-to
:message-id:date:subject:cc:to:from:from:to:cc:subject:date
:message-id:reply-to;
bh=Okco+31FqmL/2OCY1wTsGhnDcafE/pDvBRDkBKQDPMQ=;
b=aD+J7qj0wzdhyo/s9o/3AXEL9x8CD1em8R2Uv0XT/GngQFOEA0Ix+I8kK5HrLpBBEF
KNvgbAI+cRKYyI2sXjBoGvZkihQTh3T6AePJ1kMnW1BEOXgrSBIBp8W4aGg/ZXxwYwTJ
Vvf4yaUgfC3odrFRSCiEuPoq2UKX+TDCnRNHFT8aP8dyjqjzA/8Y2XcEZctx1U/NSraH
eAj2BL4ry5bh92M50x5NLMBoUM2G2gvYcTD5DMZuRRrAsGZZO+0p6GoBNyNwqNKCAKE2
AnWOZTn6QGBciMF4WpZw+B7+YZO+VoN2RME7VhcWVsyeGQg1TMgKcDk75qmMGAAoAvn3
PpMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697763481; x=1698368281;
h=content-transfer-encoding:mime-version:references:in-reply-to
:message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
:subject:date:message-id:reply-to;
bh=Okco+31FqmL/2OCY1wTsGhnDcafE/pDvBRDkBKQDPMQ=;
b=PDtSoIX3DO67IsKMPhqlLqR4Wu7bhKvbvBA3rHLoDcxCmYq4ZmJwexsdbDbwCPLS6H
KHqPsV2rWqt3SJvBot/o1VxLIsZfa90ENWsjFu2LMSxoXILQ3SUVJGReegyJk/nWJYsI
5C2sk5S1DPCm6xoVVZVAkvRyFa2dgffO3xxIByMvHi37wgnhDxyRny0kjk8TkbJ1vNSO
AHOBPRcdBY266CXuRMNO+s3K+Nndy15lynHkP7Ua88a6k2vxL0P/NhhkSQbrvE9NUx1i
U4EYzWUfwx8AH4Cf3LWPxJq36Mz5Xa8CsvPo2r+SkQAzbprS7Nc2/pAqIB09XLRT7jgi
sC7A==
X-Gm-Message-State: AOJu0YwrplRQ8NAbe0WGf8ELyQ7u+L8CSX4B45oHPzWfWhq+BhcB2TMr
/yzV4LnMeYL+QQwDqOYYet3Za0OK0L23sA==
X-Google-Smtp-Source: AGHT+IHOeyg2TlEhzsDG7QYDtqv0C6wCL/uCNhGfkHtGddGZCAeNQkqnKQPedJhYS+Ay1qDn0g0RDg==
X-Received: by 2002:a05:6214:519e:b0:66d:140a:18f3 with SMTP id
kl30-20020a056214519e00b0066d140a18f3mr541647qvb.45.1697763481643;
Thu, 19 Oct 2023 17:58:01 -0700 (PDT)
Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111])
by smtp.gmail.com with ESMTPSA id
h9-20020a0cf8c9000000b0065d0a4262e0sm279097qvo.70.2023.10.19.17.58.00
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 19 Oct 2023 17:58:01 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH v3 3/3] build: bootstrap-configure: Allow lack of matches in
substitute.
Date: Thu, 19 Oct 2023 20:57:40 -0400
Message-ID: <0d8764ba1b635d49c07cc1d47f3dcc620bbf482d.1697763444.git.maxim.cournoyer@HIDDEN>
X-Mailer: git-send-email 2.41.0
In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN>
References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN>
MIME-Version: 1.0
X-Debbugs-Cc: Jakub Kądziołka <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
Cc: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>,
Maxim Cournoyer <maxim.cournoyer@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 (-)
From: Jakub Kądziołka <kuba@HIDDEN>
Matches are not required here, as not every file will use every
variable.
* guix/build/gnu-bootstrap.scm (bootstrap-configure): Pass
#:require-matches? #f to substitute*.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Change-Id: I7eee433a3af5fa310b3f2e8b8b58ac9befb4b56a
---
guix/build/gnu-bootstrap.scm | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/guix/build/gnu-bootstrap.scm b/guix/build/gnu-bootstrap.scm
index b4257a3717..b097f410ad 100644
--- a/guix/build/gnu-bootstrap.scm
+++ b/guix/build/gnu-bootstrap.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2022 Timothy Sample <samplet@HIDDEN>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,7 +53,8 @@ (define (bootstrap-configure name version modules scripts)
(copy-file template target)
(substitute* target
(("@PACKAGE_NAME@") name)
- (("@VERSION@") version))))
+ (("@VERSION@") version)
+ #:require-matches? #f)))
(append-map (lambda (dir) (find-files dir "\\.in$"))
modules))
(for-each (lambda (template)
@@ -62,12 +64,12 @@ (define (bootstrap-configure name version modules scripts)
(substitute* target
(("@GUILE@") guile)
(("@MODDIR@") moddir)
- (("@GODIR@") godir))
+ (("@GODIR@") godir)
+ #:require-matches? #f)
(chmod target #o755)))
(find-files scripts
(lambda (fn st)
- (string-suffix? ".in" fn))))
- #t)))
+ (string-suffix? ".in" fn)))))))
(define (bootstrap-build modules)
"Create a procedure that builds an early bootstrap package. The
--
2.41.0
kuba@HIDDEN, maxim.cournoyer@HIDDEN, ludo@HIDDEN, guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 00:58:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 20:58:38 2023
Received: from localhost ([127.0.0.1]:38246 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtdqU-0003jb-Ix
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:38 -0400
Received: from mail-qv1-xf2f.google.com ([2607:f8b0:4864:20::f2f]:47167)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <maxim.cournoyer@HIDDEN>) id 1qtdqO-0003j9-BQ
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:32 -0400
Received: by mail-qv1-xf2f.google.com with SMTP id
6a1803df08f44-66d13ac2796so1888046d6.2
for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 17:58:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697763475; x=1698368275; 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=b8visCM1R1nOmFaZmfOgo/UFjx68QHhn/qnzsKsQeAg=;
b=fYv1je81APKTsJHbV9G021GqdvuqdJEOrNmp2WQ0WUiazmrxHuYtz55PnspYBzl4Jv
+SJvcGjrxjruNQubqTyG7mBtoZsH/ahkc2MiJMfhEnoibnrTnGmG5VGE4d62N0PliE7w
dRDRHSSoVQKm/kFSg5cYVNB0dOQkxSdKTDh0bIp/MaqY6WAdYy3yvx5pewi4cgMKgtAt
ER8vRy2C7hcyzSIMWjQ1ey+ZZzIPG2eWu53aKXlEu+TtMUE3ZJmEeu1RcuAGRvgSCdbe
RATJ1pr8FtANKROMccMw+9qnB3LJN6ZwIIlnRScAtDCDEn0+5RPoHwG6S8DDNxQ9m83y
2GCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697763475; x=1698368275;
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=b8visCM1R1nOmFaZmfOgo/UFjx68QHhn/qnzsKsQeAg=;
b=jitFJH448g91fKKm8O63DROdN0WXC6kDIFLu4/y8v5qBNghHnNqJoZh36eC6wHGfN5
guzbG/HSupt4R6wi8fzzYTMwR90i+5mRKQvzRSK2lrxj3zO8S4OB365NL/aSTcnFWWmc
pP2RFI1dmoGCxOn2z2nhMIbe08Da4h+tzjW/Zp5sghLiRWV14uiq2Kc6w9ptWVEz3h4q
KKOVPP4lkio5vKwUmK8lx9ZxAXPcuj90idZ1ZUYwdUd/1H6T3w81unkBJzp7kAJTDvCi
oLFyNpMaPXieuzsBSLmYf29PlX6bstVMTnEVfmpSr6EQ6mT4fHHajGxsZnhakHqMtsRy
qMVw==
X-Gm-Message-State: AOJu0YwJ8ifcE6Qv/WP766lzudr0cvdBf66kYDUlFIbyaQdN0FfXmzir
+z4UOR48fF/UXxh/W3FTkhFspNuNvwAVxQ==
X-Google-Smtp-Source: AGHT+IEJVakeO2yux+B7vvrMP2473/ogqwLqgym3fKCN/Q3Do0ZvCANcovJqXZBFZSkb7PR+sQaKaQ==
X-Received: by 2002:a05:6214:230f:b0:66d:62b7:53f4 with SMTP id
gc15-20020a056214230f00b0066d62b753f4mr517492qvb.45.1697763475332;
Thu, 19 Oct 2023 17:57:55 -0700 (PDT)
Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111])
by smtp.gmail.com with ESMTPSA id
h9-20020a0cf8c9000000b0065d0a4262e0sm279097qvo.70.2023.10.19.17.57.54
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 19 Oct 2023 17:57:54 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH v3 1/3] build: Relocate <regexp*> record and associated
procedures here.
Date: Thu, 19 Oct 2023 20:57:38 -0400
Message-ID: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN>
X-Mailer: git-send-email 2.41.0
MIME-Version: 1.0
X-Debbugs-Cc: Jakub Kądziołka <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
Cc: Maxim Cournoyer <maxim.cournoyer@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 (-)
* etc/teams.scm.in (<regexp*>, make-regexp*, regexp*-exec): Move to...
* guix/build/utils.scm: ... here.
(list-matches*): New procedure.
Change-Id: I566ac372f7d8ba08de94e19b54dcc68da2106a23
---
etc/teams.scm.in | 19 +------------------
guix/build/utils.scm | 39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 40 insertions(+), 18 deletions(-)
diff --git a/etc/teams.scm.in b/etc/teams.scm.in
index 55242caad1..8af25b9802 100644
--- a/etc/teams.scm.in
+++ b/etc/teams.scm.in
@@ -34,29 +34,12 @@
(srfi srfi-9)
(srfi srfi-26)
(ice-9 format)
- (ice-9 regex)
(ice-9 match)
(ice-9 rdelim)
+ (guix build utils)
(guix ui)
(git))
-(define-record-type <regexp*>
- (%make-regexp* pat flag rx)
- regexp*?
- (pat regexp*-pattern)
- (flag regexp*-flag)
- (rx regexp*-rx))
-
-;;; Work around regexp implementation.
-;;; This record allows to track the regexp pattern and then display it.
-(define* (make-regexp* pat #:optional (flag regexp/extended))
- "Alternative to `make-regexp' producing annotated <regexp*> objects."
- (%make-regexp* pat flag (make-regexp pat flag)))
-
-(define (regexp*-exec rx* str)
- "Execute the RX* regexp, a <regexp*> object."
- (regexp-exec (regexp*-rx rx*) str))
-
(define-record-type <team>
(make-team id name description members scope)
team?
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 8e630ad586..2b3a8e278b 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@HIDDEN>
;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN>
+;;; Copyright © 2022 Simon Tournier <zimon.toutoune@HIDDEN>
;;; Copyright © 2023 Carlo Zancanaro <carlo@HIDDEN>
;;;
;;; This file is part of GNU Guix.
@@ -28,6 +29,7 @@
(define-module (guix build utils)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
@@ -55,6 +57,14 @@ (define-module (guix build utils)
package-name->name+version
parallel-job-count
+ make-regexp*
+ regexp*-exec
+ regexp*?
+ regexp*-pattern
+ regexp*-flag
+ regexp*-rx
+ list-matches*
+
compressor
tarball?
%xz-parallel-args
@@ -163,6 +173,35 @@ (define-syntax-rule (define-constant name val)
(module-replace! (current-module) '(setvbuf)))
(else #f))
+
+;;;
+;;; Extend regexp objects with a pattern field.
+;;;
+(define-record-type <regexp*>
+ (%make-regexp* pat flag rx)
+ regexp*?
+ (pat regexp*-pattern) ;the regexp pattern, a string
+ (flag regexp*-flag) ;regexp flags
+ (rx regexp*-rx)) ;the compiled regexp object
+
+;;; Work around regexp implementation.
+;;; This record allows to track the regexp pattern and then display it.
+(define* (make-regexp* pat #:optional (flag regexp/extended))
+ "Alternative to `make-regexp' producing annotated <regexp*> objects."
+ (%make-regexp* pat flag (make-regexp pat flag)))
+
+(define (regexp*-exec rx* str)
+ "Execute the RX* regexp, a <regexp*> object."
+ (regexp-exec (regexp*-rx rx*) str))
+
+(define* (list-matches* regexp str #:optional (flags regexp/extended))
+ "Like 'list-matches', but also accepting a regexp* as REGEXP."
+ (match regexp
+ ((or (? string?) (? regexp?))
+ (list-matches regexp str flags))
+ ((? regexp*?)
+ (list-matches (regexp*-rx regexp) str flags))))
+
;;;
;;; Compression helpers.
base-commit: d59653b7c9e43ebdbba20e2ca071429507f94c67
--
2.41.0
kuba@HIDDEN, maxim.cournoyer@HIDDEN, ludo@HIDDEN, guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 20 Oct 2023 00:58:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 20:58:34 2023
Received: from localhost ([127.0.0.1]:38243 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtdqT-0003jY-OW
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:34 -0400
Received: from mail-vs1-xe33.google.com ([2607:f8b0:4864:20::e33]:54714)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <maxim.cournoyer@HIDDEN>) id 1qtdqR-0003jD-CA
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 20:58:32 -0400
Received: by mail-vs1-xe33.google.com with SMTP id
ada2fe7eead31-4580a2ec248so87551137.1
for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 17:58:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697763478; x=1698368278; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:references:in-reply-to
:message-id:date:subject:cc:to:from:from:to:cc:subject:date
:message-id:reply-to;
bh=2eiEVVW1YIPDVs3/30xqVWj4WCnrhALxoLlMnwbevBc=;
b=IoKCbPRX35cahet1V/Dzbj+HX18OnMOHFotZRlCTd0/B2kTHs+RJ+oWcO9lZYOmEtI
IioWxCnUsx+iYskfZ/Ia0gFGf2Q4DBgTtfhTNflV+aZPRUk1HAt1WBGoGN5Yq22feKdL
DpObCGX4Fe9zc5iB/Y+bFifLdMgNL7fzVrI3rfHdjH8c/hyq/JSzlywM1ZRXq9yLXd6p
Uk3AYW2OWCneLucuGejW6+T4ZLJ0Eayg9Oqwhb81Tbun6IvD71Xc2Ahh8U7FInv9ZSRR
8eIu2PyHsF2U6Afqz/5YE0TA54GtoUe9LxXQdL7m5uXHub5U1QGX0SsVCnGvxIUS5z88
Bupg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697763478; x=1698368278;
h=content-transfer-encoding:mime-version:references:in-reply-to
:message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
:subject:date:message-id:reply-to;
bh=2eiEVVW1YIPDVs3/30xqVWj4WCnrhALxoLlMnwbevBc=;
b=rPZ7FPqphoYnjKWiQXsX5Jzd3eWsiX2jVdmppg82AQZIU9VccaN0uz59d/GqcA3/bV
Vf2674tTO7TvV7/XY6lB7Pu1HYyVsGB5EOc+qhYYz+IxfpJW5n8QC0xS8ctSBE0d1+5t
ZDvyOUgMzWt/NwqoXJRS2byes2CRnscOsjBcVS9IOcJAiVkSt5KCPB1T66zJroxxVEB1
BN1yO1QHkaiRXzfUHE6wYPCWGsibAOKX6NN0ZOTlhJT/aurOXisP/VBSskO5EKySsxRl
+cTEfcbZ6H6HAZnMp/GKCh7RYLxIgvUshSLoCzVXV2eUQ3+jXQHYy0Ngv7Ia6qnMSWKZ
Dk6g==
X-Gm-Message-State: AOJu0Ywt1LJcsT05HvPH15a66wqfiunS6j/VTDmRqA+lZo4t762dKpcA
yFeSz0uAXSxeq7qdmebYmXcgh5rgVsUp3g==
X-Google-Smtp-Source: AGHT+IFfRU5dHNsQoMCxDMmAySoleppZPRIpE66fblrMLPEF5zzKO8dSii5CS3s278SeXBnLIP/A1A==
X-Received: by 2002:a05:6102:20c4:b0:457:7138:fa74 with SMTP id
i4-20020a05610220c400b004577138fa74mr552529vsr.35.1697763478521;
Thu, 19 Oct 2023 17:57:58 -0700 (PDT)
Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111])
by smtp.gmail.com with ESMTPSA id
h9-20020a0cf8c9000000b0065d0a4262e0sm279097qvo.70.2023.10.19.17.57.57
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 19 Oct 2023 17:57:58 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH v3 2/3] build: substitute: Error when no substitutions were
done.
Date: Thu, 19 Oct 2023 20:57:39 -0400
Message-ID: <d80dd0e1134cf608c69f3aaa0769f95a37f35e55.1697763444.git.maxim.cournoyer@HIDDEN>
X-Mailer: git-send-email 2.41.0
In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN>
References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697763444.git.maxim.cournoyer@HIDDEN>
MIME-Version: 1.0
X-Debbugs-Cc: Jakub Kądziołka <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
Cc: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>,
Maxim Cournoyer <maxim.cournoyer@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 (-)
From: Jakub Kądziołka <kuba@HIDDEN>
* guix/build/utils.scm (substitute, substitute*)
[require-matches?]: New argument.
* tests/build-utils.scm ("substitute*"): New test group.
("substitute*, no match error")
("substitute*, partial no match error"): New tests.
Co-authored-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Change-Id: I66ed33d72aa73cd35e5642521efec70bf756f86e
---
guix/build/utils.scm | 93 +++++++++++++++++++++++++++++++++----------
tests/build-utils.scm | 68 +++++++++++++++++++++----------
2 files changed, 118 insertions(+), 43 deletions(-)
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 2b3a8e278b..8e4b8321dd 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -6,7 +6,8 @@
;;; Copyright © 2018, 2022 Arun Isaac <arunisaac@HIDDEN>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@HIDDEN>
;;; Copyright © 2020 Efraim Flashner <efraim@HIDDEN>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN>
+;;; Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@HIDDEN>
;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN>
;;; Copyright © 2022 Simon Tournier <zimon.toutoune@HIDDEN>
@@ -111,8 +112,14 @@ (define-module (guix build utils)
modify-phases
with-atomic-file-replacement
+ %substitute-requires-matches?
substitute
substitute*
+ &substitute-error
+ substitute-error?
+ substitute-error-file
+ substitute-error-patterns
+
dump-port
set-file-time
patch-shebang
@@ -971,24 +978,51 @@ (define (replace-char c1 c2 s)
c))
s)))
-(define (substitute file pattern+procs)
+(define-condition-type &substitute-error &error
+ substitute-error?
+ (file substitute-error-file)
+ (patterns substitute-error-patterns))
+
+(define %substitute-requires-matches?
+ (make-parameter #t))
+
+(define* (substitute file pattern+procs
+ #:key (require-matches? (%substitute-requires-matches?)))
"PATTERN+PROCS is a list of regexp/two-argument-procedure pairs. For each
line of FILE, and for each PATTERN that it matches, call the corresponding
PROC as (PROC LINE MATCHES); PROC must return the line that will be written as
a substitution of the original line. Be careful about using '$' to match the
-end of a line; by itself it won't match the terminating newline of a line."
- (let ((rx+proc (map (match-lambda
- (((? regexp? pattern) . proc)
+end of a line; by itself it won't match the terminating newline of a line.
+
+By default, SUBSTITUTE will raise a &substitute-error condition if one of the
+patterns fails to match. REQUIRE-MATCHES? can be set to false when lack of
+matches is acceptable (e.g. if you have multiple potential patterns not
+guaranteed to be found in FILE)."
+ (define (rx->pattern m)
+ (match m
+ ((? regexp? pattern)
+ "<unknown pattern (regexp)>")
+ ((? regexp*? pattern)
+ (regexp*-pattern pattern))
+ ((? string? pattern)
+ pattern)))
+
+ (let ((rx+proc (map (match-lambda
+ (((or (? regexp? pattern) (? regexp*? pattern)) . proc)
(cons pattern proc))
((pattern . proc)
- (cons (make-regexp pattern regexp/extended)
- proc)))
- pattern+procs)))
+ (cons (make-regexp* pattern regexp/extended) proc)))
+ pattern+procs)))
(with-atomic-file-replacement file
(lambda (in out)
- (let loop ((line (read-line in 'concat)))
+ (let loop ((line (read-line in 'concat))
+ (unmatched-regexps (map first rx+proc)))
(if (eof-object? line)
- #t
+ (when (and require-matches? (not (null? unmatched-regexps)))
+ (raise (condition
+ (&substitute-error
+ (file file)
+ (patterns (map rx->pattern unmatched-regexps))))))
;; Work around the fact that Guile's regexp-exec does not handle
;; NUL characters (a limitation of the underlying GNU libc's
;; regexec) by temporarily replacing them by an unused private
@@ -998,19 +1032,23 @@ (define (substitute file pattern+procs)
(unused-private-use-code-point line))
#\nul))
(line* (replace-char #\nul nul* line))
- (line1* (fold (lambda (r+p line)
- (match r+p
- ((regexp . proc)
- (match (list-matches regexp line)
- ((and m+ (_ _ ...))
- (proc line m+))
- (_ line)))))
- line*
- rx+proc))
+ (results ;line, unmatched-regexps
+ (fold (lambda (r+p results)
+ (let ((line (first results))
+ (unmatched (second results)))
+ (match r+p
+ ((regexp . proc)
+ (match (list-matches* regexp line)
+ ((and m+ (_ _ ...))
+ (list (proc line m+)
+ (delq regexp unmatched)))
+ (_ (list line unmatched)))))))
+ (list line* unmatched-regexps)
+ rx+proc))
+ (line1* (first results))
(line1 (replace-char nul* #\nul line1*)))
(display line1 out)
- (loop (read-line in 'concat)))))))))
-
+ (loop (read-line in 'concat) (second results)))))))))
(define-syntax let-matches
;; Helper macro for `substitute*'.
@@ -1048,9 +1086,19 @@ (define-syntax substitute*
Alternatively, FILE may be a list of file names, in which case they are
all subject to the substitutions.
+By default, SUBSTITUTE* will raise a &message condition if one of the patterns
+fails to match on one of the files; REQUIRE-MATCHES? may be set to false to
+avoid an error being raised in such condition.
+
Be careful about using '$' to match the end of a line; by itself it won't
match the terminating newline of a line."
((substitute* file ((regexp match-var ...) body ...) ...)
+ (substitute* file
+ ((regexp match-var ...) body ...) ...
+ #:require-matches? #t))
+ ((substitute* file
+ ((regexp match-var ...) body ...) ...
+ #:require-matches? require-matches?)
(let ()
(define (substitute-one-file file-name)
(substitute
@@ -1074,7 +1122,8 @@ (define-syntax substitute*
(begin body ...)
(substring l o (match:start m))
r))))))))
- ...)))
+ ...)
+ #:require-matches? require-matches?))
(match file
((files (... ...))
diff --git a/tests/build-utils.scm b/tests/build-utils.scm
index 3babf5d544..35c66faa3c 100644
--- a/tests/build-utils.scm
+++ b/tests/build-utils.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@HIDDEN>
;;; Copyright © 2019 Ricardo Wurmus <rekado@HIDDEN>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
+;;; Copyright © 2021, 2023 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
;;; Copyright © 2021 Maxime Devos <maximedevos@HIDDEN>
;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN>
;;;
@@ -289,26 +289,52 @@ (define (arg-test bash-args)
(test-assert "wrap-script, argument handling, bash --norc"
(arg-test " --norc"))
-(test-equal "substitute*, text contains a NUL byte, UTF-8"
- "c\0d"
- (with-fluids ((%default-port-encoding "UTF-8")
- (%default-port-conversion-strategy 'error))
- ;; The GNU libc is locale sensitive. Depending on the value of LANG, the
- ;; test could fail with "string contains #\\nul character: ~S" or "cannot
- ;; convert wide string to output locale".
- (setlocale LC_ALL "en_US.UTF-8")
- (call-with-temporary-output-file
- (lambda (file port)
- (format port "a\0b")
- (flush-output-port port)
-
- (substitute* file
- (("a") "c")
- (("b") "d"))
-
- (with-input-from-file file
- (lambda _
- (get-string-all (current-input-port))))))))
+(define-syntax-rule (define-substitute*-test test-type name expected
+ content clauses ...)
+ (test-type
+ name
+ expected
+ (with-fluids ((%default-port-encoding "UTF-8")
+ (%default-port-conversion-strategy 'error))
+ ;; The GNU libc is locale sensitive. Depending on the value of LANG,
+ ;; the test could fail with "string contains #\\nul character: ~S" or
+ ;; "cannot convert wide string to output locale".
+ (setlocale LC_ALL "en_US.UTF-8")
+ (call-with-temporary-output-file
+ (lambda (file port)
+ (format port content)
+ (flush-output-port port)
+
+ (substitute* file
+ clauses ...)
+
+ (with-input-from-file file
+ (lambda _
+ (get-string-all (current-input-port)))))))))
+
+(define-substitute*-test test-equal
+ "substitute*, text contains a NUL byte, UTF-8"
+ "c\0d" ;expected
+ "a\0b" ;content
+ (("a") "c")
+ (("b") "d"))
+
+(define-substitute*-test test-error "substitute*, no match error"
+ #t ;expected
+ "a\0b" ;content
+ (("Oops!") "c"))
+
+(define-substitute*-test test-equal "substitute*, no match, ignored"
+ "abc" ;expected
+ "abc" ;content
+ (("Oops!") "c")
+ #:require-matches? #f)
+
+(define-substitute*-test test-error "substitute*, partial no match error"
+ #t ;expected
+ "a\0b" ;content
+ (("a") "c"
+ ("Oops!") "c"))
(test-equal "search-input-file: exception if not found"
`((path)
--
2.41.0
kuba@HIDDEN, maxim.cournoyer@HIDDEN, ludo@HIDDEN, guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 23:55:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 19:55:39 2023
Received: from localhost ([127.0.0.1]:38224 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtcrW-0001cS-Ns
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 19:55:39 -0400
Received: from mail-yb1-xb2a.google.com ([2607:f8b0:4864:20::b2a]:53435)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <maxim.cournoyer@HIDDEN>) id 1qtcrQ-0001c5-Ev
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 19:55:33 -0400
Received: by mail-yb1-xb2a.google.com with SMTP id
3f1490d57ef6-d9c2420e417so260083276.2
for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 16:55:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697759695; x=1698364495; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:user-agent:message-id:date
:references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
:message-id:reply-to;
bh=L9kLZcRUZlfCXVUUHPUJL7lHrlzZ74gYL10hQlIy3O0=;
b=TjBy8VO9eDtND+MhbhRbpbBxako95TrGBxHwFcdGHHS4LnZM9sEkJfleWV7AgQvKBC
vJWEf2QKLEkmATTHB9lcq1J+sOpKMo7D9pd5Ev6HVFliYtT1LEo6CoGfMfpgbrZ+4Tff
62UxcPcIudnzM7a78yCcnhaUlymfV2X2JByca8Lo/mnO919GHmK7AN0FbasgWaD2vn8e
1wlBc9JodQl7XtHaKM+wlR9LZBceLZf4/4/pJtriHVSh0zguL7nKDWL7mUT0V7BROYga
D7r5etrA0BSLxJGoozNkSkGPzWS0mT7+clGNiGNj0A5vkRCz9G7a95SMsplO0qY/LTFE
R8FA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697759695; x=1698364495;
h=content-transfer-encoding:mime-version:user-agent:message-id:date
:references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
:to:cc:subject:date:message-id:reply-to;
bh=L9kLZcRUZlfCXVUUHPUJL7lHrlzZ74gYL10hQlIy3O0=;
b=SbpuvJlsBVK426Ncu7NyReBAXl5G8WyWDzjh7rMR4OG/lStP8k+2zYKlREHomO8V+1
HT7D7rdqCSUnWFzx+BZgOC/qpwH3hsDYhWuVC7q15ic+NN/Y7c9eqy0KDG6rdE4b09S1
/89Z0lmwbGdciWoNg19Gu4YgsNpRAa8UVh5Bo22B2O7DMEBSNS1m02/I2ugBinUfNk3q
d+bcKvHVwgf1PedpP06BPeH7HNF7mixwioj9LjEHnnukYyNYzS40Yb7ew8aNQEB6qlFs
zQB0c9PwbLR9f59qG6ZzTzEF8bDS20gvGWM3JDA/u4h0yDN7TfJ1EIbyB7li1NAkmxEw
PG3A==
X-Gm-Message-State: AOJu0YwyQQRegc5QzelfIJ+4/dpQHwP2yv5VDKdnw4vZ2p25tq7sSyPG
u0uoPh9asr9WkzO4CDjdiEggJUZZc/jm6g==
X-Google-Smtp-Source: AGHT+IFu3+yU+d0J3kp1Tu8835UPtlMfXCbkPMONduRw7O8ZPGgAnM19FMezz+qr93D9aYo+CnD36A==
X-Received: by 2002:a05:6902:136d:b0:d9a:3bf2:54a6 with SMTP id
bt13-20020a056902136d00b00d9a3bf254a6mr254754ybb.46.1697759695337;
Thu, 19 Oct 2023 16:54:55 -0700 (PDT)
Received: from hurd (dsl-156-111.b2b2c.ca. [66.158.156.111])
by smtp.gmail.com with ESMTPSA id
fu8-20020a05622a5d8800b004181138e0c0sm188009qtb.31.2023.10.19.16.54.54
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 19 Oct 2023 16:54:54 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Subject: Re: bug#42146: [PATCH core-updates 1/?] build: substitute: Don't
fail silently.
In-Reply-To: <87lebyxs4y.fsf_-_@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s?=
=?utf-8?Q?=22's?= message of "Thu, 19 Oct 2023 22:40:45 +0200")
References: <20200630220913.14665-1-kuba@HIDDEN>
<ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN>
<87lebyxs4y.fsf_-_@HIDDEN>
Date: Thu, 19 Oct 2023 19:54:53 -0400
Message-ID: <87pm1anp6a.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: 42146
Cc: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= <kuba@HIDDEN>,
42146 <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: -1.0 (-)
Hi Ludo,
Ludovic Court=C3=A8s <ludo@HIDDEN> writes:
> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis:
>
>> * etc/teams.scm.in (<regexp*>, make-regexp*, regexp*-exec): Move to...
>> * guix/build/utils.scm: ... here.
>> (list-matches*): New procedure.
>
>
> [...]
>
>> +++ b/guix/build/utils.scm
>
> [...]
>
>> +;;;
>> +;;; Extend regexp objects with a pattern field.
>> +;;;
>> +(define-record-type <regexp*>
>> + (%make-regexp* pat flag rx)
>> + regexp*?
>> + (pat regexp*-pattern) ;the regexp pattern, a string
>> + (flag regexp*-flag) ;regexp flags
>> + (rx regexp*-rx)) ;the compiled regexp object
>> +
>> +;;; Work around regexp implementation.
>> +;;; This record allows to track the regexp pattern and then display it.
>> +(define* (make-regexp* pat #:optional (flag regexp/extended))
>
> I=E2=80=99m skeptical about the concrete benefits. I would not include i=
t in
> (guix build utils), or at least not in this patch series.
>
> (I tend to be super conservative about (guix build utils) because we
> rarely get a chance to change it.)
The original users are substitute* and the teams.scm script. Since
substitute* is from (guix build utils), it makes sense to add it there
as well, since they are coupled.
The benefit is concrete: it makes it possible to show which regexp
pattern failed to match (its textual representation), instead of
something much less useful such as a generic placeholder such as
"<unknown> (regexp)".
It's in actual use if you look at the definition of substitute:
--8<---------------cut here---------------start------------->8---
(let ((rx+proc (map (match-lambda
(((or (? regexp? pattern) (? regexp*? pattern)) . p=
roc)
(cons pattern proc))
((pattern . proc)
(cons (make-regexp* pattern regexp/extended) proc)=
))
pattern+procs)))
--8<---------------cut here---------------end--------------->8---
The previous version followed a different approach, annotating the
rx+proc list with the raw pattern; I think the approach here is a bit
cleaner, and it should also enable users to pass pre-computed regexp*
objects to substitute* and have useful error messages produced.
--=20
Thanks,
Maxim
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:52:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 16:52:18 2023 Received: from localhost ([127.0.0.1]:37987 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qta0A-00041B-DV for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:52:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59154) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1qta08-00040y-9e for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:52:16 -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 1qtZzb-0005V0-RC; Thu, 19 Oct 2023 16:51:43 -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=bMYJvslEynCB9T5ZdVE0Wrj4VsSFqeYTNnpymSI5xP0=; b=K1mFWsPd9gEKGyl/y7zo LMAHGHq10GG4fEYcdtw4KGUJ4M8S5WKdvVoJIKsHp0bYqWwHqIBSUcAJiMgJSQzIiE4Bw1rrPedak XskicOK8aDYjlPgCpXh45V0Zp+FvaKRrRm8c4Vp+8EfQHon/IPGIjBiEmJvdI6MqiZw1TTEGm8a0u l9IQF0vqVG9DQU24EWeOKBeAf4DOTyrGFTV621nnpQ5Oow2lmuc/mSCW5gv25orkv+A/APcoieLOA q1awNcef4bTupL7CVP3psyLk/Jduzo99vtqA1kNXE+CC2hSMYCzF6UYoiKQvQT1PoAjyKFqMUi39a 0pxq1q9xWJUDZg==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Subject: Re: bug#42146: [PATCH core-updates 1/?] build: substitute: Don't fail silently. In-Reply-To: <28fd2bd2039b4a4c0fe8fdaf1adbfb5956f683d5.1697747385.git.maxim.cournoyer@HIDDEN> (Maxim Cournoyer's message of "Thu, 19 Oct 2023 16:33:34 -0400") References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> <28fd2bd2039b4a4c0fe8fdaf1adbfb5956f683d5.1697747385.git.maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 22:51:40 +0200 Message-ID: <874jimxrmr.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: -2.3 (--) X-Debbugs-Envelope-To: 42146 Cc: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= <kuba@HIDDEN>, 42146 <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 (---) Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis: > From: Jakub K=C4=85dzio=C5=82ka <kuba@HIDDEN> > > Matches are not required here, as not every file will use every > variable. > > * guix/build/gnu-bootstrap.scm (bootstrap-configure): Pass > #:require-matches? #f to substitute*. > > Signed-off-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN> To me these two special cases suggest we may discover other more cases where it=E2=80=99s okay to not match and we=E2=80=99d think. We=E2=80=99ll= need a dedicated branch built on ci.guix to assess that. Thanks for working on it! Ludo=E2=80=99.
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:50:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 16:50:25 2023
Received: from localhost ([127.0.0.1]:37982 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtZyK-0003yF-R5
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:50:25 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:38680)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <ludo@HIDDEN>) id 1qtZyF-0003xz-Lc
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:50:22 -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 1qtZxi-0004tl-PQ; Thu, 19 Oct 2023 16:49:46 -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=zuWWY0EBa6XTUOyTJOGcuek5mx1N2NbbFt3fZW8glSg=; b=cqY4Eog/vabsZCVrfZrC
Z1Nwl7xXWRiKfkEC8nIy4hYkJxvOmVNz+UljIG6GQ6fe8hgac42bKWLMFzea+UzEEO5aRLOc2arrE
40bh3AXtjAphGWo/pUITBXvgibapg0I9cf1/QpdwNUFWEOIARHMfKN62LA2IW4WBLXfzw5LOHXsqr
cpUHXTZ5iKhhNgAgztdPQVf/YCmmgFg5hK7VsTUECUzdI6OxcmuzIAHlQHhr5ph3nAbFKddgxnK7Z
vtAyl9TBtaKxqYlyvuetfNLxpc//fXGDplQ30eW9QeiI+yoz4kTLVwrD0QHf5DsusNbujv1g1eas1
M/1dQKhLABRa2g==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Subject: Re: bug#42146: [PATCH core-updates 1/?] build: substitute: Don't
fail silently.
In-Reply-To: <cafb034c8454eff36ab6f8c40df6fc1699915923.1697747385.git.maxim.cournoyer@HIDDEN>
(Maxim Cournoyer's message of "Thu, 19 Oct 2023 16:33:33 -0400")
References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN>
<cafb034c8454eff36ab6f8c40df6fc1699915923.1697747385.git.maxim.cournoyer@HIDDEN>
Date: Thu, 19 Oct 2023 22:49:44 +0200
Message-ID: <878r7yxrpz.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: -2.3 (--)
X-Debbugs-Envelope-To: 42146
Cc: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= <kuba@HIDDEN>,
42146 <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 (---)
Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis:
> From: Jakub K=C4=85dzio=C5=82ka <kuba@HIDDEN>
>
> * guix/build/utils.scm (substitute, substitute*)
> [require-matches?]: New argument.
> * tests/build-utils.scm ("substitute*"): New test group.
> ("substitute*, no match error")
> ("substitute*, partial no match error"): New tests.
>
> Co-authored-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
> Change-Id: I66ed33d72aa73cd35e5642521efec70bf756f86e
[...]
> -(define (substitute file pattern+procs)
> +(define* (substitute file pattern+procs #:key (require-matches? #t))
> "PATTERN+PROCS is a list of regexp/two-argument-procedure pairs. For =
each
> line of FILE, and for each PATTERN that it matches, call the correspondi=
ng
As discussed on IRC recently, I=E2=80=99d suggest:
#:key (require-matches? (%substitute-requires-matches?))
where:
(define %substitute-requires-matches?
(make-parameter #t))
That way it=E2=80=99ll be easier to change the default for entire builds if=
we
need to.
> + (when require-matches?
> + (let ((failed-patterns (lset-difference
> + string=3D?
> + (delete-duplicates
> + (map rx->pattern failed-matches=
))
> + (delete-duplicates
> + (map rx->pattern ok-matches)))))
That=E2=80=99s potentially costly.
Would it be enough to thread a list of unmatched regexps, and to
(delq rx unmatched) every time RX is matched? (This is O(N) but N, the
number of regexps, is typically a handful.)
Then at the end, we=E2=80=99d check whether UNMATCHED is empty.
> + (when (not (null? failed-patterns))
> + (raise (make-condition failed-patterns)))))
SRFI-35 =E2=80=98make-condition=E2=80=99 expects different arguments.
Should probably be: (raise (condition (&substitute-error =E2=80=A6))).
> + ((substitute* file #:require-matches? require-matches?
> + ((regexp match-var ...) body ...) ...)
Maybe rather:
(substitute* file
((regexp match-var ...) body ...) ...
#:require-matches? require-matches?)
That way we formatting remains unchanged.
> +(test-group "substitute*"
I=E2=80=99d avoid groups: they=E2=80=99re not super useful and the output w=
ith the
Automake driver is terrible.
Ludo=E2=80=99.
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:41:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 16:41:27 2023 Received: from localhost ([127.0.0.1]:37976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1qtZpe-00016J-PQ for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:41:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37940) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1qtZpZ-000162-Ma for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:41:25 -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 1qtZp2-00005J-Nn; Thu, 19 Oct 2023 16:40:48 -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=fVfnr0IPelKl3mq4+SXmIo7JR0GBYjPEYKfseEK3XMs=; b=aCuNaP0lqIjpyvHmmivk MQRMRHQkGO/KWvbE6cY7/QwP3j0kBC5ljrcJ/Rz57yUzS9DQtaa06s+9hU0ptMn/0KD0ACRdESVGb lSIOki+EYAItmaLr27K81QFx3RI3JblUO3gUyYwObFdy07Ac6gfS6lmZrp7VZfCVkdmSX5Bq8ivFS 3wVu8ppUaloGRJkokICCA8i2+cn+zmOOieAJQdKQKxgWTPDM+4ayju/43ETMtlxMWbOjttwXPWBAD BbKlAwGwlMpVmgrrxN28Obyxt8dqRX5YpOqvM3z56se92wIR16s1+sjsWzPtLz+TTnRhc8Ic8sYaM 8bckEgjJtBtlvA==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Subject: Re: bug#42146: [PATCH core-updates 1/?] build: substitute: Don't fail silently. In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> (Maxim Cournoyer's message of "Thu, 19 Oct 2023 16:33:32 -0400") References: <20200630220913.14665-1-kuba@HIDDEN> <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN> Date: Thu, 19 Oct 2023 22:40:45 +0200 Message-ID: <87lebyxs4y.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: -2.3 (--) X-Debbugs-Envelope-To: 42146 Cc: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= <kuba@HIDDEN>, 42146 <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 (---) Hi, Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis: > * etc/teams.scm.in (<regexp*>, make-regexp*, regexp*-exec): Move to... > * guix/build/utils.scm: ... here. > (list-matches*): New procedure. [...] > +++ b/guix/build/utils.scm [...] > +;;; > +;;; Extend regexp objects with a pattern field. > +;;; > +(define-record-type <regexp*> > + (%make-regexp* pat flag rx) > + regexp*? > + (pat regexp*-pattern) ;the regexp pattern, a string > + (flag regexp*-flag) ;regexp flags > + (rx regexp*-rx)) ;the compiled regexp object > + > +;;; Work around regexp implementation. > +;;; This record allows to track the regexp pattern and then display it. > +(define* (make-regexp* pat #:optional (flag regexp/extended)) I=E2=80=99m skeptical about the concrete benefits. I would not include it = in (guix build utils), or at least not in this patch series. (I tend to be super conservative about (guix build utils) because we rarely get a chance to change it.) Ludo=E2=80=99.
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:34:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 16:34:49 2023
Received: from localhost ([127.0.0.1]:37946 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtZjF-0000vh-44
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:49 -0400
Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]:46194)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <maxim.cournoyer@HIDDEN>) id 1qtZj9-0000v2-52
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:44 -0400
Received: by mail-qk1-x736.google.com with SMTP id
af79cd13be357-7788fb06997so4984485a.0
for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 13:34:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697747650; x=1698352450; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:references:in-reply-to
:message-id:date:subject:cc:to:from:from:to:cc:subject:date
:message-id:reply-to;
bh=r4Q9z/d9a8INLP5xbQe9cf87MBMZAubiof6Yyn2YFqk=;
b=XU2qcXCic7CtC3U6rZZsrzgNdL6xmjp+0/8Fr3h05S4DHQSifeWWUySNaRSc5+Z3EZ
o5e6+VJFvsFMBpSJhvkH+CsSamYQZZRu6XT0M6G2H/aV0oHuS0eYvXoNKnAAz5lhH09J
O0tXpfx+2+hms9i4mafcEgOKdQ1tSiZwHoXK1K6w6diaQFXcbRW9V7IWrSBLfzmMLcNJ
viRFwRclMi1BnA5Ocw1eLBU3hFxtWyH1ko2lGcYCvm32RgOQUzfZZ41/xlLq/gbX3oEO
hfotn7Hz3TBmyEQr2qZ5KECiEt42cZMV/oHLvG6BgwLxgWpqis7J0z40Lz7J2lmd/fW4
EFgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697747650; x=1698352450;
h=content-transfer-encoding:mime-version:references:in-reply-to
:message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
:subject:date:message-id:reply-to;
bh=r4Q9z/d9a8INLP5xbQe9cf87MBMZAubiof6Yyn2YFqk=;
b=S5D4/S/Ffe6ipqqSGYNiuJVp//GteoixmBgasgHLckwYFHR7lFR0AUDNeLVBOZ+7vm
RLWcSkQPm5JD26QD9CCbjm/bVqM+/VY8IlTzB17JcuzSmIPLpH27Q4Ga4k6JqHPlVtm4
10d8V0Be6KIMOgt/MbvER1uqraXFmAjheHuIYTQicshU2/9oRR94MY8wMAeyF/35mPsz
8sdoikNT68TeSARVa6BerxvTkv0qUj1ot2DNNDNtFw7ziwsfy65DfoifcC6iV83kg7Oz
mtVSPoAzwY2agXUeIXI/zlAijiBo328RewWGGFmWoNWyME2kGhW0Rk/+MufWgZ9kVjn4
pyyw==
X-Gm-Message-State: AOJu0Yzx7/+rmIv2yHDqV8ylv6Zpvw8DK8iWHgEGG43YlxYeas4S4WSz
gV79w+5AxBIi/i1HCLIRPQJiepiOfI2waw==
X-Google-Smtp-Source: AGHT+IFAl3wHepBCuXv7hTlSDku/g7bxD+o60LKTzOyTWfkHQlZU7JJLfblDAc02FszRhsTDFCnjdA==
X-Received: by 2002:a05:620a:430f:b0:76e:f638:bcd9 with SMTP id
u15-20020a05620a430f00b0076ef638bcd9mr3523055qko.38.1697747650613;
Thu, 19 Oct 2023 13:34:10 -0700 (PDT)
Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111])
by smtp.gmail.com with ESMTPSA id
2-20020a05620a070200b0077413b342e9sm76591qkc.128.2023.10.19.13.34.09
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 19 Oct 2023 13:34:10 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH 3/3] build: bootstrap-configure: Allow lack of matches in
substitute.
Date: Thu, 19 Oct 2023 16:33:34 -0400
Message-ID: <28fd2bd2039b4a4c0fe8fdaf1adbfb5956f683d5.1697747385.git.maxim.cournoyer@HIDDEN>
X-Mailer: git-send-email 2.41.0
In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN>
References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN>
MIME-Version: 1.0
X-Debbugs-Cc: Jakub Kądziołka <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
Cc: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>,
Maxim Cournoyer <maxim.cournoyer@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 (-)
From: Jakub Kądziołka <kuba@HIDDEN>
Matches are not required here, as not every file will use every
variable.
* guix/build/gnu-bootstrap.scm (bootstrap-configure): Pass
#:require-matches? #f to substitute*.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
---
guix/build/gnu-bootstrap.scm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/guix/build/gnu-bootstrap.scm b/guix/build/gnu-bootstrap.scm
index b4257a3717..d044c8acd9 100644
--- a/guix/build/gnu-bootstrap.scm
+++ b/guix/build/gnu-bootstrap.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2022 Timothy Sample <samplet@HIDDEN>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -51,6 +52,7 @@ (define (bootstrap-configure name version modules scripts)
(let ((target (string-drop-right template 3)))
(copy-file template target)
(substitute* target
+ #:require-matches? #f
(("@PACKAGE_NAME@") name)
(("@VERSION@") version))))
(append-map (lambda (dir) (find-files dir "\\.in$"))
@@ -60,14 +62,14 @@ (define (bootstrap-configure name version modules scripts)
(let ((target (string-drop-right template 3)))
(copy-file template target)
(substitute* target
+ #:require-matches? #f
(("@GUILE@") guile)
(("@MODDIR@") moddir)
(("@GODIR@") godir))
(chmod target #o755)))
(find-files scripts
(lambda (fn st)
- (string-suffix? ".in" fn))))
- #t)))
+ (string-suffix? ".in" fn)))))))
(define (bootstrap-build modules)
"Create a procedure that builds an early bootstrap package. The
--
2.41.0
kuba@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:34:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 16:34:48 2023
Received: from localhost ([127.0.0.1]:37944 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtZjD-0000vU-8E
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:47 -0400
Received: from mail-qk1-x72d.google.com ([2607:f8b0:4864:20::72d]:47290)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <maxim.cournoyer@HIDDEN>) id 1qtZj6-0000uz-DZ
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:41 -0400
Received: by mail-qk1-x72d.google.com with SMTP id
af79cd13be357-7788db95652so3878185a.2
for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 13:34:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697747648; x=1698352448; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:references:in-reply-to
:message-id:date:subject:cc:to:from:from:to:cc:subject:date
:message-id:reply-to;
bh=oTAbCUEBY4/PaAlLb3JRnahAdJdeX/zaSLEJfY7+90g=;
b=aigGrMq5FpRYclutciNokFrhbtz5FbX8/+vifefVTLPWmE6/OA5/tVoojMfaJcXZ2Z
0hzO5oSgshZ5p4o2hS9/rksQRywXE7d4I3d8SODSiarDrLKn/3rEICH0Pjc9ndIg3QWF
BN3UypVZSFu3Kfx1rPtHJY1DHNhG8rew6u1u68UeNp1R/yENLp0zyPu/jlePukzWmJHB
Ag3rinz+5fn7QHn9mn5ZVpSLK//X9aVf1hx0vgrskD8itsVICYINn0Ok36PqoNHW7rkK
XGrOhqXonWe/GrwpsT/B2KK+EiOzkPF/1hVJNGvURb9eggwx2NTerRgfxQWniKvLXrWT
G98A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697747648; x=1698352448;
h=content-transfer-encoding:mime-version:references:in-reply-to
:message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
:subject:date:message-id:reply-to;
bh=oTAbCUEBY4/PaAlLb3JRnahAdJdeX/zaSLEJfY7+90g=;
b=IADZxhjW81S5sZXWI4KRaCu9Y7pSues3bHaW0ZtJrjeJRZszBHwDHNIFzLI5YF4h8W
EFy6qCNR8+ElPAMt6yA/AI9bR+qUiTdrMNRMM3UNu5kLbOpPyuo4CaS851w9cnZ2+yxA
qOWzTtoT5dcqdiS4+eCXLPg+z9ChpLRezZpwkNgb7nlNTJywQNNsf4cIpMPUCdJrIoDA
wT79PgUYSww/sKDdt50u7lPDdO2hiy0HOawzhEPxigDIx5YqiaCbYOGS/5Ee+Al5DfE/
9wDjpRJ5e2GFPQw8ADK2+B6KrFDyvvEkit99K+QjIAPKfIAOcplRAG+S6jzJ6/kOYKwx
jWsw==
X-Gm-Message-State: AOJu0Yzz7GcXz3qcHVlpl1ACsfT/UMSRLZwWXGhIwWgF0AbFDgLoP9XK
LIhVf8UWPJ+YYfHtRSMp+ELYu5LRg7J3ZA==
X-Google-Smtp-Source: AGHT+IH3r47NdrEpahDPXiMGSZCz+rO/hZa9dCzcOtNVbE0KEcgI/qFhbXrZPzm4LX87wc0K+K5MrA==
X-Received: by 2002:a05:620a:29c2:b0:775:903e:388c with SMTP id
s2-20020a05620a29c200b00775903e388cmr3062568qkp.2.1697747647630;
Thu, 19 Oct 2023 13:34:07 -0700 (PDT)
Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111])
by smtp.gmail.com with ESMTPSA id
2-20020a05620a070200b0077413b342e9sm76591qkc.128.2023.10.19.13.34.06
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 19 Oct 2023 13:34:07 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH 2/3] build: substitute: Error when no substitutions were done.
Date: Thu, 19 Oct 2023 16:33:33 -0400
Message-ID: <cafb034c8454eff36ab6f8c40df6fc1699915923.1697747385.git.maxim.cournoyer@HIDDEN>
X-Mailer: git-send-email 2.41.0
In-Reply-To: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN>
References: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN>
MIME-Version: 1.0
X-Debbugs-Cc: Jakub Kądziołka <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
Cc: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>,
Maxim Cournoyer <maxim.cournoyer@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 (-)
From: Jakub Kądziołka <kuba@HIDDEN>
* guix/build/utils.scm (substitute, substitute*)
[require-matches?]: New argument.
* tests/build-utils.scm ("substitute*"): New test group.
("substitute*, no match error")
("substitute*, partial no match error"): New tests.
Co-authored-by: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Change-Id: I66ed33d72aa73cd35e5642521efec70bf756f86e
---
guix/build/utils.scm | 94 +++++++++++++++++++++++++++++++++----------
tests/build-utils.scm | 63 +++++++++++++++++++----------
2 files changed, 114 insertions(+), 43 deletions(-)
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 2b3a8e278b..7bfb6560e1 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -6,7 +6,8 @@
;;; Copyright © 2018, 2022 Arun Isaac <arunisaac@HIDDEN>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@HIDDEN>
;;; Copyright © 2020 Efraim Flashner <efraim@HIDDEN>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN>
+;;; Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@HIDDEN>
;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN>
;;; Copyright © 2022 Simon Tournier <zimon.toutoune@HIDDEN>
@@ -971,24 +972,53 @@ (define (replace-char c1 c2 s)
c))
s)))
-(define (substitute file pattern+procs)
+(define* (substitute file pattern+procs #:key (require-matches? #t))
"PATTERN+PROCS is a list of regexp/two-argument-procedure pairs. For each
line of FILE, and for each PATTERN that it matches, call the corresponding
PROC as (PROC LINE MATCHES); PROC must return the line that will be written as
a substitution of the original line. Be careful about using '$' to match the
-end of a line; by itself it won't match the terminating newline of a line."
- (let ((rx+proc (map (match-lambda
- (((? regexp? pattern) . proc)
+end of a line; by itself it won't match the terminating newline of a line.
+
+By default, SUBSTITUTE will raise a &message condition if one of the patterns
+fails to match. REQUIRE-MATCHES? can be set to false when lack of matches is
+acceptable (e.g. if you have multiple potential patterns not guaranteed to be
+found in FILE)."
+ (define (rx->pattern m)
+ (match m
+ ((? regexp? pattern)
+ "<unknown pattern (regexp)>")
+ ((? regexp*? pattern)
+ (regexp*-pattern pattern))
+ ((? string? pattern)
+ pattern)))
+
+ (define (make-condition failed-matches)
+ (condition
+ (&message
+ (message (format #f "substitute: `~a': no match for patterns `~a'"
+ file failed-matches)))))
+
+ (let ((rx+proc (map (match-lambda
+ (((or (? regexp? pattern) (? regexp*? pattern)) . proc)
(cons pattern proc))
((pattern . proc)
- (cons (make-regexp pattern regexp/extended)
- proc)))
- pattern+procs)))
+ (cons (make-regexp* pattern regexp/extended) proc)))
+ pattern+procs)))
(with-atomic-file-replacement file
(lambda (in out)
- (let loop ((line (read-line in 'concat)))
+ (let loop ((line (read-line in 'concat))
+ (ok-matches '())
+ (failed-matches '()))
(if (eof-object? line)
- #t
+ (when require-matches?
+ (let ((failed-patterns (lset-difference
+ string=?
+ (delete-duplicates
+ (map rx->pattern failed-matches))
+ (delete-duplicates
+ (map rx->pattern ok-matches)))))
+ (when (not (null? failed-patterns))
+ (raise (make-condition failed-patterns)))))
;; Work around the fact that Guile's regexp-exec does not handle
;; NUL characters (a limitation of the underlying GNU libc's
;; regexec) by temporarily replacing them by an unused private
@@ -998,19 +1028,30 @@ (define (substitute file pattern+procs)
(unused-private-use-code-point line))
#\nul))
(line* (replace-char #\nul nul* line))
- (line1* (fold (lambda (r+p line)
- (match r+p
- ((regexp . proc)
- (match (list-matches regexp line)
- ((and m+ (_ _ ...))
- (proc line m+))
- (_ line)))))
- line*
- rx+proc))
+ (results ;line, ok-matches and failed-matches
+ (fold (lambda (r+p results)
+ (let ((line (first results))
+ (ok-matches (second results))
+ (failed-matches (third results)))
+ (match r+p
+ ((regexp . proc)
+ (match (list-matches* regexp line)
+ ((and m+ (_ _ ...))
+ (list (proc line m+)
+ (cons regexp ok-matches)
+ failed-matches))
+ (_
+ (list line
+ ok-matches
+ (cons regexp failed-matches))))))))
+ (list line* '() '())
+ rx+proc))
+ (line1* (first results))
+ (ok-matches (second results))
+ (failed-matches (third results))
(line1 (replace-char nul* #\nul line1*)))
(display line1 out)
- (loop (read-line in 'concat)))))))))
-
+ (loop (read-line in 'concat) ok-matches failed-matches))))))))
(define-syntax let-matches
;; Helper macro for `substitute*'.
@@ -1048,9 +1089,17 @@ (define-syntax substitute*
Alternatively, FILE may be a list of file names, in which case they are
all subject to the substitutions.
+By default, SUBSTITUTE* will raise a &message condition if one of the patterns
+fails to match on one of the files; REQUIRE-MATCHES? may be set to false to
+avoid an error being raised in such condition.
+
Be careful about using '$' to match the end of a line; by itself it won't
match the terminating newline of a line."
((substitute* file ((regexp match-var ...) body ...) ...)
+ (substitute* file #:require-matches? #t
+ ((regexp match-var ...) body ...) ...))
+ ((substitute* file #:require-matches? require-matches?
+ ((regexp match-var ...) body ...) ...)
(let ()
(define (substitute-one-file file-name)
(substitute
@@ -1074,7 +1123,8 @@ (define-syntax substitute*
(begin body ...)
(substring l o (match:start m))
r))))))))
- ...)))
+ ...)
+ #:require-matches? require-matches?))
(match file
((files (... ...))
diff --git a/tests/build-utils.scm b/tests/build-utils.scm
index 3babf5d544..890fbca16f 100644
--- a/tests/build-utils.scm
+++ b/tests/build-utils.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@HIDDEN>
;;; Copyright © 2019 Ricardo Wurmus <rekado@HIDDEN>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
+;;; Copyright © 2021, 2023 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
;;; Copyright © 2021 Maxime Devos <maximedevos@HIDDEN>
;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN>
;;;
@@ -289,26 +289,47 @@ (define (arg-test bash-args)
(test-assert "wrap-script, argument handling, bash --norc"
(arg-test " --norc"))
-(test-equal "substitute*, text contains a NUL byte, UTF-8"
- "c\0d"
- (with-fluids ((%default-port-encoding "UTF-8")
- (%default-port-conversion-strategy 'error))
- ;; The GNU libc is locale sensitive. Depending on the value of LANG, the
- ;; test could fail with "string contains #\\nul character: ~S" or "cannot
- ;; convert wide string to output locale".
- (setlocale LC_ALL "en_US.UTF-8")
- (call-with-temporary-output-file
- (lambda (file port)
- (format port "a\0b")
- (flush-output-port port)
-
- (substitute* file
- (("a") "c")
- (("b") "d"))
-
- (with-input-from-file file
- (lambda _
- (get-string-all (current-input-port))))))))
+(test-group "substitute*"
+ (define-syntax-rule (define-substitute*-test test-type name expected
+ content clauses ...)
+ (test-type
+ name
+ expected
+ (with-fluids ((%default-port-encoding "UTF-8")
+ (%default-port-conversion-strategy 'error))
+ ;; The GNU libc is locale sensitive. Depending on the value of LANG,
+ ;; the test could fail with "string contains #\\nul character: ~S" or
+ ;; "cannot convert wide string to output locale".
+ (setlocale LC_ALL "en_US.UTF-8")
+ (call-with-temporary-output-file
+ (lambda (file port)
+ (format port content)
+ (flush-output-port port)
+
+ (substitute* file
+ clauses ...)
+
+ (with-input-from-file file
+ (lambda _
+ (get-string-all (current-input-port)))))))))
+
+ (define-substitute*-test test-equal
+ "substitute*, text contains a NUL byte, UTF-8"
+ "c\0d" ;expected
+ "a\0b" ;content
+ (("a") "c")
+ (("b") "d"))
+
+ (define-substitute*-test test-error "substitute*, no match error"
+ #t ;expected
+ "a\0b" ;content
+ (("Oops!") "c"))
+
+ (define-substitute*-test test-error "substitute*, partial no match error"
+ #t ;expected
+ "a\0b" ;content
+ (("a") "c"
+ ("Oops!") "c")))
(test-equal "search-input-file: exception if not found"
`((path)
--
2.41.0
kuba@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 20:34:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 16:34:47 2023
Received: from localhost ([127.0.0.1]:37942 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtZj9-0000vI-AK
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:47 -0400
Received: from mail-qk1-x72c.google.com ([2607:f8b0:4864:20::72c]:53679)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <maxim.cournoyer@HIDDEN>) id 1qtZj3-0000uv-P6
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 16:34:41 -0400
Received: by mail-qk1-x72c.google.com with SMTP id
af79cd13be357-7789cb322deso3477585a.3
for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 13:34:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697747645; x=1698352445; 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=b8visCM1R1nOmFaZmfOgo/UFjx68QHhn/qnzsKsQeAg=;
b=ZN3ZytrOSkoPV3PTQaE1mAar2RlNnWmqgMs1eUJnLtPW5QYVB8f3z+ETfhqDnFw1DS
XyavybpqF03vu1wUn37gRq17HNTkbrOjgAw4oyHai8tgBky7hY6NGNRQaA/QxtH0hIAW
Pb0u8CKyr2zoBfMzP4MnLVK05A79UctLns1v85Ta/8/wkalN6l36ICOFAi7ESSKQon4+
1Ae8JJTz3BU8D0tV1gLHkHWCJ1HetFbnWCCw56TCEjuCuy7/Hbdtjw62LL5lqX1PJ2Em
T5U0x3yELnvQ1o/Z7GAqvIOeIP4v7BWHxMdrbd2lt6sY9z6JIlAoh3YHe0WyIL4bC4oO
eWBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697747645; x=1698352445;
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=b8visCM1R1nOmFaZmfOgo/UFjx68QHhn/qnzsKsQeAg=;
b=ZxcAquP9GiFSEo55HE/e7UF9MDsvAS9ZPWpca4BgE2OTuZn++bxCM8Vz4pWkIgiu8n
SCyNxBgNdbpxrkHJyZivfM2vWBjhk42Cg6BOvpQ5VcbK7Lv6DbTDMTCXwJu7JWjhcWPd
Lr/9mdtMdzqjth6e+o4LJtDKp1QVlwkrZs8MPGYzSd1XrF/uqqcfE4iVMcbhD1y3Lrjb
6Y9/YmGl0na0+4auI/al8y10TAzAOSvDKRcwLda6EB77r3PZ7ACOvRn0WcU6borfd1XS
JwfcqC9PBFfIF5slrnZEnMm5GbbtnYtoS9tYFfWLUFgG1dtJM2rc5Kdk1RSRPuV7zzIh
I87A==
X-Gm-Message-State: AOJu0Yy4UcYO5QrjiSDMvsyioUbWrb8JzRF4JdfVrpGJwbDOvFyxRhSO
zG+bBTapLnbVAlTYyTfp3ccFG1eoEnfN8Q==
X-Google-Smtp-Source: AGHT+IFA9mzRE/o856F/91XgvZa7sQElpq+DUlYXjrLLxGzsRTInleEEv8Plk+fACFYJFEpXs4lzng==
X-Received: by 2002:a05:620a:4548:b0:76f:2899:3a96 with SMTP id
u8-20020a05620a454800b0076f28993a96mr3923889qkp.0.1697747644695;
Thu, 19 Oct 2023 13:34:04 -0700 (PDT)
Received: from localhost.localdomain (dsl-156-111.b2b2c.ca. [66.158.156.111])
by smtp.gmail.com with ESMTPSA id
2-20020a05620a070200b0077413b342e9sm76591qkc.128.2023.10.19.13.34.03
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 19 Oct 2023 13:34:03 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH 1/3] build: Relocate <regexp*> record and associated
procedures here.
Date: Thu, 19 Oct 2023 16:33:32 -0400
Message-ID: <ff182177822369c7d31698ecbf0cb5dcbca37644.1697747385.git.maxim.cournoyer@HIDDEN>
X-Mailer: git-send-email 2.41.0
MIME-Version: 1.0
X-Debbugs-Cc: Jakub Kądziołka <kuba@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
Cc: Maxim Cournoyer <maxim.cournoyer@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 (-)
* etc/teams.scm.in (<regexp*>, make-regexp*, regexp*-exec): Move to...
* guix/build/utils.scm: ... here.
(list-matches*): New procedure.
Change-Id: I566ac372f7d8ba08de94e19b54dcc68da2106a23
---
etc/teams.scm.in | 19 +------------------
guix/build/utils.scm | 39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 40 insertions(+), 18 deletions(-)
diff --git a/etc/teams.scm.in b/etc/teams.scm.in
index 55242caad1..8af25b9802 100644
--- a/etc/teams.scm.in
+++ b/etc/teams.scm.in
@@ -34,29 +34,12 @@
(srfi srfi-9)
(srfi srfi-26)
(ice-9 format)
- (ice-9 regex)
(ice-9 match)
(ice-9 rdelim)
+ (guix build utils)
(guix ui)
(git))
-(define-record-type <regexp*>
- (%make-regexp* pat flag rx)
- regexp*?
- (pat regexp*-pattern)
- (flag regexp*-flag)
- (rx regexp*-rx))
-
-;;; Work around regexp implementation.
-;;; This record allows to track the regexp pattern and then display it.
-(define* (make-regexp* pat #:optional (flag regexp/extended))
- "Alternative to `make-regexp' producing annotated <regexp*> objects."
- (%make-regexp* pat flag (make-regexp pat flag)))
-
-(define (regexp*-exec rx* str)
- "Execute the RX* regexp, a <regexp*> object."
- (regexp-exec (regexp*-rx rx*) str))
-
(define-record-type <team>
(make-team id name description members scope)
team?
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 8e630ad586..2b3a8e278b 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@HIDDEN>
;;; Copyright © 2021 Brendan Tildesley <mail@HIDDEN>
+;;; Copyright © 2022 Simon Tournier <zimon.toutoune@HIDDEN>
;;; Copyright © 2023 Carlo Zancanaro <carlo@HIDDEN>
;;;
;;; This file is part of GNU Guix.
@@ -28,6 +29,7 @@
(define-module (guix build utils)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
@@ -55,6 +57,14 @@ (define-module (guix build utils)
package-name->name+version
parallel-job-count
+ make-regexp*
+ regexp*-exec
+ regexp*?
+ regexp*-pattern
+ regexp*-flag
+ regexp*-rx
+ list-matches*
+
compressor
tarball?
%xz-parallel-args
@@ -163,6 +173,35 @@ (define-syntax-rule (define-constant name val)
(module-replace! (current-module) '(setvbuf)))
(else #f))
+
+;;;
+;;; Extend regexp objects with a pattern field.
+;;;
+(define-record-type <regexp*>
+ (%make-regexp* pat flag rx)
+ regexp*?
+ (pat regexp*-pattern) ;the regexp pattern, a string
+ (flag regexp*-flag) ;regexp flags
+ (rx regexp*-rx)) ;the compiled regexp object
+
+;;; Work around regexp implementation.
+;;; This record allows to track the regexp pattern and then display it.
+(define* (make-regexp* pat #:optional (flag regexp/extended))
+ "Alternative to `make-regexp' producing annotated <regexp*> objects."
+ (%make-regexp* pat flag (make-regexp pat flag)))
+
+(define (regexp*-exec rx* str)
+ "Execute the RX* regexp, a <regexp*> object."
+ (regexp-exec (regexp*-rx rx*) str))
+
+(define* (list-matches* regexp str #:optional (flags regexp/extended))
+ "Like 'list-matches', but also accepting a regexp* as REGEXP."
+ (match regexp
+ ((or (? string?) (? regexp?))
+ (list-matches regexp str flags))
+ ((? regexp*?)
+ (list-matches (regexp*-rx regexp) str flags))))
+
;;;
;;; Compression helpers.
base-commit: d59653b7c9e43ebdbba20e2ca071429507f94c67
--
2.41.0
kuba@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 19 Oct 2023 13:15:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 19 09:15:28 2023
Received: from localhost ([127.0.0.1]:36091 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qtSs4-0003tF-0Z
for submit <at> debbugs.gnu.org; Thu, 19 Oct 2023 09:15:28 -0400
Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]:57525)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <maxim.cournoyer@HIDDEN>) id 1qtSs2-0003sp-7b
for 42146 <at> debbugs.gnu.org; Thu, 19 Oct 2023 09:15:27 -0400
Received: by mail-oa1-x2b.google.com with SMTP id
586e51a60fabf-1dd71c0a41fso4888595fac.2
for <42146 <at> debbugs.gnu.org>; Thu, 19 Oct 2023 06:14:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1697721293; x=1698326093; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:user-agent:message-id:date
:references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
:message-id:reply-to;
bh=fT7QasneeUUw6v7KJk6SJzCliBfugeHsCwOiYHP2oDQ=;
b=EdinGs8lqL2AlyjrSdgPRcihTzOemYek7x8taKYpqnhs2hIqk4TSmRLGnDAZWlGKnK
fRGiedegN8ITPEmDbAoKVB8qN9D11A8iIXl7YGocl8ll2UMO1JEjPVmaC7ml8T38ZFs9
06IS+nx6jy1x4PvlQGmwFe68bGVIerwil8zAzm0LB8N1mEv0YkHDn9nYo67XPKf4hh5T
qkk3dleIimDuzixwcbO/mMO4XCwrTakunnERtv++TNr/DQhlcQr+bHmqgzABodaDf7xs
eLX1Kvv+llPsR12cMQZpKKfTh8kQTMulqfeVWRZ5iZlZ9VLbqmc2eqMHy9cLMR5NuDPF
4T2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1697721293; x=1698326093;
h=content-transfer-encoding:mime-version:user-agent:message-id:date
:references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
:to:cc:subject:date:message-id:reply-to;
bh=fT7QasneeUUw6v7KJk6SJzCliBfugeHsCwOiYHP2oDQ=;
b=cAv3vaiUP8cl6hJgy3ZF5D4gpRoKkijJ9/1xwEmmM5+MKyzmSLxqNjHF4cIaS9oHrS
G+DPpFEpL2g9+0QumIhMm8GY/8zWEpOEqebxnd04w+cdhWVWatCPZTvNTHHi//KCgW0J
9NIVf48bDLfInGoLAoU+DvczGZabbgv5aJ/k9dWIWU0zEIPWCd7kGbVwEhYt8IEyaXX/
VjT9yz7CqBlUvamYS2v70m0iOJ/Gh999bU0AKoN4EOQ9hNRhXLC73duC7OP30yYpKeVh
9qrxqKYMIGpl8Yz6U8vycYAsBzsuNlVGtjysLmNPBnxvKcm8VOyTaaw3UPOToGDqLMgN
kJOg==
X-Gm-Message-State: AOJu0YwfFZZtzDE2/s4SBLkyy7Ohej3WFsgER+Ns1w32x+RQp+oO3ZKX
74jrBg9YtkyrjQtXZsARsNTF0bkarJntLA==
X-Google-Smtp-Source: AGHT+IHgj3IX/Nn1l0ifoYjULnMdLmuqO1qkFbFN2E0H+Ypm9vJjTNcUZF3Ic3Lm8URZEdAs92wZEg==
X-Received: by 2002:a05:6870:a102:b0:1e9:b305:6831 with SMTP id
m2-20020a056870a10200b001e9b3056831mr2516941oae.42.1697721292929;
Thu, 19 Oct 2023 06:14:52 -0700 (PDT)
Received: from hurd (dsl-156-111.b2b2c.ca. [66.158.156.111])
by smtp.gmail.com with ESMTPSA id
t7-20020ac86a07000000b004197d6d97c4sm718091qtr.24.2023.10.19.06.14.52
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 19 Oct 2023 06:14:52 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= <kuba@HIDDEN>
Subject: Re: bug#42146: [PATCH core-updates 1/?] build: substitute: Don't
fail silently.
In-Reply-To: <20200630225007.tw2rcfbmzh3wvthf@gravity> ("Jakub
=?utf-8?B?S8SFZHppb8WCa2EiJ3M=?=
message of "Wed, 1 Jul 2020 00:50:07 +0200")
References: <20200630220913.14665-1-kuba@HIDDEN>
<handler.42146.B.159355497531278.ack <at> debbugs.gnu.org>
<20200630225007.tw2rcfbmzh3wvthf@gravity>
Date: Thu, 19 Oct 2023 09:14:51 -0400
Message-ID: <87wmvioit0.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: 42146
Cc: 42146 <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: -1.0 (-)
Hi Jakub,
Sorry for the late reply; nice series!
Jakub K=C4=85dzio=C5=82ka <kuba@HIDDEN> writes:
> The error messages I'm getting from this are quite indirect - there are
> wrapped in quite a few layers. Is there a better way to report errors
> inside a build utility?
>
> ice-9/eval.scm:387:11: In procedure eval:
> ice-9/eval.scm:387:11: Throw to key `srfi-34' with args `(#<condition &me=
ssage [message: "substit ute: install.sh: pattern failed to match: -xf"] 1=
1aa480>)'.
> builder for `/gnu/store/wdyzzh7rkg47hfp434w72ly9nay1yva1-mes-boot-0.22.dr=
v' failed with exit code 1
I don't think it's possible currently; I guess we'd have to serialize
the exceptions in the builder to recover them on the host to present
them in a nicer fashion.
--=20
Thanks,
Maxim
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 1 Jul 2020 09:55:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 01 05:55:30 2020
Received: from localhost ([127.0.0.1]:52317 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1jqZSk-0002Gs-1s
for submit <at> debbugs.gnu.org; Wed, 01 Jul 2020 05:55:30 -0400
Received: from pat.zlotemysli.pl ([37.59.186.212]:37738)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <kuba@HIDDEN>) id 1jqZSh-0002Gg-UR
for 42146 <at> debbugs.gnu.org; Wed, 01 Jul 2020 05:55:28 -0400
Received: (qmail 19561 invoked by uid 1009); 1 Jul 2020 11:55:25 +0200
Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by
pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>,
uid 1002) with qmail-scanner-2.08st
(clamdscan: 0.98.6/25859. spamassassin: 3.4.0. perlscan: 2.08st.
Clear:RC:1(188.123.215.55):.
Processed in 0.034343 secs); 01 Jul 2020 09:55:25 -0000
Received: from unknown (HELO localhost.localdomain)
(kuba@HIDDEN@188.123.215.55)
by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 11:55:25 +0200
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH 6/6] gnu: glibc-mesboot0: Fixup the fixup-configure phase.
Date: Wed, 1 Jul 2020 11:55:23 +0200
Message-Id: <20200701095523.9501-1-kuba@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Qmailux-2.08st: added fake Content-Type header
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
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/packages/commencement.scm (glibc-mesboot0)[fixup-configure]: Don't
repeat substitution. Fix indentation.
---
This is an interesting cleanup commit. I believe this concludes a nice
sampling of the consequences of this patch, and thus subsequent fixups
are unlikely to benefit from a review. I will be pushing my work to
https://github.com/NieDzejkob/guix/tree/core-updates
gnu/packages/commencement.scm | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 295a378d11..837f4e2ecc 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -1418,19 +1418,17 @@ ac_cv_c_float_format='IEEE (little-endian)'
(format (current-error-port)
"running ./configure ~a\n" (string-join configure-flags))
(apply invoke "./configure" configure-flags)))
- (add-after 'configure 'fixup-configure
- (lambda _
- (let* ((out (assoc-ref %outputs "out"))
- (bash (assoc-ref %build-inputs "bash"))
- (shell (string-append bash "/bin/bash")))
- (substitute* "config.make"
- (("INSTALL = scripts/") "INSTALL = $(..)./scripts/"))
- (substitute* "config.make"
- (("INSTALL = scripts/") "INSTALL = $(..)./scripts/")
- (("BASH = ") (string-append
- "SHELL = " shell "
- BASH = ")))
- #t))))))))
+ (add-after 'configure 'fixup-configure
+ (lambda _
+ (let* ((out (assoc-ref %outputs "out"))
+ (bash (assoc-ref %build-inputs "bash"))
+ (shell (string-append bash "/bin/bash")))
+ (substitute* "config.make"
+ (("INSTALL = scripts/") "INSTALL = $(..)./scripts/")
+ (("BASH = ") (string-append
+ "SHELL = " shell "
+BASH = ")))
+ #t))))))))
(define gcc-mesboot0
(package
--
2.26.2
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 1 Jul 2020 00:42:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 20:42:46 2020
Received: from localhost ([127.0.0.1]:52042 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1jqQpq-0003V5-72
for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 20:42:46 -0400
Received: from pat.zlotemysli.pl ([37.59.186.212]:60106)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <kuba@HIDDEN>) id 1jqQpo-0003Ux-Gg
for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 20:42:45 -0400
Received: (qmail 29638 invoked by uid 1009); 1 Jul 2020 02:42:43 +0200
Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by
pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>,
uid 1002) with qmail-scanner-2.08st
(clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st.
Clear:RC:1(188.123.215.55):.
Processed in 0.013567 secs); 01 Jul 2020 00:42:43 -0000
Received: from unknown (HELO localhost.localdomain)
(kuba@HIDDEN@188.123.215.55)
by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 02:42:43 +0200
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH 5/?] build-system/gnu: Allow lack of matches in substitution
phases.
Date: Wed, 1 Jul 2020 02:42:42 +0200
Message-Id: <20200701004242.18245-1-kuba@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
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 (-)
* guix/build/utils.scm (patch-makefile-SHELL, patch-/usr/bin/file),
guix/build/gnu-build-system.scm (patch-dot-desktop-files):
Allow lack of matches in substitute*.
---
guix/build/gnu-build-system.scm | 3 ++-
guix/build/utils.scm | 4 ++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index 2e7dff2034..4b96761233 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@HIDDEN>
;;; Copyright © 2018 Mark H Weaver <mhw@HIDDEN>
;;; Copyright © 2020 Brendan Tildesley <mail@HIDDEN>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -724,7 +725,7 @@ which cannot be found~%"
;; '.desktop' files contain translations and are always
;; UTF-8-encoded.
(with-fluids ((%default-port-encoding "UTF-8"))
- (substitute* files
+ (substitute* files #:require-matches? #f
(("^Exec=([^/[:blank:]\r\n]*)(.*)$" _ binary rest)
(string-append "Exec=" (which binary) rest))
(("^TryExec=([^/[:blank:]\r\n]*)(.*)$" _ binary rest)
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 1bfb774c60..a8218a7743 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -1005,7 +1005,7 @@ When KEEP-MTIME? is true, the atime/mtime of FILE are kept unchanged."
(let ((st (stat file)))
;; Consider FILE is using an 8-bit encoding to avoid errors.
(with-fluids ((%default-port-encoding #f))
- (substitute* file
+ (substitute* file #:require-matches? #f
(("^ *SHELL[[:blank:]]*:?=[[:blank:]]*([[:graph:]]*/)([[:graph:]]+)(.*)$"
_ dir shell args)
(let* ((old (string-append dir shell))
@@ -1033,7 +1033,7 @@ no replacement 'file' command, doing nothing~%")
(let ((st (stat file)))
;; Consider FILE is using an 8-bit encoding to avoid errors.
(with-fluids ((%default-port-encoding #f))
- (substitute* file
+ (substitute* file #:require-matches? #f
(("/usr/bin/file")
(begin
(format (current-error-port)
--
2.26.2
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 1 Jul 2020 00:42:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 20:42:40 2020
Received: from localhost ([127.0.0.1]:52039 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1jqQpj-0003Ul-UC
for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 20:42:40 -0400
Received: from pat.zlotemysli.pl ([37.59.186.212]:60046)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <kuba@HIDDEN>) id 1jqQph-0003Uc-Rq
for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 20:42:38 -0400
Received: (qmail 29567 invoked by uid 1009); 1 Jul 2020 02:42:35 +0200
Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by
pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>,
uid 1002) with qmail-scanner-2.08st
(clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st.
Clear:RC:1(188.123.215.55):.
Processed in 0.042099 secs); 01 Jul 2020 00:42:35 -0000
Received: from unknown (HELO localhost.localdomain)
(kuba@HIDDEN@188.123.215.55)
by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 02:42:35 +0200
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH 4/?] gnu: mes-boot: Use verbosity settings integrated into
buildsystem
Date: Wed, 1 Jul 2020 02:42:34 +0200
Message-Id: <20200701004234.18050-1-kuba@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Qmailux-2.08st: added fake Content-Type header
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
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/packages/commencement.scm (mes-boot): Set the V environment
variable. Don't substitute in the install script.
---
gnu/packages/commencement.scm | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 1c7cf3d810..295a378d11 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -407,6 +407,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
(string-append
mes "/share/mes/module"
":" dir "/nyacc-0.99.0/module"))
+ (setenv "V" "1")
(invoke "gash" "configure.sh"
(string-append "--prefix=" out)
(string-append "--host=i686-linux-gnu")))))
@@ -416,11 +417,6 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
(delete 'check)
(replace 'install
(lambda _
- (substitute* "install.sh" ; show some progress
- ((" -xf") " -xvf")
- (("^( *)((cp|mkdir|tar) [^']*[^\\])\n" all space cmd)
- (string-append space "echo '" cmd "'\n"
- space cmd "\n")))
(invoke "sh" "install.sh")
;; Keep ASCII output, for friendlier comparison and bisection
(let* ((out (assoc-ref %outputs "out"))
--
2.26.2
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.Received: (at 42146) by debbugs.gnu.org; 30 Jun 2020 22:50:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 18:50:14 2020 Received: from localhost ([127.0.0.1]:51939 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1jqP4w-0000g9-HL for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:50:14 -0400 Received: from pat.zlotemysli.pl ([37.59.186.212]:37970) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <kuba@HIDDEN>) id 1jqP4v-0000g1-9I for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:50:13 -0400 Received: (qmail 10513 invoked by uid 1009); 1 Jul 2020 00:50:11 +0200 Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.036375 secs); 30 Jun 2020 22:50:11 -0000 Received: from unknown (HELO gravity) (kuba@HIDDEN@188.123.215.55) by pat.zlotemysli.pl with SMTP; 1 Jul 2020 00:50:11 +0200 Date: Wed, 1 Jul 2020 00:50:07 +0200 From: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= <kuba@HIDDEN> To: 42146 <at> debbugs.gnu.org Subject: Re: [PATCH core-updates 1/?] build: substitute: Don't fail silently. Message-ID: <20200630225007.tw2rcfbmzh3wvthf@gravity> References: <20200630220913.14665-1-kuba@HIDDEN> <handler.42146.B.159355497531278.ack <at> debbugs.gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="4yl43hkujyl5piqa" Content-Disposition: inline In-Reply-To: <handler.42146.B.159355497531278.ack <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 42146 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 (-) --4yl43hkujyl5piqa Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable The error messages I'm getting from this are quite indirect - there are wrapped in quite a few layers. Is there a better way to report errors inside a build utility? ice-9/eval.scm:387:11: In procedure eval: ice-9/eval.scm:387:11: Throw to key `srfi-34' with args `(#<condition &mess= age [message: "substit ute: install.sh: pattern failed to match: -xf"] 11a= a480>)'. builder for `/gnu/store/wdyzzh7rkg47hfp434w72ly9nay1yva1-mes-boot-0.22.drv'= failed with exit code 1 Regards, Jakub K=C4=85dzio=C5=82ka --4yl43hkujyl5piqa Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE5Xa/ss9usT31cTO54xWnWEYTFWQFAl77wZ8ACgkQ4xWnWEYT FWRIhxAAhBBY1dtp5/7VfFJ2cKcDK8X1xTJucuTGpM5AflHMVarCBdba/7pofenb /cpRR52LfhwQU2HMornopoRIeBnm7DR81vSE4A/V4XO7Z6+BhG2AXAU8biQ6Mzqu 1SH0ykadjyxZSOC+JZ4XfqSc/SDb79aIUh5O4Mw22xCir+2ed1zJcHrhjm4jOhMW e3ZPoL1+WDhe26LYdhcjUXciBTf0TEhkb4ZCmHgdbe9cVaLq97gA25MsJRiV8Q1d IoSgf7Fg5FUktl4xCZdMSQ/N3f5mkpS94P6X0EGZQRu3V2KaQH4Yut661W8X00Yr F2OtlTu4RHivHk/sdkGWETb9W/EqAqquoSg+KENRzkbbASn2upS79/fG74kPooIq ULNcSW0qCqbSUuELSBiRvP/G+AvSlrQ6w0Tfsur8KF2Rkh4f8m4hzCHkccUSP0FZ DRsF1sjILlBDjjtb/dgm4uuWr7NOBUddp9s0DvCKpSdHVq9ms7Q9QNyRyZ7sEgzr eqFkmF2Mv4IZWISy5K1XITWmL+ypctm8chceoQmwrhSU2YQ+2peiLykB7GxcymrB UkkeULOJ2OZDE5Nl0Mgrz5WOxzN7AuH5C9FAE8JnNJ32mgZsgtPJ1GN4YpL4tmBv KxwHdl55Rbc/PV3+oiVFnsZ6UOt/bL4wF9DqmPV25KXog63pNQ0= =BRqx -----END PGP SIGNATURE----- --4yl43hkujyl5piqa--
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 30 Jun 2020 22:11:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 18:11:38 2020
Received: from localhost ([127.0.0.1]:51909 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1jqOTa-0008CU-4M
for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:11:38 -0400
Received: from pat.zlotemysli.pl ([37.59.186.212]:46556)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <kuba@HIDDEN>) id 1jqOTY-0008CL-7H
for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:11:37 -0400
Received: (qmail 8847 invoked by uid 1009); 1 Jul 2020 00:11:35 +0200
Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by
pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>,
uid 1002) with qmail-scanner-2.08st
(clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st.
Clear:RC:1(188.123.215.55):.
Processed in 0.01319 secs); 30 Jun 2020 22:11:35 -0000
Received: from unknown (HELO localhost.localdomain)
(kuba@HIDDEN@188.123.215.55)
by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 00:11:35 +0200
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH 3/?] gnu: commencement: Build fix for %bootstrap-mes-rewired.
Date: Wed, 1 Jul 2020 00:11:34 +0200
Message-Id: <20200630221134.16350-1-kuba@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
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 (-)
Not every file has to refer to all dependencies.
* gnu/packages/commencement.scm (%bootstrap-mes-rewired)[builder]: Allow
lack of matches in substitute*.
---
gnu/packages/commencement.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index ef250e037b..1c7cf3d810 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@HIDDEN>
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@HIDDEN>
;;; Copyright © 2020 Timothy Sample <samplet@HIDDEN>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -283,7 +284,7 @@ pure Scheme to Tar and decompression in one easy step.")
(mescc (string-append bin "/mescc"))
(module (string-append out "/share/mes/module")))
(define (rewire file)
- (substitute* file
+ (substitute* file #:require-matches? #f
((mes) out)
(("/gnu/store[^ ]+mes-minimal-[^/)}\"]*") out)
(("/gnu/store[^ ]+guile-[^/]*/bin/guile") guile)
--
2.26.2
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at 42146) by debbugs.gnu.org; 30 Jun 2020 22:11:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 18:11:30 2020
Received: from localhost ([127.0.0.1]:51906 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1jqOTR-0008C9-Qx
for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:11:30 -0400
Received: from pat.zlotemysli.pl ([37.59.186.212]:46372)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <kuba@HIDDEN>) id 1jqOTP-0008C0-DK
for 42146 <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:11:28 -0400
Received: (qmail 8685 invoked by uid 1009); 1 Jul 2020 00:11:25 +0200
Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by
pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>,
uid 1002) with qmail-scanner-2.08st
(clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st.
Clear:RC:1(188.123.215.55):.
Processed in 0.011385 secs); 30 Jun 2020 22:11:25 -0000
Received: from unknown (HELO localhost.localdomain)
(kuba@HIDDEN@188.123.215.55)
by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 00:11:25 +0200
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>
To: 42146 <at> debbugs.gnu.org
Subject: [PATCH 2/?] build: bootstrap-configure: Allow lack of matches in
substitute.
Date: Wed, 1 Jul 2020 00:11:21 +0200
Message-Id: <20200630221121.16086-1-kuba@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 42146
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 (-)
Matches are not required here, as not every file will use every
variable.
* guix/build/gnu-bootstrap.scm (bootstrap-configure): Pass
#:require-matches? #f to substitute*.
---
guix/build/gnu-bootstrap.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/guix/build/gnu-bootstrap.scm b/guix/build/gnu-bootstrap.scm
index 1cb9dc5512..6ee520e301 100644
--- a/guix/build/gnu-bootstrap.scm
+++ b/guix/build/gnu-bootstrap.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Timothy Sample <samplet@HIDDEN>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -49,7 +50,7 @@ and object directories."
(format #t "Configuring ~a~%" template)
(let ((target (string-drop-right template 3)))
(copy-file template target)
- (substitute* target
+ (substitute* target #:require-matches? #f
(("@VERSION@") version))))
(find-files modules
(lambda (fn st)
@@ -58,7 +59,7 @@ and object directories."
(format #t "Configuring ~a~%" template)
(let ((target (string-drop-right template 3)))
(copy-file template target)
- (substitute* target
+ (substitute* target #:require-matches? #f
(("@GUILE@") guile)
(("@MODDIR@") moddir)
(("@GODIR@") godir))
--
2.26.2
guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
Received: (at submit) by debbugs.gnu.org; 30 Jun 2020 22:09:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 30 18:09:35 2020
Received: from localhost ([127.0.0.1]:51889 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1jqORa-00088Q-Ky
for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:09:34 -0400
Received: from lists.gnu.org ([209.51.188.17]:57628)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <kuba@HIDDEN>) id 1jqORY-00088H-4o
for submit <at> debbugs.gnu.org; Tue, 30 Jun 2020 18:09:33 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:58504)
by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <kuba@HIDDEN>)
id 1jqORY-00040g-00
for guix-patches@HIDDEN; Tue, 30 Jun 2020 18:09:32 -0400
Received: from pat.zlotemysli.pl ([37.59.186.212]:34672)
by eggs.gnu.org with esmtp (Exim 4.90_1)
(envelope-from <kuba@HIDDEN>) id 1jqORV-0000k5-QK
for guix-patches@HIDDEN; Tue, 30 Jun 2020 18:09:31 -0400
Received: (qmail 6193 invoked by uid 1009); 1 Jul 2020 00:09:21 +0200
Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by
pat.zlotemysli.pl (envelope-from <kuba@HIDDEN>,
uid 1002) with qmail-scanner-2.08st
(clamdscan: 0.98.6/25858. spamassassin: 3.4.0. perlscan: 2.08st.
Clear:RC:1(188.123.215.55):.
Processed in 0.018843 secs); 30 Jun 2020 22:09:21 -0000
Received: from unknown (HELO localhost.localdomain)
(kuba@HIDDEN@188.123.215.55)
by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 1 Jul 2020 00:09:20 +0200
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH core-updates 1/?] build: substitute: Don't fail silently.
Date: Wed, 1 Jul 2020 00:09:13 +0200
Message-Id: <20200630220913.14665-1-kuba@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Received-SPF: none client-ip=37.59.186.212; envelope-from=kuba@HIDDEN;
helo=pat.zlotemysli.pl
X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/30 18:09:21
X-ACL-Warn: Detected OS = Linux 3.11 and newer
X-Spam_score_int: -18
X-Spam_score: -1.9
X-Spam_bar: -
X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001,
SPF_NONE=0.001 autolearn=_AUTOLEARN
X-Spam_action: no action
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: submit
Cc: mbakke@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: -3.3 (---)
* guix/build/utils.scm (substitute, substitute*)[require-matches?]: New
argument.
---
Of course, this will require some changes in the build recipes. However,
many of the bugs I have seen before could've been prevented by this
behavior, so I believe it is worth it.
I am currently running 'guix build hello' with these changes; I will
send any follow-up fixes needed to this bug#.
guix/build/utils.scm | 47 +++++++++++++++++++++++++++++++++-----------
1 file changed, 35 insertions(+), 12 deletions(-)
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index dc55c6745d..1bfb774c60 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2018 Arun Isaac <arunisaac@HIDDEN>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@HIDDEN>
;;; Copyright © 2020 Efraim Flashner <efraim@HIDDEN>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@HIDDEN>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -747,29 +748,42 @@ PROC's result is returned."
(lambda (key . args)
(false-if-exception (delete-file template))))))
-(define (substitute file pattern+procs)
+(define* (substitute file pattern+procs #:key (require-matches? #t))
"PATTERN+PROCS is a list of regexp/two-argument-procedure pairs. For each
line of FILE, and for each PATTERN that it matches, call the corresponding
PROC as (PROC LINE MATCHES); PROC must return the line that will be written as
a substitution of the original line. Be careful about using '$' to match the
-end of a line; by itself it won't match the terminating newline of a line."
- (let ((rx+proc (map (match-lambda
- (((? regexp? pattern) . proc)
- (cons pattern proc))
- ((pattern . proc)
- (cons (make-regexp pattern regexp/extended)
- proc)))
- pattern+procs)))
+end of a line; by itself it won't match the terminating newline of a line.
+
+By default, SUBSTITUTE will raise a &message condition if one of the patterns
+fails to match. If a lack of matches is acceptable, pass #:require-matches? #f
+to disable this check."
+ (let ((rx+proc (map (match-lambda
+ (((? regexp? pattern) . proc)
+ (cons* #f "<unknown>" pattern proc))
+ ((pattern . proc)
+ (cons* #f pattern (make-regexp pattern regexp/extended)
+ proc)))
+ pattern+procs)))
(with-atomic-file-replacement file
(lambda (in out)
(let loop ((line (read-line in 'concat)))
(if (eof-object? line)
- #t
+ (when require-matches?
+ (for-each
+ (match-lambda
+ ((#f pat . _)
+ (raise (condition
+ (&message
+ (message (format #f "substitute: ~a: pattern failed to match: ~a" file pat))))))
+ ((#t . _) #t))
+ rx+proc))
(let ((line (fold (lambda (r+p line)
(match r+p
- ((regexp . proc)
+ ((_ _ regexp . proc)
(match (list-matches regexp line)
((and m+ (_ _ ...))
+ (set-car! r+p #t)
(proc line m+))
(_ line)))))
line
@@ -814,9 +828,17 @@ match substring.
Alternatively, FILE may be a list of file names, in which case they are
all subject to the substitutions.
+By default, SUBSTITUTE* will raise a &message condition if one of the patterns
+fails to match on one of the files. If a lack of matches is acceptable,
+add #:require-matches? #f after FILE to disable this check.
+
Be careful about using '$' to match the end of a line; by itself it won't
match the terminating newline of a line."
((substitute* file ((regexp match-var ...) body ...) ...)
+ (substitute* file #:require-matches? #t
+ ((regexp match-var ...) body ...) ...))
+ ((substitute* file #:require-matches? require-matches?
+ ((regexp match-var ...) body ...) ...)
(let ()
(define (substitute-one-file file-name)
(substitute
@@ -840,7 +862,8 @@ match the terminating newline of a line."
(begin body ...)
(substring l o (match:start m))
r))))))))
- ...)))
+ ...)
+ #:require-matches? require-matches?))
(match file
((files (... ...))
--
2.26.2
Jakub Kądziołka <kuba@HIDDEN>:guix-patches@HIDDEN.
Full text available.guix-patches@HIDDEN:bug#42146; Package guix-patches.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.