Subject: [PATCH] gnu: Fix current-guix.

From: Christopher Baines <[email-masked]>
Date: Tue, 29 Aug 2017 07:49:30 +0100

Without this change, I get errors like:
  ERROR: In procedure string-drop:
  ERROR: Value out of range 0 to 35: 51

* gnu/packages/package-management.scm (current-guix): Pass exactly the same
  path to git-predicate and local-file, to ensure that the select? function is
  compatible.
---
 gnu/packages/package-management.scm | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 67a956dea..a6c97e618 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -312,10 +312,11 @@ generated file."
      #t)))
 
 (define-public current-guix
-  (let ((select? (delay (or (git-predicate
-                             (string-append (current-source-directory)
-                                            "/../.."))
-                            source-file?))))
+  (let* ((repository-root (canonicalize-path
+                           (string-append (current-source-directory)
+                                          "/../..")))
+         (select? (delay (or (git-predicate repository-root)
+                             source-file?))))
     (lambda ()
       "Return a package representing Guix built from the current source tree.
 This works by adding the current source tree to the store (after filtering it
@@ -323,7 +324,7 @@ out) and returning a package that uses that as its 'source'."
       (package
         (inherit guix)
         (version (string-append (package-version guix) "+"))
-        (source (local-file "../.." "guix-current"
+        (source (local-file repository-root "guix-current"
                             #:recursive? #t
                             #:select? (force select?)))))))
 
-- 
2.14.1