mirror of git://git.savannah.gnu.org/guix.git
118 lines
3.9 KiB
Scheme
118 lines
3.9 KiB
Scheme
;; -*-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
|