;; -*-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 build: Correct guix_system on musl libc distros....* m4/guix.m4 (GUIX_SYSTEM_TYPE): Add linux-musl* case. This prevents the macro from mis-parsing the host OS, which causes breakage when building from source. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Antero Mejr 2022-04-29publish: Send uncached narinfo replies from the main thread....Fixes <https://issues.guix.gnu.org/54723>. Reported by Guillaume Le Vaillant <glv@posteo.net>. Regression introduced in f743f2046be2c5a338ab871ae8666d8f6de7440b. With commit f743f2046be2c5a338ab871ae8666d8f6de7440b, responses to pipelined GETs would end up being written concurrently by many threads. Thus the body of those responses could be interleaved and garbled. * guix/scripts/publish.scm: Revert f743f2046be2c5a338ab871ae8666d8f6de7440b. * tests/publish.scm ("/*.narinfo pipeline"): New test. Ludovic Courtès 2022-02-14publish: Do not sign the URL/Compression/FileSize narinfo fields....This will allow mirror operators to alter these non-normative bits of a narinfo without having to resign narinfos. * guix/scripts/publish.scm (narinfo-string): Remove URL/Compression/FileSize from BASE-INFO. Move them after "Signature". * tests/publish.scm ("/*.narinfo") ("/*.narinfo with properly encoded '+' sign") ("/*.narinfo with lzip + gzip") ("with cache, lzip + gzip"): Adjust accordingly. * tests/substitute.scm ("query narinfo with signature over relevant subset"): New test. Ludovic Courtès 2022-01-19tests: Adjust to gzip as the default log compression....This is a followup to 575e52ac2b090fd194086e9c1c53bbf8055acbc2. * tests/publish.scm ("/log/NAME"): Expect a gzip-encoded log. Ludovic Courtès