summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanneke Nieuwenhuizen <janneke@gnu.org>2020-06-05 09:18:35 +0200
committerJanneke Nieuwenhuizen <janneke@gnu.org>2024-01-25 22:39:24 +0100
commit59ae639ac6e29a09f6056eea4f22ec7bfaba42e0 (patch)
treef05a24101ecf36897de6608cb576ff11aa01ee83
parentfa003825efb5b6ea79f8570680c94930b9a17fdf (diff)
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.
-rw-r--r--etc/substitutes/dezyne.org.pub6
-rw-r--r--gnu/system/examples/devel-hurd.tmpl114
2 files changed, 120 insertions, 0 deletions
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..3e25205658
--- /dev/null
+++ b/gnu/system/examples/devel-hurd.tmpl
@@ -0,0 +1,114 @@
+;; -*-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
+ (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