summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-10-03 18:06:16 +0200
committerLudovic Courtès <ludo@gnu.org>2014-10-05 21:58:42 +0200
commit0d5a559f0f81e14c695e5aab178b30edf66088f3 (patch)
treefe43647edc18b8a85885436f9a40a6ff4281e19f /tests
parent2348fd0f51b6eeabde2e384ef495b3a0adbd6bfb (diff)
downloadguix-0d5a559f0f81e14c695e5aab178b30edf66088f3.tar.gz
build-system: Introduce "bags" as an intermediate representation.
* guix/build-system.scm (<build-system>)[build, cross-build]: Remove.
  [lower]: New field.
  (<bag>): New record type.
  (make-bag): New procedure.
* guix/packages.scm (bag-transitive-inputs, bag-transitive-build-inputs,
  bag-transitive-host-inputs, bag-transitive-target-inputs,
  package->bag): New procedures.
  (package-derivation): Use it; use the bag, apply its build procedure,
  etc.
  (package-cross-derivation): Likewise.
* gnu/packages/bootstrap.scm (raw-build, make-raw-bag): New procedure.
  (%bootstrap-guile): Use them.
* guix/build-system/trivial.scm (lower): New procedure.
  (trivial-build, trivial-cross-build): Remove 'source' parameter.  Pass
  INPUTS as is.
  (trivial-build-system): Adjust accordingly.
* guix/build-system/gnu.scm (%store, inputs-search-paths,
  standard-search-paths, expand-inputs, standard-inputs): Remove.
  (gnu-lower): New procedure.
  (gnu-build): Remove 'source' and #:implicit-inputs? parameters.
  Remove 'implicit-inputs' and 'implicit-search-paths' variables.  Get
  the source from INPUT-DRVS.
  (gnu-cross-build): Likewise.
  (standard-cross-packages): Remove call to 'standard-packages'.
  (standard-cross-inputs, standard-cross-search-paths): Remove.
  (gnu-build-system): Remove 'build' and 'cross-build'; add 'lower'.
* guix/build-system/cmake.scm (lower): New procedure.
  (cmake-build): Remove 'source' and #:cmake parameters.  Use INPUTS and
  SEARCH-PATHS as is.  Get the source from INPUTS.
* guix/build-system/perl.scm: Likewise.
* guix/build-system/python.scm: Likewise.
* guix/build-system/ruby.scm: Likewise.
* gnu/packages/cross-base.scm (cross-gcc): Change "cross-linux-headers"
  to "linux-headers".
  (cross-libc)[xlinux-headers]: Pass #:implicit-cross-inputs? #f.
  Likewise.  In 'propagated-inputs', change "cross-linux-headers" to
  "linux-headers".
* guix/git-download.scm (git-fetch): Use 'standard-packages' instead of
  'standard-inputs'.
* tests/builders.scm ("gnu-build-system"): Remove use of
  'build-system-builder'.
  ("gnu-build"): Remove 'source' and #:implicit-inputs? arguments to
  'gnu-build'.
* tests/packages.scm ("search paths"): Adjust to new build system API.
  ("package-cross-derivation, no cross builder"): Likewise.
* doc/guix.texi (Build Systems): Add paragraph on bags.
Diffstat (limited to 'tests')
-rw-r--r--tests/builders.scm9
-rw-r--r--tests/packages.scm15
2 files changed, 14 insertions, 10 deletions
diff --git a/tests/builders.scm b/tests/builders.scm
index a2f500a94d..579246d04d 100644
--- a/tests/builders.scm
+++ b/tests/builders.scm
@@ -92,8 +92,7 @@
          (valid-path? %store out))))
 
 (test-assert "gnu-build-system"
-  (and (build-system? gnu-build-system)
-       (eq? gnu-build (build-system-builder gnu-build-system))))
+  (build-system? gnu-build-system))
 
 (unless network-reachable? (test-skip 1))
 (test-assert "gnu-build"
@@ -102,9 +101,9 @@
                     "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"))
          (tarball  (url-fetch %store url 'sha256 hash
                               #:guile %bootstrap-guile))
-         (build    (gnu-build %store "hello-2.8" tarball
-                              %bootstrap-inputs
-                              #:implicit-inputs? #f
+         (build    (gnu-build %store "hello-2.8"
+                              `(("source" ,tarball)
+                                ,@%bootstrap-inputs)
                               #:guile %bootstrap-guile
                               #:search-paths %bootstrap-search-paths))
          (out      (derivation->output-path build)))
diff --git a/tests/packages.scm b/tests/packages.scm
index 16e65619bc..6deb21c331 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -279,11 +279,16 @@
 (test-assert "search paths"
   (let* ((p (make-prompt-tag "return-search-paths"))
          (s (build-system
-             (name "raw")
+             (name 'raw)
              (description "Raw build system with direct store access")
-             (build (lambda* (store name source inputs
-                                    #:key outputs system search-paths)
-                      search-paths))))
+             (lower (lambda* (name #:key source inputs #:allow-other-keys)
+                      (bag
+                        (name name)
+                        (build-inputs inputs)
+                        (build
+                         (lambda* (store name inputs
+                                         #:key outputs system search-paths)
+                           search-paths)))))))
          (x (list (search-path-specification
                    (variable "GUILE_LOAD_PATH")
                    (directories '("share/guile/site/2.0")))
@@ -326,7 +331,7 @@
 
 (test-assert "package-cross-derivation, no cross builder"
   (let* ((b (build-system (inherit trivial-build-system)
-              (cross-build #f)))
+              (lower (const #f))))
          (p (package (inherit (dummy-package "p"))
               (build-system b))))
     (guard (c ((package-cross-build-system-error? c)