guix_mirror_bot pushed a commit to branch guile-team
in repository guix.
commit 3afcce3ee5791904b888c4f9e9593a7ef6fdce16
Author: Nicolas Graves <[email protected]>
AuthorDate: Sun Oct 19 22:33:32 2025 +0200
gnu: guix: Drop input labels.
* gnu/packages/bootstrap.scm
(bootstrap-executable*): Add a file-name argument to the former
bootstrap-executable and rename from it.
(bootstrap-executable): New procedure, matching the API of the
previous procedure, and adding the file-name argument when absent and
needed.
* gnu/packages/package-management.scm (guix)[inputs]: Drop input labels.
[arguments]<#:phases>: In phase 'copy-bootstrap-guile, adapt input
selection and the intern procedure for this purpose.
(guix-daemon)[inputs]: Adapt input removal.
* tests/packages.scm (package-source-derivation, snippet): Adapt
bootstrap-guile-origin call.
Change-Id: I9ca2f0170c386575fccf96e05f9979219364255b
Signed-off-by: Ludovic Courtès <[email protected]>
Merges: #5154
---
gnu/packages/bootstrap.scm | 15 +++--
gnu/packages/package-management.scm | 111 ++++++++++++++++++------------------
2 files changed, 68 insertions(+), 58 deletions(-)
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 8488fee856..182b5b85ef 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -46,7 +46,8 @@
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
- #:export (bootstrap-origin
+ #:export (bootstrap-guile-url-path
+ bootstrap-origin
package-with-bootstrap-guile
glibc-dynamic-linker
@@ -181,8 +182,8 @@
(_ (string-append system "/" program
"?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))))
-(define bootstrap-executable
- (mlambda (program system)
+(define bootstrap-executable*
+ (mlambda (program system file-name)
"Return an origin for PROGRAM, a statically-linked bootstrap executable
built for SYSTEM."
(let ((system (if (string=? system "x86_64-linux")
@@ -203,9 +204,15 @@ for system '~a'")
(uri (map (cute string-append <>
(bootstrap-executable-file-name system program))
%bootstrap-executable-base-urls))
- (file-name program)
+ ;; XXX: In the long term, migrate all boostrap executables to
+ ;; (string-append "bootstrap-" program), and drop the additional
+ ;; file-name argument.
+ (file-name file-name)
(hash (content-hash bv sha256))))))))
+(define* (bootstrap-executable program system #:optional file-name)
+ (bootstrap-executable* program system (or file-name program)))
+
;;;
;;; Helper procedures.
diff --git a/gnu/packages/package-management.scm
b/gnu/packages/package-management.scm
index ae3151177b..6e65916da0 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -340,9 +340,9 @@ $(prefix)/etc/openrc\n")))
(lambda* (#:key system target inputs #:allow-other-keys)
;; Copy the bootstrap guile tarball in the store
;; used by the test suite.
- (define (intern file recursive?)
- ;; Note: don't use 'guix download' here because we
- ;; need to set the 'recursive?' argument.
+ (define* (intern file #:optional recursive? name)
+ ;; Note: don't use 'guix download' here because we need to
+ ;; set the 'recursive?' argument to keep permissions bits.
(define base
(strip-store-file-name file))
@@ -350,7 +350,7 @@ $(prefix)/etc/openrc\n")))
`(begin
(use-modules (guix))
(with-store store
- (let* ((item (add-to-store store ,base
+ (let* ((item (add-to-store store ,(or name base)
,recursive?
"sha256" ,file))
(root (string-append "/tmp/gc-root-"
@@ -364,18 +364,25 @@ $(prefix)/etc/openrc\n")))
(object->string code)))
(unless target
- (intern (assoc-ref inputs "boot-guile") #f)
-
- ;; On x86_64 some tests need the i686 Guile.
- (when (and (not target)
- (string=? system "x86_64-linux"))
- (intern (assoc-ref inputs "boot-guile/i686") #f))
+ (if (string=? system "x86_64-linux")
+ ;; On x86_64 a test needs the i686 Guile. Unfortunately,
+ ;; their tarballs can have the same input label.
+ (for-each
+ (match-lambda
+ ((label . file)
+ (and (string-prefix? "guile-" label)
+ (string-suffix? ".tar.xz" label)
+ (intern file))))
+ inputs)
+ (intern (assoc-ref inputs #$(basename
+ (bootstrap-guile-url-path
+ (%current-system))))))
;; Copy the bootstrap executables.
- (for-each (lambda (input)
- (intern (assoc-ref inputs input) #t))
- '("bootstrap/bash" "bootstrap/mkdir"
- "bootstrap/tar" "bootstrap/xz")))))
+ (for-each (lambda (bin)
+ (let ((input (string-append "bootstrap-" bin)))
+ (intern (assoc-ref inputs input) #t bin)))
+ (list "bash" "mkdir" "tar" "xz")))))
(add-after 'unpack 'disable-failing-tests
;; XXX FIXME: These tests fail within the build container.
(lambda _
@@ -490,45 +497,39 @@ $(prefix)/etc/openrc\n")))
help2man
po4a-minimal)))
(inputs
- `(("bash-minimal" ,bash-minimal)
- ("bzip2" ,bzip2)
- ("gzip" ,gzip)
- ("sqlite" ,sqlite)
- ("libgcrypt" ,libgcrypt)
- ("zlib" ,zlib)
-
- ("guile" ,guile-3.0-latest)
-
- ;; Some of the tests use "unshare" when it is available.
- ("util-linux" ,util-linux)
- ,@(if (target-linux?)
- `(("slirp4netns" ,slirp4netns))
- '())
-
- ;; Many tests rely on the 'guile-bootstrap' package, which is why we
- ;; have it here.
- ("boot-guile" ,(bootstrap-guile-origin (%current-system)))
- ,@(if (and (not (%current-target-system))
- (string=? (%current-system) "x86_64-linux"))
- `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")))
- '())
- ,@(if (%current-target-system)
- `(("xz" ,xz))
- '())
-
- ;; Tests also rely on these bootstrap executables.
- ("bootstrap/bash" ,(bootstrap-executable "bash" (%current-system)))
- ("bootstrap/mkdir" ,(bootstrap-executable "mkdir" (%current-system)))
- ("bootstrap/tar" ,(bootstrap-executable "tar" (%current-system)))
- ("bootstrap/xz" ,(bootstrap-executable "xz" (%current-system)))
-
- ("disarchive" ,disarchive) ;for 'guix perform-download'
- ("guile-bzip2" ,guile-bzip2) ;for Disarchive
- ("guile-lzma" ,guile-lzma) ;for Disarchive
-
- ("git-minimal" ,git-minimal) ;for 'guix perform-download'
-
- ("glibc-utf8-locales" ,(libc-utf8-locales-for-target))))
+ (append (list bash-minimal
+ bzip2
+ gzip
+ sqlite
+ libgcrypt
+ zlib
+ guile-3.0-latest
+ ;; Some of the tests use "unshare" when it is available.
+ util-linux
+ ;; Tests also rely on these bootstrap executables.
+ (bootstrap-executable "bash" (%current-system)
"bootstrap-bash")
+ (bootstrap-executable "mkdir" (%current-system)
"bootstrap-mkdir")
+ (bootstrap-executable "tar" (%current-system)
"bootstrap-tar")
+ (bootstrap-executable "xz" (%current-system)
"bootstrap-xz")
+ disarchive ;for 'guix perform-download'
+ guile-bzip2 ;for Disarchive
+ guile-lzma ;for Disarchive
+ git-minimal ;for 'guix perform-download'
+ (libc-utf8-locales-for-target))
+ (if (target-linux?)
+ (list slirp4netns)
+ '())
+ ;; Many tests rely on the 'guile-bootstrap' package.
+ (cons*
+ (bootstrap-guile-origin (%current-system))
+ ;; On x86_64 a test needs the i686 Guile.
+ (if (and (not (%current-target-system))
+ (string=? (%current-system) "x86_64-linux"))
+ (list (bootstrap-guile-origin "i686-linux"))
+ '()))
+ (if (%current-target-system)
+ (list xz)
+ '())))
(propagated-inputs
(append (if (target-hurd?)
'()
@@ -592,7 +593,9 @@ the Nix package manager.")
(delete "po4a" "graphviz" "font-ghostscript" "help2man")))
(inputs
(modify-inputs (package-inputs guix)
- (delete "boot-guile" "boot-guile/i686" "util-linux")
+ (delete (basename (bootstrap-guile-url-path (%current-system)))
+ (basename (bootstrap-guile-url-path "i686-linux"))
+ "util-linux")
(prepend guile-gnutls guile-git guile-json-4 guile-gcrypt)))
(propagated-inputs '())