summaryrefslogtreecommitdiff
path: root/gnu/ci.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2026-03-16 17:30:38 +0100
committerLudovic Courtès <ludo@gnu.org>2026-03-25 23:51:25 +0100
commit426101e70f2744b59b297e044edd2e365cf4d725 (patch)
treea9bdc6c2da6551e7bfd8d4378c78791ec41c49ba /gnu/ci.scm
parentd940f695e4e41e59f346698d359e464e831ed431 (diff)
ci: Extend the ‘%core-packages’ set.
The goal is to extend what the 'core subset builds but also (more importantly) what gets cross-compiled for the 'all subset. * gnu/ci.scm (%core-packages-for-mingw): New variable. (%core-packages): Use it. (%linux-packages, %hurd-packages): New variables. (core-packages): New procedure. (packages-to-cross-build, cuirass-jobs): Use it instead of ‘%core-packages’. Change-Id: I2ee656ea589ffbf7dabcb6e84b3bb5a0b13556af Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/ci.scm')
-rw-r--r--gnu/ci.scm56
1 files changed, 41 insertions, 15 deletions
diff --git a/gnu/ci.scm b/gnu/ci.scm
index 80f226a5fb4..093beac4cf6 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -37,7 +37,7 @@
#:use-module (guix ui)
#:use-module ((guix licenses)
#:select (gpl3+ license? license-name))
- #:use-module ((guix utils) #:select (%current-system))
+ #:use-module (guix utils)
#:use-module ((guix scripts system) #:select (read-operating-system))
#:use-module ((guix scripts pack)
#:select (self-contained-tarball))
@@ -48,9 +48,13 @@
#:use-module (gnu packages)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gdb)
+ #:use-module (gnu packages man)
#:use-module (gnu packages base)
#:use-module (gnu packages gawk)
+ #:use-module (gnu packages hurd)
+ #:use-module (gnu packages admin)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages gettext)
#:use-module (gnu packages compression)
#:use-module (gnu packages multiprecision)
@@ -136,19 +140,43 @@ SYSTEM."
#:cross? #t
#:target target)))
+(define %core-packages-for-mingw
+ ;; Core packages that can be built for any target, including MinGW. This
+ ;; excludes the bootstrap tarballs, which do not support MinGW.
+ (list gcc-10 gcc-11 gcc-12 glibc binutils gdb-minimal
+ gmp mpfr mpc coreutils findutils diffutils patch sed grep
+ gawk gnu-gettext hello guile-2.2 guile-3.0 zlib gzip bzip2 xz zstd))
+
(define %core-packages
+ ;; General set of core packages.
;; Note: Don't put the '-final' package variants because (1) that's
;; implicit, and (2) they cannot be cross-built (due to the explicit input
;; chain.)
- (list gcc-10 gcc-11 gcc-12 glibc binutils gdb-minimal
- gmp mpfr mpc coreutils findutils diffutils patch sed grep
- gawk gnu-gettext hello guile-2.2 guile-3.0 zlib gzip xz guix
- %bootstrap-binaries-tarball
- %binutils-bootstrap-tarball
- (%glibc-bootstrap-tarball)
- %gcc-bootstrap-tarball
- %guile-bootstrap-tarball
- %bootstrap-tarballs))
+ (append %core-packages-for-mingw
+ (list util-linux procps psmisc which e2fsprogs man-db inetutils
+ guix shepherd
+ %bootstrap-binaries-tarball
+ %binutils-bootstrap-tarball
+ (%glibc-bootstrap-tarball)
+ %gcc-bootstrap-tarball
+ %guile-bootstrap-tarball
+ %bootstrap-tarballs)))
+
+(define %linux-packages
+ ;; Extra Linux-specific packages.
+ (list linux-libre))
+
+(define %hurd-packages
+ ;; Extra Hurd-specific packages
+ (list gnumach mig hurd-minimal hurd netdde rumpkernel))
+
+(define (core-packages system)
+ "Return the 'core' package set suitable for SYSTEM, which might be a system
+type or a GNU triplet."
+ (cond ((target-linux? system) (append %core-packages %linux-packages))
+ ((target-hurd? system) (append %core-packages %hurd-packages))
+ ((target-mingw? system) %core-packages-for-mingw)
+ (else '())))
(define (commencement-packages system)
"Return the list of bootstrap packages from the commencement module for
@@ -165,10 +193,7 @@ SYSTEM."
(define (packages-to-cross-build target)
"Return the list of packages to cross-build for TARGET."
- ;; Don't cross-build the bootstrap tarballs for MinGW.
- (if (string-contains target "mingw")
- (drop-right %core-packages 6)
- %core-packages))
+ (core-packages target))
(define %bare-platform-triplets
;; Cross-compilation triplets of platforms that lack a proper user-space and
@@ -546,7 +571,8 @@ names, for each one of SYSTEMS."
(map (lambda (package)
(package-job store (job-name package)
package system))
- (append (commencement-packages system) %core-packages))
+ (append (commencement-packages system)
+ (core-packages system)))
(cross-jobs store system)))
('guix
;; Build Guix modules only.