diff options
-rw-r--r-- | guix/scripts/build.scm | 22 | ||||
-rw-r--r-- | tests/guix-build.sh | 12 |
2 files changed, 31 insertions, 3 deletions
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 97e2f5a167..d9cdb6e5e0 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> @@ -559,11 +559,29 @@ build." (define things-to-build (map transform (options->things-to-build opts))) + (define warn-if-unsupported + (let ((target (assoc-ref opts 'target))) + (if target + (lambda (package system) + ;; We cannot tell whether PACKAGE supports TARGET. + package) + (lambda (package system) + (match package + ((? package? package) + (unless (supported-package? package system) + (warning (package-location package) + (G_ "package ~a does not support ~a~%") + (package-full-name package) system)) + package) + (x x)))))) + (define (compute-derivation obj system) ;; Compute the derivation of OBJ for SYSTEM. (match obj ((? package? p) - (let ((p (or (and graft? (package-replacement p)) p))) + (let ((p (warn-if-unsupported + (or (and graft? (package-replacement p)) p) + system))) (match src (#f (list (package->derivation store p system))) diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 86e41e2927..9cbf8fe26d 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2012-2014, 2016-2022 Ludovic Courtès <ludo@gnu.org> # Copyright © 2020 Marius Bakke <mbakke@fastmail.com> # Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> # @@ -31,6 +31,16 @@ guix build --version guix build -e '(@ (gnu packages bootstrap) %bootstrap-glibc)' -S test "`guix build -e '(@ (gnu packages bootstrap) %bootstrap-glibc)' -S`" = "" +# Warn when attempting to build an unsupported package. +case "$(guix build intelmetool -s armhf-linux -v0 -n 2>&1)" in + *warning:*intelmetool*support*armhf*) + true + break;; + *) + false; + break;; +esac + # Should pass. guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)' | \ grep -e '-guile-' |