hydra: Make sure we add an absolute file name to the load path.
authorLudovic Courtès <ludo@gnu.org>
Fri, 15 Jun 2018 07:33:07 +0000 (09:33 +0200)
committerLudovic Courtès <ludo@gnu.org>
Fri, 15 Jun 2018 08:04:59 +0000 (10:04 +0200)
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.

build-aux/hydra/gnu-system.scm

index 654f3ec..b1554ce 100644 (file)
@@ -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))))))