;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018 Ludovic Courtès ;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (test-pack) #:use-module (guix scripts pack) #:use-module (guix store) #:use-module (guix derivations) #:use-module (guix profiles) #:use-module (guix monads) #:use-module (guix grafts) #:use-module (guix tests) #:use-module (guix gexp) #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-64)) (define %store (open-connection-for-tests)) ;; Globally disable grafts because they can trigger early builds. (%graft? #f) (define-syntax-rule (test-assertm name exp) (test-assert name (run-with-store %store exp #:guile-for-build (%guile-for-build)))) (define %gzip-compressor ;; Compressor that uses the bootstrap 'gzip'. ((@ (guix scripts pack) compressor) "gzip" "gz" #~(#+(file-append %bootstrap-coreutils&co "/bin/gzip") "-6n"))) (define %tar-bootstrap %bootstrap-coreutils&co) (test-begin "pack") (unless (network-reachable?) (test-skip 1)) (test-assertm "self-contained-tarball" (mlet* %store-monad ((profile (profile-derivation (packages->manifest (list %bootstrap-guile)) #:hooks '() #:locales? #f)) (tarball (self-contained-tarball "pack" profile #:symlinks '(("/bin/Guile" -> "bin/guile")) #:compressor %gzip-compressor #:archiver %tar-bootstrap)) (check (gexp->derivation "check-tarball" #~(let ((bin (string-append "." #$profile "/bin"))) (setenv "PATH" (string-append #$%tar-bootstrap "/bin")) (system* "tar" "xvf" #$tarball) (mkdir #$output) (exit (and (file-exists? (string-append bin "/guile")) (string=? (string-append #$%bootstrap-guile "/bin") (readlink bin)) (string=? (string-append ".." #$profile "/bin/guile") (readlink "bin/Guile")))))))) (built-derivations (list check)))) (test-end) 3d23b20d21e8 Janneke Nieuwenhuizen 2024-12-03system: examples: Add bare-hurd64.tmpl....* gnu/system/examples/bare-hurd.tmpl: Update comments. * gnu/system/examples/bare-hurd64.tmpl: New file. Change-Id: I8d26afd19afaa8fb3558948b50b0efdc0f83f29c Janneke Nieuwenhuizen 2024-11-11system: examples: Add devel-hurd.tmpl....This operating system specification for the Hurd creates a system that supports building the guix package from git natively. Do something like ./pre-inst-env guix system build --target=i586-pc-gnu \ gnu/system/examples/devel-hurd.tmpl ./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 mkdir -p ~/src/guix cd src/guix git clone git://git.savannah.gnu.org/guix cd guix ./bootstrap ./configure --with-courage make * gnu/system/examples/devel-hurd.tmpl: New file. Change-Id: I097c7c00a9ab9602db7f8f3305827c815f308d1e Janneke Nieuwenhuizen 2024-11-11system: hurd: Remove qemu networking from %base-services/hurd....This allows us to use %base-services/hurd for services in a Hurd config for a real machine without removing static-networking. * gnu/system/hurd.scm (%base-services/hurd): Factor networking out to... (%base-services+qemu-networking/hurd): ..this new variable. * gnu/system/examples/bare-hurd.tmpl (%hurd-os): Use it. * gnu/services/virtualization.scm (%hurd-vm-operating-system): Use it. * gnu/system/images/hurd.scm (hurd-barebones-os): Use it. Add comment about QEMU and networking for a real machine. Change-Id: I777a63410383b9bf8b5740e4513dbc1e9fb0fd41 Janneke Nieuwenhuizen