From 48ca0285116331e5fe29494191d64988f68fc4ff Mon Sep 17 00:00:00 2001 From: Rutherther Date: Wed, 29 Oct 2025 19:04:11 +0100 Subject: [PATCH] manifests: Split release manifest to two. As stated in the manifest, use two release manifests: 1. Minimal one 2. Full one with all the desktop services enabled. * etc/manifests/release.scm: Move to etc/manifests/release-minimal.scm. * etc/manifests/release-minimal.scm (%system-packages): Add packages from default privileged-programs. Add %base-firmware. Add %base-packages. Remove desktops. Remove xorg modules. * etc/teams.scm (release): Add new splitted manifests. * Makefile.am (EXTRA_DIST): Remove release manifest; Add manifests release-minimal and release-desktop. (assert-binaries-available): Use new splitted release manifest. * etc/manifests/release-desktop.scm (%system-packages): Add desktops. Add xorg modules. * CODEOWNERS: Regenerate file. Change-Id: I40de8b5d0f9c8b630e8af7969d4c195dd9e2c3e2 Signed-off-by: Efraim Flashner --- CODEOWNERS | 3 +- Makefile.am | 10 +- etc/manifests/release-desktop.scm | 167 ++++++++++++++++++ .../{release.scm => release-minimal.scm} | 20 +-- etc/teams.scm | 3 +- 5 files changed, 187 insertions(+), 16 deletions(-) create mode 100644 etc/manifests/release-desktop.scm rename etc/manifests/{release.scm => release-minimal.scm} (90%) diff --git a/CODEOWNERS b/CODEOWNERS index 762f95ed4ad..ad2473c187b 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -309,7 +309,8 @@ gnu/packages/chez\.scm @guix/racket gnu/packages/racket\.scm @guix/racket NEWS @guix/release -etc/manifests/release\.scm @guix/release +etc/manifests/release-minimal\.scm @guix/release +etc/manifests/release-desktop\.scm @guix/release gnu/packages/diffoscope\.scm @guix/reproduciblebuilds diff --git a/Makefile.am b/Makefile.am index 459f3f4b6b7..301fa97f402 100644 --- a/Makefile.am +++ b/Makefile.am @@ -784,7 +784,8 @@ EXTRA_DIST += \ etc/manifests/disarchive.scm \ etc/manifests/hurd.scm \ etc/manifests/kernels.scm \ - etc/manifests/release.scm \ + etc/manifests/release-minimal.scm \ + etc/manifests/release-desktop.scm \ etc/manifests/source.scm \ etc/manifests/system-tests.scm \ etc/manifests/time-travel.scm \ @@ -1240,9 +1241,10 @@ assert-no-store-file-names: # Make sure installer substitutes are available. Check only the primary # server so that '--display-missing' doesn't print two lists. assert-binaries-available: $(GOBJECTS) - $(AM_V_at)$(top_builddir)/pre-inst-env \ - guix weather -m "$(top_srcdir)/etc/manifests/release.scm" \ - --substitute-urls="https://ci.guix.gnu.org" \ + $(AM_V_at)$(top_builddir)/pre-inst-env \ + guix weather -m "$(top_srcdir)/etc/manifests/release-minimal.scm" \ + -m "$(top_srcdir)/etc/manifests/release-desktop.scm" \ + --substitute-urls="https://ci.guix.gnu.org" \ --display-missing # Make sure the final inputs don't refer to bootstrap tools. diff --git a/etc/manifests/release-desktop.scm b/etc/manifests/release-desktop.scm new file mode 100644 index 00000000000..89175418bc2 --- /dev/null +++ b/etc/manifests/release-desktop.scm @@ -0,0 +1,167 @@ +;;; GNU Guix --- Functional package management for GNU +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; This file returns a manifest containing packages which are needed by the +;;; installer. + +(use-modules (guix packages) + (gnu packages) + ((gnu services xorg) #:select (%default-xorg-modules)) + (guix profiles) + (guix utils) + (srfi srfi-1)) + +(define %desktop-packages + (append + %default-xorg-modules + (map specification->package + (list + ;; etc-service + "net-base" + "tzdata" + ;; boot-file-system-utilities-service + "e2fsprogs" + ;; plasma-deskto-sservice-type + "plasma" + ;; gnome-desktop-service + "gnome" + ;; xfce-desktop-service + "xfce" + ;; mate-desktop-service + "mate" + ;; set-xorg-configuration-service + "font-alias" + "font-misc-misc" + "font-adobe75dpi" + "xorg-server" + ;; screen-locker-service + "slock" + "xlockmore" + ;; mtp-service + "libmtp" + ;; sane-service + "sane" + "sane-backends" + ;; mount-setuid-helpers-service + "nfs-utils" + "ntfs-3g" + ;; guix-artwork-service + "guix-backgrounds" + "guix-icons" + ;; vte-integration-service + "vte" + ;; network-manager-applet-service + "network-manager-applet" + ;; modem-manager-service + "modem-manager" + ;; usb-modeswitch-service + "usb-modeswitch" + "usb-modeswitch-data" + ;; avahi-service + "avahi" + ;; udisks-service + "udisks" + ;; cups-pk-helper-service + "cups-pk-helper" + ;; colord-service + "colord" + ;; geoclue-service + "geoclue" + ;; polkit-service + "polkit" + ;; elogind-service + "elogind" + ;; dbus-service + ;; ntp-service + "ntp" + ;; alsa-service + "alsa-plugins" + ;; mingetty-service + "mingetty" + ;; etc-bashrc-d-service + "bash-completion" + ;; udev-service + "eudev" + "lvm2" + "alsa-utils" + "crda" + ;; sysctl-service + "procps" + ;; special-files-service + "coreutils" + "grub-pc" + "less" + "mg" + "nano" + "nvi" + "man-db" + "info-reader" + "kbd" + "guile-readline" + "guile-colorized" + "pciutils" + "usbutils" + "util-linux-with-udev" + "kmod" + "isc-dhcp" + "iproute2" + "wget" + "nss-certs" + "iw" + "wireless-tools" + "psmisc" + "which" + "guile" + "findutils" + "grep" + "sed" + "diffutils" + "patch" + "gawk" + "tar" + "gzip" + "bzip2" + "lzip" + "xz" + "zstd" + ;; packages + "sway" + "foot" + "wmenu" + "icewm" + "openbox" + "awesome" + "i3-wm" + "i3status" + "dmenu" + "st" + "ratpoison" + "xterm" + "emacs" + "emacs-exwm" + "emacs-desktop-environment")))) + +(define %desktop-manifest + (manifest + ;; 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))) + (append %desktop-packages)))) + +%desktop-manifest diff --git a/etc/manifests/release.scm b/etc/manifests/release-minimal.scm similarity index 90% rename from etc/manifests/release.scm rename to etc/manifests/release-minimal.scm index 2c0d82d67fc..16ccd161422 100644 --- a/etc/manifests/release.scm +++ b/etc/manifests/release-minimal.scm @@ -23,7 +23,9 @@ ;;; installer. (use-modules (guix packages) - ((gnu services xorg) #:select (%default-xorg-modules)) + (gnu packages) + ((gnu system) #:select (%base-packages %base-firmware)) + (guix profiles) (guix utils) (srfi srfi-1)) @@ -44,16 +46,14 @@ TARGET." (define %system-packages ;; Key packages proposed by the Guix System installer. (append (map specification->package - '("guix" "shepherd" - "gnome" "xfce" "mate" - "icewm" "openbox" "awesome" - "i3-wm" "i3status" "dmenu" "st" - "ratpoison" "xterm" - "emacs" "emacs-exwm" "emacs-desktop-environment" - "openssh" "tor" "ntp" "gpm" + '("guix" "shepherd" "guile-static-initrd" + "openssh" "tor" "ntp" "gpm" "mingetty" "connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups" - "linux-libre" "grub-hybrid")) - %default-xorg-modules)) + "linux-libre" "grub-hybrid" + ;; privileged programs + "shadow" "sudo" "fuse" "inetutils" "util-linux")) + %base-firmware + %base-packages)) (define %bootloader-packages ;; The bootloaders offered by the Guix System installer. diff --git a/etc/teams.scm b/etc/teams.scm index e5b1575ba93..b5dbc63e2f3 100755 --- a/etc/teams.scm +++ b/etc/teams.scm @@ -924,7 +924,8 @@ importer." "The current release team. Members are expected to change with each release." #:scope (list "NEWS" - "etc/manifests/release.scm"))) + "etc/manifests/release-minimal.scm" + "etc/manifests/release-desktop.scm"))) (define-team reproduciblebuilds (team 'reproduciblebuilds