aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/examples/devel-hurd.tmpl
blob: 066bdfe9d89d621a8c3439c1ff3c10d6b9bde3bc (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
;; -*-scheme-*-

;; This is an operating system configuration template for a "bare bones
;; development" setup, with no X11 display server.

;; To build a disk image for a virtual machine, do something like:
;;
;;   ./pre-inst-env guix system image --image-type=hurd-qcow2 --image-size=6G \
;;      --no-offload gnu/system/examples/devel-hurd.tmpl
;;
;; You may run it like so
;;
;;     cp /gnu/store/.../disk-image devel-hurd.img
;;     guix shell qemu -- qemu-system-i386 -m 4096                \
;;       --enable-kvm                                             \
;;       --device e1000,netdev=net0                               \
;;       --netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222  \
;;       --hda devel-hurd.img
;;
;;     ssh -p 10022 root@localhost
;;     guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)'
;;
;; or even:
;;
;;     guix build hello
;;
;; For Guix hacking, do something like:
;;
;;     guix shell --boostrap -D guix
;;     mkdir -p ~/src/guix
;;     cd src/guix
;;     git clone https://git.savannah.gnu.org/git/guix.git master
;;     cd master
;;     ./bootstrap
;;     ./configure
;;     make

(include "bare-hurd.tmpl")

(use-modules (srfi srfi-1)
             (ice-9 match)
             (gnu system hurd)
             (guix packages)
             (guix store))

(use-package-modules base compression file gawk gdb hurd less m4
                     package-management ssh version-control)

(define (input->package input)
  "Return the INPUT as package, or #f."
  (match input
    ((label (and (? package?) package))
     package)
    ((label (and (? package?) package . output))
     (cons package output))
    (_ #f)))

(define guix-packages
  (filter-map input->package
              (fold alist-delete (package-direct-inputs guix)
                    ;; These are not essential and do not build yet.
                    '("graphviz" "guile-avahi" "po4a"))))

(define hurd-packages
  (filter-map input->package
              (fold alist-delete (package-direct-inputs hurd)
                    ;; These are not essential, rumpkernel is very big.
                    '("dde-sources" "parted" "rumpkernel" "util-linux"
                      "texinfo"))))

(define %hurd-devel-os
  (operating-system
    (inherit %hurd-os)
    (bootloader (bootloader-configuration
                 (bootloader grub-minimal-bootloader)
                 (targets '("/dev/sdX"))
                 (timeout 0)))
    (timezone "Europe/Berlin")
    (swap-devices (list (swap-space
                          (target "/swapfile"))))
    (packages (cons*
               gdb-minimal
               git-minimal
               gnu-make
               m4
               openssh-sans-x
               (append
                guix-packages
                hurd-packages
                %base-packages/hurd)))))

%hurd-devel-os
ests: Adjust graph test....This is a followup to 301a4249064227bc4883e4e5b638e85a65925ba0, which added a dependency to sed. * tests/graph.scm ("node-edges"): Use 'hello', not 'sed', as the example of a package without any dependency. Ludovic Courtès 2018-05-08guix: Separate the package name and version with "@", not "-"....* guix/packages.scm (package-full-name): By default, use "@" to separate the package name and package version. Add an optional delimiter argument so that there is still a way to explicitly use a different delimiter. * gnu/packages/commencement.scm (gcc-boot0) <unpack-gmp&co>: Adjust accordingly. * tests/graph.scm: Adjust accordingly. * tests/profiles.scm: Adjust accordingly. * NEWS: Mention the change. Fixes: <https://bugs.gnu.org/31088>. Reported by Pierre Neidhardt <ambrevar@gmail.com>. Chris Marusich 2018-03-27graph: Add "module" node type....* guix/scripts/graph.scm (module-from-package) (source-module-dependencies*): New procedures. (%module-node-type): New variable. (%node-types): Add it. * guix/modules.scm (source-module-dependencies): Export. * tests/graph.scm ("module graph"): New test. * doc/guix.texi (Invoking guix graph): Document it. Ludovic Courtès 2017-12-17graph: Adjust test for glibc:static among the implicit inputs....Fixes <https://bugs.gnu.org/29612>. Reported by Chris Marusich <cmmarusich@gmail.com>. This is a followup to 6dff905e51202bbdebbad8811b6509584d12a796. * tests/graph.scm ("bag-emerged DAG"): Adjust for glibc:static among IMPLICIT. Ludovic Courtès 2017-01-04graph: Add '%reverse-package-node-type'....* guix/scripts/graph.scm (%reverse-package-node-type): New variable. (%node-types): Add it. * tests/graph.scm ("reverse package DAG"): New test. * doc/guix.texi (Invoking guix refresh): Add cross-reference to "Invoking guix graph". (Invoking guix graph): Document 'reverse-package'. Ludovic Courtès 2016-12-14graph: Backend must have name and description....* guix/graph.scm (<graph-backend>): Add fields "name" and "description". (%graphviz-backend): Provide values for name and description. (export-graph): Ignore name and description when matching backends. (graph-backend-name, graph-backend-description): New procedures. * tests/graph.scm (make-recording-backend): Initialize name and description fields of test graph-backend. Ricardo Wurmus 2016-10-15graph: Add '%referrer-node-type'....* guix/scripts/graph.scm (ensure-store-items): New procedure. (%reference-node-type)[convert]: Use it. (non-derivation-referrers): New procedure. (%referrer-node-type): New variable. (%node-types): Add it. * tests/graph.scm ("referrer DAG"): New test. * doc/guix.texi (Invoking guix graph): Document it. Ludovic Courtès 2016-05-24graph: Add 'node-reachable-count'....* guix/graph.scm (node-reachable-count): New procedure. * tests/graph.scm ("node-reachable-count"): New test. Ludovic Courtès