;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; ;;; 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 . ;;; ;;; Check whether important binaries are available. ;;; (use-modules (guix store) (guix grafts) (guix packages) (guix derivations) (gnu packages) (gnu packages certs) (gnu packages emacs) (gnu packages make-bootstrap) (gnu packages ssh) (srfi srfi-1) (srfi srfi-26) (ice-9 format)) (define (packages-for-system system) "Return the list of packages to check for SYSTEM." (let ((base (list %bootstrap-tarballs emacs nss-certs openssh))) ;; On Intel systems, make sure key packages proposed by the installer are ;; available. (if (member system '("x86_64-linux" "i686-linux")) (append (map specification->package '("xfce" "gnome" "mate" "enlightenment" "openbox" "awesome" "i3-wm" "ratpoison" "network-manager-applet" "xlockmore" "linux-libre" "grub-hybrid" "xorg-server" "libreoffice" ;; FIXME: Add IceCat when Rust is available on i686. #;"icecat")) base) base))) (with-store store (parameterize ((%graft? #f)) (let* ((native (append-map (lambda (system) (map (cut package-derivation store <> system) (packages-for-system system))) %hydra-supported-systems)) (cross (map (cut package-cross-derivation store %bootstrap-tarballs <>) '("mips64el-linux-gnu" "arm-linux-gnueabihf"))) (total (append native cross))) (set-build-options store #:use-substitutes? #t #:substitute-urls %default-substitute-urls) (let* ((total (map derivation->output-path total)) (available (substitutable-paths store total)) (missing (lset-difference string=? total available))) (if (null? missing) (format (current-error-port) "~a packages found substitutable on~{ ~a~}~%" (length total) %hydra-supported-systems) (format (current-error-port) "~a packages are not substitutable:~%~{ ~a~%~}~%" (length missing) missing)) (exit (null? missing)))))) p'>* gnu/tests.scm (%simple-os): Export it. Mathieu Othacehe 2020-07-25utils: Move <location> and '&error-location' to (guix diagnostics)....* guix/utils.scm (<location>, source-properties->location) (location->source-properties, &error-location): Move to... * guix/diagnostics.scm: ... here. * gnu.scm: Adjust imports accordingly. * gnu/machine.scm: Likewise. * gnu/system.scm: Likewise. * gnu/tests.scm: Likewise. * guix/inferior.scm: Likewise. * tests/channels.scm: Likewise. * tests/packages.scm: Likewise. Ludovic Courtès 2020-03-05tests: Add <system-test> gexp compiler....* gnu/tests.scm (compile-system-test): New gexp compiler. Ludovic Courtès 2020-01-23tests: Fix typo in comment....* gnu/tests.scm: Add missing word in commentary. Ludovic Courtès 2019-12-18gexp: Allow character literals in GEXP->SEXP....Fixes <https://bugs.gnu.org/38628>. * tests/gexp.scm ("lower-gexp, character literal"): New test. * guix/gexp.scm (gexp->sexp)[self-quoting?]: Add CHAR? to the tested types. * guix/repl.scm (self-quoting?): Likewise. * gnu/tests.scm (marionette-shepherd-service)[self-quoting?]: Likewise. Marius Bakke