diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-06-04 14:59:24 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-06-04 18:15:50 +0200 |
commit | 6f436c54d6d9698e62639de31a845cd9b9167423 (patch) | |
tree | 24e4d42578e85a24bb5493dfe23a5e04bacab2eb | |
parent | 39d4fde3bfd27607980eb58f0b17b837953b1e4c (diff) | |
download | patches-6f436c54d6d9698e62639de31a845cd9b9167423.tar patches-6f436c54d6d9698e62639de31a845cd9b9167423.tar.gz |
system: Define '%base-packages' and use it.
* gnu/system.scm (<operating-system>)[packages]: Change default value to
%BASE-PACKAGES.
(%base-packages): New variable.
* gnu/system/install.scm (installation-os): Use it when defining the
'packages' field.
* doc/guix.texi (Using the Configuration System): Use %BASE-PACKAGES in
example. Remove now unneeded module imports. Explain this.
-rw-r--r-- | build-aux/hydra/demo-os.scm | 14 | ||||
-rw-r--r-- | doc/guix.texi | 31 | ||||
-rw-r--r-- | gnu/system.scm | 27 | ||||
-rw-r--r-- | gnu/system/install.scm | 15 |
4 files changed, 34 insertions, 53 deletions
diff --git a/build-aux/hydra/demo-os.scm b/build-aux/hydra/demo-os.scm index 0b41ec901f..bb8cd05fc2 100644 --- a/build-aux/hydra/demo-os.scm +++ b/build-aux/hydra/demo-os.scm @@ -24,15 +24,7 @@ (use-modules (gnu) - (gnu packages zile) (gnu packages xorg) - (gnu packages admin) - (gnu packages guile) - (gnu packages bash) - (gnu packages linux) - (gnu packages less) - (gnu packages tor) - (gnu packages package-management) (gnu packages avahi) (gnu services networking) @@ -98,7 +90,5 @@ You can log in as 'guest' or 'root' with no password. (pam-services ;; Explicitly allow for empty passwords. (base-pam-services #:allow-empty-passwords? #t)) - (packages (list bash coreutils findutils grep sed - procps psmisc less - guile-2.0 dmd guix util-linux inetutils avahi - xterm zile))) + + (packages (cons* xterm avahi %base-packages))) diff --git a/doc/guix.texi b/doc/guix.texi index cfdfcd8b78..4d5a5150e6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3116,14 +3116,8 @@ Linux-Libre kernel, initial RAM disk, and boot loader looks like this: @findex operating-system @lisp (use-modules (gnu) ; for 'user-account', '%base-services', etc. - (gnu services ssh) ; for 'lsh-service' - (gnu packages base) ; Coreutils, grep, etc. - (gnu packages bash) ; Bash - (gnu packages admin) ; dmd, Inetutils - (gnu packages zile) ; Zile - (gnu packages less) ; less - (gnu packages guile) ; Guile - (gnu packages linux)) ; procps, psmisc + (gnu packages emacs) ; for 'emacs' + (gnu services ssh)) ; for 'lsh-service' (define komputilo (operating-system @@ -3142,22 +3136,21 @@ Linux-Libre kernel, initial RAM disk, and boot loader looks like this: (uid 1000) (gid 100) (comment "Bob's sister") (home-directory "/home/alice")))) - (packages (list coreutils bash guile-2.0 - guix dmd - inetutils - findutils grep sed - procps psmisc - zile less)) + (packages (cons emacs %base-packages)) (services (cons (lsh-service #:port 2222 #:allow-root-login? #t) %base-services)))) @end lisp This example should be self-describing. The @code{packages} field lists -packages provided by the various @code{(gnu packages ...)} modules above -(@pxref{Package Modules}). These are the packages that will be globally -visible on the system, for all user accounts---i.e., in every user's -@code{PATH} environment variable---in addition to the per-user profiles -(@pxref{Invoking guix package}). +packages that will be globally visible on the system, for all user +accounts---i.e., in every user's @code{PATH} environment variable---in +addition to the per-user profiles (@pxref{Invoking guix package}). The +@var{%base-packages} variables provides all the tools one would expect +for basic user and administrator tasks---including the GNU Core +Utilities, the GNU Networking Utilities, the GNU Zile lightweight text +editor, @command{find}, @command{grep}, etc. The example above adds +Emacs to those, taken from the @code{(gnu packages emacs)} module +(@pxref{Package Modules}). @vindex %base-services The @code{services} field lists @dfn{system services} to be made diff --git a/gnu/system.scm b/gnu/system.scm index ec54b8baf0..7b8e3890d7 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -28,6 +28,9 @@ #:use-module (gnu packages admin) #:use-module (gnu packages linux) #:use-module (gnu packages package-management) + #:use-module (gnu packages which) + #:use-module (gnu packages less) + #:use-module (gnu packages zile) #:use-module (gnu services) #:use-module (gnu services dmd) #:use-module (gnu services base) @@ -59,7 +62,9 @@ operating-system-derivation operating-system-profile - operating-system-grub.cfg)) + operating-system-grub.cfg + + %base-packages)) ;;; Commentary: ;;; @@ -97,15 +102,7 @@ (default %default-issue)) (packages operating-system-packages ; list of (PACKAGE OUTPUT...) - (default (list coreutils ; or just PACKAGE - grep - sed - findutils - guile - bash - (@ (gnu packages dmd) dmd) - guix - tzdata))) + (default %base-packages)) ; or just PACKAGE (timezone operating-system-timezone) ; string (locale operating-system-locale) ; string @@ -216,6 +213,16 @@ explicitly appear in OS." ;;; /etc. ;;; +(define %base-packages + ;; Default set of packages globally visible. It should include anything + ;; required for basic administrator tasks. + (list bash coreutils findutils grep sed + procps psmisc less zile + guile-final (@ (gnu packages admin) dmd) guix + util-linux inetutils isc-dhcp + net-tools ; XXX: remove when Inetutils suffices + module-init-tools kbd)) + (define %default-issue ;; Default contents for /etc/issue. " diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 8c67b73de6..c69e51b2b5 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -20,13 +20,8 @@ #:use-module (gnu) #:use-module (guix gexp) #:use-module (guix monads) - #:use-module (gnu packages bash) - #:use-module (gnu packages less) #:use-module (gnu packages linux) - #:use-module (gnu packages guile) - #:use-module (gnu packages admin) #:use-module (gnu packages package-management) - #:use-module (gnu packages zile) #:use-module (gnu packages disk) #:use-module (gnu packages texinfo) #:export (installation-os)) @@ -137,13 +132,9 @@ Use Alt-F2 for documentation. ;; Explicitly allow for empty passwords. (base-pam-services #:allow-empty-passwords? #t)) - (packages (list bash coreutils findutils grep sed - procps psmisc less texinfo-4 - guile-2.0 dmd guix util-linux - inetutils isc-dhcp net-tools - parted fdisk ddrescue - module-init-tools kbd - zile)))) + (packages (cons* texinfo-4 ; for the standalone Info reader + parted fdisk ddrescue + %base-packages)))) ;; Return it here so 'guix system' can consume it directly. installation-os |