[bug#78689] Merging of "nss-updates"
Commit Message
Am Tue, Aug 12, 2025 at 02:46:30PM +0300 schrieb Efraim Flashner:
> I found nss@3.101.4 failed in the 'check phase for i686-linux. It looks
> like there's an extra round of parenthesis around the substitute* for
> the (unless #$(target-64bit?)
> ((substitute* ...
> I wasn't able to quickly find a way to remove the extra parenthesis
> without also causing a rebuild on x86_64.
Oh dear, that will teach us a lesson!
The attached commit solves the problem by adding a layer of wrapping.
But it is quite ugly. Since we are still early in the rebuild phase,
we could also correct the package and rebuild everything.
What do you think?
Andreas
From 10002034a66abf2a67c72f8157c052937140230a Mon Sep 17 00:00:00 2001
Message-ID: <10002034a66abf2a67c72f8157c052937140230a.1755005604.git.andreas@enge.fr>
From: Andreas Enge <andreas@enge.fr>
Date: Tue, 12 Aug 2025 15:32:12 +0200
Subject: [PATCH] gnu: nss: Fix build on 32 bit.
Change-Id: I81279a601b9d16140fd58af4613bc8aa9573d099
---
gnu/packages/nss.scm | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
base-commit: c20d32dc5d3f69e7bcb49951043cf7786700b72f
Comments
Am Tue, Aug 12, 2025 at 03:37:44PM +0200 schrieb Andreas Enge:
> we could also correct the package and rebuild everything.
I have opted for this solution and fully reverted the last commit;
you could have a look at the IRC logs for more details.
In short: The late ungexping makes expressions such as
(unless #t ...)
in 64 bits or
(unless #f ...)
in 32 bits appear verbatim in the builder script.
On the other hand, ungexp-splicing the whole expression (here the
(if ...)) forces an evaluation when creating the derivation, so that only
the result appears in the builder script - in 64 bits there is nothing,
since the "then" branch evaluates to the empty list; in 32 bits there
are the expressions from the "else" branch that above I have hidden behind
the ... .
So the #$@(if, or otherwise said the early ungexping, is a feature and
had better be kept.
Andreas
Now the revision has been handled by the data service, but not a single
package of the new branch has been built at least since this morning.
All services seem to work, but qa-frontpage does not submit build jobs.
Something happens on CI, but I see only a few i686 packages appearing.
I am at a loss as at what to do now and can only wait and hope that
things magically start working again...
Andreas
Am Wed, Aug 13, 2025 at 06:05:47PM +0200 schrieb Andreas Enge:
> I am at a loss as at what to do now and can only wait and hope that
> things magically start working again...
That seems to have worked :)
https://bordeaux.guix.gnu.org/build/21daf300-2173-48d0-8ce1-c1e57f28ef1a
https://bordeaux.guix.gnu.org/build/8b5fbf51-eb22-40e4-880c-54f97dd7843b
Andreas
Hello all,
I have merged just now. Time for a mini-celebration!
Andreas
Hi,
Andreas Enge <andreas@enge.fr> writes:
> Hello all,
>
> I have merged just now. Time for a mini-celebration!
Yay! Thank you for Shepherding it through the finishing line.
@@ -219,13 +219,28 @@ (define-public nss
(substitute* "nss/tests/dbtests/dbtests.sh"
((" -lt 5") " -lt 50"))
- (unless #$(target-64bit?)
+ ;; Workaround for an error in a previous commit that we
+ ;; prefer to not revert.
+ #$@(if (target-64bit?)
+ ;; The previous faulty code, needs to be copied so as
+ ;; not to change the derivation in 64 bit.
+ `((unless ,(target-64bit?)
;; The script fails to determine the source
;; directory when running under 'datefudge' (see
;; <https://issues.guix.gnu.org/72239>). Help it.
((substitute* "nss/tests/gtests/gtests.sh"
+ (("SOURCE_DIR=.*")
+ (string-append "SOURCE_DIR=" (getcwd) "/nss\n"))))))
+ ;; The correct code for 32 bit. On the next run,
+ ;; keep only this "else" branch.
+ `((unless ,(target-64bit?)
+ ;; The script fails to determine the source
+ ;; directory when running under 'datefudge' (see
+ ;; <https://issues.guix.gnu.org/72239>). Help it.
+ (substitute* "nss/tests/gtests/gtests.sh"
(("SOURCE_DIR=.*")
(string-append "SOURCE_DIR=" (getcwd) "/nss\n")))))
+ )
(let ((release-date (getenv "GUIX_NSS_RELEASE_DATE")))
(when (string=? "" release-date)