emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#28273: closed ([PATCH] gnu: Fix current-guix.)


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#28273: closed ([PATCH] gnu: Fix current-guix.)
Date: Thu, 31 Aug 2017 21:05:01 +0000

Your message dated Thu, 31 Aug 2017 22:04:21 +0100
with message-id <address@hidden>
and subject line Re: [bug#28273] [PATCH] gnu: Fix current-guix.
has caused the debbugs.gnu.org bug report #28273,
regarding [PATCH] gnu: Fix current-guix.
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
28273: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28273
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH] gnu: Fix current-guix. 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




--- End Message ---
--- Begin Message --- Subject: Re: [bug#28273] [PATCH] gnu: Fix current-guix. Date: Thu, 31 Aug 2017 22:04:21 +0100
On Thu, 31 Aug 2017 15:18:37 +0200
address@hidden (Ludovic Courtès) wrote:

> Christopher Baines <address@hidden> skribis:
> 
> > 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.  
> 
> Good catch, LGTM.

Great, I've merged this now.

> I think that fundamentally, we should arrange for ‘git-predicate’ to
> not do any string prefix comparison.  That’s bound to fail.  If we
> could somehow restrict it to comparing inode numbers, that’d be
> perfect.

Hmm, yeah, that might work well... I think the structure would simplify
to:
 - taking the list of files, creating a list of directories
   (rather than a tree)
 - combining these lists
 - finding each inode for every file and directory

The predicate could then check if the provided inode is known, without
switching on the type as it does at the moment.

I'll put it on my list of things to look at :)

Attachment: pgp82azuFqUHV.pgp
Description: OpenPGP digital signature


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]