summaryrefslogtreecommitdiff
path: root/etc/manifests/release.scm
diff options
context:
space:
mode:
authorEfraim Flashner <[email protected]>2025-02-06 16:08:00 +0200
committerEfraim Flashner <[email protected]>2025-03-02 16:48:10 +0200
commiteeebc87f9fd7ce430179f4cec787d79f191ff3df (patch)
treecb3239a8a82f8bb3e5310a166e91a47219f51a0f /etc/manifests/release.scm
parent38de9218d65f054f73b588c2b901afe858d46d15 (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.scm159
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