aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;;
;;; 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 <http://www.gnu.org/licenses/>.

(define-module (gnu artwork)
  #:use-module (guix packages)
  #:use-module (guix git-download)
  #:export (%artwork-repository))

;;; Commentary:
;;;
;;; Common place for the definition of the Guix artwork repository.
;;;
;;; Code:

(define %artwork-repository
  (let ((commit "4c7f2ce6428a63e202cd2a9474a06f68a946934d"))
    (origin
      (method git-fetch)
      (uri (git-reference
             (url "https://git.savannah.gnu.org/git/guix/guix-artwork.git")
             (commit commit)))
      (file-name (string-append "guix-artwork-" (string-take commit 7)
                                "-checkout"))
      (sha256
       (base32
        "1rl569759q9wm1dxn7nkq3873d2k92giic7aa6jwzwr3n16prc7y")))))

;;; artwork.scm ends here
#f directory)) (("include" . directory) (if (string=? "bash" (package-name package)) #f directory)) ((_ . directory) directory)) (derivation->output-paths drv))))) %final-inputs)) (define (assert-valid-substitute substitute) "Make sure SUBSTITUTE does not refer to any bootstrap inputs, and bail out if it does." (let ((references (substitutable-references substitute))) (when (any (cut string-contains <> "boot") references) (leave (G_ "'~a' refers to bootstrap inputs: ~s~%") (substitutable-path substitute) references)))) (define (test-final-inputs store system) "Check whether the final inputs for SYSTEM are clean---i.e., they don't refer to the bootstrap tools." (format #t "checking final inputs for '~a'...~%" system) (let* ((inputs (final-inputs store system)) (available (substitutable-path-info store inputs))) (for-each (lambda (dir) (unless (find (lambda (substitute) (string=? (substitutable-path substitute) dir)) available) (leave (G_ "~a (system: ~a) has no substitute~%") dir system))) inputs) (for-each assert-valid-substitute available))) ;; Entry point. (with-store store (parameterize ((%graft? #f)) (set-build-options store #:use-substitutes? #t) (for-each (cut test-final-inputs store <>) %cuirass-supported-systems)))