From bb9ef45f1a6b13ce1dc82a0796690d6a3f831ac3 Mon Sep 17 00:00:00 2001 From: Janneke Nieuwenhuizen Date: Fri, 5 Jun 2020 09:18:35 +0200 Subject: [PATCH] DRAFT system: examples: Add devel-hurd.tmpl. For your hacking pleasure -- Not intended for review / merge just yet. Try something like ./pre-inst-env guix system image --image-type=hurd-qcow2 --image-size=15G \ --no-offload gnu/system/examples/devel-hurd.tmpl cp /gnu/store/...disk-image devel.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 ssh -p 10022 root@localhost GUIX_PROFILE=/run/current-system/bootstrap-profile source $GUIX_PROFILE/etc/profile git clone git://git.savannah.gnu.org/guix cd guix ./bootstrap ./configure --localstatedir=/var --sysconfdir=/etc --with-courage make Note that we don't have an ld-wrapper, so you need some ld.so and LD_LIBRARY_PATH hackery for compiled binaries to run. --- etc/substitutes/dezyne.org.pub | 6 ++ gnu/system/examples/devel-hurd.tmpl | 117 ++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 etc/substitutes/dezyne.org.pub create mode 100644 gnu/system/examples/devel-hurd.tmpl diff --git a/etc/substitutes/dezyne.org.pub b/etc/substitutes/dezyne.org.pub new file mode 100644 index 0000000000..2320d8828b --- /dev/null +++ b/etc/substitutes/dezyne.org.pub @@ -0,0 +1,6 @@ +(public-key + (ecc + (curve Ed25519) + (q #32F730EA9AC64DD32D6BE661774ED3FF99D931027AD0115F1C5925C6CE724BA2#) + ) +) diff --git a/gnu/system/examples/devel-hurd.tmpl b/gnu/system/examples/devel-hurd.tmpl new file mode 100644 index 0000000000..09b2f80a90 --- /dev/null +++ b/gnu/system/examples/devel-hurd.tmpl @@ -0,0 +1,117 @@ +;; -*-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 +;; +;; ./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 -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 +;; +;; ssh -p 10022 root@localhost +;; guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)' +;; +;; or even (if you use --image-size=3G) +;; +;; guix build hello +;; +;; Building Guix +;; +;; GUIX_PROFILE=/run/current-system/bootstrap-profile +;; source $GUIX_PROFILE/etc/profile +;; git clone git://git.savannah.gnu.org/guix +;; cd guix +;; ./bootstrap +;; ./configure --localstatedir=/var --sysconfdir=/etc --with-courage +;; make + +(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) +(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) + '("glibc-utf8-locales" "graphviz" "po4a")))) + +(define %hurd-devel-os + (operating-system + (inherit %hurd-vm-operating-system) + (host-name "guixydevel") + (timezone "Europe/Berlin") + ;; FIXME: guile-avahi won't build in a VM with only libc-2.37? + ;; encoding-error "scm_to_stringn" "cannot convert narrow string to output locale" 1073741930 #f #f + (locale-libcs (if (system-hurd?) + (list glibc/hurd) + %default-locale-libcs)) + (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 + gnu-make + ;;(list guix "debug") + m4 + 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 => + (openssh-configuration + (port-number 2222) + (permit-root-login #t) + (allow-empty-passwords? #t) + (password-authentication? #t))) + (guix-service-type + config => + (guix-configuration + (inherit config) + (authorized-keys + (cons + (local-file "dezyne.org.pub") + %default-authorized-guix-keys)) + (substitute-urls (cons "http://dezyne.org:8181" + %default-substitute-urls))))))))) + +%hurd-devel-os