diff options
author | Efraim Flashner <[email protected]> | 2025-02-06 16:08:00 +0200 |
---|---|---|
committer | Efraim Flashner <[email protected]> | 2025-03-02 16:48:10 +0200 |
commit | eeebc87f9fd7ce430179f4cec787d79f191ff3df (patch) | |
tree | cb3239a8a82f8bb3e5310a166e91a47219f51a0f /etc/manifests/release.scm | |
parent | 38de9218d65f054f73b588c2b901afe858d46d15 (diff) |
etc: manifests/release: Only check for packages needed in the installer.
* etc/manifests/release.scm (%system-packages): Adjust the packages
which are depended upon by the installer. Add a set of extra packages
which we expect to have available.
(%base-packages, %base-packages/armhf, %base-packages/hurd,
%packages-to-cross-build, %packages-to-cross-build-for-mingw,
%cross-bootstrap-targets, %base-manifest, %cross-manifest,
%cross-bootstrap-manifest): Remove variables.
Change-Id: I5806fff6bc38d14859f6d7163719841620e28d09
Diffstat (limited to 'etc/manifests/release.scm')
-rw-r--r-- | etc/manifests/release.scm | 159 |
1 files changed, 35 insertions, 124 deletions
diff --git a/etc/manifests/release.scm b/etc/manifests/release.scm index 93ac7dcec8..773f784002 100644 --- a/etc/manifests/release.scm +++ b/etc/manifests/release.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2020-2022, 2024 Ludovic Courtès <[email protected]> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email protected]> ;;; Copyright © 2023 Andreas Enge <[email protected]> +;;; Copyright © 2025 Efraim Flashner <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,18 +19,13 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. -;;; This file returns a manifest containing release-critical bit, for all the -;;; supported architectures and cross-compilation targets. +;;; This file returns a manifest containing packages which are needed by the +;;; installer. -(use-modules (gnu packages) - (guix packages) - (guix profiles) - ((guix platform) #:select (targets)) +(use-modules (guix packages) ((gnu services xorg) #:select (%default-xorg-modules)) (guix utils) - (guix gexp) - (srfi srfi-1) - (srfi srfi-26)) + (srfi srfi-1)) (define* (package->manifest-entry* package system #:key target) @@ -45,131 +41,46 @@ TARGET." (%current-target-system target)) package)))) -(define %base-packages - ;; Packages that must be substitutable on all the platforms Guix supports. - (map specification->package - '("bootstrap-tarballs" "gcc-toolchain" "nss-certs" - "openssh" "emacs" "vim" "python" "guile" "guix"))) - -(define %base-packages/armhf - ;; The guix package doesn't build natively on armhf due to Guile memory - ;; issues compiling the package modules - (remove (lambda (package) - (string=? (package-name package) "guix")) - %base-packages)) - -(define %base-packages/hurd - ;; XXX: For now we are less demanding of "i586-gnu". - (map specification->package - '("coreutils" "grep" "findutils" "gawk" "make" - #;"gcc-toolchain" "tar" "xz"))) - (define %system-packages ;; Key packages proposed by the Guix System installer. (append (map specification->package - '("xorg-server" "xfce" "gnome" "mate" "enlightenment" - "icewm" "openbox" "awesome" "i3-wm" "ratpoison" + '("guix" + "gnome" "xfce" "mate" "enlightenment" + "icewm" "openbox" "awesome" + "i3-wm" "i3status" "dmenu" "st" + "ratpoison" "xterm" "emacs" "emacs-exwm" "emacs-desktop-environment" - "xlockmore" "slock" "libreoffice" - "connman" "network-manager" "network-manager-applet" - "openssh" "ntp" "tor" - "linux-libre" "grub-hybrid" - "icecat")) + "openssh" "tor" "ntp" "gpm" + "connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups" + "linux-libre" "grub-hybrid")) %default-xorg-modules)) -(define %packages-to-cross-build - ;; Packages that must be cross-buildable from x86_64-linux. - ;; FIXME: Add (@ (gnu packages gcc) gcc) when <https://bugs.gnu.org/40463> - ;; is fixed. - (append (list (@ (gnu packages guile) guile-3.0/pinned)) - (map specification->package - '("coreutils" "grep" "sed" "findutils" "diffutils" "patch" - "gawk" "gettext" "gzip" "xz" - "hello" "zlib")))) - -(define %packages-to-cross-build-for-mingw - ;; Many things don't build for MinGW. Restrict to what's known to work. - (map specification->package '("hello"))) - -(define %cross-bootstrap-targets - ;; Cross-compilation triplets for which 'bootstrap-tarballs' must be - ;; buildable. - '("i586-pc-gnu" - "arm-linux-gnueabihf" - "aarch64-linux-gnu")) - ;;; ;;; Manifests. ;;; -(define %base-manifest - (manifest - (append-map (lambda (system) - (map (cut package->manifest-entry* <> system) - (cond ((string=? system "i586-gnu") - %base-packages/hurd) - ((string=? system "armhf-linux") - %base-packages/armhf) - ((string=? system "powerpc64le-linux") - ;; FIXME: Drop 'bootstrap-tarballs' until - ;; <https://bugs.gnu.org/48055> is fixed. - (drop %base-packages 1)) - (else - %base-packages)))) - %cuirass-supported-systems))) - (define %system-manifest (manifest - (append-map (lambda (system) - ;; Some of %SYSTEM-PACKAGES are currently unsupported on some - ;; systems--e.g., GNOME on non-x86_64, due to Rust. Filter - ;; them out. - (filter-map (lambda (package) - (and (supported-package? package system) - (package->manifest-entry* package system))) - %system-packages)) - '("x86_64-linux" "i686-linux")))) ;Guix System - -(define %cross-manifest - (manifest - (append-map (lambda (target) - (map (cut package->manifest-entry* <> "x86_64-linux" - #:target target) - (if (target-mingw? target) - %packages-to-cross-build-for-mingw - %packages-to-cross-build))) - (fold delete (targets) - '(;; Like in (gnu ci), dismiss cross-compilation to x86: - ;; it's pointless. - "x86_64-linux-gnu" - "i686-linux-gnu" - - ;; Ignore obsolete systems, as in (gnu ci). - "mips64el-linux-gnu" - "powerpc-linux-gnu" - "powerpc64-linux-gnu" - - ;; Ignore bare-metal targets. - "avr" - "or1k-elf" - "xtensa-ath9k-elf" - - ;; XXX: Important bits like libsigsegv and libffi don't - ;; support RISCV at the moment, so don't require RISCV - ;; support. - "riscv64-linux-gnu"))))) - -(define %cross-bootstrap-manifest - (manifest - (map (lambda (target) - (package->manifest-entry* - (specification->package "bootstrap-tarballs") - "x86_64-linux" #:target target)) - %cross-bootstrap-targets))) - -;; Return the union of all three manifests. -(concatenate-manifests (list %base-manifest - %system-manifest - %cross-manifest - %cross-bootstrap-manifest)) + (append + ;; The linux-libre-*-generic kernel is commonly used on some architectures. + (cond + ((target-aarch64?) + (list (package->manifest-entry (@ (gnu packages linux) + linux-libre-arm64-generic)))) + ((target-riscv64?) + (list (package->manifest-entry (@ (gnu packages linux) + linux-libre-riscv64-generic)))) + ((target-arm32?) + (list (package->manifest-entry (@ (gnu packages linux) + linux-libre-arm-generic)))) + (else '())) + + ;; Some of %SYSTEM-PACKAGES are currently unsupported on some + ;; systems--e.g., GNOME on 32-bit, due to Rust. Filter them out. + (filter-map (lambda (package) + (and (supported-package? package (%current-system)) + (package->manifest-entry package))) + %system-packages)))) + +%system-manifest |