From a9d5e4bed1bd83136109ff3f8f5fd4881a52ab4b Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 29 Aug 2017 07:41:30 +0100 Subject: [PATCH] gnu: Fix current-guix. 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 67a956dea1..a6c97e618e 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -312,10 +312,11 @@ (define (wrong-extension? 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 @@ (define-public current-guix (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?)))))))