summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--build-aux/hydra/demo-os.scm11
-rw-r--r--doc/guix.texi3
-rw-r--r--gnu-system.am1
-rw-r--r--gnu.scm46
4 files changed, 51 insertions, 10 deletions
diff --git a/build-aux/hydra/demo-os.scm b/build-aux/hydra/demo-os.scm
index 5f0fd6a6f8..863371291e 100644
--- a/build-aux/hydra/demo-os.scm
+++ b/build-aux/hydra/demo-os.scm
@@ -22,9 +22,10 @@
 ;;; machine images that we build.
 ;;;
 
-(use-modules (gnu packages zile)
+(use-modules (gnu)
+
+             (gnu packages zile)
              (gnu packages xorg)
-             (gnu packages base)
              (gnu packages admin)
              (gnu packages guile)
              (gnu packages bash)
@@ -33,12 +34,6 @@
              (gnu packages tor)
              (gnu packages package-management)
 
-             (gnu system grub)                    ; 'grub-configuration'
-             (gnu system shadow)                  ; 'user-account'
-             (gnu system linux)                   ; 'base-pam-services'
-             (gnu system file-systems)            ; 'file-systems'
-
-             (gnu services base)
              (gnu services networking)
              (gnu services xorg))
 
diff --git a/doc/guix.texi b/doc/guix.texi
index 57c9e4e52a..edb1dceeab 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3109,9 +3109,8 @@ Linux-Libre kernel, initial RAM disk, and boot loader looks like this:
 
 @findex operating-system
 @lisp
-(use-modules (gnu services base)   ; for '%base-services'
+(use-modules (gnu)   ; for 'user-account', '%base-services', etc.
              (gnu services ssh)    ; for 'lsh-service'
-             (gnu system shadow)   ; for 'user-account'
              (gnu packages base)   ; Coreutils, grep, etc.
              (gnu packages bash)   ; Bash
              (gnu packages admin)  ; dmd, Inetutils
diff --git a/gnu-system.am b/gnu-system.am
index 84a5e939f4..314db3e536 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -22,6 +22,7 @@
 # binaries.
 
 GNU_SYSTEM_MODULES =				\
+  gnu.scm					\
   gnu/packages.scm				\
   gnu/packages/acct.scm				\
   gnu/packages/acl.scm				\
diff --git a/gnu.scm b/gnu.scm
new file mode 100644
index 0000000000..e573de6531
--- /dev/null
+++ b/gnu.scm
@@ -0,0 +1,46 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; 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/>.
+
+(define-module (gnu))
+
+;;; Commentary:
+;;;
+;;; This composite module re-exports core parts the (gnu …) public modules.
+;;;
+;;; Code:
+
+(eval-when (eval load compile)
+  (begin
+    (define %public-modules
+      '((gnu system)
+        (gnu system file-systems)
+        (gnu system grub)                         ; 'grub-configuration'
+        (gnu system linux)                        ; 'base-pam-services'
+        (gnu system shadow)                       ; 'user-account'
+        (gnu system linux-initrd)
+        (gnu services)
+        (gnu services base)
+        (gnu packages)
+        (gnu packages base)))
+
+    (for-each (let ((i (module-public-interface (current-module))))
+                (lambda (m)
+                  (module-use! i (resolve-interface m))))
+              %public-modules)))
+
+;;; gnu.scm ends here