GNU bug report logs -
#28273
[PATCH] gnu: Fix current-guix.
Previous Next
Reported by: Christopher Baines <mail <at> cbaines.net>
Date: Tue, 29 Aug 2017 06:50:02 UTC
Severity: normal
Tags: patch
Done: Christopher Baines <mail <at> cbaines.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#28273: [PATCH] gnu: Fix current-guix.
which was filed against the guix-patches package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 28273 <at> debbugs.gnu.org.
--
28273: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28273
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
On Thu, 31 Aug 2017 15:18:37 +0200
ludo <at> gnu.org (Ludovic Courtès) wrote:
> Christopher Baines <mail <at> cbaines.net> 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 :)
[Message part 4 (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
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
This bug report was last modified 7 years and 349 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.