5f0fd6a6f8cbdb0f9bb0730842fe5ba4df5cdf6e
[jackhill/guix/guix.git] / build-aux / hydra / demo-os.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
10 ;;;
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19
20 ;;;
21 ;;; This file defines an operating system configuration for the demo virtual
22 ;;; machine images that we build.
23 ;;;
24
25 (use-modules (gnu packages zile)
26 (gnu packages xorg)
27 (gnu packages base)
28 (gnu packages admin)
29 (gnu packages guile)
30 (gnu packages bash)
31 (gnu packages linux)
32 (gnu packages less)
33 (gnu packages tor)
34 (gnu packages package-management)
35
36 (gnu system grub) ; 'grub-configuration'
37 (gnu system shadow) ; 'user-account'
38 (gnu system linux) ; 'base-pam-services'
39 (gnu system file-systems) ; 'file-systems'
40
41 (gnu services base)
42 (gnu services networking)
43 (gnu services xorg))
44
45 (operating-system
46 (host-name "gnu")
47 (timezone "Europe/Paris")
48 (locale "en_US.UTF-8")
49 (bootloader (grub-configuration
50 (device "/dev/sda")))
51 (file-systems
52 ;; We provide a dummy file system for /, but that's OK because the VM build
53 ;; code will automatically declare the / file system for us.
54 (list (file-system
55 (mount-point "/")
56 (device "dummy")
57 (type "dummy"))
58 ;; %fuse-control-file-system ; needs fuse.ko
59 %binary-format-file-system))
60 (users (list (user-account
61 (name "guest")
62 (group "wheel")
63 (password "")
64 (comment "Guest of GNU")
65 (home-directory "/home/guest"))))
66 (groups (list (user-group (name "root") (id 0))
67 (user-group
68 (name "wheel")
69 (id 1)
70 (members '("guest"))) ; allow 'guest' to use sudo
71 (user-group
72 (name "users")
73 (id 100)
74 (members '("guest")))))
75 (services (cons* (slim-service #:auto-login? #t
76 #:default-user "guest")
77
78 ;; QEMU networking settings.
79 (static-networking-service "eth0" "10.0.2.10"
80 #:name-servers '("10.0.2.3")
81 #:gateway "10.0.2.2")
82
83 %base-services))
84 (pam-services
85 ;; Explicitly allow for empty passwords.
86 (base-pam-services #:allow-empty-passwords? #t))
87 (packages (list bash coreutils findutils grep sed
88 procps psmisc less
89 guile-2.0 dmd guix util-linux inetutils
90 xterm zile)))