summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRutherther <rutherther@ditigal.xyz>2025-10-29 19:04:11 +0100
committerEfraim Flashner <efraim@flashner.co.il>2025-11-23 10:52:25 +0200
commit48ca0285116331e5fe29494191d64988f68fc4ff (patch)
treee205aac2f8dc9eab5758ef0d7fa13c3e252147da
parent5baaa0da3ab2cb969942acfc6d2ae09ee8561365 (diff)
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 <efraim@flashner.co.il>
-rw-r--r--CODEOWNERS3
-rw-r--r--Makefile.am10
-rw-r--r--etc/manifests/release-desktop.scm167
-rw-r--r--etc/manifests/release-minimal.scm (renamed from etc/manifests/release.scm)20
-rwxr-xr-xetc/teams.scm3
5 files changed, 187 insertions, 16 deletions
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 <http://www.gnu.org/licenses/>.
+
+;;; 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
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