* gnu/system.scm: (%base-packages-interactive, %base-packages-linux,
%base-packages-networking, %base-packages-utils): New variables.
(%base-packages): Use those new variables.
This patch split %base-packages to make it more reusable. We talked about it
with John Soo on IRC[0] and on the ML[1].
gnu/system.scm | 95 +++++++++++++++++++++++++++++---------------------
1 file changed, 56 insertions(+), 39 deletions(-)
Toggle diff (125 lines)
diff --git a/gnu/system.scm b/gnu/system.scm
index d79ea23f98..ce0c7dbce0 100644
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Meiyo Peng <meiyo.peng@gmail.com>
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; This file is part of GNU Guix.
+ %base-packages-interactive
+ %base-packages-networking
@@ -575,48 +580,60 @@ of PROVENANCE-SERVICE-TYPE to its services."
+(define %base-packages-utils
+ ;; Default set of utilities packages.
+ (cons* procps psmisc which
+ (@ (gnu packages admin) shadow) ;for 'passwd'
+ ;; XXX: We don't use (canonical-package guile-2.2) here because that
+ ;; would create a collision in the global profile between the GMP
+ ;; variant propagated by 'guile-final' and the GMP variant propagated
+ ;; by 'gnutls', itself propagated by 'guix'.
+ ;; The packages below are also in %FINAL-INPUTS, so take them from
+ ;; there to avoid duplication.
+ (list bash coreutils findutils grep sed
+ diffutils patch gawk tar gzip bzip2 xz lzip))))
+(define %base-packages-linux
+ ;; Default set of linux specific packages.
+ (list pciutils usbutils
+ ;; Get 'insmod' & co. from kmod, not module-init-tools, since udev
+ ;; already depends on it anyway.
+(define %base-packages-interactive
+ ;; Default set of common interactive packages.
+ info-reader ;the standalone Info reader (no Perl)
+ ;; The 'sudo' command is already in %SETUID-PROGRAMS, but we also
+ ;; want the other commands and the man pages (notably because
+ ;; auto-completion in Emacs shell relies on man pages.)
+ guile-readline guile-colorized))
+(define %base-packages-networking
+ ;; Default set of networking packages.
+ (list inetutils isc-dhcp
+ ;; wireless-tools is deprecated in favor of iw, but it's still what
+ ;; many people are familiar with, so keep it around.
;; Default set of packages globally visible. It should include anything
;; required for basic administrator tasks.
- (cons* procps psmisc which less zile nano
- (@ (gnu packages admin) shadow) ;for 'passwd'
- ;; wireless-tools is deprecated in favor of iw, but it's still what
- ;; many people are familiar with, so keep it around.
- info-reader ;the standalone Info reader (no Perl)
- ;; The 'sudo' command is already in %SETUID-PROGRAMS, but we also
- ;; want the other commands and the man pages (notably because
- ;; auto-completion in Emacs shell relies on man pages.)
- ;; Get 'insmod' & co. from kmod, not module-init-tools, since udev
- ;; already depends on it anyway.
- ;; XXX: We don't use (canonical-package guile-2.2) here because that
- ;; would create a collision in the global profile between the GMP
- ;; variant propagated by 'guile-final' and the GMP variant propagated
- ;; by 'gnutls', itself propagated by 'guix'.
- guile-readline guile-colorized
- ;; The packages below are also in %FINAL-INPUTS, so take them from
- ;; there to avoid duplication.
- (list bash coreutils findutils grep sed
- diffutils patch gawk tar gzip bzip2 xz lzip))))
+ (append (list e2fsprogs)
+ %base-packages-interactive
+ %base-packages-networking
;; Default contents for /etc/issue.