summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-06-15 09:33:07 +0200
committerLudovic Courtès <ludo@gnu.org>2018-06-15 10:04:59 +0200
commit7b0449712e0a76e3fe9d4f032e9774f5179d3a18 (patch)
tree8c3f248be1b2db954c9e8afacd1abb01eb89cc6f
parent265048cc897af8189c64cdfaa41820490f8fad9e (diff)
downloadguix-7b0449712e0a76e3fe9d4f032e9774f5179d3a18.tar.gz
hydra: Make sure we add an absolute file name to the load path.
Previously, under Cuirass, we'd add "build-aux/cuirass/../hydra/../..".
But then, commit c45477d2a1a651485feede20fe0f3d15aec48b39 added this
in (gnu system vm):

         (local-file (search-path %load-path
                                  "guix/store/schema.sql"))

Since 'search-path' would not return an absolute file name, 'local-file'
would try to resolve that relative to "gnu/system", leading to:

  ERROR: In procedure force:
  In procedure canonicalize-path: No such file or directory: "/gnu/store/…-guix-ce573b1/gnu/system/build-aux/cuirass/../hydra/../../guix/store/schema.sql

* build-aux/hydra/gnu-system.scm <top level>: Canonicalize DIR before
adding it to %LOAD-PATH.
-rw-r--r--build-aux/hydra/gnu-system.scm3
1 files changed, 2 insertions, 1 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index 654f3ecf3e..b1554ced4c 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -43,7 +43,8 @@
 
   (and=> (assoc-ref (current-source-location) 'filename)
          (lambda (file)
-           (let ((dir (string-append (dirname file) "/../..")))
+           (let ((dir (canonicalize-path
+                       (string-append (dirname file) "/../.."))))
              (format (current-error-port) "prepending ~s to the load path~%"
                      dir)
              (set! %load-path (cons dir %load-path))))))