Package: guix;
Reported by: Maxime Devos <maximedevos <at> telenet.be>
Date: Sat, 3 Apr 2021 16:10:02 UTC
Severity: important
Tags: patch, security
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Message #60 received at 47584 <at> debbugs.gnu.org (full text, mbox):
From: Maxime Devos <maximedevos <at> telenet.be> To: 47584 <at> debbugs.gnu.org Cc: Maxime Devos <maximedevos <at> telenet.be> Subject: [PATCH 2/3] WIP gnu: Change the Guile used for activation to one that has 'openat'. Date: Fri, 28 Oct 2022 18:04:08 +0200
TODO: when doing "make check-system TESTS=ldap", I get a build failure of openssl <at> 1.1.1l, I suspect it's a situation like <https://issues.guix.gnu.org/56137> again, though I haven't investigated yet. 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(-) 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 <at> fastmail.com> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe <at> gmail.com> ;;; Copyright © 2021 Pierre Langlois <pierre.langlois <at> gmx.com> +;;; Copyright © 2022 Maxime Devos <maximedevos <at> 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 <at> protonmail.com> ;;; Copyright © 2020 Christine Lemmer-Webber <cwebber <at> dustycloud.org> ;;; Copyright © 2020, 2021 Brice Waegeneire <brice <at> waegenei.re> +;;; Copyright © 2022 Maxime Devos <maximedevos <at> 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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.