TODO: when doing "make check-system TESTS=ldap", I get a build failure
of openssl@1.1.1l, I suspect it's a situation like
Test Summary Report
-------------------
../test/recipes/80-test_ssl_new.t (Wstat: 256 Tests: 29 Failed: 1)
Failed test: 12
Non-zero exit status: 1
Files=158, Tests=2636, 157 wallclock secs ( 2.29 usr 0.18 sys + 104.74 cusr 28.04 csys = 135.25 CPU)
Result: FAIL
make[1]: *** [Makefile:208: _tests] Error 1
make[1]: Leaving directory '/tmp/guix-build-openssl-1.1.1l.drv-0/openssl-1.1.1l'
make: *** [Makefile:205: tests] Error 2
Test suite failed, dumping logs.
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("test") exit-status: 2 term-signal: #f stop-signal: #f>
phase `check' failed after 157.1 seconds
command "make" "test" failed with status 2
note: keeping build directory `/tmp/guix-build-openssl-1.1.1l.drv-1'
builder for `/gnu/store/jhijsrxqh586l8ck61ppkhydkb158hj0-openssl-1.1.1l.drv' failed with exit code 1
build of /gnu/store/jhijsrxqh586l8ck61ppkhydkb158hj0-openssl-1.1.1l.drv failed
[...]
This is required by the next patch, in which 'mkdir-p/perms'
uses 'openat'.
* gnu/packages/guile.scm (guile-for-activation): New variable.
* gnu/services.scm (activation-script)[actions]: Set #:guile to
guile-for-activation.
* gnu/packages/make-bootstrap.scm (%guile-static-stripped/initrd):
New variable.
* gnu/system/linux-initrd.scm (expression->initrd): Use
%guile-static-stripped/initrd instead of %guile-static-stripped.
---
gnu/packages/guile.scm | 5 +++++
gnu/packages/make-bootstrap.scm | 15 ++++++++++++---
gnu/services.scm | 5 ++++-
gnu/system/linux-initrd.scm | 4 ++--
4 files changed, 23 insertions(+), 6 deletions(-)
Toggle diff (116 lines)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 936fc8649f..1d1b0bd77b 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -460,6 +460,11 @@ (define-public guile-next
gperf)))
(synopsis "Development version of GNU Guile"))))
+;; The important thing here is that this Guile has 'openat' and friends
+;; for (gnu build activation), which at time of writing isn't available
+;; in any release yet.
+(define-public guile-for-activation guile-next)
+
(define* (make-guile-readline guile #:optional (name "guile-readline"))
(package
(name name)
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 4ea97368a9..8852caa406 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,7 +58,8 @@ (define-module (gnu packages make-bootstrap)
%mes-bootstrap-tarball
%bootstrap-tarballs
- %guile-static-stripped))
+ %guile-static-stripped
+ %guile-static-stripped/initrd))
;;; Commentary:
;;;
@@ -794,14 +796,21 @@ (define* (make-guile-static-stripped static-guile)
(synopsis "Minimal statically-linked and relocatable Guile")))
(define %guile-static-stripped
- ;; A stripped static Guile 3.0 binary, for use in initrds
- ;; and during bootstrap.
+ ;; A stripped static Guile 3.0 binary, for use during bootstrap.
(make-guile-static-stripped
(make-guile-static guile-3.0
'("guile-2.2-default-utf8.patch"
"guile-3.0-linux-syscalls.patch"
"guile-3.0-relocatable.patch"))))
+;; Like %guile-static-stripped, but for use in initrds.
+(define %guile-static-stripped/initrd
+ (make-guile-static-stripped
+ (make-guile-static guile-for-activation
+ '("guile-2.2-default-utf8.patch"
+ "guile-3.0-linux-syscalls.patch"
+ "guile-3.0-relocatable.patch"))))
+
(define (tarball-package pkg)
"Return a package containing a tarball of PKG."
(package
diff --git a/gnu/services.scm b/gnu/services.scm
index 2abef557d4..e051f9e821 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2021 raid5atemyhomework <raid5atemyhomework@protonmail.com>
;;; Copyright © 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -41,6 +42,7 @@ (define-module (gnu services)
#:use-module (guix utils)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
+ #:use-module ((gnu packages guile) #:select (guile-for-activation))
#:use-module (gnu packages hurd)
#:use-module (gnu system setuid)
#:use-module (srfi srfi-1)
@@ -610,7 +612,8 @@ (define* (activation-service->script service)
(define (activation-script gexps)
"Return the system's activation script, which evaluates GEXPS."
(define actions
- (map (cut program-file "activate-service.scm" <>) gexps))
+ (map (cut program-file "activate-service.scm" <>
+ #:guile guile-for-activation) gexps))
(program-file "activate.scm"
(with-imported-modules (source-module-closure
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 4c4c78e444..b65d830a17 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -36,7 +36,7 @@ (define-module (gnu system linux-initrd)
#:use-module ((gnu packages xorg)
#:select (console-setup xkeyboard-config))
#:use-module ((gnu packages make-bootstrap)
- #:select (%guile-static-stripped))
+ #:select (%guile-static-stripped/initrd))
#:use-module (gnu system file-systems)
#:use-module (gnu system mapped-devices)
#:use-module (gnu system keyboard)
@@ -62,7 +62,7 @@ (define-module (gnu system linux-initrd)
(define* (expression->initrd exp
#:key
- (guile %guile-static-stripped)
+ (guile %guile-static-stripped/initrd)
(gzip gzip)
(name "guile-initrd")
(system (%current-system)))
--
2.38.0