janneke pushed a commit to branch hurd-team in repository guix. commit 1508557538567ba22982f1ee018522900b3c4484 Author: Janneke Nieuwenhuizen <jann...@gnu.org> AuthorDate: Fri Jun 5 09:18:35 2020 +0200
system: examples: Add devel-hurd64.tmpl. This also updates comments and removes the comment about a very old `bootstrap-profile' hack. * gnu/system/examples/devel-hurd.tmpl (hurd-packages): New variable (%hurd-devel-os): Use it. * gnu/system/examples/devel-hurd64.tmpl: New file. Change-Id: I54b6b0843f0dd635d89cca483ae43d23b20d21e8 --- gnu/system/examples/devel-hurd.tmpl | 70 ++++++++++++++--------------------- gnu/system/examples/devel-hurd64.tmpl | 65 ++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 42 deletions(-) diff --git a/gnu/system/examples/devel-hurd.tmpl b/gnu/system/examples/devel-hurd.tmpl index 3dca0706d1..066bdfe9d8 100644 --- a/gnu/system/examples/devel-hurd.tmpl +++ b/gnu/system/examples/devel-hurd.tmpl @@ -3,7 +3,7 @@ ;; 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 +;; 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 @@ -11,41 +11,38 @@ ;; You may run it like so ;; ;; cp /gnu/store/.../disk-image devel-hurd.img -;; guix shell qemu -- qemu-system-i386 -enable-kvm -m 4096 \ -;; -device rtl8139,netdev=net0 \ -;; -netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222 \ -;; -hda devel-hurd.img -;; -;; and use it like +;; 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 (if you use --image-size=3G) +;; or even: ;; ;; guix build hello ;; -;; Building Guix, do something like: +;; For Guix hacking, do something like: ;; -;; GUIX_PROFILE=/run/current-system/bootstrap-profile -;; source $GUIX_PROFILE/etc/profile +;; 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 --with-courage +;; ./configure ;; make +(include "bare-hurd.tmpl") + (use-modules (srfi srfi-1) (ice-9 match) - (gnu) (gnu system hurd) - (gnu system locale) (guix packages) - (guix store) - (guix utils)) -(use-service-modules ssh virtualization) + (guix store)) + (use-package-modules base compression file gawk gdb hurd less m4 package-management ssh version-control) @@ -64,23 +61,23 @@ ;; 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-vm-operating-system) - (host-name "guixydevel") + (inherit %hurd-os) + (bootloader (bootloader-configuration + (bootloader grub-minimal-bootloader) + (targets '("/dev/sdX")) + (timeout 0))) (timezone "Europe/Berlin") - (file-systems (cons (file-system - (device (file-system-label "hurd")) - (mount-point "/") - (type "ext2")) - %base-file-systems)) (swap-devices (list (swap-space (target "/swapfile")))) - (users (cons (user-account - (name "guix") - (group "users") - (supplementary-groups '("wheel"))) - %base-user-accounts)) (packages (cons* gdb-minimal git-minimal @@ -89,18 +86,7 @@ openssh-sans-x (append guix-packages - %base-packages/hurd))) - (services (cons* - (modify-services (operating-system-user-services - %hurd-vm-operating-system) - (openssh-service-type - config => - ;; Set wide open - (openssh-configuration - (openssh openssh-sans-x) - (port-number 2222) - (permit-root-login #t) - (allow-empty-passwords? #t) - (password-authentication? #t)))))))) + hurd-packages + %base-packages/hurd))))) %hurd-devel-os diff --git a/gnu/system/examples/devel-hurd64.tmpl b/gnu/system/examples/devel-hurd64.tmpl new file mode 100644 index 0000000000..146a35adcf --- /dev/null +++ b/gnu/system/examples/devel-hurd64.tmpl @@ -0,0 +1,65 @@ +;; -*-scheme-*- + +;; This is an operating system configuration template +;; for a "bare bones" QEMU setup, with no X11 display server. + +;; To build a disk image for a virtual machine, do: +;; +;; ./pre-inst-env guix system image --image-type=hurd-qcow2 --image-size=6G \ +;; --no-offload gnu/system/examples/devel-hurd64.tmpl +;; +;; You may run it like so: +;; +;; cp /gnu/store/.../disk-image devel-hurd.img +;; guix shell qemu@7 -- qemu-system-x86_64 -m 4096 \ +;; --machine q35 \ +;; --enable-kvm \ +;; --device e1000,netdev=net0 \ +;; --netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222 \ +;; --hda devel-hurd.img +;; +;; and use it like: +;; +;; 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 git clone git://git.savannah.gnu.org/guix +;; cd master +;; ./bootstrap +;; ./configure +;; make + +(include "devel-hurd.tmpl") +(include "bare-hurd64.tmpl") + +(define %hurd64-devel-os + (operating-system + (inherit %hurd64-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-15 + git-minimal + gnu-make + m4 + openssh-sans-x + (append + guix-packages + hurd-packages + %base-packages/hurd))))) + +%hurd64-devel-os